From d47bc52770f2336608fb22a8c1bc6fda65dda548 Mon Sep 17 00:00:00 2001 From: Anton Date: Sat, 23 Sep 2023 22:21:26 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=BD=D1=83=D0=BB=20=D0=B2?= =?UTF-8?q?=20=D0=B8=D1=81=D1=85=D0=BE=D0=BD=D1=8B=D0=B9=20=D0=B2=D0=B8?= =?UTF-8?q?=D0=B4=20mod=5Ftable=5Foperate,=20orders,=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D0=BB=20adminconfig.py=20=D0=B2=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B0?= =?UTF-8?q?=D0=B4=D0=BC=D0=B8=D0=BD=D0=BF=D0=B0=D0=BD=D0=B5=D0=BB=D0=B8,?= =?UTF-8?q?=20=D1=82=D0=BE=D0=BA=D0=B5=D0=BD=20=D0=B8=20id=20=D1=83=D0=B1?= =?UTF-8?q?=D1=80=D0=B0=D0=BB=20#5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++++ adminpanel/configadmin.py | 25 +++++++++++++++++++++++++ adminpanel/settings.py | 2 +- adminpanelapp/models.py | 9 ++++++--- bot_modules/mod_table_operate.py | 3 +-- bot_modules/orders.py | 6 ------ bot_sys/config.py | 14 +++++++------- 7 files changed, 46 insertions(+), 19 deletions(-) create mode 100644 adminpanel/configadmin.py diff --git a/README.md b/README.md index 24d9c56..85b109c 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,12 @@ Обзор возможностей пользователя - https://vk.com/video-210998646_456239042 +Проекты - https://vk.com/wall-210998646_139 + +Работа с заказами - https://vk.com/wall-210998646_137 + +Админ-панель - https://vk.com/wall-210998646_126 + ### Модульный Telegram-бот с возможностью редактирования прав доступа, как пользователям, так и группам пользователей Список модулей diff --git a/adminpanel/configadmin.py b/adminpanel/configadmin.py new file mode 100644 index 0000000..4d3e990 --- /dev/null +++ b/adminpanel/configadmin.py @@ -0,0 +1,25 @@ +g_telegram_bot_api_token = '' +# --------------------------------------------------------- +# Файлы для настройки, которые не коммитятся в git +telegram_bot_api_token_file_name = 'config_telegram_bot_api_token' +# --------------------------------------------------------- +# Дополнительные функции +def ClearReadLine(a_Line): + return a_Line[:-1] +def GetFirstLineFromFile(a_FileName): + f = open(a_FileName, 'r') + result = f.readline() + f.close() + return result +def GetAllLinesFromFile(a_FileName): + f = open(a_FileName, 'r') + result = f.readlines() + f.close() + return result +# --------------------------------------------------------- +# Основные функции +def GetTelegramBotApiToken(): + global g_telegram_bot_api_token + if len(g_telegram_bot_api_token) == 0: + g_telegram_bot_api_token = ClearReadLine(GetFirstLineFromFile(telegram_bot_api_token_file_name)) + return g_telegram_bot_api_token \ No newline at end of file diff --git a/adminpanel/settings.py b/adminpanel/settings.py index e94cc72..f471600 100644 --- a/adminpanel/settings.py +++ b/adminpanel/settings.py @@ -127,6 +127,6 @@ DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' ASGI_APPLICATION = 'adminpanelapp.asgi.application' ASYNC_MODE = 'django' -g_telegram_bot_api_token = '6212211018:AAEwcEN0NdjbhqDiClUk8vZkE_vfRUxsReU' + diff --git a/adminpanelapp/models.py b/adminpanelapp/models.py index 38d817b..10992d2 100644 --- a/adminpanelapp/models.py +++ b/adminpanelapp/models.py @@ -2,7 +2,9 @@ from urllib.parse import quote import requests from django.db import models -from adminpanel.settings import g_telegram_bot_api_token + +from adminpanel.configadmin import GetTelegramBotApiToken + class Orders(models.Model): @@ -19,8 +21,8 @@ class Orders(models.Model): orderStatus = models.CharField(max_length=100, verbose_name='статус заказа', blank=True, null=True) def get_photo_html(self, width=100, height=100, large_width=400, large_height=400): - token = g_telegram_bot_api_token file_id = self.orderPhoto + token = GetTelegramBotApiToken() url = f"https://api.telegram.org/bot{token}/getFile?file_id={file_id}" response = requests.get(url) @@ -75,8 +77,9 @@ class Orders(models.Model): """ return html + def get_photopay_html(self, width=100, height=100, large_width=400, large_height=400): - token = g_telegram_bot_api_token + token = GetTelegramBotApiToken() file_id = self.orderPhotoPay url = f"https://api.telegram.org/bot{token}/getFile?file_id={file_id}" diff --git a/bot_modules/mod_table_operate.py b/bot_modules/mod_table_operate.py index d0211c4..b229441 100644 --- a/bot_modules/mod_table_operate.py +++ b/bot_modules/mod_table_operate.py @@ -1,10 +1,10 @@ # -*- coding: utf8 -*- # Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) + # Модуль для редактирования и просмотра таблицы в БД from bot_sys import keyboard, user_access, bd_table, bot_bd, bot_subscribes from bot_modules import access_utils, mod_simple_message - from template import simple_message, bd_item, bd_item_select, bd_item_view, bd_item_delete, bd_item_add, bd_item_edit from aiogram.dispatcher import FSMContext @@ -259,7 +259,6 @@ class TableOperateModule(mod_simple_message.SimpleMessageModule): print('request', request, param) res, error = self.m_Bot.SQLRequest(request, commit = True, return_error = True, param = param) - self.OnChange() if error: self.m_Log.Error(f'Пользователь {a_UserID}. Ошибка добавления записи в таблицу {request} {param}.') diff --git a/bot_modules/orders.py b/bot_modules/orders.py index b348204..4c7d52c 100644 --- a/bot_modules/orders.py +++ b/bot_modules/orders.py @@ -1,10 +1,6 @@ # -*- coding: utf8 -*- # Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) -import aiohttp -import requests -from asgiref.sync import sync_to_async -from adminpanelapp.models import Orders # Заказы from bot_sys import bot_bd, keyboard, user_access, bd_table, bot_subscribes @@ -221,8 +217,6 @@ class ModuleOrders(mod_table_operate.TableOperateModule): a_ItemData[status_field] = str(OrderStatus.NEW) a_ItemData[address_field] = '' a_ItemData[photo_pay_field] = '0' - - return super().AddBDItemFunc(a_ItemData, a_UserID) def GetStartKeyboardButtons(self, a_Message, a_UserGroups): diff --git a/bot_sys/config.py b/bot_sys/config.py index 28bbba8..6226f04 100644 --- a/bot_sys/config.py +++ b/bot_sys/config.py @@ -6,11 +6,11 @@ # --------------------------------------------------------- # API токен телеграмм бота. Создаётся с помощью @BotFather # Задаётся либо прямо тут в коде, либо в файле telegram_bot_api_token_file_name -g_telegram_bot_api_token = '6212211018:AAEwcEN0NdjbhqDiClUk8vZkE_vfRUxsReU' +g_telegram_bot_api_token = '' # Пользователи имеющие полный доступ, ID можно узнать например у этого бота @GetMyIDBot # Задаётся либо прямо тут в коде, либо в файле root_ids_file_name -g_root_ids = [1221909008] +g_root_ids = [] # Логирование событий в файл g_log_to_file = True @@ -24,7 +24,11 @@ root_ids_file_name = 'config_root_ids' # Дополнительные функции def ClearReadLine(a_Line): - return a_Line[:-1] + cleaned_line = "" + for char in a_Line: + if char.isprintable(): + cleaned_line += char + return cleaned_line def GetFirstLineFromFile(a_FileName): f = open(a_FileName, 'r') @@ -57,7 +61,3 @@ def GetRootIDs(): return g_root_ids -import os -import django -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'adminpanel.settings') -django.setup() \ No newline at end of file