def _get_tweets(twitter_client, current_user, since_id, max_id): key = "tweets_{}_{}_{}".format(current_user.token, since_id, max_id) value = memcache.get(key) if value: return value tw = Twitter(twitter_client, current_user.token, current_user.secret) data = tw.get_timeline(since_id, max_id) if data.status_code != 200: logger.error(data.status_code) return {} value = data.content memcache.set(key, value, time=30) return value
def _get_public(twitter_client, since_id, max_id): mine = LoginUser.get_mine() key = "public_{}_{}_{}".format(mine.token, since_id, max_id) value = memcache.get(key) if value: return value tw = Twitter(twitter_client, mine.token, mine.secret) data = tw.get_search("友利奈緒 OR シャーロット OR Charlotte -http", since_id, max_id) if data.status_code != 200: logger.error(data.status_code) return {} value = data.content memcache.set(key, value, time=30) return value
def run(self): if not Twitter.table_exists(): create_twitter_table() if not self.complete(): df = pd.read_csv(self.input().path) df.set_index('name', inplace=True) for name, row in df.iterrows(): followers = row['followers'] following = row['following'] likes = row['likes'] tweets = row['tweets'] data = {'name': name, 'followers': followers, 'following': following, 'likes': likes, 'tweets': tweets, 'date': self.hour} Twitter.add_member_data(**data)
def complete(self): # TODO: Add task to create a DB/Table or # IDEA: Add an except for no table - create table then check databsse for complete if self.debug: clean_twitter_table() # DEBUG: REMOVE print('DELETING TABLE FOR DEBUGGING!!!!!!!!!!!!!!!!!') try: local_ = pd.read_csv(self.input().path) dbase_ = Twitter.data_by_date(self.hour) print('#' * 25) print(len(local_)) # TODO: Logging print(len(dbase_)) # TODO: Logging # TODO: If else raise data not written to db print(len(local_.index) == len(dbase_.index)) # TODO: If else raise data not written to db print('#' * 25) return len(local_.index) == len(dbase_.index) except (FileNotFoundError, KeyError): print() return False