some fixes
This commit is contained in:
@@ -143,10 +143,18 @@ class AsyncBotDB:
|
|||||||
"""Получает контент поста по helper_text_message_id."""
|
"""Получает контент поста по helper_text_message_id."""
|
||||||
return await self.factory.posts.get_post_content_by_helper_id(last_post_id)
|
return await self.factory.posts.get_post_content_by_helper_id(last_post_id)
|
||||||
|
|
||||||
|
async def get_post_content_by_helper_id(self, helper_message_id: int) -> List[Tuple[str, str]]:
|
||||||
|
"""Алиас для get_post_content_from_telegram_by_last_id (используется callback-сервисом)."""
|
||||||
|
return await self.get_post_content_from_telegram_by_last_id(helper_message_id)
|
||||||
|
|
||||||
async def get_post_text_from_telegram_by_last_id(self, last_post_id: int) -> Optional[str]:
|
async def get_post_text_from_telegram_by_last_id(self, last_post_id: int) -> Optional[str]:
|
||||||
"""Получает текст поста по helper_text_message_id."""
|
"""Получает текст поста по helper_text_message_id."""
|
||||||
return await self.factory.posts.get_post_text_by_helper_id(last_post_id)
|
return await self.factory.posts.get_post_text_by_helper_id(last_post_id)
|
||||||
|
|
||||||
|
async def get_post_text_by_helper_id(self, helper_message_id: int) -> Optional[str]:
|
||||||
|
"""Алиас для get_post_text_from_telegram_by_last_id (используется callback-сервисом)."""
|
||||||
|
return await self.get_post_text_from_telegram_by_last_id(helper_message_id)
|
||||||
|
|
||||||
async def get_post_ids_from_telegram_by_last_id(self, last_post_id: int) -> List[int]:
|
async def get_post_ids_from_telegram_by_last_id(self, last_post_id: int) -> List[int]:
|
||||||
"""Получает ID сообщений по helper_text_message_id."""
|
"""Получает ID сообщений по helper_text_message_id."""
|
||||||
return await self.factory.posts.get_post_ids_by_helper_id(last_post_id)
|
return await self.factory.posts.get_post_ids_by_helper_id(last_post_id)
|
||||||
@@ -159,15 +167,15 @@ class AsyncBotDB:
|
|||||||
"""Получает ID автора по helper_text_message_id."""
|
"""Получает ID автора по helper_text_message_id."""
|
||||||
return await self.factory.posts.get_author_id_by_helper_message_id(helper_text_message_id)
|
return await self.factory.posts.get_author_id_by_helper_message_id(helper_text_message_id)
|
||||||
|
|
||||||
async def update_status_by_message_id(self, message_id: int, status: str) -> None:
|
async def update_status_by_message_id(self, message_id: int, status: str) -> int:
|
||||||
"""Обновление статуса поста по message_id (одиночные посты)."""
|
"""Обновление статуса поста по message_id (одиночные посты). Возвращает число обновлённых строк."""
|
||||||
await self.factory.posts.update_status_by_message_id(message_id, status)
|
return await self.factory.posts.update_status_by_message_id(message_id, status)
|
||||||
|
|
||||||
async def update_status_for_media_group_by_helper_id(
|
async def update_status_for_media_group_by_helper_id(
|
||||||
self, helper_message_id: int, status: str
|
self, helper_message_id: int, status: str
|
||||||
) -> None:
|
) -> int:
|
||||||
"""Обновление статуса постов медиагруппы по helper_message_id."""
|
"""Обновление статуса постов медиагруппы по helper_message_id. Возвращает число обновлённых строк."""
|
||||||
await self.factory.posts.update_status_for_media_group_by_helper_id(
|
return await self.factory.posts.update_status_for_media_group_by_helper_id(
|
||||||
helper_message_id, status
|
helper_message_id, status
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -68,25 +68,74 @@ class PostRepository(DatabaseConnection):
|
|||||||
query = "UPDATE post_from_telegram_suggest SET helper_text_message_id = ? WHERE message_id = ?"
|
query = "UPDATE post_from_telegram_suggest SET helper_text_message_id = ? WHERE message_id = ?"
|
||||||
await self._execute_query(query, (helper_message_id, message_id))
|
await self._execute_query(query, (helper_message_id, message_id))
|
||||||
|
|
||||||
async def update_status_by_message_id(self, message_id: int, status: str) -> None:
|
async def update_status_by_message_id(self, message_id: int, status: str) -> int:
|
||||||
"""Обновление статуса поста по message_id (одиночные посты)."""
|
"""Обновление статуса поста по message_id (одиночные посты). Возвращает число обновлённых строк."""
|
||||||
query = "UPDATE post_from_telegram_suggest SET status = ? WHERE message_id = ?"
|
conn = None
|
||||||
await self._execute_query(query, (status, message_id))
|
try:
|
||||||
|
conn = await self._get_connection()
|
||||||
|
await conn.execute(
|
||||||
|
"UPDATE post_from_telegram_suggest SET status = ? WHERE message_id = ?",
|
||||||
|
(status, message_id),
|
||||||
|
)
|
||||||
|
cur = await conn.execute("SELECT changes()")
|
||||||
|
row = await cur.fetchone()
|
||||||
|
n = row[0] if row else 0
|
||||||
|
await conn.commit()
|
||||||
|
if n == 0:
|
||||||
|
self.logger.warning(
|
||||||
|
f"update_status_by_message_id: 0 строк обновлено для message_id={message_id}, status={status}"
|
||||||
|
)
|
||||||
|
else:
|
||||||
self.logger.info(f"Статус поста message_id={message_id} обновлён на {status}")
|
self.logger.info(f"Статус поста message_id={message_id} обновлён на {status}")
|
||||||
|
return n
|
||||||
|
except Exception as e:
|
||||||
|
if conn:
|
||||||
|
await conn.rollback()
|
||||||
|
self.logger.error(f"Ошибка при обновлении статуса message_id={message_id}: {e}")
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
if conn:
|
||||||
|
await conn.close()
|
||||||
|
|
||||||
async def update_status_for_media_group_by_helper_id(
|
async def update_status_for_media_group_by_helper_id(
|
||||||
self, helper_message_id: int, status: str
|
self, helper_message_id: int, status: str
|
||||||
) -> None:
|
) -> int:
|
||||||
"""Обновление статуса постов медиагруппы по helper_text_message_id."""
|
"""Обновление статуса постов медиагруппы по helper_text_message_id. Возвращает число обновлённых строк."""
|
||||||
query = """
|
conn = None
|
||||||
|
try:
|
||||||
|
conn = await self._get_connection()
|
||||||
|
await conn.execute(
|
||||||
|
"""
|
||||||
UPDATE post_from_telegram_suggest
|
UPDATE post_from_telegram_suggest
|
||||||
SET status = ?
|
SET status = ?
|
||||||
WHERE message_id = ? OR helper_text_message_id = ?
|
WHERE message_id = ? OR helper_text_message_id = ?
|
||||||
"""
|
""",
|
||||||
await self._execute_query(query, (status, helper_message_id, helper_message_id))
|
(status, helper_message_id, helper_message_id),
|
||||||
|
)
|
||||||
|
cur = await conn.execute("SELECT changes()")
|
||||||
|
row = await cur.fetchone()
|
||||||
|
n = row[0] if row else 0
|
||||||
|
await conn.commit()
|
||||||
|
if n == 0:
|
||||||
|
self.logger.warning(
|
||||||
|
f"update_status_for_media_group_by_helper_id: 0 строк обновлено "
|
||||||
|
f"для helper_message_id={helper_message_id}, status={status}"
|
||||||
|
)
|
||||||
|
else:
|
||||||
self.logger.info(
|
self.logger.info(
|
||||||
f"Статус медиагруппы helper_message_id={helper_message_id} обновлён на {status}"
|
f"Статус медиагруппы helper_message_id={helper_message_id} обновлён на {status}"
|
||||||
)
|
)
|
||||||
|
return n
|
||||||
|
except Exception as e:
|
||||||
|
if conn:
|
||||||
|
await conn.rollback()
|
||||||
|
self.logger.error(
|
||||||
|
f"Ошибка при обновлении статуса медиагруппы helper_message_id={helper_message_id}: {e}"
|
||||||
|
)
|
||||||
|
raise
|
||||||
|
finally:
|
||||||
|
if conn:
|
||||||
|
await conn.close()
|
||||||
|
|
||||||
async def add_post_content(self, post_id: int, message_id: int, content_name: str, content_type: str) -> bool:
|
async def add_post_content(self, post_id: int, message_id: int, content_name: str, content_type: str) -> bool:
|
||||||
"""Добавление контента поста."""
|
"""Добавление контента поста."""
|
||||||
|
|||||||
Reference in New Issue
Block a user