mirror of
https://github.com/MrSedan/neuro-reply-bot-reworked.git
synced 2026-01-14 21:49:42 +03:00
Initial
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
venv
|
||||
**/__pycache__
|
||||
.env
|
||||
13
.vscode/settings.json
vendored
Normal file
13
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"editor.defaultFormatter": "ms-python.autopep8",
|
||||
"files.exclude": {
|
||||
"**/.git": true,
|
||||
"**/.svn": true,
|
||||
"**/.hg": true,
|
||||
"**/CVS": true,
|
||||
"**/.DS_Store": true,
|
||||
"**/Thumbs.db": true,
|
||||
"**/.ruby-lsp": true,
|
||||
"**/venv": true
|
||||
}
|
||||
}
|
||||
22
handlers/admin_commands.py
Normal file
22
handlers/admin_commands.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from typing import Any
|
||||
|
||||
from aiogram import Bot, F, Router, types
|
||||
from aiogram.filters import Command
|
||||
|
||||
from handlers.middlewares.user import AdminMiddleware
|
||||
|
||||
|
||||
class Admin_commands:
|
||||
bot: Bot
|
||||
router: Router
|
||||
def __init__(self, bot: Bot) -> None:
|
||||
self.bot = bot
|
||||
self.router = Router()
|
||||
self.router.message.middleware(AdminMiddleware())
|
||||
|
||||
@self.router.message(Command('info'))
|
||||
async def info_command(message: types.Message):
|
||||
await message.answer('Тест')
|
||||
|
||||
def __call__(self, *args: Any, **kwds: Any) -> Router:
|
||||
return self.router
|
||||
17
handlers/middlewares/user.py
Normal file
17
handlers/middlewares/user.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from typing import Any, Awaitable, Callable, Dict
|
||||
|
||||
from aiogram import BaseMiddleware
|
||||
from aiogram.types import Message
|
||||
|
||||
ADMIN_LIST = [248770879, 395543883]
|
||||
|
||||
class AdminMiddleware(BaseMiddleware):
|
||||
def __init__(self) -> None:
|
||||
pass
|
||||
|
||||
async def __call__(self, handler: Callable[[Message, Dict[str, Any]], Awaitable[Any]], event: Message, data: Dict[str, Any]) -> Any:
|
||||
if event.from_user.id in ADMIN_LIST:
|
||||
await event.answer('Команда только для админов!')
|
||||
return None
|
||||
return await handler(event, data)
|
||||
|
||||
33
main.py
Normal file
33
main.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import asyncio
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
|
||||
import aioschedule as schedule
|
||||
import dotenv
|
||||
from aiogram import Bot, Dispatcher, F, types
|
||||
from aiogram.filters import Command, CommandStart
|
||||
from aiogram.fsm.context import FSMContext
|
||||
from aiogram.fsm.state import State, StatesGroup
|
||||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||||
|
||||
from handlers.admin_commands import Admin_commands
|
||||
|
||||
dotenv.load_dotenv()
|
||||
|
||||
token = os.getenv('TOKEN')
|
||||
|
||||
bot = Bot(token)
|
||||
dp = Dispatcher()
|
||||
|
||||
@dp.message(CommandStart())
|
||||
async def start_message(message: types.Message):
|
||||
await message.answer('Абоба')
|
||||
|
||||
async def main() -> None:
|
||||
dp.include_router(Admin_commands(bot)())
|
||||
await dp.start_polling(bot, skip_updates=True)
|
||||
|
||||
if __name__ == '__main__':
|
||||
logging.basicConfig(level=logging.INFO, stream=sys.stdout)
|
||||
asyncio.run(main())
|
||||
3
requirements.txt
Normal file
3
requirements.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
aiogram==3.1.1
|
||||
aioschedule @ https://github.com/AleksHeller/python-aioschedule/archive/refs/heads/master.zip
|
||||
python-dotenv==1.0.0
|
||||
Reference in New Issue
Block a user