From 82b1647f45945db2b6941dbae1f93fa4c4c46007 Mon Sep 17 00:00:00 2001 From: OndraRehounek <ondra.rehounek@seznam.cz> Date: Wed, 31 Aug 2022 12:56:18 +0200 Subject: [PATCH] main: exclude retweets --- twitter_utils/services.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/twitter_utils/services.py b/twitter_utils/services.py index adf44b29..95d98748 100644 --- a/twitter_utils/services.py +++ b/twitter_utils/services.py @@ -6,7 +6,7 @@ from django.utils import timezone from tweepy import Client from tweepy.errors import BadRequest -from main.models import MainHomePage +from main.models import MainHomePage, MainPersonPage from .models import Tweet @@ -48,6 +48,7 @@ class TweetDownloadService: """ tweets_response = self.client.get_users_tweets( user_id, + exclude=["retweets"], expansions=["author_id", "entities.mentions.username"], max_results=100, start_time=timezone.now() - timedelta(days=self.days_back), @@ -59,15 +60,25 @@ class TweetDownloadService: def get_user_list_data(self) -> list["User"]: twitter_usernames_block = MainHomePage.objects.first().twitter_usernames + person_username_list = ( + MainPersonPage.objects.filter(twitter_username__isnull=False) + .values_list("twitter_username", flat=True) + .distinct() + ) + homepage_username_list = [ + username_data["value"] for username_data in twitter_usernames_block.raw_data + ] + username_list = [*person_username_list, *homepage_username_list] + user_data_list = [] - for username_data in twitter_usernames_block.raw_data: + for username in username_list: try: - user_data_list.append(self.get_user_response(username_data["value"])) + user_data_list.append(self.get_user_response(username)) except BadRequest: logger.error( "Cannot download tweets for the username", - extra={"username": username_data["value"]}, + extra={"username": username}, ) return user_data_list -- GitLab