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
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) |
|
|
|
|