Browse Source

вернул в исхоный вид mod_table_operate, orders, добавил adminconfig.py в приложение админпанели, токен и id убрал #5

Anton 1 year ago
parent
commit
d47bc52770
  1. 6
      README.md
  2. 25
      adminpanel/configadmin.py
  3. 2
      adminpanel/settings.py
  4. 9
      adminpanelapp/models.py
  5. 3
      bot_modules/mod_table_operate.py
  6. 6
      bot_modules/orders.py
  7. 14
      bot_sys/config.py

6
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-бот с возможностью редактирования прав доступа, как пользователям, так и группам пользователей
Список модулей

25
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

2
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'

9
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}"

3
bot_modules/mod_table_operate.py

@ -1,10 +1,10 @@
# -*- coding: utf8 -*-
# Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru>
# Модуль для редактирования и просмотра таблицы в БД
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}.')

6
bot_modules/orders.py

@ -1,10 +1,6 @@
# -*- coding: utf8 -*-
# Общественное достояние, 2023, Алексей Безбородов (Alexei Bezborodov) <AlexeiBv+mirocod_platform_bot@narod.ru>
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):

14
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()
Loading…
Cancel
Save