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:
2026-01-29 23:07:28 +00:00
parent f5c6554fc3
commit b6823651e0
3 changed files with 113 additions and 9 deletions

View File

@@ -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 []