Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from aiogram.types import Message, CallbackQuery, ReplyKeyboardMarkup, KeyboardButton
- from aiogram.dispatcher.filters.state import State, StatesGroup
- from aiogram.dispatcher import FSMContext
- from aiogram.dispatcher.filters import Text
- from connection import dp, database_try_create
- from connection import database_query
- from connection import bot,storage
- from bot import bot, dp
- from config import ADMIN_ID
- from aiogram import types
- from fb import FEEDBACK_USER_ID
- from feedback import feedback_message
- import logging
- # States
- class BotStates(StatesGroup):
- started = State()
- picked_like = State()
- picked_unlike = State()
- send= State()
- open_kb = ReplyKeyboardMarkup(resize_keyboard=True,)
- open_kb.row('Пропозиція','Скарга','Інформація')
- start_kb = ReplyKeyboardMarkup(resize_keyboard=True,)
- start_kb.row('Пропозиція', 'Скарга')
- cancel_kb = ReplyKeyboardMarkup(resize_keyboard=True,)
- cancel_kb.row('Отмена')
- async def send_to_admin(dp): # when bot is starting procedure
- await bot.send_message(chat_id=ADMIN_ID, text='Бот запущений')
- # starting bot when user sends `/start` command
- @dp.message_handler(commands=['start'])
- async def cmd_start(message: Message, ):
- await BotStates.started.set()
- await message.answer(f"Привіт!\n По якому питанню звертаєтесь?", reply_markup=open_kb )
- # cancel everything
- @dp.message_handler(state='*', commands='cancel')
- @dp.message_handler(Text(equals=['cancel', 'отмена'], ignore_case=True), state='*')
- async def cancel_handler(message: Message, state: FSMContext):
- current_state = await state.get_state()
- if current_state is None:
- return
- await BotStates.started.set()
- await message.answer('Отменено.', reply_markup=open_kb)
- @dp.message_handler(commands='info')
- @dp.message_handler(Text(equals=['Інформація','info'],))
- async def get_help(message: Message,state):
- await BotStates.started.set()
- await message.reply(f"Привіт!\n Використовуйте:\n /start - щоб залишити звертання!!! \n /help - щоб побачити це повідомлення!!!" , reply_markup=ReplyKeyboardRemove())
- # picking weather or currency rate
- @dp.message_handler(state=BotStates.started)
- async def first_pick(message: Message, state: FSMContext):
- if message.text == 'Пропозиція':
- await BotStates.picked_like.set()
- await message.answer(f"У чому полягає {message.text} \n(пишіть все в одному повідомленні). ", reply_markup=cancel_kb)
- elif message.text == 'Скарга':
- await BotStates.picked_unlike.set()
- await message.answer(f"У чому полягає {message.text} \n(пишіть все в одному повідомленні). ", reply_markup=cancel_kb)
- else:
- await message.answer(f"Натисніть на потрібну для вас кнопку ")
- @dp.message_handler(commands=['ban'])
- async def banning(message: types.Message):
- if message.chat.id == FEEDBACK_USER_ID:
- units = database_query(f"SELECT user_id FROM messages WHERE message_id = {message.reply_to_message.message_id}")
- unit = units[0][0]
- some = database_query(f"SELECT user_id FROM blocked WHERE user_id = {unit}")
- resu = some
- print(resu)
- if not resu:
- database_query(f"INSERT INTO blocked(user_id) "
- f"VALUES('{unit}')")
- await message.answer(f"Ви заблокували {str(unit)}")
- await bot.send_message(unit,"Вас заблокували")
- @dp.message_handler(commands=['unban'])
- async def banning(message: types.Message):
- if message.chat.id == FEEDBACK_USER_ID:
- units = database_query(f"SELECT user_id FROM messages WHERE message_id = {message.reply_to_message.message_id}")
- unit = units[0][0]
- some = database_query(f"SELECT user_id FROM blocked WHERE user_id = {unit}")
- resu = some
- print(resu[0][0])
- if resu:
- try:
- database_query(f"DELETE FROM blocked WHERE user_id = {resu[0][0]}")
- await message.answer(f"Ви розблокували {str(resu[0][0])}")
- await bot.send_message(unit,"Вас розблокували")
- except Exception as e:
- print(str(e))
- @dp.message_handler(lambda message: True, content_types=['text', 'photo', 'sticker', 'video', 'audio', 'voice', 'location', 'animation', 'contact', 'document'])
- async def feedback_message_event(message: types.Message):
- await BotStates.picked_like.set()
- await feedback_message(message)
- async def on_shutdown(dp):
- await bot.close()
- await storage.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement