From 3e4c1b1089e51f437ee189f255869b152762920d Mon Sep 17 00:00:00 2001 From: Philip Molares <git@molar.es> Date: Mon, 11 Jun 2018 16:36:36 +0200 Subject: [PATCH] moved text generation to coressponding bots updated args flags for twitter_bot.py and programm_info.py README.md updated --- README.md | 24 ++++++++++++----- program_info.py | 70 ++----------------------------------------------- telegram_bot.py | 33 ++++++++++++++++++++++- twitter_bot.py | 41 ++++++++++++++++++++++++----- 4 files changed, 87 insertions(+), 81 deletions(-) diff --git a/README.md b/README.md index e233c496..7d01f4bf 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 59929288..90890951 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 75748313..f05f2aca 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 f23eeb68..830f2e1e 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) -- GitLab