#!/usr/bin/python3 from tweepy import StreamListener from lib.setup import import_config_file from lib.archival import archive_media_status from lib.echo_nextcloud import nextcloud_upload_media from lib.echo_mastodon import mastodon_upload_media import logging class TweetStreamer(StreamListener): """ TweetStreamer class definition Arguments: StreamListener {obj} -- Tweepy API StreamListener object """ def on_status(self, status): """ Method definition for what happens when a new status is made Arguments: status {obj} -- Tweepy "Status" object Returns: super -- on_status() super method """ print(status._json) archive_filenames = archive_media_status(status) if(archive_filenames): config = import_config_file() for filename in archive_filenames: print(filename) try: nextcloud_upload_media( config['nextcloud'], config['nextcloud_upload_path'], filename, status.timestamp_ms) except Exception as e: print('Was unsuccessful in uploading the file.') print(e) try: mastodon_upload_media( config['mastodon'], archive_filenames, status.text) except Exception as e: print('Was unsuccessful echoing this post to Mastodon.') print(e) return super().on_status(status)