#Main файл кода :
import asyncio
from aiogram import Bot, Dispatcher
from app.handlers import router
async def main():
bot = Bot(token='токен моего бота')
dp = Dispatcher()
dp.include_router(router)
await dp.start_polling(bot)
if __name__ == '__main__':
try:
asyncio.run(main())
except KeyboardInterrupt:
print('Бот выключен')
#handlers файл кода:
from aiogram import F, Router
from aiogram.types import Message
from aiogram.filters import CommandStart
import asyncio
from aiogram.fsm.state import State, StatesGroup
from aiogram.fsm.context import FSMContext
import app.keyboards as kb
router = Router()
class Change(StatesGroup):
amount_1 = State()
amount_2 = State()
amount_3 = State()
amount = [20, 15, 3600]
#первая клавиатура
@router.message(CommandStart())
async def cmd_start(message: Message):
await message.answer('Привет!', reply_markup=kb.main)
#сменяющие ее кнопки
@router.message(F.text == 'Yescoin')
async def options(message: Message):
await message.answer('Выберите нужную опцию', гeply_markup=kb.options)
#Острочка времени до прихода уведомления
@router.message(F.text == 'Запустить таймер')
async def options1(message: Message):
await message.answer('Таймер запущен' , reply_markup=kb.main)
await asyncio.sleep(amount[0])
await message.answer('Время майнить Yescoin')
#возможность изменить время таймера на заданное пользователем число в секундах
@router.message(F.text == 'Изменить время таймера')
async def options2(message: Message):
await message.answer('Изменить время таймера для Yescoin')
@router.message(Change.amount_1)
async def Change_chislo(message: Message, state: FSMContext):
await state.update_data(amount=message.text)
global amount
try:
amount[0] = int(message.text.strip())
except ValueError:
await message.answer('Неверный формат. Впишите число')
await state.set_state(Change.amount_1)
return
await message.answer('Время таймера успешно изменено')
#Далее код повторяется для кождой кнопки главной клавиатуры
@router.message(F.text == 'Mine POO')
async def options3(message: Message):
await message.answer('Выберите нужную опцию', гeply_markup=kb.options)
@router.message(F.text == 'Запустить таймер')
async def options4(message: Message):
await message.answer('Таймер запущен', reply_markup=kb.main)
await asyncio.sleep(amount[1])
await message.answer('Время майнить Mine POO')
@router.message(F.text == 'Изменить время таймера')
async def options5(message: Message):
await message.answer('Изменить время таймера для Mine POO')
@router.message(Change.amount_2)
async def Change_chislo_1(message: Message, state: FSMContext):
await state.update_data(amount=message.text)
global amount
try:
amount[1] = int(message.text.strip())
except ValueError:
await message.answer('Неверный формат. Впишите число')
await state.set_state(Change.amount_2)
return
await message.answer('Время таймера успешно изменено')
@router.message(F.text == 'MemeFi Coin')
async def options6(message: Message):
await message.answer('Выберите нужную опцию', гeply_markup=kb.options)
@router.message(F.text == 'Запустить таймер')
async def options7(message: Message):
await message.answer('Таймер запущен', reply_markup=kb.main)
await asyncio.sleep(amount[2])
await message.answer('Время майнить MemeFi Coin')
@router.message(F.text == 'Изменить время таймера')
async def options8(message: Message):
await message.answer('Изменить время таймера для MemeFi Coin')
@router.message(Change.amount_3)
async def Change_chislo_2(message: Message, state: FSMContext):
await state.update_data(amount=message.text)
global amount
try:
amount[2] = int(message.text.strip())
except ValueError:
await message.answer('Неверный формат. Впишите число')
await state.set_state(Change.amount_3)
return
await message.answer('Время таймера успешно изменено')
#keyboards файл кода:
from aiogram.types import (ReplyKeyboardMarkup, KeyboardButton, InlineKeyboardMarkup, InlineKeyboardButton)
main = ReplyKeyboardMarkup(keyboard=[[KeyboardButton(text='Yescoin')],
[KeyboardButton(text='Mine POO')],
[KeyboardButton(text='PocketFi'),
KeyboardButton(text='MemeFi Coin')]],
resize_keyboard=True,
input_field_placeholder='Выберите кликер...')
options = InlineKeyboardMarkup(inline_keyboard=[
[InlineKeyboardButton(text='Запустить таймер', callback_data='start_timer')],
[InlineKeyboardButton(text='Изменить время таймера', callback_data='change_timer')],
[InlineKeyboardButton(text='Вернуться в главное меню', callback_data='back')]])```