Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sqlite3
- from aiogram import Bot, types
- from aiogram.contrib.fsm_storage.memory import MemoryStorage
- from aiogram.dispatcher import Dispatcher, FSMContext
- from aiogram.dispatcher.filters import Text
- from aiogram.types import CallbackQuery
- from aiogram.utils import executor
- from Databases.sqlite import Database
- from config import TOKEN
- from keyboards import menu_1, menu_2, menu_3, menu_4, il_1, il_2, il_3, il_4
- from raspisanie import data
- bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML)
- dp = Dispatcher(bot, storage=MemoryStorage())
- db = Database()
- @dp.message_handler(commands=['start'])
- async def process_start_command(message: types.Message, state: FSMContext):
- try:
- db.create_table_users()
- except Exception as e:
- print(e)
- print(db.select_all_users())
- await message.answer('🤖<b>BSUT Helper</b>🤖'
- f'\n{message.from_user.first_name} добро пожаловать!'
- '\n⬇️Для управления ботом⬇️'
- '\n⬇️Воспользуйтесь меню ⬇️')
- await message.answer('Найдите свою группу:', reply_markup=menu_4)
- name = message.from_user.full_name
- try:
- db.add_user(id=message.from_user.id, name=name)
- except sqlite3.IntegrityError as err:
- print(err)
- count_users = db.count_users()[0]
- await message.answer(f'В базе {count_users} пользователей')
- await state.set_state('grup')
- # Список групп
- @dp.inline_handler()
- async def empty_query(query: types.InlineQuery):
- grup = [types.InlineQueryResultArticle(
- id=d[0], title=d[1], description=d[2],
- input_message_content=types.InputTextMessageContent(message_text=d[3])
- ) for d in data]
- await query.answer(results=grup)
- @dp.message_handler(state='grup')
- async def enter_group(message: types.Message, state: FSMContext):
- grup = message.text
- db.update_group(grup=grup, id=message.from_user.id)
- user = db.select_user(id=message.from_user.id)
- await message.answer(f'Выбранна группа <b>{grup}</b>', reply_markup=menu_1)
- await state.finish()
- @dp.message_handler(text='ПН')
- async def send_text(message: types.Message):
- connect = sqlite3.connect('main.db')
- cursor = connect.cursor()
- cursor.execute('SELECT grup FROM Users WHERE id = ?', (message.from_user.id,))
- result = cursor.fetchone()
- if result is None:
- print('none')
- for row in result:
- if row == 'СВ-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SV_31__PN_n'")
- row = cursor.fetchone()
- await message.answer(row[0], reply_markup=il_1)
- elif row == 'СП-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SP_31__PN_n'")
- row = cursor.fetchone()
- await message.answer(row[0], reply_markup=il_1)
- elif row == 'СА-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SA_31__PN_n'")
- row = cursor.fetchone()
- await message.answer(row[0], reply_markup=il_1)
- connect.close()
- @dp.message_handler(text='ВТ')
- async def send_text(message: types.Message):
- connect = sqlite3.connect('main.db')
- cursor = connect.cursor()
- cursor.execute('SELECT grup FROM Users WHERE id = ?', (message.from_user.id,))
- result = cursor.fetchone()
- if result is None:
- print('none')
- for row in result:
- if row == 'СВ-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SV_31__VT_n'")
- row = cursor.fetchone()
- await message.answer(row[0], reply_markup=il_3)
- elif row == 'СП-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SP_31__VT_n'")
- row = cursor.fetchone()
- await message.answer(row[0], reply_markup=il_3)
- elif row == 'СА-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SA_31__VT_n'")
- row = cursor.fetchone()
- await message.answer(row[0], reply_markup=il_3)
- connect.close()
- @dp.callback_query_handler(text='PN_p')
- async def answer(call: CallbackQuery):
- connect = sqlite3.connect('main.db')
- cursor = connect.cursor()
- cursor.execute('SELECT grup FROM Users WHERE id = ?', (call.from_user.id,))
- result = cursor.fetchone()
- if result is None:
- print('none')
- for row in result:
- if row == 'СВ-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SV_31__PN_p'")
- row = cursor.fetchone()
- await call.message.answer(row[0], reply_markup=il_2)
- @dp.callback_query_handler(text='PN_n')
- async def answer(call: CallbackQuery):
- connect = sqlite3.connect('main.db')
- cursor = connect.cursor()
- cursor.execute('SELECT grup FROM Users WHERE id = ?', (call.from_user.id,))
- result = cursor.fetchone()
- if result is None:
- print('none')
- for row in result:
- if row == 'СВ-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SV_31__PN_n'")
- row = cursor.fetchone()
- await call.message.answer(row[0], reply_markup=il_1)
- @dp.callback_query_handler(text='VT_p')
- async def answer(call: CallbackQuery):
- connect = sqlite3.connect('main.db')
- cursor = connect.cursor()
- cursor.execute('SELECT grup FROM Users WHERE id = ?', (call.from_user.id,))
- result = cursor.fetchone()
- if result is None:
- print('none')
- for row in result:
- if row == 'СВ-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SV_31__VT_p'")
- row = cursor.fetchone()
- await call.message.answer(row[0], reply_markup=il_4)
- @dp.callback_query_handler(text='VT_n')
- async def answer(call: CallbackQuery):
- connect = sqlite3.connect('main.db')
- cursor = connect.cursor()
- cursor.execute('SELECT grup FROM Users WHERE id = ?', (call.from_user.id,))
- result = cursor.fetchone()
- if result is None:
- print('none')
- for row in result:
- if row == 'СВ-31':
- cursor.execute("SELECT `raspisanie` FROM `Schedule` WHERE `grup` = 'SV_31__VT_n'")
- row = cursor.fetchone()
- await call.message.answer(row[0], reply_markup=il_3)
- @dp.message_handler(Text(
- equals=['Расписание 🗓', 'Программы 💾', 'О проекте 📌', '⬅Назад', 'Тех. Поддержка 🛠', 'Поддержать проект 💰']))
- async def menu1(message: types.Message):
- if message.text == 'Расписание 🗓':
- await message.answer('<b>Нету вашего расписания😱 ?</b> \nОбратитесь в <i>тех. поддержку</i>',
- reply_markup=menu_3)
- elif message.text == 'Программы 💾':
- await message.answer(' 💾<b>Полезные программы</b>💾 '
- '\n\n1⃣ <a href="https://goo.su/34MY">Microsoft Office 2016-2019</a>'
- '\n\n2⃣ <a href="https://goo.su/34MZ">Autodesk AutoCAD 2021</a>'
- '\n\n3⃣ <a href="https://goo.su/34N1">Autodesk Revit 2019</a>'
- '\n\n4⃣ <a href="https://goo.su/352o">Mathcad 14.0 M020</a>')
- elif message.text == 'О проекте 📌':
- await message.answer('<b>BSUT Helper v1.0</b>'
- '\nПоследнее обновление: <i>20.11.2020</i>'
- '\n<i>+ Визуальные улучшения расписания</i>'
- '\n<i>+ Оптимизация кода бота</i>'
- '\n<i>+ Cоздана база данных</i>'
- '\nДата выхода: <i>18.11.2020</i>'
- '\nРазработчик <i>@mikitos59</i>'
- '\nРедактор <i>@Stoxly</i>', reply_markup=menu_2)
- elif message.text == '⬅Назад':
- await message.answer('Вы вышли в главное меню', reply_markup=menu_1)
- elif message.text == 'Тех. Поддержка 🛠':
- await message.answer('По всем вопросам вопросам обращаться к <i>@mikitos59</i>')
- elif message.text == 'Поддержать проект 💰':
- await message.answer('Скоро')
- @dp.message_handler()
- async def echo_message(message: types.Message):
- await message.answer('Я не знаю что ответить😰')
- if __name__ == '__main__':
- executor.start_polling(dp)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement