130600
This commit is contained in:
95
unitib.py
Normal file
95
unitib.py
Normal file
@@ -0,0 +1,95 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
import logging
|
||||
import os
|
||||
from aiogram import Bot, Dispatcher, types
|
||||
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
|
||||
from aiogram.utils import executor
|
||||
|
||||
# Ваш токен от BotFather
|
||||
API_TOKEN = '7437033939:AAHmX2KvRecp0Y2uKFlldWGtoZXgNvRKRUk'
|
||||
|
||||
# Настройка логирования с записью в файл
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=[
|
||||
logging.FileHandler('bot_uniti_logs.log'),
|
||||
logging.StreamHandler()
|
||||
]
|
||||
)
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
# Инициализация бота и диспетчера
|
||||
bot = Bot(token=API_TOKEN)
|
||||
dp = Dispatcher(bot)
|
||||
|
||||
# Переменная для хранения состояния пользователя
|
||||
user_states = {}
|
||||
|
||||
# Функция для создания клавиатуры с inline-кнопками
|
||||
def get_inline_keyboard():
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
button1 = InlineKeyboardButton("Скачать с YouTube", callback_data="action_2")
|
||||
button2 = InlineKeyboardButton("Отправить в группы", callback_data="action_1")
|
||||
button3 = InlineKeyboardButton("Скачать с Instagram", callback_data="action_3")
|
||||
keyboard.add(button1, button3)
|
||||
keyboard.add(button2)
|
||||
return keyboard
|
||||
|
||||
# Функция для создания клавиатуры с кнопкой отмены
|
||||
def get_cancel_keyboard():
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
cancel_button = InlineKeyboardButton("Отмена", callback_data="cancel")
|
||||
keyboard.add(cancel_button)
|
||||
return keyboard
|
||||
|
||||
# Функция для создания клавиатуры с кнопкой "Назад"
|
||||
def get_back_keyboard():
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
back_button = InlineKeyboardButton("Назад", callback_data="back")
|
||||
keyboard.add(back_button)
|
||||
return keyboard
|
||||
|
||||
# Обработчик команды /start
|
||||
@dp.message_handler(commands=['start'])
|
||||
async def send_welcome(message: types.Message):
|
||||
await message.reply("Привет! Я бот с inline-кнопками. Выберите действие:", reply_markup=get_inline_keyboard())
|
||||
|
||||
# Обработчик нажатий на inline-кнопки
|
||||
@dp.callback_query_handler(lambda c: c.data and c.data.startswith('action_'))
|
||||
async def process_callback_button(callback_query: types.CallbackQuery):
|
||||
action = callback_query.data
|
||||
if action == 'action_1':
|
||||
await bot.answer_callback_query(callback_query.id, text='Вы выбрали действие 1!')
|
||||
# Отправить ссылку на другого бота
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
keyboard.add(InlineKeyboardButton("Перейти в бот перессылки", url="https://t.me/TGSendMessageFiPiBot"))
|
||||
await bot.send_message(callback_query.from_user.id, "Нажмите на кнопку, чтобы перейти в другой бот.",
|
||||
reply_markup=keyboard)
|
||||
elif action == 'action_2':
|
||||
await bot.answer_callback_query(callback_query.id, text='Вы выбрали действие 2!')
|
||||
# Отправить ссылку на другого бота
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
keyboard.add(InlineKeyboardButton("Перейти в бота скачиваний с YouTube", url="https://t.me/haligali_bot"))
|
||||
await bot.send_message(callback_query.from_user.id, "Нажмите на кнопку, чтобы перейти в другой бот.",
|
||||
reply_markup=keyboard)
|
||||
elif action == 'action_3':
|
||||
await bot.answer_callback_query(callback_query.id, text='Вы выбрали действие 3!')
|
||||
# Отправить ссылку на другого бота
|
||||
keyboard = InlineKeyboardMarkup()
|
||||
keyboard.add(InlineKeyboardButton("Перейти в бота скачиваний с Instagram", url="https://t.me/irktestass_bot"))
|
||||
await bot.send_message(callback_query.from_user.id, "Нажмите на кнопку, чтобы перейти в другой бот.", reply_markup=keyboard)
|
||||
|
||||
await bot.edit_message_reply_markup(callback_query.from_user.id, callback_query.message.message_id, reply_markup=None)
|
||||
|
||||
# Обработчик нажатия на кнопку "Отмена" или "Назад"
|
||||
@dp.callback_query_handler(lambda c: c.data and (c.data == 'cancel' or c.data == 'back'))
|
||||
async def process_cancel_or_back_button(callback_query: types.CallbackQuery):
|
||||
user_states[callback_query.from_user.id] = None
|
||||
await bot.answer_callback_query(callback_query.id, text='Действие отменено.')
|
||||
await bot.send_message(callback_query.from_user.id, "Действие отменено.", reply_markup=get_inline_keyboard())
|
||||
|
||||
if __name__ == '__main__':
|
||||
logger.info('Start polling.')
|
||||
executor.start_polling(dp, skip_updates=True)
|
||||
Reference in New Issue
Block a user