def save_tweet_data(self, k,v): # Get id of the user list_tweets = [] id = int(k) tweet_sent = v print('id vale', id) user_sent = id # tweet=last_tweet.split(',')[1:2] print("save tweet ", tweet_sent) tweet = self.twitter.get_user_timeline(self.user, 1) # tweet = twitter.api.get_user(int_id).id_str print(tweet_sent) print(user_sent) print(datetime.datetime.now()) list_tweets.append({'user_sent': user_sent, 'tweet_sent_message': tweet_sent, 'date_tweet_sent': datetime.datetime.now()}) for item in list_tweets: a = SentDate(**item) a.save()
def save_tweet_data(self, k, v): # Get id of the user list_tweets = [] id = int(k) tweet_sent = v print('id vale', id) user_sent = id # tweet=last_tweet.split(',')[1:2] print("save tweet ", tweet_sent) tweet = self.twitter.get_user_timeline(self.user, 1) # tweet = twitter.api.get_user(int_id).id_str print(tweet_sent) print(user_sent) print(datetime.datetime.now()) list_tweets.append({ 'user_sent': user_sent, 'tweet_sent_message': tweet_sent, 'date_tweet_sent': datetime.datetime.now() }) for item in list_tweets: a = SentDate(**item) a.save()
def retrieve_users(self, target_hashtag_idx, the_hashtags): """ #retrieve all users that have used the selected hashtags and that have not received tweets recently (last 24 hours) :return: the list of selected users """ now = datetime.datetime.now() now = datetime.datetime.now() pop_user = [] final_list = [] print(target_hashtag_idx) the_target_hashtag = the_hashtags[target_hashtag_idx - 1] # this query gets the user_ids of those users that tweeted the selected hashtag users = Hashtag.select(Hashtag.user_of_hashtag).where( Hashtag.hashtag_text == the_target_hashtag) users_list = [] for item in users: users_list.append(item.user_of_hashtag_id) print(users_list) selected_user = [] # this query selects the datetime of the users that where retrieved with the last query (users who tweeted certain hashtag) for item in users_list: selected_user = SentDate.select( SentDate.user_sent, SentDate.date_tweet_sent, SentDate.tweet_sent_message).where(SentDate.user_sent == item) # if the user has been sent a tweet in the last 24 hours skip it print("selected users") for item in selected_user: print(item.user_sent_id) for item in selected_user: # print("printing selected user") # print (item.date_tweet_sent) # print(item.tweet_sent_message) # print(item.user_sent_id) date_retrieved = datetime.datetime.strptime( item.date_tweet_sent, '%Y-%m-%d %H:%M:%S.%f') print('sent', date_retrieved) print('48 hours', now - datetime.timedelta(hours=48)) if (now - datetime.timedelta(hours=48)) < date_retrieved: print('Not have passed 48 hours, cannot send tweet') if item.user_sent_id not in pop_user: pop_user.append(item.user_sent_id) print("user to pop: ", pop_user) # only keeps the users that who didn't receive a tweet in the last 48 hours print('user_list', users_list) for elem in pop_user: users_list = [value for value in users_list if value != elem] print("final list", users_list) return users_list
def retrieve_users(self, target_hashtag_idx, the_hashtags): """ #retrieve all users that have used the selected hashtags and that have not received tweets recently (last 24 hours) :return: the list of selected users """ now = datetime.datetime.now() now = datetime.datetime.now() pop_user = [] final_list = [] print(target_hashtag_idx) the_target_hashtag = the_hashtags[target_hashtag_idx - 1] # this query gets the user_ids of those users that tweeted the selected hashtag users = Hashtag.select(Hashtag.user_of_hashtag).where(Hashtag.hashtag_text == the_target_hashtag) users_list = [] for item in users: users_list.append(item.user_of_hashtag_id) print(users_list) selected_user = [] # this query selects the datetime of the users that where retrieved with the last query (users who tweeted certain hashtag) for item in users_list: selected_user = SentDate.select(SentDate.user_sent, SentDate.date_tweet_sent, SentDate.tweet_sent_message).where(SentDate.user_sent == item) # if the user has been sent a tweet in the last 24 hours skip it print("selected users") for item in selected_user: print(item.user_sent_id) for item in selected_user: # print("printing selected user") # print (item.date_tweet_sent) # print(item.tweet_sent_message) # print(item.user_sent_id) date_retrieved = datetime.datetime.strptime(item.date_tweet_sent, '%Y-%m-%d %H:%M:%S.%f') print('sent', date_retrieved) print('48 hours', now - datetime.timedelta(hours=48)) if (now - datetime.timedelta(hours=48)) < date_retrieved: print('Not have passed 48 hours, cannot send tweet') if item.user_sent_id not in pop_user: pop_user.append(item.user_sent_id) print("user to pop: ", pop_user) # only keeps the users that who didn't receive a tweet in the last 48 hours print('user_list', users_list) for elem in pop_user: users_list = [value for value in users_list if value != elem] print("final list", users_list) return users_list
def insert_in_database(user, id_tweet, message, date): query_user = SentDate.create(user_sent=user, tweet_sent_message=message, date_tweet_sent=date) query_user.save()