Модульный Telegram-бот с возможностью редактирования прав доступа, как пользователям, так и группам пользователей
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

56 lines
1.9 KiB

#-*-coding utf-8-*-
# Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru>
import sqlite3
from bot_sys import log
# Работа ссообщениями
default_language = 'ru'
g_messages = None
def GetMessages():
global g_messages
if not g_messages:
g_messages = {}
return g_messages
g_last_update = None
def UpdateSignal(a_DateTime):
global g_last_update
g_last_update = a_DateTime
# ---------------------------------------------------------
# Функции работы с собщениями
# ---------------------------------------------------------
class Message:
def __init__(self, a_MessageName : str, a_MessageDesc : str, a_Language : str, a_PhotoID : str, a_DateTime):
self.m_MessageName = a_MessageName
self.m_MessageDesc = a_MessageDesc
self.m_Language = a_Language
self.m_PhotoID = a_PhotoID
self.m_DateTime = a_DateTime
def __str__(self):
global g_last_update
last_update = g_last_update
if self.m_DateTime < last_update:
msg = GetMessages()
if not msg.get(self.m_Language, None):
msg[self.m_Language] = {}
new_msg = msg[self.m_Language].get(self.m_MessageName, self)
self.m_MessageName = new_msg.m_MessageName
self.m_MessageDesc = new_msg.m_MessageDesc
self.m_PhotoID = new_msg.m_PhotoID
self.m_DateTime = last_update
return f'{self.m_MessageDesc}'
def MSG(a_MessageName, a_MessageDesc, a_UpdateMSG, a_DateTime):
cur_msg = Message(a_MessageName, a_MessageDesc, default_language, 0, a_DateTime)
msg = GetMessages()
if not msg.get(default_language, None):
msg[default_language] = {}
if not msg[default_language].get(a_MessageName, None):
msg[default_language][a_MessageName] = cur_msg
a_UpdateMSG(cur_msg)