add files

This commit is contained in:
root committed 2025-08-16 15:08:00 +00:00
1 parent 4b06cd8a77
commit 8f2efee524
8 files changed
+291 -92

No files matched your search

+58 -20
View File
@@ -5,6 +5,8 @@ from sqlalchemy import and_
from app.core.logger import make_log
from app.core.models.messages import KnownTelegramMessage
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy import select
from app.core._config import TELEGRAM_API_KEY, CLIENT_TELEGRAM_API_KEY
from app.core.models._telegram.templates.player import PlayerTemplates
@@ -56,25 +58,36 @@ class Wrapped_CBotChat(T, PlayerTemplates):
if self.db_session:
if message_type == 'common':
ci = 0
for oc_msg in self.db_session.query(KnownTelegramMessage).filter(
and_(
KnownTelegramMessage.type == 'common',
KnownTelegramMessage.bot_id == self.bot_id,
KnownTelegramMessage.chat_id == self._chat_id,
KnownTelegramMessage.deleted == False
)
).all():
if isinstance(self.db_session, AsyncSession):
res = await self.db_session.execute(select(KnownTelegramMessage).where(
and_(
KnownTelegramMessage.type == 'common',
KnownTelegramMessage.bot_id == self.bot_id,
KnownTelegramMessage.chat_id == self._chat_id,
KnownTelegramMessage.deleted == False
)
))
old = res.scalars().all()
else:
old = self.db_session.query(KnownTelegramMessage).filter(
and_(
KnownTelegramMessage.type == 'common',
KnownTelegramMessage.bot_id == self.bot_id,
KnownTelegramMessage.chat_id == self._chat_id,
KnownTelegramMessage.deleted == False
)
).all()
for oc_msg in old:
make_log(self, f"Delete old message {oc_msg.message_id} {oc_msg.type} {oc_msg.bot_id} {oc_msg.chat_id}")
await self.delete_message(oc_msg.message_id)
ci += 1
make_log(self, f"Deleted {ci} old messages", level='debug')
if isinstance(result, types.Message):
message_id = getattr(result, 'message_id', None)
assert message_id, "No message_id"
self.db_session.add(
KnownTelegramMessage(
if isinstance(self.db_session, AsyncSession):
self.db_session.add(KnownTelegramMessage(
type=message_type,
bot_id=self.bot_id,
chat_id=self._chat_id,
@@ -83,9 +96,20 @@ class Wrapped_CBotChat(T, PlayerTemplates):
created=datetime.now(),
meta=message_meta or {},
content_id=content_id
)
)
self.db_session.commit()
))
await self.db_session.commit()
else:
self.db_session.add(KnownTelegramMessage(
type=message_type,
bot_id=self.bot_id,
chat_id=self._chat_id,
message_id=message_id,
from_user=False,
created=datetime.now(),
meta=message_meta or {},
content_id=content_id
))
self.db_session.commit()
else:
make_log(self, f"Unknown result type: {type(result)}", level='warning')
@@ -137,14 +161,28 @@ class Wrapped_CBotChat(T, PlayerTemplates):
message_id
)):
if self.db_session:
known_message = self.db_session.query(KnownTelegramMessage).filter(
KnownTelegramMessage.bot_id == self.bot_id,
KnownTelegramMessage.chat_id == self._chat_id,
KnownTelegramMessage.message_id == message_id
).first()
known_message = None
if isinstance(self.db_session, AsyncSession):
res = await self.db_session.execute(select(KnownTelegramMessage).where(
and_(
KnownTelegramMessage.bot_id == self.bot_id,
KnownTelegramMessage.chat_id == self._chat_id,
KnownTelegramMessage.message_id == message_id
)
))
known_message = res.scalars().first()
else:
known_message = self.db_session.query(KnownTelegramMessage).filter(
KnownTelegramMessage.bot_id == self.bot_id,
KnownTelegramMessage.chat_id == self._chat_id,
KnownTelegramMessage.message_id == message_id
).first()
if known_message:
known_message.deleted = True
self.db_session.commit()
if isinstance(self.db_session, AsyncSession):
await self.db_session.commit()
else:
self.db_session.commit()
except Exception as e:
make_log(self, f"Error deleting message {self._chat_id}/{message_id}. Error: {e}", level='warning')
return None