Browse Source

Группы пользователей и пользователи в группах. Два новых модуля

admin_backend
Alexei 2 years ago
parent
commit
b3d071501c
  1. 136
      bot_modules/groups.py
  2. 16
      bot_modules/groups_utils.py
  3. 16
      bot_modules/mod_table_operate.py
  4. 2
      bot_modules/profile.py
  5. 174
      bot_modules/user_in_groups.py
  6. 12
      bot_modules/users.py
  7. 45
      bot_modules/users_groups_agregator.py
  8. 1
      bot_sys/keyboard.py
  9. 14
      main.py
  10. 2
      template/simple_message.py

136
bot_modules/groups.py

@ -0,0 +1,136 @@
# -*- coding: utf8 -*-
# Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru>
# Группы
from bot_sys import bot_bd, keyboard, user_access, bd_table
from bot_modules import mod_table_operate, mod_simple_message
from bot_modules import access_utils, groups_utils
# ---------------------------------------------------------
# БД
module_name = 'groups'
table_name = groups_utils.table_name
key_name = groups_utils.key_name
name_field = groups_utils.name_field
desc_field = groups_utils.desc_field
photo_field = groups_utils.photo_field
access_field = groups_utils.access_field
create_datetime_field = groups_utils.create_datetime_field
table_name_field = bd_table.TableField(name_field, bd_table.TableFieldDestiny.NAME, bd_table.TableFieldType.STR)
table = bd_table.Table(table_name, [
bd_table.TableField(key_name, bd_table.TableFieldDestiny.KEY, bd_table.TableFieldType.INT),
table_name_field,
bd_table.TableField(desc_field, bd_table.TableFieldDestiny.DESC, bd_table.TableFieldType.STR),
bd_table.TableField(photo_field, bd_table.TableFieldDestiny.PHOTO, bd_table.TableFieldType.STR),
bd_table.TableField(access_field, bd_table.TableFieldDestiny.ACCESS, bd_table.TableFieldType.STR),
bd_table.TableField(create_datetime_field, bd_table.TableFieldDestiny.CREATE_DATE, bd_table.TableFieldType.STR),
],
[
[table_name_field],
]
)
init_access = f'{user_access.user_access_group_new}=-'
# ---------------------------------------------------------
# Сообщения и кнопки
button_names = {
mod_simple_message.ButtonNames.START: "👥 Группы пользователей",
mod_table_operate.ButtonNames.LIST: "📃 Список групп",
mod_table_operate.ButtonNames.ADD: "✅ Добавить группу",
mod_table_operate.ButtonNames.EDIT: "🛠 Редактировать группу",
mod_table_operate.ButtonNames.EDIT_PHOTO: "☐ Изменить изображение в группе",
mod_table_operate.ButtonNames.EDIT_NAME: "≂ Изменить название в группе",
mod_table_operate.ButtonNames.EDIT_DESC: "𝌴 Изменить описание в группе",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Изменить доступ к группе",
mod_table_operate.ButtonNames.DEL: "❌ Удалить группу",
}
messages = {
mod_simple_message.Messages.START: f'''
<b>{button_names[mod_simple_message.ButtonNames.START]}</b>
''',
mod_table_operate.Messages.SELECT: '''
Пожалуйста, выберите группу:
''',
mod_table_operate.Messages.ERROR_FIND: '''
Ошибка, группу не найден
''',
mod_table_operate.Messages.OPEN: f'''
<b>Группа: #{name_field}</b>
#{desc_field}
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
Создание группы. Шаг 1
Введите название группы:
''',
mod_table_operate.Messages.CREATE_DESC: '''
Создание группы. Шаг 2
Введите описание группы:
''',
mod_table_operate.Messages.CREATE_PHOTO: '''
Создание группы. Шаг 3
Загрузите обложку для группы (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.SUCCESS_CREATE: '''✅ Группа успешно добавлена!''',
mod_table_operate.Messages.START_EDIT: '''
Пожалуйста, выберите действие:
''',
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите группу, которого вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_PHOTO: '''
Загрузите новую обложку для группы (Фото):
Она будет отображаться в его описании.
''',
mod_table_operate.Messages.EDIT_NAME: f'''
Текущее название группы:
#{name_field}
Введите новое название группы:
''',
mod_table_operate.Messages.EDIT_DESC: f'''
Текущее описание группы:
#{desc_field}
Введите новое описание группы:
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
Текущий доступ к группе:
#{access_field}
{user_access.user_access_readme}
Введите новую строку доступа:
''',
mod_table_operate.Messages.SUCCESS_EDIT: '''✅ Группа успешно отредактирована!''',
mod_table_operate.Messages.SELECT_TO_DELETE: '''
Выберите группу, который вы хотите удалить.
''',
mod_table_operate.Messages.SUCCESS_DELETE: '''✅ Группа успешно удалена!''',
}
class ModuleGroups(mod_table_operate.TableOperateModule):
def __init__(self, a_ParentModName, a_ChildModName, a_ChildModuleNameList, a_EditModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log):
super().__init__(table, messages, button_names, a_ParentModName, a_ChildModName, init_access, a_ChildModuleNameList, a_EditModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log)
def GetName(self):
return module_name
def GetInitBDCommands(self):
return super(). GetInitBDCommands() + [
f"INSERT OR IGNORE INTO {table_name} ({name_field}, {access_field}, {create_datetime_field}) VALUES ('{user_access.user_access_group_new}', '{user_access.user_access_group_new}=-', {bot_bd.GetBDDateTimeNow()});"
]

16
bot_modules/groups_utils.py

@ -5,9 +5,23 @@
from bot_sys import user_access
table_name = 'user_groups'
key_name = 'groupID'
name_field = 'groupName'
desc_field = 'groupDesc'
photo_field = 'groupPhoto'
access_field = 'groupAccess'
create_datetime_field = 'groupCreateDateTime'
table_user_in_groups_name = 'user_in_groups'
user_id_field = 'user_ID'
parent_id_field = 'groupID'
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])
sql_req = f'SELECT {name_field} FROM {table_name} WHERE {key_name} IN (SELECT {parent_id_field} FROM {table_user_in_groups_name} WHERE {user_id_field} = ?)'
#print('GetGroupNamesForUser', sql_req)
return a_Bot.SQLRequest(sql_req, param = [a_UserID])
r = GetGroupNamesForUser(a_UserID)
groups = []
for i in r:

16
bot_modules/mod_table_operate.py

@ -123,9 +123,9 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
return self.m_FSMs.get(a_FSMName, None)
def GetInitBDCommands(self):
return super(). GetInitBDCommands() + [
return [
self.m_Table.GetInitTableRequest(),
]
] + super().GetInitBDCommands()
def GetStartKeyboardButtons(self, a_Message, a_UserGroups):
mod_buttons = super().GetStartKeyboardButtons(a_Message, a_UserGroups)
@ -166,10 +166,16 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule):
return keyboard.MakeInlineKeyboardButtons(self.m_Bot, cur_buttons, a_UserGroups)
def GetButtonNameAndKeyValueAndAccess(self, a_Item):
key_name_id = self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.KEY)
name_field_id = self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.NAME)
access_field_id = self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.ACCESS)
assert key_name_id != None
assert name_field_id != None
assert access_field_id != None
return \
a_Item[self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.NAME)],\
a_Item[self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.KEY)],\
a_Item[self.m_Table.GetFieldIDByDestiny(bd_table.TableFieldDestiny.ACCESS)]
a_Item[name_field_id],\
a_Item[key_name_id],\
a_Item[access_field_id]
def ShowMessageTemplate(self, a_Message, Inline_keyboard_template_func = None):
async def ShowMessage(a_CallbackQuery, a_Item):

2
bot_modules/profile.py

@ -4,7 +4,7 @@
# Профиль пользователя
from bot_sys import user_access, bot_bd, bd_table
from bot_modules import mod_simple_message, access, access_utils, groups_utils, users_groups_agregator, users
from bot_modules import mod_simple_message, access, access_utils, groups_utils, users
from template import bd_item, simple_message
# ---------------------------------------------------------

174
bot_modules/user_in_groups.py

@ -0,0 +1,174 @@
# -*- coding: utf8 -*-
# Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru>
# Пользователи в группах
from bot_sys import bot_bd, keyboard, user_access, bd_table
from bot_modules import mod_table_operate, mod_simple_message
from bot_modules import access_utils, groups_utils
from template import bd_item, bd_item_add
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
class FSMAddUserInGroups(StatesGroup):
bd_item = State()
from enum import Enum
from enum import auto
# ---------------------------------------------------------
# БД
module_name = 'user_in_groups'
table_name = groups_utils.table_user_in_groups_name
key_name = 'user_in_groupsID'
name_field = groups_utils.user_id_field
access_field = 'user_in_groupsAccess'
create_datetime_field = 'user_in_groupsCreateDateTime'
parent_id_field = groups_utils.parent_id_field
table_user_id_field = bd_table.TableField(name_field, bd_table.TableFieldDestiny.NAME, bd_table.TableFieldType.STR)
table_parent_id_field = bd_table.TableField(parent_id_field, bd_table.TableFieldDestiny.PARENT_ID, bd_table.TableFieldType.INT)
table = bd_table.Table(table_name, [
bd_table.TableField(key_name, bd_table.TableFieldDestiny.KEY, bd_table.TableFieldType.INT),
table_user_id_field,
bd_table.TableField(access_field, bd_table.TableFieldDestiny.ACCESS, bd_table.TableFieldType.STR),
bd_table.TableField(create_datetime_field, bd_table.TableFieldDestiny.CREATE_DATE, bd_table.TableFieldType.STR),
table_parent_id_field,
],
[
[table_user_id_field, table_parent_id_field],
]
)
init_access = f'{user_access.user_access_group_new}=-'
# ---------------------------------------------------------
# Сообщения и кнопки
class ButtonNames(Enum):
ADD_USER = auto()
button_names = {
mod_simple_message.ButtonNames.START: "🗫 Пользователи в группах",
mod_table_operate.ButtonNames.LIST: "📃 Список пользователей в группах",
ButtonNames.ADD_USER: "✅ Добавить пользователя в группу",
mod_table_operate.ButtonNames.EDIT_ACCESS: "✋ Доступ к пользователю в группе",
mod_table_operate.ButtonNames.DEL: "❌ Удалить пользователя из группы",
}
messages = {
mod_simple_message.Messages.START: f'''
<b>{button_names[mod_simple_message.ButtonNames.START]}</b>
''',
mod_table_operate.Messages.SELECT: '''
Пожалуйста, выберите пользователя в группе:
''',
mod_table_operate.Messages.ERROR_FIND: '''
Ошибка, пользователь в группе не найден
''',
mod_table_operate.Messages.OPEN: f'''
<b>пользователь в группе: #{name_field}</b>
Группа: #{parent_id_field}
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
Создание пользователя в группе.
Укажите ID пользователя:
''',
mod_table_operate.Messages.SUCCESS_CREATE: '''✅ Пользователь успешно добавлен в группу!''',
mod_table_operate.Messages.START_EDIT: '''
Пожалуйста, выберите действие:
''',
mod_table_operate.Messages.SELECT_TO_EDIT: '''
Выберите пользователя в группе, которого вы хотите отредактировать.
''',
mod_table_operate.Messages.EDIT_ACCESS: f'''
Текущий доступ к пользователю в группе:
#{access_field}
{user_access.user_access_readme}
Введите новую строку доступа:
''',
mod_table_operate.Messages.SUCCESS_EDIT: '''✅ Пользователь в группе успешно отредактирован!''',
mod_table_operate.Messages.SELECT_TO_DELETE: '''
Выберите пользователя в группе, которого вы хотите удалить.
''',
mod_table_operate.Messages.SUCCESS_DELETE: '''✅ Пульзователь успешно удалён из группы!''',
}
class ModuleUserInGroups(mod_table_operate.TableOperateModule):
def __init__(self, a_ParentModName, a_ChildModName, a_ChildModuleNameList, a_EditModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log):
super().__init__(table, messages, button_names, a_ParentModName, a_ChildModName, init_access, a_ChildModuleNameList, a_EditModuleNameList, a_Bot, a_ModuleAgregator, a_BotMessages, a_BotButtons, a_Log)
def GetName(self):
return module_name
def GetStartKeyboardButtons(self, a_Message, a_UserGroups):
t_buttons = super().GetStartKeyboardButtons(a_Message, a_UserGroups)
cur_buttons = [
keyboard.ButtonWithAccess(self.GetButton(ButtonNames.ADD_USER), user_access.AccessMode.ADD, self.GetAccess()),
]
return t_buttons + keyboard.MakeButtons(self.m_Bot, cur_buttons, a_UserGroups)
def AddBDItemFunc(self, a_ItemData, a_UserID):
def_access = access_utils.GetItemDefaultAccessForModule(self.m_Bot, self.GetName())
res, error = self.m_Bot.SQLRequest(f'INSERT INTO {table_name}({name_field}, {access_field}, {parent_id_field}, {create_datetime_field}) VALUES(?, ?, ?, {bot_bd.GetBDDateTimeNow()})',
commit = True, return_error = True, param = (a_ItemData[name_field], def_access + f";{a_UserID}=+", a_ItemData[parent_id_field]))
self.OnChange()
if error:
self.m_Log.Error(f'Пользоватлель {a_UserID}. Ошибка добавления записи в таблицу {table_name} ({a_ItemData[name_field]}, {def_access}).')
else:
self.m_Log.Success(f'Пользоватлель {a_UserID}. Добавлена запись в таблицу {table_name} ({a_ItemData[name_field]}, {def_access}).')
return res, error
def RegisterHandlers(self):
super().RegisterHandlers()
GetButtonNameAndKeyValueAndAccess = self.m_GetButtonNameAndKeyValueAndAccessFunc
GetAccess = self.m_GetAccessFunc
defaul_keyboard_func = self.m_GetStartKeyboardButtonsFunc
parent_table_name = None
parent_key_name = None
if self.m_ParentModName:
parent_mod = self.GetModule(self.m_ParentModName)
parent_table_name = parent_mod.m_Table.GetName()
parent_key_name = parent_mod.m_Table.GetFieldNameByDestiny(bd_table.TableFieldDestiny.KEY)
# Добавление
a_ButtonName = self.GetButton(ButtonNames.ADD_USER)
if a_ButtonName:
a_Prefix = self.RegisterSelect(a_ButtonName, user_access.AccessMode.ADD, only_parent = True)
check_func = bd_item.GetCheckForTextFunc(a_ButtonName)
if a_Prefix:
check_func = bd_item.GetCheckForPrefixFunc(a_Prefix)
bd_item_add.AddBDItem1RegisterHandlers(self.m_Bot,\
check_func,\
FSMAddUserInGroups,\
self.m_AddBDItemFunc,\
self.ShowMessageTemplate(self.GetMessage(mod_table_operate.Messages.CREATE_NAME)),\
self.ShowMessageTemplate(self.GetMessage(mod_table_operate.Messages.SUCCESS_CREATE)),\
a_Prefix,\
parent_table_name,\
parent_key_name,\
name_field,\
GetButtonNameAndKeyValueAndAccess,\
GetAccess,\
defaul_keyboard_func,\
bd_item.FieldType.text,\
access_mode = user_access.AccessMode.ADD\
)

12
bot_modules/users.py

@ -1,11 +1,11 @@
# -*- coding: utf8 -*-
# Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru>
# Проекты
# Пользователи
from bot_sys import bot_bd, keyboard, user_access, bd_table
from bot_modules import mod_table_operate, mod_simple_message
from bot_modules import users_groups_agregator, access_utils, groups_utils
from bot_modules import access_utils, groups_utils, groups, user_in_groups
# ---------------------------------------------------------
# БД
@ -34,7 +34,7 @@ table = bd_table.Table(table_name, [
bd_table.TableField(create_datetime_field, bd_table.TableFieldDestiny.CREATE_DATE, bd_table.TableFieldType.STR),
])
init_access = f'{user_access.user_access_group_new}=-'
init_access = f'{user_access.user_access_group_new}=v'
# ---------------------------------------------------------
# Сообщения и кнопки
@ -71,8 +71,6 @@ messages = {
<b>Имя2:</b> #{name2_field}
<b>Код языка:</b> #{language_code_field}
<b>Дата добавления:</b> #{create_datetime_field}
Время создания: #{create_datetime_field}
''',
mod_table_operate.Messages.CREATE_NAME: '''
Создание пользователя. Шаг 1
@ -146,10 +144,10 @@ def AddUser(a_Bot, a_UserID, a_UserName, a_UserName1, a_UserName2, a_UserIsBot,
user_groups = groups_utils.GetUserGroupData(a_Bot, a_UserID)
# Если пользователь не состоит ни в одной группе, то добавляем его в группу user_access.user_access_group_new
if len(user_groups.group_names_list) == 0:
new_group_id = a_Bot.SQLRequest(f'SELECT {users_groups_agregator.key_table_groups_name} FROM {users_groups_agregator.table_groups_name} WHERE {users_groups_agregator.name_table_groups_field} = ?',
new_group_id = a_Bot.SQLRequest(f'SELECT {groups.key_name} FROM {groups.table_name} WHERE {groups.name_field} = ?',
param = [user_access.user_access_group_new])
if new_group_id and new_group_id[0]:
a_Bot.SQLRequest(f"INSERT OR IGNORE INTO {users_groups_agregator.table_user_in_groups_name} ({users_groups_agregator.user_id_field}, {users_groups_agregator.key_table_groups_name}, {users_groups_agregator.access_field}, {users_groups_agregator.create_datetime_field}) VALUES (?, ?, ?, {bot_bd.GetBDDateTimeNow()});",
a_Bot.SQLRequest(f"INSERT OR IGNORE INTO {user_in_groups.table_name} ({user_in_groups.name_field}, {user_in_groups.parent_id_field}, {user_in_groups.access_field}, {user_in_groups.create_datetime_field}) VALUES (?, ?, ?, {bot_bd.GetBDDateTimeNow()});",
commit=True, param = (a_UserID, new_group_id[0][0], access_utils.GetItemDefaultAccessForModule(a_Bot, module_name)))
def GetUserInfo(a_Bot, a_UserID):

45
bot_modules/users_groups_agregator.py

@ -4,7 +4,7 @@
# Группы пользователей
from bot_sys import keyboard, user_access, bot_bd
from bot_modules import mod_simple_message
from bot_modules import mod_simple_message, users, groups, user_in_groups
from template import simple_message, sql_request, bd_item
from aiogram.dispatcher import FSMContext
@ -17,28 +17,19 @@ class FSMRequestToBD(StatesGroup):
# БД
module_name = 'users_groups_agregator'
table_groups_name = 'user_groups'
table_user_in_groups_name = 'user_in_groups'
key_table_groups_name = 'group_id'
name_table_groups_field = 'groupName'
user_id_field = 'user_id'
access_field = 'access'
create_datetime_field = 'createDateTime'
# ---------------------------------------------------------
# Сообщения
request_start_message = '''
request_start_message = f'''
**Задайте запрос к БД**
Можете воспользоваться следующими шаблонами:
1. `SELECT * FROM users` - Все пользователи
2. `SELECT group_id, groupName FROM user_groups` - Все группы пользоватлей
3. `INSERT INTO user_groups(groupName) VALUES('GROUPNAME')` - добавление группы с именем GROUPNAME
4. `SELECT group_id FROM user_in_groups WHERE user_id = USERID`- Все ID групп в которых состоит пользователь с USERID
5. `SELECT groupName FROM user_groups WHERE group_id=(SELECT groupid FROM user_in_groups WHERE user_id = USERID)` - Все имена групп пользователя с USERID
6. `INSERT INTO user_in_groups(user_id, group_id) VALUES(USERID, GROUPID)` - добавление пользователя USERID в группу с GROUPID
1. `SELECT * FROM {users.table_name}` - Все пользователи
2. `SELECT {groups.key_name}, {groups.name_field} FROM {groups.table_name}` - Все группы пользоватлей
3. `INSERT INTO {groups.table_name}({groups.name_field}) VALUES('GROUPNAME')` - добавление группы с именем GROUPNAME
4. `SELECT {user_in_groups.parent_id_field} FROM {user_in_groups.table_name} WHERE {user_in_groups.name_field} = USERID`- Все ID групп в которых состоит пользователь с USERID
5. `SELECT {groups.name_field} FROM {groups.table_name} WHERE {groups.name_field}=(SELECT groupid FROM {user_in_groups.table_name} WHERE {user_in_groups.name_field} = USERID)` - Все имена групп пользователя с USERID
6. `INSERT INTO {user_in_groups.table_name}({user_in_groups.name_field}, {user_in_groups.parent_id_field}) VALUES(USERID, GROUPID)` - добавление пользователя USERID в группу с GROUPID
'''
help_message = '''
@ -81,26 +72,6 @@ class ModuleUsersGroupsAgregator(mod_simple_message.SimpleMessageModule):
self.m_GetAccessFunc
)
def GetInitBDCommands(self):
return super(). GetInitBDCommands() + [
f"""CREATE TABLE IF NOT EXISTS {table_groups_name}(
{key_table_groups_name} INTEGER PRIMARY KEY NOT NULL,
{name_table_groups_field} TEXT,
{access_field} TEXT,
{create_datetime_field} TEXT,
UNIQUE({key_table_groups_name}),
UNIQUE({name_table_groups_field})
);""",
f"""CREATE TABLE IF NOT EXISTS {table_user_in_groups_name}(
{user_id_field} INTEGER,
{key_table_groups_name} INTEGER,
{access_field} TEXT,
{create_datetime_field} TEXT,
UNIQUE({user_id_field}, {key_table_groups_name})
);""",
f"INSERT OR IGNORE INTO {table_groups_name} ({name_table_groups_field}, {access_field}, {create_datetime_field}) VALUES ('{user_access.user_access_group_new}', '{user_access.user_access_group_new}=-', {bot_bd.GetBDDateTimeNow()});"
]
def GetName(self):
return module_name

1
bot_sys/keyboard.py

@ -40,6 +40,7 @@ def MakeButtons(a_Bot, a_ButtonList : [ButtonWithAccess], a_UserGroups):
if not b.label:
continue
label = str(b.label)
#print('MakeButtons', a_Bot.GetRootIDs(), b.access_string, a_UserGroups.user_id, a_UserGroups.group_names_list, b.access_mode)
if user_access.CheckAccess(a_Bot.GetRootIDs(), b.access_string, a_UserGroups, b.access_mode):
buttons += [types.KeyboardButton(label)]
step = GetButtonInRowCount(len(buttons))

14
main.py

@ -4,7 +4,8 @@
import os
from bot_sys import config, log, aiogram_bot, bot_messages, bd_table, user_access
from bot_modules import mod_agregator, start, profile, backup, users_groups_agregator, access, projects, tasks, needs, comments, languages, messages, buttons, users
from bot_modules import mod_agregator, start, profile, backup, users_groups_agregator, access, projects, tasks, needs, comments
from bot_modules import languages, messages, buttons, users, groups, user_in_groups
log_start_message = 'Бот успешно запущен!'
@ -31,6 +32,8 @@ mod_languages_name = languages.module_name
mod_messages_name = messages.module_name
mod_buttons_name = buttons.module_name
mod_users_name = users.module_name
mod_groups_name = groups.module_name
mod_user_in_groups_name = user_in_groups.module_name
start_mod_list = [mod_start_name]
mod_access = access.ModuleAccess(start_mod_list, g_Bot, g_ModuleAgregator, g_BotMessages, g_BotButtons, g_Log)
@ -39,7 +42,14 @@ g_ModuleAgregator.AddModule(mod_access)
mod_users = users.ModuleUsers(None, None, start_mod_list, start_mod_list, g_Bot, g_ModuleAgregator, g_BotMessages, g_BotButtons, g_Log)
g_ModuleAgregator.AddModule(mod_users)
child_mod_name_list = [mod_start_name, mod_users_name]
child_mod_name_list = [mod_start_name, mod_users_name, mod_user_in_groups_name]
mod_groups = groups.ModuleGroups(None, mod_user_in_groups_name, child_mod_name_list, start_mod_list, g_Bot, g_ModuleAgregator, g_BotMessages, g_BotButtons, g_Log)
g_ModuleAgregator.AddModule(mod_groups)
mod_user_in_groups = user_in_groups.ModuleUserInGroups(mod_groups_name, None, start_mod_list, start_mod_list, g_Bot, g_ModuleAgregator, g_BotMessages, g_BotButtons, g_Log)
g_ModuleAgregator.AddModule(mod_user_in_groups)
child_mod_name_list = [mod_start_name, mod_users_name, mod_groups_name, mod_user_in_groups_name]
mod_users_groups_agregator = users_groups_agregator.ModuleUsersGroupsAgregator(child_mod_name_list, g_Bot, g_ModuleAgregator, g_BotMessages, g_BotButtons, g_Log)
g_ModuleAgregator.AddModule(mod_users_groups_agregator)

2
template/simple_message.py

@ -3,7 +3,7 @@
# Простые информационные сообщения
from bot_sys import user_access
from bot_sys import user_access, bot_messages
from bot_modules import access_utils, groups_utils
from aiogram import types

Loading…
Cancel
Save