Обновление управления статусами сообщений и схемы базы данных
- Добавлены методы в `AsyncBotDB` и `PostRepository` для обновления статусов сообщений по идентификатору сообщения и для групп медиафайлов. - Добавлено поле `status` в модель `TelegramPost` и обновлена схема базы данных, чтобы включить это поле со значением по умолчанию 'suggest'. - Обновлен `PostPublishService` для установки статусов сообщений на 'approved' или 'declined' в процессе публикации.
This commit is contained in:
@@ -17,6 +17,7 @@ class PostRepository(DatabaseConnection):
|
||||
helper_text_message_id INTEGER,
|
||||
author_id INTEGER,
|
||||
created_at INTEGER NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'suggest',
|
||||
FOREIGN KEY (author_id) REFERENCES our_users (user_id) ON DELETE CASCADE
|
||||
)
|
||||
'''
|
||||
@@ -51,13 +52,14 @@ class PostRepository(DatabaseConnection):
|
||||
"""Добавление поста."""
|
||||
if not post.created_at:
|
||||
post.created_at = int(datetime.now().timestamp())
|
||||
|
||||
status = post.status if post.status else "suggest"
|
||||
|
||||
query = """
|
||||
INSERT INTO post_from_telegram_suggest (message_id, text, author_id, created_at)
|
||||
VALUES (?, ?, ?, ?)
|
||||
INSERT INTO post_from_telegram_suggest (message_id, text, author_id, created_at, status)
|
||||
VALUES (?, ?, ?, ?, ?)
|
||||
"""
|
||||
params = (post.message_id, post.text, post.author_id, post.created_at)
|
||||
|
||||
params = (post.message_id, post.text, post.author_id, post.created_at, status)
|
||||
|
||||
await self._execute_query(query, params)
|
||||
self.logger.info(f"Пост добавлен: message_id={post.message_id}")
|
||||
|
||||
@@ -65,7 +67,27 @@ class PostRepository(DatabaseConnection):
|
||||
"""Обновление helper сообщения."""
|
||||
query = "UPDATE post_from_telegram_suggest SET helper_text_message_id = ? WHERE 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:
|
||||
"""Обновление статуса поста по message_id (одиночные посты)."""
|
||||
query = "UPDATE post_from_telegram_suggest SET status = ? WHERE message_id = ?"
|
||||
await self._execute_query(query, (status, message_id))
|
||||
self.logger.info(f"Статус поста message_id={message_id} обновлён на {status}")
|
||||
|
||||
async def update_status_for_media_group_by_helper_id(
|
||||
self, helper_message_id: int, status: str
|
||||
) -> None:
|
||||
"""Обновление статуса постов медиагруппы по helper_text_message_id."""
|
||||
query = """
|
||||
UPDATE post_from_telegram_suggest
|
||||
SET status = ?
|
||||
WHERE message_id = ? OR helper_text_message_id = ?
|
||||
"""
|
||||
await self._execute_query(query, (status, helper_message_id, helper_message_id))
|
||||
self.logger.info(
|
||||
f"Статус медиагруппы helper_message_id={helper_message_id} обновлён на {status}"
|
||||
)
|
||||
|
||||
async def add_post_content(self, post_id: int, message_id: int, content_name: str, content_type: str) -> bool:
|
||||
"""Добавление контента поста."""
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user