def main(): '''Script is used to post an image from the renvotion of the bot's fictional restaurant.''' try: sleep_time = randrange(120) logger.info( 'Starting post renovation progress script by sleeping %s minutes' % sleep_time ) sleep(sleep_time*60) logger.info('Waking up post_renovation script.') tweets = twitter_api.statuses.user_timeline(screen_name=USER, count=200 ) filtered_tweets = [] for tweet in tweets: text = tweet.get('text') if ('#renovation' in text or '#comingsoon' in text or '#refurbishment' in text): if tweet.get('entities').get('media'): for media in tweet.get('entities').get('media'): filtered_tweets.append(tweet) # TODO: Check with previous tweets... db.init_db() filtered_statuses = db.session.query(Status).all() # source ids of previously posted statuses filtered_statuses = [status.source_id for status in filtered_statuses if status.source_id] # ids of found tweets filtered_tweet_ids = [tweet.get('id_str') for tweet in filtered_tweets] # Removing previously posted source tweets possible_statuses = [tweet_id for tweet_id in filtered_tweet_ids if tweet_id not in filtered_statuses] # Setting the new tweet id, to the newest possible one possible_statuses = sorted(possible_statuses) if possible_statuses: new_source_id = possible_statuses[0] # Getting the source tweet new_source = [tweet for tweet in filtered_tweets if tweet.get('id_str') == new_source_id][0] # TODO: Find next image to post medias = new_source.get('entities').get('media') media_url = None for media in medias: media_url = media.get('media_url') break image = urlopen(media_url) params = {"media[]": image.read(), "status": generate_text(), 'source_id': new_source_id } # Post tweet updateStatus(params) except Exception, err: logger.error('%s: %s' % (Exception, err))
def main(): logger.info("Started Intervention script") try: for date, tweet, media_url in INTERVENTION_SCHEDULE: if date == datetime.datetime.now().date(): sleep_time = randrange(15) logger.info("Sleeping %s minutes before tweeting" % sleep_time) sleep(sleep_time * 60) if date == datetime.datetime.now().date(): params = {"status": tweet, "location": "home"} if media_url: image = urlopen(media_url) params["media[]"] = image.read() updateStatus(params) except Exception, err: logger.error("%s: %s" % (Exception, err))