feat: Add follower tracking to interactions
- Add get_followers() method to X publisher - Track new followers as "follow" interaction type - Update daily reports to show followers separately - Store follower name, username, bio, and profile image Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -277,3 +277,38 @@ class XPublisher(BasePublisher):
|
||||
return True
|
||||
except tweepy.TweepyException:
|
||||
return False
|
||||
|
||||
async def get_followers(self, max_results: int = 100) -> List[Dict]:
|
||||
"""Obtener lista de followers recientes."""
|
||||
if not self.client:
|
||||
return []
|
||||
|
||||
try:
|
||||
# Obtener ID del usuario autenticado
|
||||
me = self.client.get_me()
|
||||
user_id = me.data.id
|
||||
|
||||
# Obtener followers
|
||||
followers = self.client.get_users_followers(
|
||||
id=user_id,
|
||||
max_results=max_results,
|
||||
user_fields=['username', 'name', 'created_at', 'profile_image_url', 'description']
|
||||
)
|
||||
|
||||
if not followers.data:
|
||||
return []
|
||||
|
||||
return [
|
||||
{
|
||||
"id": str(user.id),
|
||||
"username": user.username,
|
||||
"name": user.name,
|
||||
"description": user.description,
|
||||
"profile_image_url": user.profile_image_url,
|
||||
"created_at": user.created_at.isoformat() if user.created_at else None
|
||||
}
|
||||
for user in followers.data
|
||||
]
|
||||
|
||||
except tweepy.TweepyException:
|
||||
return []
|
||||
|
||||
Reference in New Issue
Block a user