chore: база

This commit is contained in:
protokey committed 2026-09-24 17:05:42 +04:00
1 parent 93790da617
commit 5f53cadf89
39 files changed
+1458 -19

No files matched your search

+3
View File
@@ -3,3 +3,6 @@ from django.apps import AppConfig
class AppConfig(AppConfig):
name = 'App'
def ready(self):
from . import bot # noqa: F401 регистрирует интерфейс бота
+39
View File
@@ -0,0 +1,39 @@
from Telegram.interfaces import Interface, command, register, text
MAIN_MENU = 'главное меню'
CANCEL = 'отмена'
FAQ = 'ФАК'
ADD_SERVER = 'добавить сервер'
HELP = 'помощь'
MAIN_KEYBOARD = [[FAQ, ADD_SERVER, HELP]]
@register
class MyPointInterface(Interface):
title = 'MyPoint VPN'
@command('start')
@text(MAIN_MENU, CANCEL)
def main_menu(self, ctx):
ctx.reset()
# TODO: перечислить серверы пользователя и добавить кнопку "управление сервером", когда появится модель данных
ctx.reply('привет. выбери действие', keyboard=MAIN_KEYBOARD)
@text(FAQ)
def faq(self, ctx):
# TODO: текст FAQ
ctx.reply('FAQ пока пуст')
@text(HELP)
def help(self, ctx):
# TODO: текст помощи
ctx.reply('Помощь пока пуста')
@text(ADD_SERVER)
def add_server(self, ctx):
# TODO: меню добавления сервера, когда появится модель данных App
ctx.reply('Добавление сервера пока не реализовано')
def fallback(self, ctx):
ctx.reply('Не понял. Воспользуйся кнопками меню.', keyboard=MAIN_KEYBOARD)
+18
View File
@@ -0,0 +1,18 @@
from django.test import TestCase
from Telegram import interfaces
from Telegram.dispatcher import handle_update
from Telegram.models import Bot
from Telegram.tests import FakeApi, message_update
from .bot import MAIN_KEYBOARD, MyPointInterface
class MyPointInterfaceTests(TestCase):
def test_start_and_main_menu_button_are_same(self):
api = FakeApi()
bot = Bot.objects.create(token='1:test', interface=interfaces.key(MyPointInterface))
handle_update(api, bot, message_update(1, '/start'))
handle_update(api, bot, message_update(2, 'главное меню'))
self.assertEqual(api.sent[0][1], api.sent[1][1])
self.assertEqual([button['text'] for button in api.sent[0][2].keyboard[0]], MAIN_KEYBOARD[0])