diff --git a/README.md b/README.md index e233c4965d797230993b5b358a151a602fdff31a..7d01f4bf16d681b2f44667083a4577d1394a10b1 100644 --- a/README.md +++ b/README.md @@ -7,24 +7,34 @@ To install all requirements simply type `pip install -r requirements.txt`. It is ## check output ``` -usage: program_info.py [-h] (--twitter | --telegram | --json) [--preview] +usage: program_info.py [-h] [--preview] UFC Programminfo Bot optional arguments: -h, --help show this help message and exit - --twitter Zeige die Ausgabe für Twitter. - --telegram Zeige die Ausgabe für Telegram. - --json Zeige die Ausgabe der JSON API. --preview Überprüfe die nächsten 7 Tage statt nur den nächsten Tag. ``` ## twitter +``` +usage: twitter_bot.py [-h] [--doit] [--dest DEST] [--preview] + +UFC Twitter Bot + +optional arguments: + -h, --help show this help message and exit + --doit Sendet die Nachricht über den UFC Twitter Account, anstatt sie + nur auszugeben + --dest DEST Schreibe DEST per mention an + --preview Überprüfe die nächsten 7 Tage statt nur den nächsten Tag. +``` + ## telegram ``` -usage: telegram_bot.py [-h] [--doit] [--dest DEST] +usage: telegram_bot.py [-h] [--doit] [--dest DEST] [--preview] UFC Telegram Bot @@ -33,5 +43,7 @@ optional arguments: --doit Sendet die Nachricht an den UFC Channel, anstatt nur eine Ausgabe zu machen --dest DEST Alternativer Telegramchat + --preview Überprüfe die nächsten 7 Tage statt nur den nächsten Tag. + ``` - No newline at end of file + diff --git a/program_info.py b/program_info.py index 599292885e5a2aea6261a05bb3ded92fc194ea2c..908909519adb78413b53851857f63ff2e812b567 100644 --- a/program_info.py +++ b/program_info.py @@ -116,50 +116,7 @@ class ProgramInfo: pprint(i) else: self.next_event = NextEvent(i, now) - - def get_telegram(self, day_diff=1): - - self.get_next_event(day_diff) - - date = self.next_event.date - - # Erste Nachricht zusammenbauen - message = [ - ("%s, %d. %s %d um %s Uhr im UFC:\n" % ( - date.weekday, date.day, date.month, date.year, date.time)), - "\n", - "*", self.next_event.title, "*\n", - "\n", - self.next_event.description, "" if self.next_event.description is "" else "\n", - self.next_event.movie_description, "\n", - "\n", - self.next_event.tags, "\n", - "\n", - "[Link zur Veranstaltung](%s?pk_campaign=telegram)" % self.next_event.link - ] - - # Trailernachricht zusammenbauen - if self.next_event.trailer is not "": - message.append("\n[Link zum Trailer](https://youtu.be/%s)" % self.next_event.trailer) - - return ''.join(message) - - def get_twitter(self, day_diff=1): - self.get_next_event(day_diff) - - date = self.next_event.date - - # Twitternachricht zusammenbauen - message = [ - ("%s, %d. %s %d um %s Uhr im Hörsaal 1 der EF50:\n" % ( - date.weekday, date.day, date.month, date.year, date.time)), - "\n", - self.next_event.title, - "\n", - "%s?pk_campaign=twitter" % self.next_event.link - ] - - return ''.join(message) + return self.next_event def get_image(self): # return image data @@ -171,22 +128,6 @@ def main(): aparser: ArgumentParser = ArgumentParser( description="UFC Programminfo Bot" ) - group = aparser.add_mutually_exclusive_group(required=True) - group.add_argument( - "--twitter", - action="store_true", - help="Zeige die Ausgabe für Twitter." - ) - group.add_argument( - "--telegram", - action="store_true", - help="Zeige die Ausgabe für Telegram." - ) - group.add_argument( - "--json", - action="store_true", - help="Zeige die Ausgabe der JSON API." - ) aparser.add_argument( "--preview", dest='day_diff', @@ -199,14 +140,7 @@ def main(): p_info = ProgramInfo() - if args.json: - p_info.get_next_event(args.day_diff, True) - - if args.twitter: - pprint(p_info.get_twitter(args.day_diff)) - - if args.telegram: - pprint(p_info.get_telegram(args.day_diff)) + p_info.get_next_event(args.day_diff, True) if __name__ == "__main__": diff --git a/telegram_bot.py b/telegram_bot.py index 75748313040f757fea02f0e170b867af02919b54..f05f2aca680a4c83e931c8080a56fb2b82f36d91 100755 --- a/telegram_bot.py +++ b/telegram_bot.py @@ -18,6 +18,14 @@ aparser.add_argument( "--dest", help="Alternativer Telegramchat" ) +aparser.add_argument( + "--preview", + dest='day_diff', + action="store_const", + const=7, + default=1, + help="Überprüfe die nächsten 7 Tage statt nur den nächsten Tag." +) args = aparser.parse_args() # Überschreibe den Telegramkanal, wenn einer angegeben wurde. (Praktisch für Debugging) if not args.dest is None: @@ -25,7 +33,30 @@ if not args.dest is None: program_info = ProgramInfo() -text = program_info.get_telegram() +next_event = program_info.get_next_event(args.day_diff) + +date = next_event.date + +# Erste Nachricht zusammenbauen +message = [ + ("%s, %d. %s %d um %s Uhr im UFC:\n" % ( + date.weekday, date.day, date.month, date.year, date.time)), + "\n", + "*", next_event.title, "*\n", + "\n", + next_event.description, "" if next_event.description is "" else "\n", + next_event.movie_description, "\n", + "\n", + next_event.tags, "\n", + "\n", + "[Link zur Veranstaltung](%s?pk_campaign=telegram)" % next_event.link +] + +# Trailernachricht zusammenbauen +if next_event.trailer is not "": + message.append("\n[Link zum Trailer](https://youtu.be/%s)" % next_event.trailer) + +text = ''.join(message) print("Vorschau Ankündigung:") print(text) diff --git a/twitter_bot.py b/twitter_bot.py index f23eeb682c02bedecd0cca9bb5412aad96668c9b..830f2e1eab919fa9f8092c43935b09e2a1bf1a2f 100644 --- a/twitter_bot.py +++ b/twitter_bot.py @@ -4,10 +4,10 @@ import tweepy import argparse from program_info import ProgramInfo -CONSUMER_KEY = '***' -CONSUMER_SECRET = '***' -ACCESS_TOKEN = '***' -ACCESS_TOKEN_SECRET = '***' +CONSUMER_KEY = 'WEF5WDeWnql2I292voEG9mww3' +CONSUMER_SECRET = 'WrUCif5m7rxWDSDTb2YK7Djtb2MmUqFVZZXXcyH87amLbCgdpM' +ACCESS_TOKEN = '50611492-ALHt50D7VKc8jZA9weQ5zdIF5RWwLhqkTPbgvWG5O' +ACCESS_TOKEN_SECRET = 'z9Pwf5RjuJjJ8bzlMPCCKkYFukdi01j2oAcWnKdXZcAfZ' auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) @@ -22,14 +22,43 @@ aparser.add_argument( action="store_true", help="Sendet die Nachricht über den UFC Twitter Account, anstatt sie nur auszugeben" ) - +aparser.add_argument( + "--dest", + help="Schreibe DEST per mention an" +) +aparser.add_argument( + "--preview", + dest='day_diff', + action="store_const", + const=7, + default=1, + help="Überprüfe die nächsten 7 Tage statt nur den nächsten Tag." +) args = aparser.parse_args() program_info = ProgramInfo() -text = program_info.get_twitter() +next_event = program_info.get_next_event(args.day_diff) + +date = next_event.date + +# Twitternachricht zusammenbauen +message = [ + ("%s, %d. %s %d um %s Uhr im Hörsaal 1 der EF50:\n" % ( + date.weekday, date.day, date.month, date.year, date.time)), + "\n", + next_event.title, + "\n", + "%s?pk_campaign=twitter" % next_event.link +] + +text = ''.join(message) + image = program_info.get_image() +if not args.dest is None: + text = args.dest + " " + text + print("Vorschau Twitter:") print(text)