def abfahrt(self, mess, args): """ Abfahrtsmonitor Benutze: abfahrt <Haltestellenname> """ args = args.strip().split(' ') if len(args) < 1: abfahrt = "Benutze: abfahrt <Haltestellenname>" else: abfahrt = "" if len(args) == 1: laufzeit = config.get("abfahrt", "laufzeit") haltestelle = args[0] else: if args[-1].isdigit(): laufzeit = args[-1] haltestelle = " ".join(args[0:-1]) else: laufzeit = config.get("abfahrt", "laufzeit") haltestelle = " ".join(args[0:]) values = { "ort": "Dresden", "hst": haltestelle, "vz": laufzeit, "timestamp": int(time.time()) } # fix unicode issues of urlencode encoded_values = {} for key, value in values.iteritems(): encoded_values[key] = unicode(value).encode('utf-8') url_values = urllib.urlencode(encoded_values) full_url = config.get("abfahrt", "abf_url") + "?" + url_values data = requests.get(url=full_url) if json.loads(data.content): abfahrt += "\n%6s %-19s %7s\n" % ("Linie", "Richtung", "Abfahrt") for line in json.loads(data.content): abfahrt += "%6s %-19s %7s\n" % (line[0], line[1], line[2]) else: hst_url = config.get("abfahrt", "hst_url") + "?" + url_values data = requests.get(url=hst_url) if json.loads(data.content)[1]: abfahrt += "Such dir eine aus:\n" i = 0 for line in json.loads(data.content)[1]: i = i + 1 if i <= 10: abfahrt += "* %s\n" % line[0] else: abfahrt += "und viele mehr..." break return abfahrt
def abfahrt(self, mess, args): """ Abfahrtsmonitor Benutze: abfahrt <Haltestellenname> """ args = args.strip().split(' ') if len(args) < 1: abfahrt = "Benutze: abfahrt <Haltestellenname>" else: abfahrt = "" if len(args) == 1: laufzeit = config.get("abfahrt", "laufzeit") haltestelle = args[0] else: if args[-1].isdigit(): laufzeit = args[-1] haltestelle = " ".join(args[0:-1]) else: laufzeit = config.get("abfahrt", "laufzeit") haltestelle = " ".join(args[0:]) values = {"ort": "Dresden", "hst": haltestelle, "vz": laufzeit, "timestamp": int(time.time())} # fix unicode issues of urlencode encoded_values = {} for key, value in values.iteritems(): encoded_values[key] = unicode(value).encode('utf-8') url_values = urllib.urlencode(encoded_values) full_url = config.get("abfahrt", "abf_url") + "?" + url_values data = requests.get(url=full_url) if json.loads(data.content): abfahrt += "\n%6s %-19s %7s\n" % ("Linie", "Richtung", "Abfahrt") for line in json.loads(data.content): abfahrt += "%6s %-19s %7s\n" % (line[0], line[1], line[2]) else: hst_url = config.get("abfahrt", "hst_url") + "?" + url_values data = requests.get(url=hst_url) if json.loads(data.content)[1]: abfahrt += "Such dir eine aus:\n" i = 0 for line in json.loads(data.content)[1]: i = i + 1 if i <= 10: abfahrt += "* %s\n" % line[0] else: abfahrt += "und viele mehr..." break return abfahrt
def last(self, mess, args): """ Gibt die letzten News zu PentaCast, PentaRadio und PentaMusic wieder Moegliche Eingaben: {lastrss} """ args = args.strip().split(' ') if args[0] in dict(config.items('RSS')).keys(): message = "\n" if len(args) == 1: args.append('1') if int(args[1]) > int(config.get('RSS', "maxfeeds")): args[1] = config.get('RSS', "maxfeeds") for loop in range(int(args[1])): f = feedparser.parse(config.get('RSS', args[0])).get('entries')[loop] message += 'Titel: ' + f.get('title') + '\n' + 'URL: ' + f.get('link') + '\n' else: message = 'Bitte rufe \"help last\" fuer moegliche Optionen auf!' return message
def github(self, mess, args): """ Gibt die aktuellen GitHub Aktivitäten wieder Moegliche Eingaben: {lastrssgithub} """ args = args.strip().split(' ') if args[0] in dict(config.items('RSSGITHUB')).keys(): message = "\n" if len(args) == 1: args.append('1') if int(args[1]) > int(config.get('RSSGITHUB', "maxfeedsgithub")): args[1] = config.get('RSSGITHUB', "maxfeedsgithub") for loop in range(int(args[1])): f = feedparser.parse(config.get('RSSGITHUB', args[0])).get('entries')[loop] message += 'Titel: ' + f.get('title') + '\n' + f.get('updated') + '\n' + 'URL: ' + f.get('link') + '\n' else: message = 'Bitte rufe \"help github\" fuer moegliche Optionen auf!' return message
def last(self, mess, args): """ Gibt die letzten News zu PentaCast, PentaRadio und PentaMusic wieder Moegliche Eingaben: {lastrss} """ args = args.strip().split(' ') if args[0] in dict(config.items('RSS')).keys(): message = "\n" if len(args) == 1: args.append('1') if int(args[1]) > int(config.get('RSS', "maxfeeds")): args[1] = config.get('RSS', "maxfeeds") for loop in range(int(args[1])): f = feedparser.parse(config.get('RSS', args[0])).get('entries')[loop] message += 'Titel: ' + f.get('title') + '\n' + 'URL: ' + f.get( 'link') + '\n' else: message = 'Bitte rufe \"help last\" fuer moegliche Optionen auf!' return message
def mensa(self, mess, args): """ Gibt die aktuellen Leckereien wieder Moegliche Eingaben: {lastrssmensa} """ args = args.strip().split(' ') if args[0] in dict(config.items('RSSMENSA')).keys(): message = "\n" if len(args) == 1: args.append('1') if int(args[1]) > int(config.get('RSSMENSA', "maxfeedsmensa")): args[1] = config.get('RSSMENSA', "maxfeedsmensa") for loop in range(int(args[1])): f = feedparser.parse(config.get('RSSMENSA', args[0])).get('entries')[loop] message += 'Titel: ' + f.get('title') + '\n' + 'URL: ' + f.get('link') + '\n' f = feedparser.parse(config.get('RSSMENSA', args[0])).get('entries')[1] message += 'Titel: ' + f.get('title') + '\n' + 'URL: ' + f.get('link') + '\n' f = feedparser.parse(config.get('RSSMENSA', args[0])).get('entries')[2] message += 'Titel: ' + f.get('title') + '\n' + 'URL: ' + f.get('link') + '\n' else: message = 'Bitte rufe \"help mensa\" fuer moegliche Optionen auf!' return message
def elbe(self, mess, args): """ aktueller elbpegel """ message = "" url = config.get("elbe", "url") params = dict(includeTimeseries='false', includeCurrentMeasurement='true', waters='ELBE') data = requests.get(url=url) content = json.loads(data.content) pegel = content.get('value') message += 'Pegelstand: %d cm' % pegel return message
def elbe(self, mess, args): """ aktueller elbpegel """ message = "" url = config.get("elbe", "url") params = dict( includeTimeseries='false', includeCurrentMeasurement='true', waters='ELBE' ) data = requests.get(url=url) content = json.loads(data.content) pegel = content.get('value') message += 'Pegelstand: %d cm' % pegel return message
def hq(self, mess, args): """ Information die ueber http://www.hq.c3d2.de/spaceapi.json auszulesen sind """ url = config.get("hq", "url") data = requests.get(url=url) content = json.loads(data.content) message = "" contact_help_msg = " all Zeigt dir alle Daten\n" contact_help_msg += " phone Zeigt dir die Festnetz Nummer unter der wir erreichbar sind\n" contact_help_msg += " twitter Zeigt dir das Voegelchen unter dem wir schreiben oder erreichbar sind\n" contact_help_msg += " jabber Zeigt dir die den MUC unter der wir erreichbar sind\n" contact_help_msg += " irc Zeigt dir wie du uns im IRC erreichen kannst\n" contact_help_msg += " ml Zeigt dir auf welcher Mailingliste du uns erreichen kannst\n" feeds_help_msg = " blog Zeigt dir die C3D2-Mews-Feed-URL an\n" feeds_help_msg += " wiki Zeigt dir die C3D2-Wiki-Feed-URL an\n" feeds_help_msg += " calendar Zeigt dir die C3D2-Kalender-Feed-URL an\n" sensors_help_msg = " pi Zeigt die Temperatur von " + content.get("sensors").get("temperature")[0].get("name") + "\n" help_msg = "Benutze: hq <option> (<option>)\n" help_msg += "Optionen:\n" help_msg += " status Zeigt dir den Status (offen/zu) vom HQ\n" help_msg += " coords Zeigt dir die Koordinaten des HQ\n" help_msg += " sensors Zeigt die Werte der Sensoren im HQ\n" help_msg += sensors_help_msg help_msg += " contact Zeigt dir Kontakt Daten zum HQ\n" help_msg += contact_help_msg help_msg += " web Zeigt dir den Link zu unserer Webseite\n" help_msg += " feeds Zeigt dir die Newsfeeds des C3D2\n" help_msg += feeds_help_msg args = args.strip().split(' ') if not args[0]: message = help_msg elif args[0] == "status": message += content.get("state").get("message") elif args[0] == "coords": message += "Das HQ findest du auf %s ."%(_stroflatlog_de(content.get("location").get("lat") , content.get("location").get("lon"))) elif args[0] == "web": message += "Der Chaos Computer Club Dresden (C3D2) ist im Web erreichbar unter " + content.get("url") + " ." elif args[0] == "sensors": if len(args) == 1: message += "Du kannst waehlen zwischen:\n" message += sensors_help_msg elif args[1] == "pi": message += content.get("sensors").get("temperature")[0].get("location") + " (" + content.get("sensors").get("temperature")[0].get("name") + "): " + str(content.get("sensors").get("temperature")[0].get("value")) + content.get("sensors").get("temperature")[0].get("unit") else: message += "Probier es noch mal mit einer der folgenden Optionen: [aktuell nur] pi" elif args[0] == "contact": if len(args) == 1: message = "Du kannst waehlen zwischen:\n" message += contact_help_msg elif args[1] == "all": message += "Du kannst uns unter dieser Festnetznummer erreichen: +" + content.get("contact").get("phone") + " .\n" message += "Wir sind auf Twitter unter: https://twitter.com/" + content.get("contact").get("twitter") + " zu finden.\n" message += "Im IRC findest du uns hier: " + content.get("contact").get("irc") + "\n" message += "Im Jabber vom C3D2 findest du uns im Raum " + content.get("contact").get("jabber") + " .\n" message += "Falls du uns auf der Mailingliste folgen willst meld dich einfach hier an: " + content.get("contact").get("ml") + "\n" elif args[1] == "phone": message += "Du kannst uns unter dieser Festnetznummer erreichen: +" + content.get("contact").get("phone") + " ." elif args[1] == "twitter": message += "Wir sind auf Twitter unter: https://twitter.com/" + content.get("contact").get("twitter") + " zu finden." elif args[1] == "irc": message += "Im IRC findest du uns hier: " + content.get("contact").get("irc") elif args[1] == "jabber": message += "Im Jabber vom C3D2 findest du uns im Raum " + content.get("contact").get("jabber") + " ." elif args[1] == "ml": message += "Falls du uns auf der Mailingliste folgen willst meld dich einfach hier an: " + content.get("contact").get("ml") else: message += "Probier es noch mal mit einer der folgenden Optionen: all, phone, twitter, jabber, irc oder ml." elif args[0] == "feeds": if len(args) == 1: message += "Du kannst waehlen zwischen:\n" message += feeds_help_msg elif args[1] == "blog": message += "Den Atom-Feed zu den C3D2 News findest du hier: " + content.get("feeds").get("blog").get("url") elif args[1] == "wiki": message += "Den Atom-Feed zum C3D2-Wiki News findest du hier: " + content.get("feeds").get("wiki").get("url") elif args[1] == "calendar": message += "Den iCal-Feed vom C3D2 findest du hier: " + content.get("feeds").get("calendar").get("url") else: message += "Probier es noch mal mit einer der folgenden Optionen: blog, wiki oder calendar." else: message += "Probier es noch mal mit einer der folgenden Optionen: status, sensors, coords, contact, web oder feeds." return message
def hq(self, mess, args): """ Information die ueber http://www.hq.c3d2.de/spaceapi.json auszulesen sind """ message = "" contact_help_msg = " all Zeigt dir alle Daten\n" contact_help_msg += " phone Zeigt dir die Festnetz Nummer unter der wir erreichbar sind\n" contact_help_msg += " twitter Zeigt dir das Voegelchen unter dem wir schreiben oder erreichbar sind\n" contact_help_msg += " jabber Zeigt dir die den MUC unter der wir erreichbar sind\n" contact_help_msg += " irc Zeigt dir wie du uns im IRC erreichen kannst\n" contact_help_msg += " ml Zeigt dir auf welcher Mailingliste du uns erreichen kannst\n" feeds_help_msg = " rss Zeigt dir die RSS Feed URL\n" feeds_help_msg += " atom Zeigt dir die Atom Feed URL\n" help_msg = "Benutze: hq <option> (<option>)\n" help_msg += "Optionen:\n" help_msg += " status Zeigt dir den Status (offen/zu) vom HQ\n" help_msg += " coords Zeigt dir die Koordinaten des HQ\n" help_msg += " contact Zeigt dir Kontakt Daten zum HQ\n" help_msg += contact_help_msg help_msg += " web Zeigt dir den Link zu unserer Web Seite\n" help_msg += " feeds Zeigt dir die News Feeds des C3D2\n" help_msg += feeds_help_msg url = config.get("hq", "url") data = requests.get(url=url) content = json.loads(data.content) args = args.strip().split(' ') if not args[0]: message = help_msg elif args[0] == "status": message += content.get("status") elif args[0] == "coords": message += "Das HQ findest du auf %s ." % (_stroflatlog_de( content.get("lat"), content.get("lon"))) elif args[0] == "web": message += "Der Chaos Computer Club Dresden (C3D2) ist im Web erreichbar unter " + content.get( "url") + " ." elif args[0] == "contact": if len(args) == 1: message = "Du kannst waehlen zwischen:\n" message += contact_help_msg elif args[1] == "all": message += "Du kannst uns unter dieser Festnetznummer erreichen: +" + content.get( "contact").get("phone") + " .\n" message += "Wir sind auf Twitter unter: https://twitter.com/" + content.get( "contact").get("twitter") + " zu finden.\n" message += "Im IRC findest du uns hier: " + content.get( "contact").get("irc") + "\n" message += "Im Jabber vom C3D2 findest du uns im Raum " + content.get( "contact").get("jabber") + " .\n" message += "Falls du uns auf der Mailingliste folgen willst meld dich einfach hier an: " + content.get( "contact").get("ml") + "\n" elif args[1] == "phone": message += "Du kannst uns unter dieser Festnetznummer erreichen: +" + content.get( "contact").get("phone") + " ." elif args[1] == "twitter": message += "Wir sind auf Twitter unter: https://twitter.com/" + content.get( "contact").get("twitter") + " zu finden." elif args[1] == "irc": message += "Im IRC findest du uns hier: " + content.get( "contact").get("irc") elif args[1] == "jabber": message += "Im Jabber vom C3D2 findest du uns im Raum " + content.get( "contact").get("jabber") + " ." elif args[1] == "ml": message += "Falls du uns auf der Mailingliste folgen willst meld dich einfach hier an: " + content.get( "contact").get("ml") else: message += "Probier es noch mal mit einer der folgenden Optionen: all, phone, twitter, jabber, irc oder ml." elif args[0] == "feeds": if len(args) == 1: message += "Du kannst waehlen zwischen:\n" message += feeds_help_msg elif args[1] == "rss": message += "Den RSS Feed zu den C3D2 News findest du hier: " + content.get( "feeds")[0].get("url") elif args[1] == "atom": message += "Den Atom Feed zu den C3D2 News findest du hier: " + content.get( "feeds")[1].get("url") else: message += "Probier es noch mal mit einer der folgenden Optionen: rss oder atom." else: message += "Probier es noch mal mit einer der folgenden Optionen: status, coords, contact, web oder feeds." return message