Skip to content
Snippets Groups Projects
Select Git revision
  • 8b630ac5ea739858b41154033fb2651c771c1b4c
  • master default protected
  • renovate/configure
3 results

program_info.py

Blame
  • Forked from Uni-Film-Club / Programm-Info-Bot
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    twitter_bot.py 2.40 KiB
    #!/bin/env python3
    import shutil
    
    import tweepy
    import argparse
    from program_info import ProgramInfo
    
    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)
    api = tweepy.API(auth)
    
    # Parse Arguments
    aparser = argparse.ArgumentParser(
        description="UFC Twitter Bot"
    )
    aparser.add_argument(
        "--doit",
        action="store_true",
        help="Sendet die Nachricht über den UFC Twitter Account, anstatt sie nur auszugeben"
    )
    aparser.add_argument(
        "--nofailmessage",
        action="store_true",
        help="Unterdrückt die Nachricht, dass kein Event gefunden wurde"
    )
    aparser.add_argument(
        "--dest",
        help="Schreibe DEST per mention an"
    )
    aparser.add_argument(
        "--daydiff",
        dest='day_diff',
        type=int,
        default=1,
        help="Prüfe ob in DAY_DIFF Tagen ein Event stattfindet anstatt morgen."
    )
    args = aparser.parse_args()
    
    program_info = ProgramInfo()
    
    next_event = program_info.get_next_event(args.day_diff)
    
    
    if next_event is None:
        if not args.nofailmessage:
            print("Twitter:")
            if args.day_diff == 0:
                print("Kein Event heute.")
            elif args.day_diff == 1:
                print("Kein Event morgen.")
            else:
                print("Kein Event in " + str(args.day_diff) + " Tagen.")
        exit(1)
    
    
    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",
        "" if next_event.description == "" else "\n",
        next_event.description,
        "" if next_event.description == "" else "\n\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)
    
    # Nur abschicken, wenn es wirklich verlangt wird. Ansonsten nur in die Konsole schreiben
    if args.doit is True:
        print("\nSchick Nachricht an Twitter")
        api.update_status_with_media("image.png", text, file=image)
    else:
        print("\nProgramm läuft im Vorschaumodus. Es wird nichts an Twitter abgesendet.")