Ejemplo n.º 1
0
from aiogram.dispatcher.filters import Command

from keyboards.inline import button
from loader import dp, db
from loader import get_sheet_values


@dp.message_handler(Command('next'))
@dp.throttled(rate=2)
async def get_message(message):
    value = db.select_user(user_id=message.from_user.id)
    count, start, end = value[1], value[2], value[3]
    text = get_sheet_values(f'C{start}:D{end}')
    await message.answer(text=text, reply_markup=button)
    db.update_value_for_next_command(start_point=start + count,
                                     end_point=end + count,
                                     user_id=message.from_user.id)
Ejemplo n.º 2
0
from aiogram import types
from aiogram.dispatcher.filters import Command
from aiogram.types import CallbackQuery

from keyboards.inline import service
from keyboards.inline.callback_datas import service_callback
from keyboards.default import start_menu

from loader import dp


@dp.message_handler(Command('help'))
async def show_services(message: types.Message):
    await message.answer(
        text=f'{message.from_user.username}, select a service',
        reply_markup=service)


@dp.callback_query_handler(service_callback.filter(service_name='one'))
async def callback_one(callback: CallbackQuery):
    await callback.answer(text='sen tan da din one')


# ---------------Main menu button--------------


@dp.callback_query_handler(service_callback.filter(service_name='menu'))
async def main_menu(call: CallbackQuery):
    await call.message.answer(
        f'Главное меню \n\n'
        f'/help - 🆘 Services \n'
Ejemplo n.º 3
0
from aiogram.dispatcher.filters import Command, Text
from aiogram.types import Message, ReplyKeyboardRemove

from keyboards.default import menu
from loader import dp


@dp.message_handler(Command("menu"))
async def show_menu(message: Message):
    await message.answer("Choose category from menu above:", reply_markup=menu)


@dp.message_handler(Text(equals=["CPU's", "GPU's", "SSD's"]))
async def get_category(message: Message):
    await message.answer(f"You choose {message.text}. Thanks", reply_markup=ReplyKeyboardRemove())
Ejemplo n.º 4
0
from aiogram import types
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command

from loader import dp
from states.test import Test


@dp.message_handler(Command('test'), state=None)
async def enter_test(message: types.Message):
    await message.answer("Вы начали тестирование.\n"
                         "Вопрос №1. \n\n"
                         "Вы уверены, что вам нужен telegram-bot?")

    await Test.Q1.set()


@dp.message_handler(state=Test.Q1)
async def answer_q1(message: types.Message, state: FSMContext):
    answer = message.text

    async with state.proxy() as data:
        data["answer1"] = answer

    await message.answer("Вопрос №2. \n"
                         "А вы уже составили ТЗ для вашего telegram-bot'а?")

    await Test.next()


@dp.message_handler(state=Test.Q2)
Ejemplo n.º 5
0
from database.database import DBCommands
from preload.load_all import dp
from aiogram.types import Message
from aiogram.dispatcher.filters import Command
from users.admin import Admin

db = DBCommands()
denis = Admin()


@dp.message_handler(Command('add_teacher'))
async def add_teacher(message: Message):
    teacher_id = int(message.text)
    await denis.add_teacher(teacher_id=teacher_id)
    await message.answer(f'Преподователь ')


@dp.message_handler(Command('delete_teacher'))
async def delete_teacher(message: Message):
    teacher_id = int(message.text)
    await denis.delete_teacher(teacher_id=teacher_id)
    await message.answer(f'Преподователь ')
Ejemplo n.º 6
0
        if not match:
            continue
        time_dict[i] = int(match[0].replace(i[0], ""))
    result = datetime.timestamp(
        timedelta(seconds=time_dict["seconds"],
                  minutes=time_dict["minutes"],
                  hours=time_dict["hours"],
                  days=time_dict["days"],
                  weeks=time_dict["weeks"]) + datetime.now())
    reason = re.findall(r"\w+$", text)
    reason = escape_md(reason[0]) if reason else "не указана"
    return result, reason


@dp.message_handler(IsAdmin(),
                    Command("unmute"),
                    chat_type=ChatType.SUPERGROUP)
async def cmd_mute(message: types.Message):
    reply = message.reply_to_message
    if not reply:
        return await message.reply("ну и кого мне размутить?")
    if reply.from_user.id in [
            i.user.id
            for i in await bot.get_chat_administrators(message.chat.id)
    ]:
        return await message.reply("отказ.")
    try:
        status = (await bot.get_chat_member(message.chat.id,
                                            reply.from_user.id)).status
    except Exception as e:
        return await message.reply(e)
Ejemplo n.º 7
0
from main import bot, ourDispatcher
from aiogram.types import Message, ReplyKeyboardRemove
from config import adminID
from aiogram.dispatcher.filters import Command, Text
from keyboard.default import menu


async def startupMessage(ourDispatcher):
    await bot.send_message(
        chat_id=adminID,
        text="АХТУНГ! \n Бот перезапущён - небольшие технические шОкОлАдКи XD "
    )


@ourDispatcher.message_handler(Command("start"))
async def echo(message: Message):
    text = f"Приветики, я бот, у которого ты можешь узнать свое расписание.\n Я думаю это намного удобней, чем каждый раз заглядывать в дневник. \n Уверен, мы сработаемся с тобой :) \n Напиши комманду /menu что бы перейти к выбору дня."
    await message.answer(text=text)


@ourDispatcher.message_handler(Command("menu"))
async def showMenu(message: Message):
    await message.answer("Выбери из меню ниже: ", reply_markup=menu)


@ourDispatcher.message_handler(Text(equals=["Понедельник"]))
async def getMonday(message: Message):
    await message.answer("8:30 - 9:15\n"
                         "1. *отдых :з*\n"
                         "10 минут - перемена\n"
                         "9:25 - 10:10\n"
Ejemplo n.º 8
0
import logging

from aiogram.dispatcher.filters import Command
from aiogram.types import Message, CallbackQuery

from keyboards.inline.choice_buttons import choice, b_ochnaya_keyboard, contact_keyboard, up_contact_keyboard, \
    magistratura_keyboard, m_budget_keyboard, m_pay_keyboard, mb_directions_keyboard, mb_documents_keyboard, \
    mb_stages_keyboard, mbs_enrollment_keyboard, mp_directions_keyboard, mp_documents_keyboard, mp_stages_keyboard
from loader import dp


@dp.message_handler(Command("start"))
async def show_courses(message: Message):
    await message.answer(
        text=
        "Добрый день! Я бот-помощник абитуриента. Нажмите /course для выбора меню!"
    )


@dp.message_handler(Command("course"))
async def show_courses(message: Message):
    await message.answer(text="Выберите направление:", reply_markup=choice)


@dp.callback_query_handler(text_contains='bakalavr')
async def go_in_bakalavr(call: CallbackQuery):
    await call.answer(cache_time=10)
    callback_data = call.data
    logging.info(f'call = {callback_data}')

    await call.message.answer(
Ejemplo n.º 9
0
from lo import bot, dp
from aiogram import types
from aiogram.dispatcher.filters import Command
from aiogram.types import ReplyKeyboardMarkup, ReplyKeyboardRemove, InlineKeyboardButton, InlineKeyboardMarkup, KeyboardButton
from string import Template
from aiogram.dispatcher import FSMContext


class TEST(StatesGroup):
    Q1 = State()  # name of the person who ordered
    Q2 = State()  # tele_number
    Q3 = State()  # address
    Q4 = State()  # payment of system


@dp.message_handler(Command('order_ps'), state=None)
async def start_order_kz(message: types.Message):
    await message.answer("Есіміңіз?")
    await TEST.Q1.set()


@dp.message_handler(state=TEST.Q1)
async def qu1(message: types.Message, state=FSMContext):
    answer = message.text
    global ans1
    ans1 = answer
    await state.update_data(answer1=answer)
    await message.answer("Телефон номеріңіз📱")
    await TEST.next()

Ejemplo n.º 10
0
import time
import asyncio
from aiogram import types, exceptions
from aiogram.dispatcher.filters import Command
from aiogram.utils.markdown import hlink

from filters import IsGroup, IsReplyFilter
from loguru import logger
from loader import dp, db

report_command = Command("report", prefixes={"/", "!"})


@dp.message_handler(IsGroup(), IsReplyFilter(True), report_command)
async def report_user(message: types.Message):
    """Отправляет жалобу на пользователя админам"""

    reply = message.reply_to_message

    # Если юзер репортит на сообщение из канала, то пропускаем это
    if reply.is_automatic_forward is True:
        await message.delete()
        return

    # Проверка на то что реплай сообщение написано от имени канала
    if reply.sender_chat:
        mention = reply.sender_chat.title
    else:
        mention = reply.from_user.get_mention()

    chat_id = message.chat.id
Ejemplo n.º 11
0
@dp.message_handler(text=["🔙 Back", "🔙 Назад", "🔙 Ortga"],
                    state=[Menu.Category, Menu.About, Feedback, Menu.Settings])
async def go_back(message: Message):
    await show_menu(message)


@dp.message_handler(text=["🔙 Back", "🔙 Назад", "🔙 Ortga"],
                    state=[
                        Settings.InputtingPhone, Settings.InputtingName,
                        Settings.ChangeLanguage
                    ])
async def go_back(message: Message):
    await show_settings(message)


@dp.message_handler(Command("menu"), state="*")
async def show_menu(message: Union[Message, CallbackQuery]):
    user = await db.get_user(message.from_user.id)

    print("lang=", user.language)

    if isinstance(message, Message):
        await message.answer(_("Main Menu"),
                             reply_markup=get_main_menu_keyboard(
                                 user.language))
    elif isinstance(message, CallbackQuery):
        await message.message.answer(_("Main Menu"),
                                     reply_markup=get_main_menu_keyboard(
                                         user.language))

    await Menu.Main_Menu.set()
Ejemplo n.º 12
0
                return False

    data['answers'].update(
        {message.message_id: {
            'answer': answer,
            'i': i,
            'j': j
        }})

    await state.update_data(data)

    return True


@dp.message_handler(Command('contact'), state=None)
async def contact(message: Message, state: FSMContext):
    await fill_data('contact', message, state)


@dp.message_handler(Command('polls'), state=None)
async def show_polls(message: Message):
    await message.answer('Выберите опрос', reply_markup=create_polls('take'))


@dp.callback_query_handler(poll_callback.filter(gr='take'), state=None)
async def choose_poll(call: CallbackQuery, callback_data: dict,
                      state: FSMContext):
    await call.answer(cache_time=60)
    await fill_data(callback_data.get('nm'), call.message, state)
Ejemplo n.º 13
0
from handlers.users.Finally_Quiz.quizing_medium.quiz_medium_photo import med_photo_quiz
from handlers.users.get_my_rating import get_my_rating
from keyboards.inline.callback_datas import quiz_callback
from keyboards.inline.medium_keyboard import med_photo_keyboard1, medium_keyboard1, medium_keyboard2, medium_keyboard3, \
    medium_keyboard4, medium_keyboard5, medium_keyboard6, \
    medium_keyboard7, medium_keyboard8, medium_keyboard9, medium_keyboard10, medium_keyboard11, medium_keyboard12, \
    medium_keyboard13, CorrectAnswersMediumQuiz
from keyboards.inline.quiz_keyboard import YesOrNoFinishKeyboard
from quiz_all_files.Quiz_Questions.questions_quiz import Medium_Array_Questions
from loader import dp, photo_db, db
from aiogram import types

from states.MachineStates_For_Quiz import QuizMedium, YesOrNoFinishShowRating


@dp.message_handler(Command("quiz_medium"), state=None)
async def enter_easy_test(message: types.Message):
    # присылаем фотку и клаву
    await message.answer_photo(photo=open(photo_db.get_one_file_name(name=med_photo_quiz[0]), 'rb'),
                               reply_markup=med_photo_keyboard1)
    await message.answer(text="<b>Вопрос 1:</b>\n" + Medium_Array_Questions[0], reply_markup=medium_keyboard1)
    await QuizMedium.Q1.set()


@dp.callback_query_handler(quiz_callback.filter(next="2m"), state=QuizMedium.Q1)
async def question_1(call: CallbackQuery, state: FSMContext, callback_data: dict):
    await call.answer(cache_time=60)
    answer1 = callback_data.get('answer')
    await state.update_data(answer1=answer1)
    await call.message.edit_text(text="<b>Вопрос 2:</b>\n" + Medium_Array_Questions[1], reply_markup=medium_keyboard2)
    await QuizMedium.Q2.set()
Ejemplo n.º 14
0
from keyboards.default import start_keyboard
from loader import dp, cursor, connect
from aiogram.dispatcher.filters import Command
from aiogram.types import Message


@dp.message_handler(Command("start"))  # Хендлер для команды старт
async def start_command(message: Message):
    hello_text = "Привет меня зовут Кира, я помогу вам заказать доставку из ресторана Milna, прямо к вашей двери ;)"
    user_id = message.from_user.id
    full_name = message.from_user.full_name
    cursor.execute(f"""SELECT id FROM user_data WHERE id={user_id}"""
                   )  # выбрать столбец id в таблице user_data, где id=user_id

    if cursor.fetchone(
    ) is None:  # если фунция не находит id пользователя в БД, создаем запись
        cursor.execute(
            f"""INSERT INTO user_data VALUES ({user_id},'{full_name}',NULL, NULL, NULL)"""
        )
        connect.commit()
        await message.answer(text=hello_text, reply_markup=start_keyboard)
        print("New user registered")

    else:
        await message.answer(text="С возвращением!",
                             reply_markup=start_keyboard)
        print("An old user has returned to us")


@dp.message_handler(Command("info"))  # Хендлер для команды хелп
async def start_menu(message: Message):
Ejemplo n.º 15
0
from aiogram import types
from aiogram.dispatcher.filters import Command

from data.convert import sticker
from data.messages import hello_message, donuts
from keyboards.default import menu
from keyboards.inline import search_kb
from keyboards.inline.inline_buttons import search_teacher
from loader import dp
from states import States


@dp.message_handler(Command('reset'))
async def do_reset(message: types.Message):
    await States.GROUP.set()
    await message.answer('Найди свою группу:', reply_markup=search_kb)


@dp.message_handler(Command('prepods'))
async def get_prepods_command(message: types.Message):
    await message.answer(
        'Нажмите на кнопку ниже, чтобы посмотреть рейтинг, либо просто отправьте боту фамилию.',
        reply_markup=search_teacher)


@dp.message_handler(Command('calls'))
async def get_sticker(message: types.Message):
    await message.answer_sticker(sticker=sticker)


@dp.message_handler(Command('search'))
Ejemplo n.º 16
0
import logging

from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command
from aiogram.types import Message, CallbackQuery

import keyboards
from data import config
from keyboards.inline.add_phrase_menu import add_phrase_menu_callback
from loader import dp, db


@dp.message_handler(Command("add_phrase"), user_id=config.ADMINS)
async def ask_add_phrase(msg: Message):
    user = msg.from_user
    phrase = msg.get_args()

    if len(phrase) == 0 or len(phrase) > 150:
        await msg.answer("Что-то не то с длинной твоей фразы, дорогой админ 🥴")
        return

    await msg.answer(phrase, reply_markup=keyboards.inline.add_phrase_menu)
    await msg.delete()

    logging.info(f"Admin-{user.username} want to add phrase -> {phrase}")


@dp.callback_query_handler(add_phrase_menu_callback.filter(action="add"))
async def add_phrase(call: CallbackQuery, state: FSMContext,
                     callback_data: dict):
    user = call.from_user
Ejemplo n.º 17
0
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram.types import CallbackQuery
from telegram_bot_pagination import InlineKeyboardPaginator

from loader import dp

data = ["Q", "A", "Z", "W", "S", "X", "E", "D", "C", "R", "F", "V"]


class TestState(StatesGroup):
    TestState = State()


@dp.message_handler(Command("test"))
async def test(message: types.Message, state: FSMContext):
    paginator = InlineKeyboardPaginator(len(data),
                                        current_page=0,
                                        data_pattern='page#{page}')
    # await TestState.TestState.set()
    await state.update_data(test_state="Test_State")

    await message.answer(data[0], reply_markup=paginator.markup)


@dp.callback_query_handler(regexp='page\#\d')
async def callback_test(call: CallbackQuery, state: FSMContext):
    print(f'-> {call.data}')
    page = call.data.split('#')[1]
    print(f'page={str(page)}')
Ejemplo n.º 18
0
from aiogram import types
from aiogram.dispatcher.filters import Command

from aiogram.types import ReplyKeyboardRemove

from aiogram.utils.exceptions import BadRequest

from filters import IsGroup

from loader import dp

from loguru import logger


@dp.message_handler(IsGroup(), Command(commands=["banmepls"], prefixes="/"))
async def ban_me(message: types.Message):
    member_id = message.from_user.id
    member_fullname = message.from_user.full_name

    try:
        await message.chat.kick(user_id=member_id,
                                until_date=datetime.timedelta(minutes=60))

        logger.info(f"Пользователь {member_fullname} был забанен!")

        await message.answer(
            f'Пользовтаель {member_fullname} был забанен по собественному желанию!'
        )

    except BadRequest:
Ejemplo n.º 19
0
from aiogram.dispatcher.filters import Command
from aiogram.dispatcher import FSMContext

from data.config import admins
from loader import dp, db, bot
from aiogram import types

from states import Send


@dp.message_handler(Command('GetUsers'))
async def admin_message(message: types.Message):
    if message.from_user.id in admins:
        users = db.select_all()
        users1 = ''
        for i in users:
            print(i[0], i[1], i[2])
            users1 += str([i[0], i[1], i[2]]) + '\n'

        await message.answer(users1)


@dp.message_handler(Command('sendmessage'))
async def sending(message: types.Message):
    if message.from_user.id in admins:
        await message.answer('Отправьте id пользователя')
        await Send.Sends.set()


@dp.message_handler(state=Send.Sends)
async def sending(message: types.Message, state: FSMContext):
Ejemplo n.º 20
0
def setup(dp: Dispatcher, *args, **kwargs):
    logging.info('Initialize admin module')

    dp.register_message_handler(cmd_uptime, Command('uptime', prefixes='#'))
Ejemplo n.º 21
0
from aiogram import types
from aiogram.dispatcher.filters import Command
from aiogram.types import ReplyKeyboardRemove

from keyboards.default import locations_buttons
from loader import dp


@dp.message_handler(Command("show_on_map"))
async def show_on_map(message: types.Message):
    await message.answer(
        f"Хай, {message.from_user.full_name}! \n"
        f"Узнать координаты",
        reply_markup=locations_buttons.keyboard)


@dp.message_handler(content_types=types.ContentTypes.LOCATION)
async def get_location(message: types.Message):
    location = message.location
    latitude = location.latitude
    longitude = location.longitude
    await message.answer(f"latitude = {latitude}"
                         f"longitude = {longitude}",
                         disable_web_page_preview=True,
                         reply_markup=ReplyKeyboardRemove())
    await message.answer_location(latitude=latitude, longitude=longitude)
Ejemplo n.º 22
0
from aiogram import types
from aiogram.dispatcher.filters import Command

from loader import dp


@dp.message_handler(Command('getid'))
async def get_id(message: types.Message):
	await message.answer("Mой ID: {}".format(message.from_user.id))
Ejemplo n.º 23
0
from aiogram.dispatcher.filters import Command, Text
from aiogram.types import Message, ReplyKeyboardRemove
from keyboards.default import menu
from loader import dp, bot
from bs4 import BeautifulSoup
import requests as req
from config import admin_id


@dp.message_handler(Command("start"))
async def show_menu(message: Message):
    await message.answer(
        "Привет! Я гид Геленджика, выбери то что тебя интересует",
        reply_markup=menu)
    await bot.send_message(chat_id=admin_id, text="Бота запустили")


@dp.message_handler(
    Text(equals=["Погода", "Web камеры", "Еда", "Куда сходить?"]))
async def get_food(message: Message):
    chat_id = message.from_user.id

    if message.text == 'Погода':
        weatherUrl = req.get("https://www.glavmore.ru/")
        weather = 'Сегодня в Геленджике ' + get_weather(weatherUrl)
        await bot.send_message(chat_id=chat_id, text=weather)

    if message.text == 'Web камеры':
        cam1 = req.get("https://www.glavmore.ru/webcam/gelendzhik-center.html")
        webCamImg1 = get_cam_img(cam1)
        text = 'Полюбуйся красивым видом:'
Ejemplo n.º 24
0
from aiogram import types
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command
from aiogram.types import CallbackQuery
from emoji import emojize

from keyboards.inline.metabolism import (activity_callback, gender_callback,
                                         metabolism_activity_markup,
                                         metabolism_gender_markup)
from loader import dp
from states.metabolism import Metabolism
from utils.misc import metabolism_calculation, rate_limit


@rate_limit(60, "metabolism")
@dp.message_handler(Command("metabolism", prefixes="!/"), state=None)
async def enter_test(message: types.Message):
    await message.answer(
        "Вы начали расчет своего уровня обмена веществ.\n"
        "Ваш пол?",
        reply_markup=metabolism_gender_markup,
    )

    await Metabolism.gender.set()


@dp.message_handler(state=Metabolism.gender)
@dp.callback_query_handler(gender_callback.filter())
async def answer_gender(call: CallbackQuery, callback_data: dict,
                        state: FSMContext):
    await call.message.edit_reply_markup(reply_markup=None)
Ejemplo n.º 25
0
from aiogram.dispatcher import FSMContext

from loader import dp
from aiogram import types
from aiogram.dispatcher.filters import Command

from states import SetName


@dp.message_handler(Command('setname'))
async def set_user_name(message: types.Message):
    await message.answer(text='How can I call you? \n' 'You can answer: \n')

    await SetName.get_nick_name.set()


@dp.message_handler(state=SetName.get_nick_name)
async def answer_1(message: types.Message, state: FSMContext):
    answer = message.text

    async with state.proxy() as save_data:
        save_data['answer1'] = answer
    await message.answer(text=f'your nick is {save_data["answer1"]}')

    await state.reset_state(with_data=False)
Ejemplo n.º 26
0
from aiogram.dispatcher.filters import Command
from aiogram.types import CallbackQuery, Message

from keyboards.default.start_text_button import parse_keyboard
from keyboards.inline.inline_callback import data_pick_callback
from keyboards.inline.parse import data_pick_keyboard

from loader import dp
from scraping_data import main

@dp.message_handler(Command('start'))
async def start_command(message:Message):
    await message.answer(text='Привет, чтобы узнать расписание нажми на кнопку ниже и затем выбери дату', reply_markup = parse_keyboard)

@dp.callback_query_handler(data_pick_callback.filter(action='refresh_data'))
async def refresh_data(call: CallbackQuery):
    await call.answer()
    await call.answer(text='Теперь выбери дату')
    await call.message.edit_reply_markup(reply_markup=data_pick_keyboard())


@dp.message_handler(text='Начать')
async def start_data_query(message: Message):
    await message.answer(text='Теперь выбери дату', reply_markup=data_pick_keyboard())

@dp.callback_query_handler(data_pick_callback.filter(action='data_pick'))
async def data_query(call: CallbackQuery, callback_data: dict):
    data_time = callback_data['def_data']
    answer = await main.main(data_time)
    await call.answer()
    await call.message.answer(text=f'Расписание за {data_time}:\n{answer}')#text=f'{answer}'
Ejemplo n.º 27
0
import requests
from aiogram.dispatcher.filters import Command
from aiogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton, CallbackQuery
from bs4 import BeautifulSoup
from ConfigBot import admin_id
from main import bot, dp
import feedparser

async def send_to_admin(dp):
    await bot.send_message(chat_id=admin_id, text="Для выбора категории новостей введите /new")

@dp.message_handler(Command("News"))
async def show_menu(message: Message):

    #По ссылке парсим все
    URL_YANDEX_NEWS = 'https://yandex.ru/news/export'
    r = requests.get(URL_YANDEX_NEWS)
    soup = BeautifulSoup(r.text, 'html.parser')

    #словарь будет хранить все URL(value) + text(key)
    allHref = {}

    #выбираем только ссылки
    for link in soup.find_all("a"):
         allHref[link.string] = link.get("href")

    #Из всех выбираем только те что для избранной рубрики
    #категории указаны в файле RubricText.txt
    favoriteСategories = []
    with open('RubricText.txt', 'r', encoding="utf-8") as f:
        favoriteСategories = f.read().splitlines()
Ejemplo n.º 28
0
def register(dp: Dispatcher, session: orm.Session) -> None:
    dp.register_message_handler(functools.partial(tag_all, session),
                                Command(["all"]) | Regexp(r"\B@all\b"),
                                is_user=True, is_group_or_supergroup=True)
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command
from aiogram.types import CallbackQuery

from app.filters.IsAdmin import IsAdminFilter
from app.keyboards.inline.cancel_keyboard import set_cancel_keyboard
from app.keyboards.inline.subjects_customization_keyboards.edit_subject_keyboard import edit_subject_keyboard
from app.keyboards.inline.subjects_customization_keyboards.show_subjects_for_subjects_edit import \
    set_subjects_list_keyboard
from app.loader import dp, bot
from app.utils.db_api.quick_commands.quick_commands_subjects import add_subject, delete_subject, \
    select_subject, select_all_subjects
from app.utils.db_api.quick_commands.quick_commands_zoom import add_link


@dp.message_handler(Command("subject"), IsAdminFilter())
async def show_subjects_customization_menu(
        message: Union[types.Message, types.CallbackQuery]):
    subjects = await select_all_subjects()
    if isinstance(message, types.Message):
        await message.answer("Меню действий с предметами",
                             reply_markup=set_subjects_list_keyboard(subjects))
    elif isinstance(message, types.CallbackQuery):
        call = message
        await call.answer()
        await call.message.edit_text(
            text="Меню действий с предметами",
            reply_markup=set_subjects_list_keyboard(subjects))


@dp.callback_query_handler(text_contains="add_new_subject")
Ejemplo n.º 30
0
from aiogram.dispatcher.filters import Command
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import StatesGroup, State
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.contrib.middlewares.logging import LoggingMiddleware

dp = Dispatcher(bot, storage=MemoryStorage())
dp.middleware.setup(LoggingMiddleware())


class User_info(StatesGroup):
    i1 = State()
    i2 = State()


@dp.message_handler(Command('start'))
async def send_welcome(message: types.Message):
    await message.answer(
        text="Привіт\n"
        "Я бот статистики по Dota 2\n"
        "Допоможу тобі бути в курсі всіх останніх подій в чемпіонатах та слідкувати за улюбленними командам, обери необхідний пунк з меню\n\n"
        "Якщо ти ще не заповнив інформацію про себе – /info")


@dp.message_handler(Command('info'), state=None)
async def get_info(message: types.Message):
    await message.answer("Введи, будь ласка, steam url")
    await User_info.i1.set()


@dp.message_handler(state=User_info.i1)