This commit is contained in:
@@ -243,7 +243,7 @@ def get_author_followers_stat(author_id: int) -> int:
|
||||
return result[0] if result else 0
|
||||
|
||||
|
||||
def get_author_comments_stat(author_id):
|
||||
def get_author_comments_stat(author_id: int):
|
||||
q = (
|
||||
select(func.coalesce(func.count(Reaction.id), 0).label("comments_count"))
|
||||
.select_from(Author)
|
||||
@@ -289,10 +289,28 @@ def get_with_stat(q):
|
||||
stat["shouts"] = cols[1] # Статистика по публикациям
|
||||
stat["followers"] = cols[2] # Статистика по подписчикам
|
||||
if is_author:
|
||||
stat["authors"] = get_author_authors_stat(entity.id) # Статистика по подпискам на авторов
|
||||
stat["comments"] = get_author_comments_stat(entity.id) # Статистика по комментариям
|
||||
# Дополнительная проверка типа entity.id
|
||||
if not hasattr(entity, 'id'):
|
||||
logger.error(f"Entity does not have id attribute: {entity}")
|
||||
continue
|
||||
entity_id = entity.id
|
||||
if not isinstance(entity_id, int):
|
||||
logger.error(f"Entity id is not integer: {entity_id} (type: {type(entity_id)})")
|
||||
continue
|
||||
|
||||
stat["authors"] = get_author_authors_stat(entity_id) # Статистика по подпискам на авторов
|
||||
stat["comments"] = get_author_comments_stat(entity_id) # Статистика по комментариям
|
||||
else:
|
||||
stat["authors"] = get_topic_authors_stat(entity.id) # Статистика по авторам темы
|
||||
# Дополнительная проверка типа entity.id для тем
|
||||
if not hasattr(entity, 'id'):
|
||||
logger.error(f"Entity does not have id attribute: {entity}")
|
||||
continue
|
||||
entity_id = entity.id
|
||||
if not isinstance(entity_id, int):
|
||||
logger.error(f"Entity id is not integer: {entity_id} (type: {type(entity_id)})")
|
||||
continue
|
||||
|
||||
stat["authors"] = get_topic_authors_stat(entity_id) # Статистика по авторам темы
|
||||
entity.stat = stat
|
||||
records.append(entity)
|
||||
except Exception as exc:
|
||||
|
Reference in New Issue
Block a user