Browse Source

Модуль старт работает

pull/2/head
Alexei 2 years ago
parent
commit
20600710be
  1. 29
      bot_modules/access_utils.py
  2. 8
      bot_modules/mod_agregator.py
  3. 10
      bot_modules/mod_interface.py
  4. 36
      bot_modules/mod_simple_message.py
  5. 23
      bot_modules/start.py
  6. 65
      bot_sys/aiogram_bot.py
  7. 18
      bot_sys/bot_messages.py
  8. 20
      bot_sys/interfaces.py
  9. 23
      bot_sys/user_access.py
  10. 2
      main.py
  11. 6
      template/simple_message.py

29
bot_modules/access_utils.py

@ -3,6 +3,8 @@
# Права пользователей. Утилиты # Права пользователей. Утилиты
from bot_sys import user_access, bot_bd
table_name = 'module_access' table_name = 'module_access'
mod_name_field = 'modName' mod_name_field = 'modName'
moduleaccess_field = 'modAccess' moduleaccess_field = 'modAccess'
@ -10,3 +12,30 @@ mod_default_access_field = 'itemDefaultAccess'
def GetAccessForModuleRequest(module_name, access, default_access): def GetAccessForModuleRequest(module_name, access, default_access):
return f"INSERT OR IGNORE INTO {table_name} ({mod_name_field}, {moduleaccess_field}, {mod_default_access_field}) VALUES ('{module_name}', '{access}', '{default_access}');" return f"INSERT OR IGNORE INTO {table_name} ({mod_name_field}, {moduleaccess_field}, {mod_default_access_field}) VALUES ('{module_name}', '{access}', '{default_access}');"
def GetUserGroupData(a_Bot, a_UserID):
def GetGroupNamesForUser(a_UserID):
return a_Bot.SQLRequest('SELECT groupName FROM user_groups WHERE group_id=(SELECT group_id FROM user_in_groups WHERE user_id = ?)', param = [a_UserID])
r = GetGroupNamesForUser(a_UserID)
groups = []
for i in r:
if len(i) > 0:
groups += [i[0]]
return user_access.UserGroups(a_UserID, groups)
def GetModulesAccessList(a_Bot):
return bot_bd.RequestSelectTemplate(a_Bot.m_BDFileName, table_name)()
def GetAccessForModule(a_Bot, a_ModuleName):
alist = GetModulesAccessList(a_Bot)
for i in alist:
if i[0] == a_ModuleName:
return i[1]
return ''
def GetItemDefaultAccessForModule(a_Bot, a_ModuleName):
alist = GetModulesAccessList(a_Bot)
for i in alist:
if i[0] == a_ModuleName:
return i[2]
return ''

8
bot_modules/mod_agregator.py

@ -5,11 +5,11 @@ class ModuleAgregator:
def __init__(self): def __init__(self):
self.m_Modules = {} self.m_Modules = {}
def GetModule(a_ModName): def GetModule(self, a_ModName):
return self.m_Modules[a_ModName] return self.m_Modules[a_ModName]
def AddModule(a_Module): def AddModule(self, a_Module):
self.m_Modules[a_Module.GetName()] = a_Module self.m_Modules[a_Module.GetName()] = a_Module
def GetModList(): def GetModList(self):
self.m_Modules.items() return self.m_Modules.values()

10
bot_modules/mod_interface.py

@ -5,21 +5,21 @@ from abc import ABC, abstractmethod
class IModule(ABC): class IModule(ABC):
@abstractmethod @abstractmethod
def GetName(): def GetName(self):
pass pass
@abstractmethod @abstractmethod
def GetInitBDCommands(): def GetInitBDCommands(self):
pass pass
@abstractmethod @abstractmethod
def GetAccess(): def GetAccess(self):
pass pass
@abstractmethod @abstractmethod
def GetModuleButtons(): def GetModuleButtons(self):
pass pass
@abstractmethod @abstractmethod
def RegisterHandlers(): def RegisterHandlers(self):
pass pass

36
bot_modules/mod_simple_message.py

@ -3,12 +3,12 @@
# Простой модуль с одним сообщением # Простой модуль с одним сообщением
from bot_sys import keyboard, user_access from bot_sys import keyboard, user_access, keyboard
from bot_modules import access_utils from bot_modules import access_utils, mod_interface
from template import simple_message from template import simple_message, bd_item
class SimpleMessageModule(mod_interface.IModule): class SimpleMessageModule(mod_interface.IModule):
def __init__(self, a_StartMessage, a_StartButtonName, a_InitAccess, a_ChildModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log): def __init__(self, a_StartMessage, a_StartButtonName, a_InitAccess, a_ChildModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log):
self.m_ChildModuleNameList = a_ChildModuleNameList self.m_ChildModuleNameList = a_ChildModuleNameList
self.m_InitAccess = a_InitAccess self.m_InitAccess = a_InitAccess
self.m_Bot = a_Bot self.m_Bot = a_Bot
@ -17,11 +17,11 @@ class SimpleMessageModule(mod_interface.IModule):
self.m_BotButtons = a_BotButtons self.m_BotButtons = a_BotButtons
self.m_Log = a_Log self.m_Log = a_Log
self.m_StartButtonName = CreateButton(f'{GetName()}_start', a_StartButtonName) self.m_StartButtonName = self.CreateButton(f'{self.GetName()}_start', a_StartButtonName)
self.m_StartMessage = CreateMessage(f'{GetName()}_start', a_StartMessage) self.m_StartMessage = self.CreateMessage(f'{self.GetName()}_start', a_StartMessage)
async def StartMessageHandler(a_Message, state = None): async def StartMessageHandler(a_Message, state = None):
return self.StartMessageHandler(a_Message, state) return await self.StartMessageHandler(a_Message, state)
self.m_StartMessageHandlerFunc = StartMessageHandler self.m_StartMessageHandlerFunc = StartMessageHandler
def GetAccess(): def GetAccess():
@ -41,18 +41,18 @@ class SimpleMessageModule(mod_interface.IModule):
) )
# Основной обработчик главного сообщения # Основной обработчик главного сообщения
async def StartMessageHandler(a_Message, state = None): async def StartMessageHandler(self, a_Message, state = None):
return simple_message.WorkFuncResult(self.m_StartMessage) return simple_message.WorkFuncResult(self.m_StartMessage)
def CreateMessage(a_MessageName, a_MessageDesc): def CreateMessage(self, a_MessageName, a_MessageDesc):
msg = self.m_BotMessages.CreateMessage(a_MessageName, a_MessageDesc, self.m_Log.GetTimeNow()) msg = self.m_BotMessages.CreateMessage(a_MessageName, a_MessageDesc, self.m_Log.GetTimeNow())
return msg return msg
def CreateButton(a_ButtonName, a_ButtonDesc): def CreateButton(self, a_ButtonName, a_ButtonDesc):
btn = self.m_BotButtons.CreateMessage(a_ButtonName, a_ButtonDesc, self.m_Log.GetTimeNow()) btn = self.m_BotButtons.CreateMessage(a_ButtonName, a_ButtonDesc, self.m_Log.GetTimeNow())
return btn return btn
def GetStartKeyboardButtons(a_Message, a_UserGroups): def GetStartKeyboardButtons(self, a_Message, a_UserGroups):
def GetButtons(a_ModNameList): def GetButtons(a_ModNameList):
buttons = [] buttons = []
for n in a_ModNameList: for n in a_ModNameList:
@ -63,22 +63,22 @@ class SimpleMessageModule(mod_interface.IModule):
return buttons return buttons
buttons = GetButtons(self.m_ChildModuleNameList) buttons = GetButtons(self.m_ChildModuleNameList)
return MakeButtons(buttons, a_UserGroups) return keyboard.MakeButtons(buttons, a_UserGroups)
def GetInitBDCommands(): def GetInitBDCommands(self):
return [ return [
access_utils.GetAccessForModuleRequest(GetName(), self.m_InitAccess, self.m_InitAccess), access_utils.GetAccessForModuleRequest(self.GetName(), self.m_InitAccess, self.m_InitAccess),
] ]
def GetAccess(): def GetAccess(self):
return self.m_Bot.GetAccessForModule(module_name) return access_utils.GetAccessForModule(self.m_Bot, self.GetName())
def GetModuleButtons(): def GetModuleButtons(self):
return [ return [
keyboard.ButtonWithAccess(self.m_StartButtonName, user_access.AccessMode.VIEW, GetAccess()), keyboard.ButtonWithAccess(self.m_StartButtonName, user_access.AccessMode.VIEW, GetAccess()),
] ]
def RegisterHandlers(): def RegisterHandlers(self):
self.m_Bot.RegisterMessageHandler( self.m_Bot.RegisterMessageHandler(
self.m_StartMessageHandler, self.m_StartMessageHandler,
bd_item.GetCheckForTextFunc(self.m_StartButtonName) bd_item.GetCheckForTextFunc(self.m_StartButtonName)

23
bot_modules/start.py

@ -5,37 +5,40 @@
from bot_sys import user_access from bot_sys import user_access
from bot_modules import mod_simple_message from bot_modules import mod_simple_message
from template import bd_item
class ModuleStart(mod_simple_message.SimpleMessageModule): start_message = '''
def __init__(self, a_ChildModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log):
msg = '''
<b>Добро пожаловать!</b> <b>Добро пожаловать!</b>
Выберите возможные действия на кнопках ниже ''' Выберите возможные действия на кнопках ниже '''
class ModuleStart(mod_simple_message.SimpleMessageModule):
def __init__(self, a_ChildModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log):
start_menu_button_name = "☰ Главное меню" start_menu_button_name = "☰ Главное меню"
a_InitAccess = f'{user_access.user_access_group_all}=+' a_InitAccess = f'{user_access.user_access_group_all}=+'
super().__init__(self, msg, start_menu_button_name, a_InitAccess, a_ChildModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log) super().__init__(start_message, start_menu_button_name, a_InitAccess, a_ChildModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log)
def GetName(): def GetName(self):
return 'start' return 'start'
# Основной обработчик главного сообщения # Основной обработчик главного сообщения
async def StartMessageHandler(a_Message, state = None): async def StartMessageHandler(self, a_Message, state = None):
user_id = str(a_Message.from_user.id) user_id = str(a_Message.from_user.id)
user_name = str(a_Message.from_user.username) user_name = str(a_Message.from_user.username)
first_name = str(a_Message.from_user.first_name) first_name = str(a_Message.from_user.first_name)
last_name = str(a_Message.from_user.last_name) last_name = str(a_Message.from_user.last_name)
is_bot = str(a_Message.from_user.is_bot) is_bot = str(a_Message.from_user.is_bot)
language_code = str(a_Message.from_user.language_code) language_code = str(a_Message.from_user.language_code)
profile.AddUser(user_id, user_name, first_name, last_name, is_bot, language_code) #profile.AddUser(user_id, user_name, first_name, last_name, is_bot, language_code)
self.m_Log.Info(f'Пользователь {user_id} {user_name} авторизовался в боте. Полные данные {a_Message.from_user}.') self.m_Log.Info(f'Пользователь {user_id} {user_name} авторизовался в боте. Полные данные {a_Message.from_user}.')
return super().StartMessageHandler(a_Message, state) return await super().StartMessageHandler(a_Message, state)
def RegisterHandlers(): def RegisterHandlers(self):
super().RegisterHandlers() super().RegisterHandlers()
self.m_Bot.RegisterMessageHandler( self.m_Bot.RegisterMessageHandler(
self.m_StartMessageHandler, self.m_StartMessageHandler,
bd_item.GetCheckForCommandsFunc(['start']) None,
commands = ['start']
) )

65
bot_sys/aiogram_bot.py

@ -1,7 +1,7 @@
#-*-coding utf-8-*- #-*-coding utf-8-*-
# Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru> # Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru>
from bot_sys import interfaces, bot_bd, keyboard from bot_sys import interfaces, bot_bd, keyboard, user_access
from aiogram import types from aiogram import types
from aiogram import Bot from aiogram import Bot
@ -17,68 +17,47 @@ class AiogramBot(interfaces.IBot):
self.m_Log = a_Log self.m_Log = a_Log
self.m_TBot = Bot(token=self.m_TelegramBotApiToken, parse_mode = types.ParseMode.HTML) self.m_TBot = Bot(token=self.m_TelegramBotApiToken, parse_mode = types.ParseMode.HTML)
self.m_Storage = MemoryStorage() self.m_Storage = MemoryStorage()
self.m_Dispatcher = Dispatcher(self.m_TBot, storage = storage) self.m_Dispatcher = Dispatcher(self.m_TBot, storage = self.m_Storage)
def GetRootIDs(): def GetRootIDs(self):
return self.m_RootIDs return self.m_RootIDs
def GetLog(): def GetLog(self):
return self.m_Log return self.m_Log
def SQLRequest(self, a_Request : str, commit = False, return_error = False, param = None): def SQLRequest(self, a_Request : str, commit = False, return_error = False, param = None):
return bot_bd.SQLRequest(self.m_BDFileName, a_Request, commit = commit, return_error = return_error, param = param) return bot_bd.SQLRequest(self.m_BDFileName, a_Request, commit = commit, return_error = return_error, param = param)
def GetUserGroupData(a_UserID):
def GetGroupNamesForUser(a_UserID):
return SQLRequest('SELECT groupName FROM user_groups WHERE group_id=(SELECT group_id FROM user_in_groups WHERE user_id = ?)', param = [a_UserID])
r = GetGroupNamesForUser(a_UserID)
groups = []
for i in r:
if len(i) > 0:
groups += [i[0]]
return user_access.UserGroups(a_UserID, groups)
def GetModulesAccessList():
return bot_bd.RequestSelectTemplate(self.m_BDFileName, table_name)()
def GetAccessForModule(a_ModuleName):
alist = GetModulesAccessList()
for i in alist:
if i[0] == a_ModuleName:
return i[1]
return ''
def GetItemDefaultAccessForModule(a_ModuleName):
alist = GetModulesAccessList()
for i in alist:
if i[0] == a_ModuleName:
return i[2]
return ''
async def SendMessage(self, a_UserID, a_Message, a_PhotoIDs, a_InlineKeyboardButtons, a_KeyboardButtons): async def SendMessage(self, a_UserID, a_Message, a_PhotoIDs, a_InlineKeyboardButtons, a_KeyboardButtons):
inline_keyboard = keyboard.MakeAiogramInlineKeyboard(a_InlineKeyboardButtons) inline_keyboard = keyboard.MakeAiogramInlineKeyboard(a_InlineKeyboardButtons)
keyboard = keyboard.MakeAiogramKeyboard(a_KeyboardButtons) base_keyboard = keyboard.MakeAiogramKeyboard(a_KeyboardButtons)
if not keyboard: if a_InlineKeyboardButtons:
keyboard = inline_keyboard base_keyboard = inline_keyboard
if a_PhotoIDs and a_PhotoIDs != 0 or a_PhotoIDs != '0': if a_PhotoIDs and a_PhotoIDs != 0 and a_PhotoIDs != '0':
self.m_TBot.send_photo( await self.m_TBot.send_photo(
a_UserID, a_UserID,
a_PhotoIDs, a_PhotoIDs,
a_Message, a_Message,
reply_markup = keyboard reply_markup = base_keyboard
) )
else: else:
self.m_TBot.send_message( await self.m_TBot.send_message(
a_UserID, a_UserID,
a_Message, a_Message,
reply_markup = keyboard reply_markup = base_keyboard
) )
def RegisterMessageHandler(self, a_MessageHandler, a_CheckFunc): def RegisterMessageHandler(self, a_MessageHandler, a_CheckFunc, commands=None, regexp=None, content_types=None, state=None):
self.m_Dispatcher.register_message_handler(a_MessageHandler, a_CheckFunc) if a_CheckFunc:
self.m_Dispatcher.register_message_handler(a_MessageHandler, a_CheckFunc, commands=commands, regexp=regexp, content_types=content_types, state=state)
else:
self.m_Dispatcher.register_message_handler(a_MessageHandler, commands=commands, regexp=regexp, content_types=content_types, state=state)
def RegisterCallbackHandler(self, a_CallbackHandler, a_CheckFunc): def RegisterCallbackHandler(self, a_CallbackHandler, a_CheckFunc, commands=None, regexp=None, content_types=None, state=None):
self.m_Dispatcher.register_callback_query_handler(a_CallbackHandler, a_CheckFunc) if a_CheckFunc:
self.register_callback_query_handler.register_message_handler(a_CallbackHandler, a_CheckFunc, commands=commands, regexp=regexp, content_types=content_types, state=state)
else:
self.register_callback_query_handler.register_message_handler(a_CallbackHandler, commands=commands, regexp=regexp, content_types=content_types, state=state)
def StartPolling(self): def StartPolling(self):
executor.start_polling(self.m_Dispatcher) executor.start_polling(self.m_Dispatcher)

18
bot_sys/bot_messages.py

@ -12,16 +12,16 @@ class BotMessage:
self.m_PhotoID = a_PhotoID self.m_PhotoID = a_PhotoID
self.m_DateTime = a_DateTime self.m_DateTime = a_DateTime
def GetName(): def GetName(self):
return self.m_MessageName return self.m_MessageName
def GetDesc(): def GetDesc(self):
return self.m_MessageDesc return self.m_MessageDesc
def GetLanguage(): def GetLanguage(self):
return self.m_Language return self.m_Language
def GetPhotoID(): def GetPhotoID(self):
return self.m_PhotoID return self.m_PhotoID
def __str__(self): def __str__(self):
@ -51,15 +51,15 @@ class BotMessages:
self.m_Messages = {} self.m_Messages = {}
self.m_LastUpdate = None self.m_LastUpdate = None
def GetMessages(): def GetMessages(self):
return self.m_Messages return self.m_Messages
def UpdateSignal(a_DateTime): def UpdateSignal(self, a_DateTime):
self.m_LastUpdate = a_DateTime self.m_LastUpdate = a_DateTime
def CreateMessage(a_MessageName, a_MessageDesc, a_DateTime): def CreateMessage(self, a_MessageName, a_MessageDesc, a_DateTime):
cur_msg = BotMessage(a_MessageName, a_MessageDesc, self.a_DefaultLanguage, 0, a_DateTime) cur_msg = BotMessage(self, a_MessageName, a_MessageDesc, self.a_DefaultLanguage, 0, a_DateTime)
msg = GetMessages() msg = self.GetMessages()
if not msg.get(self.a_DefaultLanguage, None): if not msg.get(self.a_DefaultLanguage, None):
msg[self.a_DefaultLanguage] = {} msg[self.a_DefaultLanguage] = {}
if not msg[self.a_DefaultLanguage].get(a_MessageName, None): if not msg[self.a_DefaultLanguage].get(a_MessageName, None):

20
bot_sys/interfaces.py

@ -5,11 +5,11 @@ from abc import ABC, abstractmethod
class IBot(ABC): class IBot(ABC):
@abstractmethod @abstractmethod
def GetRootIDs(): def GetRootIDs(self):
pass pass
@abstractmethod @abstractmethod
def GetLog(): def GetLog(self):
pass pass
@abstractmethod @abstractmethod
@ -17,27 +17,15 @@ class IBot(ABC):
pass pass
@abstractmethod @abstractmethod
def GetUserGroupData(a_UserID):
pass
@abstractmethod
def GetAccessForModule(a_ModuleName):
pass
@abstractmethod
def GetItemDefaultAccessForModule(a_ModuleName):
pass
@abstractmethod
async def SendMessage(self, a_UserID, a_Message, a_PhotoIDs, a_InlineKeyboardButtons, a_KeyboardButtons): async def SendMessage(self, a_UserID, a_Message, a_PhotoIDs, a_InlineKeyboardButtons, a_KeyboardButtons):
pass pass
@abstractmethod @abstractmethod
def RegisterMessageHandler(self, a_MessageHandler, a_CheckFunc): def RegisterMessageHandler(self, a_MessageHandler, a_CheckFunc, commands=None, regexp=None, content_types=None, state=None):
pass pass
@abstractmethod @abstractmethod
def RegisterCallbackHandler(self, a_CallbackHandler, a_CheckFunc): def RegisterCallbackHandler(self, a_CallbackHandler, a_CheckFunc, commands=None, regexp=None, content_types=None, state=None):
pass pass
@abstractmethod @abstractmethod

23
bot_sys/user_access.py

@ -83,12 +83,23 @@ def Test():
assert CheckAccess(roots, '1234=-', UserGroups('1234', []), am) assert CheckAccess(roots, '1234=-', UserGroups('1234', []), am)
assert CheckAccess(roots, '1234=+;gr1=+', UserGroups('1234', ['gr1']), am) assert CheckAccess(roots, '1234=+;gr1=+', UserGroups('1234', ['gr1']), am)
assert CheckAccess(roots, '1234=-;gr1=+', UserGroups('1234', ['gr1']), am) assert CheckAccess(roots, '1234=-;gr1=+', UserGroups('1234', ['gr1']), am)
assert CheckAccess(roots, '1234=+', UserGroups('123', []), am) assert CheckAccess(roots, '1234=+', UserGroups('1234', []), am)
assert CheckAccess(roots, '1234=-', UserGroups('123', []), am) assert CheckAccess(roots, '1234=-', UserGroups('1234', []), am)
assert CheckAccess(roots, '1234=+;gr1=+', UserGroups('123', ['gr']), am) assert CheckAccess(roots, '1234=+;gr1=+', UserGroups('1234', ['gr']), am)
assert CheckAccess(roots, '1234=-;gr1=+', UserGroups('123', ['gr']), am) assert CheckAccess(roots, '1234=-;gr1=+', UserGroups('1234', ['gr']), am)
assert CheckAccess(roots, '1234=+;gr=+', UserGroups('123', ['gr1']), am) assert CheckAccess(roots, '1234=+;gr=+', UserGroups('1234', ['gr1']), am)
assert CheckAccess(roots, '1234=-;gr=+', UserGroups('123', ['gr1']), am) assert CheckAccess(roots, '1234=-;gr=+', UserGroups('1234', ['gr1']), am)
assert CheckAccess(roots, '123=+', UserGroups('1234', []), am)
assert CheckAccess(roots, '124=-', UserGroups('1234', []), am)
assert CheckAccess(roots, '134=+;gr1=+', UserGroups('1234', ['gr1']), am)
assert CheckAccess(roots, '134=-;gr1=+', UserGroups('1234', ['gr1']), am)
assert CheckAccess(roots, '124=+', UserGroups('1234', []), am)
assert CheckAccess(roots, '124=-', UserGroups('1234', []), am)
assert CheckAccess(roots, '134=+;gr1=+', UserGroups('1234', ['gr']), am)
assert CheckAccess(roots, '134=-;gr1=+', UserGroups('1234', ['gr']), am)
assert CheckAccess(roots, '124=+;gr=+', UserGroups('1234', ['gr1']), am)
assert CheckAccess(roots, '124=-;gr=+', UserGroups('1234', ['gr1']), am)
roots = ['12'] roots = ['12']
for am in AccessMode.ADD, AccessMode.DELETE, AccessMode.EDIT, AccessMode.VIEW, AccessMode.ACCEES_EDIT: for am in AccessMode.ADD, AccessMode.DELETE, AccessMode.EDIT, AccessMode.VIEW, AccessMode.ACCEES_EDIT:

2
main.py

@ -9,7 +9,7 @@ from bot_sys import config, log, bot_bd, user_access, aiogram_bot, bot_messages
from bot_modules import mod_agregator, start #, projects, groups, access, backup, tasks, needs, comments, messages, profile, languages from bot_modules import mod_agregator, start #, projects, groups, access, backup, tasks, needs, comments, messages, profile, languages
g_Log = log g_Log = log
g_Bot = aiogram_bot.AiogramBot(config.GetTelegramBotApiToken(), bot_bd.GetBDFileName(), config.GetRootIDs(), g_Log): g_Bot = aiogram_bot.AiogramBot(config.GetTelegramBotApiToken(), bot_bd.GetBDFileName(), config.GetRootIDs(), g_Log)
default_language = 'ru' default_language = 'ru'

6
template/simple_message.py

@ -4,7 +4,7 @@
# Простые информационные сообщения # Простые информационные сообщения
from bot_sys import user_access from bot_sys import user_access
from bot_modules import access from bot_modules import access, access_utils
from aiogram import types from aiogram import types
class WorkFuncResult(): class WorkFuncResult():
@ -20,7 +20,7 @@ def InfoMessageTemplate(a_Bot, a_HelpMessage, a_GetButtonsFunc, a_GetInlineButto
def SimpleMessageTemplate(a_Bot, a_WorkFunc, a_GetButtonsFunc, a_GetInlineButtonsFunc, a_AccessFunc, access_mode = user_access.AccessMode.VIEW): def SimpleMessageTemplate(a_Bot, a_WorkFunc, a_GetButtonsFunc, a_GetInlineButtonsFunc, a_AccessFunc, access_mode = user_access.AccessMode.VIEW):
def ProxyGetButtonsTemplate(a_GetButtonsFunc): def ProxyGetButtonsTemplate(a_GetButtonsFunc):
def ReturnNone(): def ReturnNone(a_Message, user_groups):
return None return None
if a_GetButtonsFunc: if a_GetButtonsFunc:
return a_GetButtonsFunc return a_GetButtonsFunc
@ -39,7 +39,7 @@ def SimpleMessageTemplate(a_Bot, a_WorkFunc, a_GetButtonsFunc, a_GetInlineButton
async def SimpleMessage(a_Message : types.message, state = None): async def SimpleMessage(a_Message : types.message, state = None):
user_id = str(a_Message.from_user.id) user_id = str(a_Message.from_user.id)
lang = str(a_Message.from_user.language_code) lang = str(a_Message.from_user.language_code)
user_groups = a_Bot.GetUserGroupData(user_id) user_groups = access_utils.GetUserGroupData(a_Bot, user_id)
if not user_access.CheckAccess(a_Bot.GetRootIDs(), a_AccessFunc(), user_groups, access_mode): if not user_access.CheckAccess(a_Bot.GetRootIDs(), a_AccessFunc(), user_groups, access_mode):
return await AccessDeniedMessage(user_id, a_Message, user_groups) return await AccessDeniedMessage(user_id, a_Message, user_groups)

Loading…
Cancel
Save