Add storage, syncing db, rename module

This commit is contained in:
BarsTiger
2023-10-08 21:21:15 +03:00
parent 42d7f7d235
commit 0135294fcb
25 changed files with 281 additions and 2 deletions

View File

@@ -0,0 +1,48 @@
from sqlitedict import SqliteDict
from bot.common import bot
from bot.utils.config import config
from aiogram.types import FSInputFile, InputMediaDocument
from aiogram import exceptions
from pydantic import ValidationError
import time
from .meta import DBMeta
import os.path
DB = os.path.join(config.local.db_path, 'db')
DB_CHAT = config.telegram.db_chat
class DBDict(SqliteDict):
def __init__(self, tablename: str):
super().__init__(DB, tablename=tablename, autocommit=True)
async def write(self):
try:
DBMeta().update_time = time.time_ns()
await bot.edit_message_media(
media=InputMediaDocument(media=FSInputFile(DB)),
chat_id=DB_CHAT,
message_id=DBMeta().message_id
)
await bot.edit_message_caption(
caption=str(DBMeta()),
chat_id=DB_CHAT,
message_id=DBMeta().message_id
)
except (ValidationError, exceptions.TelegramBadRequest):
DBMeta().update_time = time.time_ns()
self['db_message_id'] = (
await bot.send_document(
chat_id=DB_CHAT, document=FSInputFile(DB),
disable_notification=True
)
).message_id
DBMeta().message_id = self['db_message_id']
await bot.edit_message_caption(
caption=str(DBMeta()),
chat_id=DB_CHAT, message_id=self.get('db_message_id')
)