Refactor. Eliminación de bugs

This commit is contained in:
Jesús Pavón Abián
2026-02-01 21:53:32 +01:00
parent 93d37ab3e8
commit 64d2af770c
3 changed files with 135 additions and 8 deletions

View File

@@ -253,12 +253,22 @@ def compose_user(user, db, settings, relative_times, show_screen_names=False, sa
return obj.get(key, default)
return getattr(obj, key, default)
handle = g(user, "handle", "unknown")
display_name = g(user, "displayName") or g(user, "display_name") or handle
followers = g(user, "followersCount", 0) or 0
following = g(user, "followsCount", 0) or 0
posts = g(user, "postsCount", 0) or 0
created_at = g(user, "createdAt", None)
def resolve_profile(obj):
if g(obj, "handle") or g(obj, "did"):
return obj
for key in ("subject", "actor", "profile", "user"):
nested = g(obj, key)
if nested and (g(nested, "handle") or g(nested, "did")):
return nested
return obj
profile = resolve_profile(user)
handle = g(profile, "handle", "unknown")
display_name = g(profile, "displayName") or g(profile, "display_name") or handle
followers = g(profile, "followersCount", 0) or 0
following = g(profile, "followsCount", 0) or 0
posts = g(profile, "postsCount", 0) or 0
created_at = g(profile, "createdAt", None)
ts = ""
if created_at:

View File

@@ -485,6 +485,17 @@ class Session(base.baseSession):
log.exception("Error fetching Bluesky profile for %s", actor)
return None
def get_profiles(self, actors: list[str]) -> dict[str, Any]:
api = self._ensure_client()
if not actors:
return {"items": []}
try:
res = api.app.bsky.actor.get_profiles({"actors": actors})
return {"items": getattr(res, "profiles", []) or []}
except Exception:
log.exception("Error fetching Bluesky profiles batch")
return {"items": []}
def get_post_likes(self, uri: str, limit: int = 50, cursor: str | None = None) -> dict[str, Any]:
api = self._ensure_client()
try: