Skip to content
Snippets Groups Projects
Commit 3e4c1b10 authored by Philip Molares's avatar Philip Molares
Browse files

moved text generation to coressponding bots

updated args flags for twitter_bot.py and programm_info.py
README.md updated
parent 85c48ea7
No related branches found
No related tags found
No related merge requests found
...@@ -7,24 +7,34 @@ To install all requirements simply type `pip install -r requirements.txt`. It is ...@@ -7,24 +7,34 @@ To install all requirements simply type `pip install -r requirements.txt`. It is
## check output ## check output
``` ```
usage: program_info.py [-h] (--twitter | --telegram | --json) [--preview] usage: program_info.py [-h] [--preview]
UFC Programminfo Bot UFC Programminfo Bot
optional arguments: optional arguments:
-h, --help show this help message and exit -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. --preview Überprüfe die nächsten 7 Tage statt nur den nächsten Tag.
``` ```
## twitter ## 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 ## telegram
``` ```
usage: telegram_bot.py [-h] [--doit] [--dest DEST] usage: telegram_bot.py [-h] [--doit] [--dest DEST] [--preview]
UFC Telegram Bot UFC Telegram Bot
...@@ -33,5 +43,7 @@ optional arguments: ...@@ -33,5 +43,7 @@ optional arguments:
--doit Sendet die Nachricht an den UFC Channel, anstatt nur eine --doit Sendet die Nachricht an den UFC Channel, anstatt nur eine
Ausgabe zu machen Ausgabe zu machen
--dest DEST Alternativer Telegramchat --dest DEST Alternativer Telegramchat
--preview Überprüfe die nächsten 7 Tage statt nur den nächsten Tag.
``` ```
No newline at end of file
...@@ -116,50 +116,7 @@ class ProgramInfo: ...@@ -116,50 +116,7 @@ class ProgramInfo:
pprint(i) pprint(i)
else: else:
self.next_event = NextEvent(i, now) self.next_event = NextEvent(i, now)
return self.next_event
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)
def get_image(self): def get_image(self):
# return image data # return image data
...@@ -171,22 +128,6 @@ def main(): ...@@ -171,22 +128,6 @@ def main():
aparser: ArgumentParser = ArgumentParser( aparser: ArgumentParser = ArgumentParser(
description="UFC Programminfo Bot" 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( aparser.add_argument(
"--preview", "--preview",
dest='day_diff', dest='day_diff',
...@@ -199,15 +140,8 @@ def main(): ...@@ -199,15 +140,8 @@ def main():
p_info = ProgramInfo() p_info = ProgramInfo()
if args.json:
p_info.get_next_event(args.day_diff, True) 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))
if __name__ == "__main__": if __name__ == "__main__":
main() main()
...@@ -18,6 +18,14 @@ aparser.add_argument( ...@@ -18,6 +18,14 @@ aparser.add_argument(
"--dest", "--dest",
help="Alternativer Telegramchat" 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() args = aparser.parse_args()
# Überschreibe den Telegramkanal, wenn einer angegeben wurde. (Praktisch für Debugging) # Überschreibe den Telegramkanal, wenn einer angegeben wurde. (Praktisch für Debugging)
if not args.dest is None: if not args.dest is None:
...@@ -25,7 +33,30 @@ if not args.dest is None: ...@@ -25,7 +33,30 @@ if not args.dest is None:
program_info = ProgramInfo() 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("Vorschau Ankündigung:")
print(text) print(text)
......
...@@ -4,10 +4,10 @@ import tweepy ...@@ -4,10 +4,10 @@ import tweepy
import argparse import argparse
from program_info import ProgramInfo from program_info import ProgramInfo
CONSUMER_KEY = '***' CONSUMER_KEY = 'WEF5WDeWnql2I292voEG9mww3'
CONSUMER_SECRET = '***' CONSUMER_SECRET = 'WrUCif5m7rxWDSDTb2YK7Djtb2MmUqFVZZXXcyH87amLbCgdpM'
ACCESS_TOKEN = '***' ACCESS_TOKEN = '50611492-ALHt50D7VKc8jZA9weQ5zdIF5RWwLhqkTPbgvWG5O'
ACCESS_TOKEN_SECRET = '***' ACCESS_TOKEN_SECRET = 'z9Pwf5RjuJjJ8bzlMPCCKkYFukdi01j2oAcWnKdXZcAfZ'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
...@@ -22,14 +22,43 @@ aparser.add_argument( ...@@ -22,14 +22,43 @@ aparser.add_argument(
action="store_true", action="store_true",
help="Sendet die Nachricht über den UFC Twitter Account, anstatt sie nur auszugeben" 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() args = aparser.parse_args()
program_info = ProgramInfo() 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() image = program_info.get_image()
if not args.dest is None:
text = args.dest + " " + text
print("Vorschau Twitter:") print("Vorschau Twitter:")
print(text) print(text)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment