From 977d25538d77f0e4d37d26fbd14ecd82b6172e39 Mon Sep 17 00:00:00 2001 From: n0body Date: Thu, 24 Jul 2025 00:53:13 +0300 Subject: [PATCH] - Implemented echo bot and ability to quickly modify bot commands - reworked config to grab values from .env - Added a requirements file(with modules needed for bot to function) - Added a separate bot initialization file for simpler launching --- requirements.txt | Bin 0 -> 888 bytes src/Backend/ISwork.py | 3 ++- src/Backend/config.py | 8 -------- src/Backend/dbwork.py | 3 ++- src/Frontend/createbot.py | 37 +++++++++++++++++++++++++++++++++++++ src/__main__.py | 5 +++++ src/config.py | 15 +++++++++++++++ 7 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 requirements.txt delete mode 100644 src/Backend/config.py create mode 100644 src/Frontend/createbot.py create mode 100644 src/__main__.py create mode 100644 src/config.py diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000000000000000000000000000000000000..6ed74f38502af47925e1f0cb941d2041dbb05fd1 GIT binary patch literal 888 zcmZuvTW*6u44m&uJxZbg>Eov#y+NfOAfiAB5&;B6Dmi@H8Ji`jtyUWd9*<{ie}AQ@ z(BjD78U+Tt@Wj|-i->oJd)&b>C3?P{4UsSw|3RD>?|3FM>3;Bk%@bI+cr@M{=LsWE zw{S*eRptGv?m%rN8sm~W>5{&ntzoPsOUhdy$A-^|oWaeG*rx^miZ{F?!^yB0bKS4% zuU!x1X^2&aR9UW7IhoZ-d%w7Qut?CAk-ulWvfg@EcXTI|)C7-5qFP*uZm6Xq+i10< z2-r{+;j^uXEQ!@~ zuvurOMhro*@37RYa}H$u=H literal 0 HcmV?d00001 diff --git a/src/Backend/ISwork.py b/src/Backend/ISwork.py index b56b5ff..51220cc 100644 --- a/src/Backend/ISwork.py +++ b/src/Backend/ISwork.py @@ -1,7 +1,8 @@ from minio import Minio from random import randint import DBwork -import config +from src import config + def _setClient(): minio_client = Minio( diff --git a/src/Backend/config.py b/src/Backend/config.py deleted file mode 100644 index ac33554..0000000 --- a/src/Backend/config.py +++ /dev/null @@ -1,8 +0,0 @@ -IS_address = "localhost:9000" -acc_key = "minioadmin" -sec_key = "minioadmin" -db_name = "postgres_db" -postgres_user = "postgres_user" -postgres_password = "postgres_password" -host_name = "localhost" -port = "5430" \ No newline at end of file diff --git a/src/Backend/dbwork.py b/src/Backend/dbwork.py index 0b63542..21bcdb2 100644 --- a/src/Backend/dbwork.py +++ b/src/Backend/dbwork.py @@ -1,5 +1,6 @@ import psycopg2 -import config +from src import config + def _get_last_id(cursor): cursor.execute("SELECT MAX(id) FROM usernames") diff --git a/src/Frontend/createbot.py b/src/Frontend/createbot.py new file mode 100644 index 0000000..25ed92e --- /dev/null +++ b/src/Frontend/createbot.py @@ -0,0 +1,37 @@ +from src import config +import asyncio +import logging +from aiogram import Bot, Dispatcher, F, Router +from aiogram.filters import Command +from aiogram.types import Message +from aiogram.client.default import DefaultBotProperties +from aiogram.enums import ParseMode +from aiogram.fsm.storage.memory import MemoryStorage +from apscheduler.schedulers.asyncio import AsyncIOScheduler + + +start_router = Router() +scheduler = AsyncIOScheduler(timezone = 'Europe/Moscow') + + +logging.basicConfig(level = logging.INFO, format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s') +logger = logging.getLogger(__name__) + +bot = Bot(token = config.TG_TOKEN , default = DefaultBotProperties(parse_mode = ParseMode.HTML)) +dp = Dispatcher(storage = MemoryStorage()) + + +@dp.message(Command('start')) +async def cmd_start(message: Message): + await message.answer('Запуск сообщения по команде /start используя фильтр CommandStart()') + + +@dp.message(F.text) +async def basic_reaction(message: Message): + if message.text != '': + await message.answer(message.text) + + +async def main(): + await dp.start_polling(bot) + diff --git a/src/__main__.py b/src/__main__.py new file mode 100644 index 0000000..649d220 --- /dev/null +++ b/src/__main__.py @@ -0,0 +1,5 @@ +import asyncio +from Frontend.createbot import main + + +asyncio.run(main()) \ No newline at end of file diff --git a/src/config.py b/src/config.py new file mode 100644 index 0000000..538fceb --- /dev/null +++ b/src/config.py @@ -0,0 +1,15 @@ +from decouple import config + + +IS_address = config('IS_address') +acc_key = config('acc_key') +sec_key = config('sec_key') +db_name = config('db_name') +postgres_user = config('postgres_user') +postgres_password = config('postgres_password') +host_name = config('host_name') +port = config('port') + + +TG_TOKEN = config('TG_TOKEN') +# ADMINS = [int(admin_id) for admin_id in config('ADMINS').split(',')] \ No newline at end of file