Example #1
0
async def process_region(message: types.Message, state: FSMContext):
	async with state.proxy() as data:
		data['casenum'] = message.text

	c.execute("SELECT * FROM rega ORDER BY did DESC LIMIT 0,1")
	fetch = c.fetchall()

	next_did = fetch[0][0] + 1
	reger = message.chat.first_name
	region = data['region']
	agency = data['agency']
	content = data['content']
	casenum = data['casenum']

	await bot.send_message(message.chat.id, md.text(
		md.text('Сонымен, ', md.bold(data['regdoc']), " әрекеті таңдалды"),
		md.text('Құжаттың шығыс тіркеу номері: ', next_did),
		md.text('Құжатты тіркеген: ', reger),
		md.text('Құжат жолданатын аймақ: ', region),
		md.text('Құжат жолданатын мекеме: ', agency),
		md.text('Құжаттың қысқаша мазмұны: ', content),
		md.text('Құжат қатысты істің номері: ', casenum),
		sep='\n\n'), parse_mode=ParseMode.MARKDOWN)

	c.execute("INSERT INTO rega(did,reger,region,agency,content,casenum) VALUES(?,?,?,?,?,?)", (next_did, reger, region, agency, content, casenum))
	conn.commit()

	# Finish conversation
	data.state = None
	await state.finish()
Example #2
0
async def process_gender(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['gender'] = message.text

        # Remove keyboard
        markup = types.ReplyKeyboardRemove()

        # And send message
        await bot.send_message(message.chat.id, md.text(
            md.text('Hi! Nice to meet you,', md.bold(data['name'])),
            md.text('Age:', data['age']),
            md.text('Gender:', data['gender']),
            sep='\n'), reply_markup=markup, parse_mode=ParseMode.MARKDOWN)

        # Finish conversation
        data.state = None
async def process_gender(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['gender'] = message.text

        # Remove keyboard
        markup = types.ReplyKeyboardRemove()

        # And send message
        await bot.send_message(message.chat.id,
                               md.text(md.text('Hi! Nice to meet you,',
                                               md.bold(data['name'])),
                                       md.text('Age:', data['age']),
                                       md.text('Gender:', data['gender']),
                                       sep='\n'),
                               reply_markup=markup,
                               parse_mode=ParseMode.MARKDOWN)

        # Finish conversation
        data.state = None
Example #4
0
async def process_gender(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['startedu'] = message.text

        markup = types.ReplyKeyboardRemove()
        
        await bot.send_message(
            message.chat.id,
            md.text(
                md.text('Рад познакомиться!,', md.bold(data['firstname'] + " " + data['lastname'])),
                md.text('Твоя группа:', data['group']),
                md.text('Начал обучение в :', data['startedu']),
                sep='\n',
            ),
            reply_markup=markup,
            parse_mode=ParseMode.MARKDOWN, 
        )
        
    await state.finish()
Example #5
0
async def deleting_expenses_state(callback_query: types.CallbackQuery):
    """ Sends each expense from the last ten, offering to delete each of them """
    await bot.answer_callback_query(callback_query.id)
    budget_name = await state_budget_name(callback_query)
    budget_id = budgets.get_budget_id(budget_name)
    last_expenses = expenses.get_last_expenses(callback_query.from_user.id,
                                               budget_id)
    if not last_expenses:
        await bot.send_message(callback_query.from_user.id,
                               "Трат ещё не было.")
        return
    await bot.send_message(callback_query.from_user.id,
                           text(bold("Удаление трат\n\n")),
                           parse_mode=ParseMode.MARKDOWN)
    for expense in last_expenses:
        expense_str = f"- {expense.amount} руб. на {expense.category_name}, добавил {expense.username}\n"
        await bot.send_message(
            callback_query.from_user.id,
            expense_str,
            reply_markup=buttons.markup_del_expense(expense))
Example #6
0
async def randNumInlineQueryHandler(inline_query: InlineQuery):
    num = [
        int(i) for i in inline_query.query.lower().replace("num", "").split()
    ]

    randomNumber = str(randint(num[0], num[1]))
    messToUser = markdown.italic(f"Случайное число от {num[0]} до {num[1]}:") + '\n' + \
                 markdown.bold(f'{randomNumber}')
    items = [
        InlineQueryResultArticle(
            id=str(time()),
            title=f'Случайное число от {num[0]} до {num[1]}:',
            thumb_url=foxLogoPreview,
            description=f"{num[0]}, {num[1]}\n"
            f"Что же он выберет?",
            input_message_content=InputTextMessageContent(
                messToUser, parse_mode='MarkdownV2'))
    ]

    await bot.answer_inline_query(inline_query.id, results=items, cache_time=0)
Example #7
0
async def process_price(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['price'] = message.text
        user = User.get(User.external_id == message.from_user.values.get('id'))
        Expense.create(**data, user=user)
        # summary of saved expense
        await bot.send_message(
            message.chat.id,
            md.text(
                md.text('Gasto de ', md.bold(data['description']),
                        ' guardado! '),
                md.text('Categorias: ', md.code(data['categories'])),
                md.text('Price: $', data['price']),
                sep='\n',
            ),
            parse_mode=ParseMode.MARKDOWN,
        )

    # Finish conversation
    await state.finish()
Example #8
0
async def process_callback_button1(callback_query: types.CallbackQuery, state: FSMContext):
    global client
    calc = unreal_engine.calculate(230, "🤡 Прикладная информатика",callback_query.from_user.id, client)
    await bot.answer_callback_query(callback_query.id)
    # place
    # name
    # sum
    # math
    # it
    # rus
    # extra
    # approve
    # hit
    # counter_yes
    # counter_maybe
    # counter_maybe_maybe
    # poly_date
    # server_date
    msg = text(bold(calc['group_name']),'\nВремя запроса: '+calc['server_date']+'\nАпдейт политеха: '+calc['poly_date']+'\nМесто (только с согласиями): '+str(calc['counter_yes'])+'\nМесто (согл. + без согл.): '+str(calc['counter_maybe'])+'\nМесто (согл. + без согл. + согл.др.направ.): '+str(calc['counter_maybe_maybe'])+'\nЗаявление: '+calc['approve']+'\nПопадание: '+calc['hit']+'\nСумма баллов: '+calc['sum']+'\nФИО: '+calc['name']+'\nМесто в таблице политеха(не нужно): '+calc['place'])
    await bot.send_message(callback_query.from_user.id, msg)
Example #9
0
async def process_start_command(message: types.Message):
    '''
        Функция обработки команды /start
    :param message: сообщение, полученное от пользователя
    '''
    user_id = message.from_user.id
    markup=types.ReplyKeyboardRemove()
    # Если текущий запрос сформирован, то отправляем его на обработку.
    # Для этого создаем запись в БД со статусом 0
    if current_telbot[user_id][0] and current_telbot[user_id][1]:
        add_request(current_telbot, message)
        # Посылаем сообщение пользователю
        await bot.send_message(message.chat.id,
                               md.text("Ваш запрос направлен на обработку.\nИспользуйте команду ",
                               md.bold("/list")," для проверки состояния вашего запроса."),
                               reply_markup = markup,
                               parse_mode = ParseMode.MARKDOWN)
    else:
        # Если текущий запрос сформирован не полностью, то посылаем сообщение об этом пользователю
        await message.reply("Ваш запрос сформирован не полностью. Должет быть указан регион и текст запроса.")
Example #10
0
async def choose_ok(message: types.Message, state: FSMContext):
    await state.update_data(delete=message.text)
    markup = types.ReplyKeyboardRemove()

    USER_INFO = await state.get_data()

    await bot.send_message(
        message.chat.id,
        md.text(
            md.text('Теперь ты не отслеживаешь: ',
                    md.bold(USER_INFO['delete']))),
        reply_markup=markup,
        parse_mode=ParseMode.MARKDOWN,
    )

    Information.CONSTANT_CATEGORY_ME.pop([
        i[1] for i in Information.CONSTANT_CATEGORY_ME
    ].index(USER_INFO['delete']))
    Information.C.pop(Information.C.index(USER_INFO['delete']))

    await state.finish()
Example #11
0
async def notif():
    with Session as session:
        for u in session.query(User).all():
            try:
                tm = u.get_tomuss()
            except Exception as e:
                logger.error(e)
            else:
                if tm:
                    for i in tm:
                        msg = markdown.text(
                            markdown.bold(i.title),
                            markdown.code(
                                i.summary.replace("<br>", "\n").replace(
                                    "<b>", "").replace("</b>", "")),
                            sep="\n")
                        await bot.send_message(u.id,
                                               msg,
                                               parse_mode=ParseMode.MARKDOWN)
                    u.tomuss_last = str(i)
                    session.commit()
Example #12
0
async def kfet(message: types.Message):
    check_id(message.from_user)
    await message.chat.do(types.ChatActions.TYPING)
    logger.info(f"{message.from_user.username} do kfet")
    with Session as session:
        user = session.query(User).filter_by(id=message.from_user.id).first()
        if not 9 < get_now().hour < 14 or not get_now().isoweekday() < 6:
            msg = lang(user, "kfet_close")
        else:
            msg = lang(user, "kfet_list")
            try:
                cmds = requests.get(KFET_URL).json()
            except (requests.exceptions.ConnectionError,
                    requests.exceptions.ConnectTimeout):
                msg = markdown.bold(lang(user, "kfet_error"))
            else:
                if cmds:
                    for c in cmds:
                        msg += markdown.code(
                            c) + " " if cmds[c] == "ok" else ""
    await message.reply(msg, parse_mode=ParseMode.MARKDOWN, reply_markup=key)
Example #13
0
async def get_last_expenses(message: types.Message):
    """ Gets last ten expenses for the current budget """
    budget_name = await state_budget_name(message)
    budget_id = budgets.get_budget_id(budget_name)
    last_expenses = expenses.get_last_expenses(message.from_user.id, budget_id)
    budget_name_mrkdwn = budget_name.replace("_", "\\_")
    kb = None
    answer_text = text(
        bold(f"Последние траты\n\n") + f"Бюджет: \"{budget_name_mrkdwn}\"\n\n")
    if not last_expenses:
        answer_text += "Трат ещё не было."
    else:
        expenses_to_send = [
            f"- {expense.amount} руб. на {expense.category_name}, добавил {expense.username}\n"
            for expense in last_expenses
        ]
        answer_text += "\n".join(expenses_to_send)
        kb = buttons.kb_del_expenses
    params = {"text": answer_text, "parse_mode": ParseMode.MARKDOWN}
    if kb: params["reply_markup"] = kb
    await message.answer(**params)
Example #14
0
async def process_iResources(callback_query: types.CallbackQuery):
    message_text = text(
        bold('ПОЛЕЗНЫЕ РЕСУРСЫ 💡'), '\n\nИНТЕРНЕТ-РЕСУРСЫ:',
        '\nwelcome.stepik.org - онлайн-курсы от ведущих вузов и компаний страны',
        '\nkpolyakov.spb.ru - сайт Полякова по информатике',
        '\ncodeforces.com - соревнования и олимпиады по информатике',
        '\nvsenauka.ru - бесплатная научная литература'
        '\nsilvertests.ru - портал обучения информатике'
        '\nege.sdamgia.ru - образовательный портал для подготовки к экзаменам'
        '\nolimpiada.ru - всё об олимпиадах для школьников'
        '\npostypashki.ru - лучшая подготовка к олимпиадам, ЕГЭ и ДВИ'
        '\nmathus.ru - материалы по математике: подготовка к олимпиадам и ЕГЭ'
        '\n\nЧАТ-БОТЫ:'
        '\n@mybookbot - поиск книг по всему интернету на всех языках'
        '\n@ias16bot - бот-учитель со множеством различных функций'
        '\n@Wikipedia_voice_bot - бот с функцией голосового поиска по «Википедии»'
        '\n@AndyRobot - чат-бот, который поможет выучить английский язык')
    await bot.send_message(callback_query.from_user.id,
                           message_text,
                           parse_mode=ParseMode.MARKDOWN,
                           reply_markup=kb.intexBack)
Example #15
0
async def process_help_command(message: types.Message):
    msg = text(bold('list of commands:'),
               '/voice',
               '/photo',
               '/note',
               '/video',
               '/document',
               '/setstate',
               '/terms',
               '/buy',
               '/hi1',
               '/hi2',
               '/hi3',
               '/hi4',
               '/hi5',
               '/hi6',
               '/hi7',
               '/rm',
               '/1',
               '/2',
               sep='\n')
    await message.reply(msg, parse_mode=ParseMode.MARKDOWN)
Example #16
0
async def choose_ok(message: types.Message, state: FSMContext):
    await state.update_data(add=message.text)
    markup = types.ReplyKeyboardRemove()

    USER_INFO = await state.get_data()

    await bot.send_message(
        message.chat.id,
        md.text(md.text('Теперь ты отслеживаешь: ',
                        md.bold(USER_INFO['add']))),
        reply_markup=markup,
        parse_mode=ParseMode.MARKDOWN,
    )
    number_for_url = str(Information.CONSTANT_LIST.get(USER_INFO['add']))
    url = f'https://www.fl.ru/rss/all.xml?category={number_for_url}'

    c = konst()
    Information.CONSTANT_CATEGORY_ME.append((c, USER_INFO['add']))
    Information.C.append(USER_INFO['add'])
    print(Information.CONSTANT_CATEGORY_ME)
    await state.finish()
    await c.cn(url, message.chat.id)
Example #17
0
async def process_sex(message: types.Message):
    state = dp.current_state(chat=message.chat.id, user=message.from_user.id)

    data = await state.get_data()
    data['sex'] = message.text

    # Remove keyboard
    markup = types.ReplyKeyboardRemove()

    # And send message
    await bot.send_message(message.chat.id,
                           text(text('Hi! Nice to meet you,',
                                     bold(data['name'])),
                                text('Age:', data['age']),
                                text('Sex:', data['sex']),
                                sep='\n'),
                           reply_markup=markup,
                           parse_mode=ParseMode.MARKDOWN)

    # Finish conversation
    # WARNING! This method will destroy all data in storage for current user!
    await state.finish()
Example #18
0
async def qrCodeAcceptor(message: Message, state: FSMContext):
    async with state.proxy() as data:
        photoPath = str(time()) + ".jpg"
        data['qr'] = photoPath
        await message.photo[-1].download(photoPath)

    await QrFSM.qrRead.set()

    qrData = decodeQr(photoPath)
    remove(data['qr'])

    if qrData:
        messageToUser = "******" + f'{qrData}'
    else:
        messageToUser = markdown.bold("Не удалось считать QR—код")

    await message.reply(
        text=messageToUser,
        disable_web_page_preview=False,
    )

    await state.finish()
Example #19
0
async def process_gender(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['gender'] = message.text

        # Remove keyboard
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, selective=True)
        markup.add("Yes", "No")
        markup.add("Cancel")
        # And send message
        await bot.send_message(
            message.chat.id,
            md.text(
                md.text('Sending ', md.code(data['age']) + ' GRIN'),
                md.text('on :', md.bold(data['method'])),
                md.text('To adress: ', data['gender']),
                sep='\n',
            ),
            reply_markup=markup,
            parse_mode=ParseMode.MARKDOWN,
        )

    await Form.next()
Example #20
0
async def welcome_handler(callback: types.CallbackQuery):

    if callback.data == 'goals':
        await callback.message.edit_text(text=Smile.goals + ' Мои цели.', reply_markup=dp['kb'].goals())
        await Page.goals.set()

    if callback.data == 'diet':
        await callback.message.edit_text(text=Smile.diet + ' Мое питание.', reply_markup=dp['kb'].diet())
        await Page.diet.set()

    if callback.data == 'sport':
        await callback.message.edit_text(text=Smile.sport + ' Мои тренировки.', reply_markup=dp['kb'].sport())
        await Page.sport.set()

    if callback.data == 'listen':
        await callback.message.edit_text(text=Smile.listen + ' Мои книги.', reply_markup=dp['kb'].listen())
        await Page.listen.set()

    if callback.data == 'regime':
        # calendar.view()
        await callback.message.edit_text(text=Smile.regime + ' Мой режим дня.', reply_markup=dp['kb'].regime())
        await Page.regime.set()

    if callback.data == 'budget':
        # status = spreadsheets.view()
        status = ''
        await callback.message.edit_text(text=text(bold(Smile.budget + ' Мои расходы'), code('\n'.join(status)), sep='\n\n'), reply_markup=dp['kb'].budget())
        await Page.budget.set()

    if callback.data == 'water':
        await callback.message.edit_text(text=Smile.water + ' Мой питьевой режим.', reply_markup=dp['kb'].water())
        await Page.water.set()

    if callback.data == 'settings':
        await callback.message.edit_text(text=Smile.settings + ' Мои настройки.', reply_markup=dp['kb'].settings())
        await Page.settings.set()

    await callback.answer()
Example #21
0
async def process_gender(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data["gender"] = message.text
        # send_email("User %s passed form!", user, data)

        # Remove keyboard
        markup = types.ReplyKeyboardRemove()

        # And send message
        await bot.send_message(
            message.chat.id,
            md.text(
                md.text("Hi! Nice to meet you,", md.bold(data["name"])),
                md.text("Age:", md.code(data["age"])),
                md.text("Gender:", data["gender"]),
                sep="\n",
            ),
            reply_markup=markup,
            parse_mode=ParseMode.MARKDOWN,
        )

    # Finish conversation
    await state.finish()
Example #22
0
async def menu(message: types.Message):
    user_id = message.chat.id

    global categories
    menu = categories.copy()
    menu.append(["Корзина", "Заказы", "Менеджер"])

    if user_id in admins:
        menu.append(["Добавить категорию"])
        menu.append(["Добавить товар"])
        if user_id == admins[0]:
            menu.append(["Добавить менеджера", "Чат менеджеров"])
            menu.append(["Добавить адрес", "Номер QIWI"])

    print(message)
    print(message.reply_to_message)
    # print (message.reply_message)
    text = markdown.text(markdown.bold("hello"))
    # texts["menu"]
    await bot.send_message(message.chat.id,
                           texts["menu"],
                           reply_markup=keyboard_main.reply(
                               menu, one_time_keyboard=True))
Example #23
0
async def process_iEGE(callback_query: types.CallbackQuery):
    message_text = text(
        bold('ПОЛЕЗНЫЕ РЕСУРСЫ ДЛЯ ПОДГОТОВКИ К ЕГЭ 💡'),
        '\n\nege.sdamgia.ru - образовательный портал для подготовки к экзаменам'
        '\nkpolyakov.spb.ru - сайт Полякова по информатике'
        '\nfipi.ru - методическая копилка заданий ЕГЭ'
        '\nmathege.ru - открытый банк математических задач ЕГЭ'
        '\nneznaika.info - позволяет подготовиться к ЕГЭ и ОГЭ'
        '\nfoxford.ru - онлайн-школа'
        '\nshkolkovo.net - образовательный портал для подготовки к ЕГЭ, ОГЭ, и олимпиадам'
        '\n4ege.ru - всё самое важное о ЕГЭ'
        '\nmathus.ru - материалы по математике: подготовка к олимпиадам и ЕГЭ'
        '\ndisk.yandex.ru/d/jvNVv6OfEAqftw - приложения для подготовки к ЕГЭ по русскому языку'
        '\n\nЕсть много каналов на YouTube. Например: '
        '\nпо математике - Борис Трушин, Пифагор, Математик МГУ, Школково и др.'
        '\nпо информатике - Информатик БУ, Школково и др.'
        '\nпо физике - ЕГЭ/ОГЭ Физика, Павел ВИКТОР, Школково и др.'
        '\n\nТакже Вы можете посмотреть демоверсии ЕГЭ 2021 и перспективную модель на 2022 год:'
    )
    await bot.send_message(callback_query.from_user.id,
                           message_text,
                           parse_mode=ParseMode.MARKDOWN,
                           reply_markup=kb.egeintex)
Example #24
0
def generate_basket_text(user_id):

    table = db_main.Table(db_config.tables.basket)
    data = table.select(["item_name", "item_code", "item_price", "item_count"],
                        "user_id", user_id)
    table.close()

    text = ""
    sum = 0
    for item in data:
        item_name, item_code, item_price, item_count = item[0], item[1], item[
            2], item[3]
        if item_count > 0:
            line_1 = markdown.bold("Товар #{item_code} - {item_name}".format(
                item_code=item_code, item_name=item_name))
            line_2 = "Стоимость: {item_price} * {item_count} = {cost}".format(
                item_price=item_price,
                item_count=item_count,
                cost=item_price * item_count)
            text += line_1 + "\n" + line_2 + "\n" + "\n"
            sum += item_price * item_count
    text += "Общий чек: {sum} тенге".format(sum=sum)
    return text
Example #25
0
async def NicknameChangingCallbackHandler(callback_query: CallbackQuery = None,
                                          state: FSMContext = None,
                                          isUpdate: bool = False):
    """Handler состояния для изменения никнейма"""
    if callback_query:
        await SettingsFSM.changingNickname.set()
        async with state.proxy() as data:
            data[
                'callback_query'] = callback_query  # сохранение колбэка, так как следующим ивентом будет сообщение

    async with state.proxy() as data:
        callback_query = data['callback_query']
        message = callback_query.message

    buttonsData = [["Обновить", "updateNickname"], ["←Назад", "back"]]

    buttons = buttonsList(buttonsData, rowWidth=2)
    reply_markup = inline_keyboard.InlineKeyboardMarkup(
        row_width=2, inline_keyboard=buttons)

    nickname = get_nick_by_id(callback_query.from_user.id)

    text = "Здравствуйте, " + markdown.bold(f"{nickname}!\n\n") + \
           markdown.italic("Хотите изменить никнейм?\nОтправьте его мне (до 20-ти символов)")

    try:
        await bot.edit_message_text(text=text,
                                    reply_markup=reply_markup,
                                    parse_mode='MarkdownV2',
                                    chat_id=message.chat.id,
                                    message_id=message.message_id)

        if isUpdate:
            await callback_query.answer(text="Никнейм успешно обновлён.")
    except exceptions.MessageNotModified:
        await callback_query.answer(text="Не обманывай лисёнка 🥺")
Example #26
0
async def process_gender(message: types.Message, state: FSMContext):
    async with state.proxy() as data:
        data['gender'] = message.text

        # Remove keyboard
        markup = types.ReplyKeyboardRemove()

        # And send message
        await bot.send_message(
            message.chat.id,
            md.text(
                md.text('Hi! Nice to meet you,', md.bold(data['name'])),
                md.text('Age:', md.code(data['age'])),
                md.text('Gender:', data['gender']),
                sep='\n',
            ),
            reply_markup=markup,
            parse_mode=ParseMode.MARKDOWN,
        )

#text=f'Name - {data["name"]}Age - {data["age"]}Gender - {data["gender"]}',reply_markup=markup, parse_mode=ParseMode.MARKDOWN,

# Finish conversation
    await state.finish()
Example #27
0
async def add_expense(message: types.Message):
    """ Adds an expense to the needed budget """
    budget_id = budgets.get_budget_id("joint")
    users_list = budgets.get_all_users(budget_id)
    try:
        expense = expenses.add_expense(message.text, message.from_user.id,
                                       budget_id)
    except exceptions.NotCorrectMessage as e:
        await message.answer(str(e))
        return
    answer_text = (
        f"В бюждет \"joint\" "
        f"добавлена трата {expense.amount} руб. на {expense.category_name}.\n")
    for user in users_list:
        if user.id == message.from_user.id:
            continue
        else:
            await bot.send_message(user.id, (text(
                bold("В бюджет \"joint\" была добавлена трата\n\n") +
                f"Добавил: {message.from_user.username}\n" +
                f"Сумма: {expense.amount}\n" +
                f"Категория: {expense.category_name}\n")),
                                   parse_mode=ParseMode.MARKDOWN)
    await message.answer(answer_text)
Example #28
0
async def photoReceivedCallingCallbackHandler(callback_query: CallbackQuery):
    message = callback_query.message
    userID = callback_query.from_user.id

    buttonsData = [["Демотиватор", "demotivator"],
                   ["Случайный демотиватор", "randomDemotivator"],
                   ["Распознавание QR-кода", "QRdecode"],
                   ["Ничего", "nothing"], ["←Назад", "back"]]

    buttons = buttonsList(buttonsData, rowWidth=2)
    reply_markup = inline_keyboard.InlineKeyboardMarkup(
        row_width=2, inline_keyboard=buttons)

    currentOption = photoReceivedOptionConversion(
        getPhotoReceivedUserSettings(userID))

    text = "Текущая опция — " + markdown.bold(f"{currentOption}") + "\n\n"  \
           "Что должно происходить при отправке фотографии по умолчанию?"

    await bot.edit_message_text(text=text,
                                reply_markup=reply_markup,
                                parse_mode='MarkdownV2',
                                chat_id=message.chat.id,
                                message_id=message.message_id)
Example #29
0
async def process_help_command(message: types.Message):
    '''
        Функция обработки команды /help
    :param message: сообщение от пользователя
    '''
    markup=types.ReplyKeyboardRemove()
    # Посылаем пользователю список доступных команд
    await bot.send_message(
            message.chat.id,
            md.text(
                md.text("Cписок доступных команд:"),
                md.text(md.bold("\n/help"), " - вывод справочной информации"),
                md.text(md.bold("\n/start"), " - вывод справочной информации"),
                md.text(md.bold("\n/submit"), "- начать обработку запроса"),
                md.text(md.bold("\n/region"), "- с параметром - установить регион, без параметров - вывести текущий регион"),
                md.text(md.bold("\n/request"), "- с параметром - определить запрос, без параметров - вывести текущий запрос"),
                md.text(md.bold("\n/list"), "- вывести список всех запросов"),
                md.text(md.bold("\n/display"), "- с параметром - вывести результаты конкрентого запроса, без параметров - текущего запроса")

            ),
            reply_markup=markup,
            parse_mode=ParseMode.MARKDOWN,
        )
Example #30
0
async def process_start_command(message: types.Message):
    '''
        Функция обработки команды /list
    :param message:
    '''
    params: str = message.get_args()
    # Если указан параметр, то выбираем все запросы из БД для этого пользователя
    markup = types.ReplyKeyboardRemove()
    # Читаем все запросы из БД
    get_all_requests(message)
    request_number: int = 1
    if telbot.get(message.from_user.id):
        await bot.send_message(message.chat.id, md.text('Список всех запросов:'))
        # Анализируем статус запроса
        for request in telbot[message.from_user.id]:
            if request[3] == 0:
                status = 'Инициализирован'
            elif request[3] == 1:
                status = "В обработке"
            elif request[3] == 2:
                status = "Завершен"
            else:
                status = "Неопределен"

            # Выводим краткую информацию о запросе
            await bot.send_message(message.chat.id,
                  md.text(
                      md.text('Номер: ', md.bold(request_number)),
                      md.text('Регион: ', md.bold(request[0])),
                      md.text('Запрос: ', md.bold(request[1])),
                      md.text('Количество вакансий: ', md.bold(request[2])),
                      md.text('Статус: ', md.bold(status)),
                      md.text('Создан: ', md.bold(request[4])),
                  ),
                  reply_markup=markup,
                  parse_mode=ParseMode.MARKDOWN,
                  )
            request_number += 1
    else:
        await bot.send_message(message.chat.id, md.text('Запросов не найдено'))
Example #31
0
async def show_movie_info(query: CallbackQuery):
    """
    Shows schedule for one day

    :param query:
    :return:
    """
    _, _, movie_id = parse_callback(query)
    db = DBDriver()
    movie_info = db.get_movie_info(movie_id)

    ts = ""
    for el in movie_info.get("show_time"):
        ts = ts + "\U000025AA " + el.strftime("%H:%M, %d %b %Y (%a)") + "\n"

    s = text(
        bold(movie_info.get('name')), '\n', '\n',
        movie_info.get('description'), '\n', '\n',
        bold('Возрастная категория: '), movie_info.get('content_rating'), '\n',
        bold('Продолжительность:'), movie_info.get('duration'), '\n',
        bold('Год выпуска: '), movie_info.get('date_created'), '\n',
        bold('Жанр: '), movie_info.get('genre'), '\n', "[" +
        movie_info.get('name') + "](" + movie_info.get('image') + " caption)",
        "\n", bold("Время показов:"), "\n", ts)

    start_keyboard = InlineKeyboardMarkup()
    start_keyboard.add(
        InlineKeyboardButton(text='Календарь \U0001F4C5',
                             callback_data=date_cb.new(action='show_calendar',
                                                       date='0')))
    start_keyboard.add(
        InlineKeyboardButton(text='Афиша \U0001F4E2',
                             callback_data=date_cb.new(action='show_all',
                                                       date='0')))

    await bot.send_message(query.from_user.id,
                           text=s,
                           reply_markup=start_keyboard,
                           parse_mode=ParseMode.MARKDOWN)
Example #32
0
async def process_help_command(message: types.Message):
    msg = text(bold('Я могу ответить на следующие команды:'),
               '/photo - отправляет фотографию с котом (не спрашивайте зачем)', '/note - отправляет гифку с Эллиотом', '/info  - дает сведение о боте', '/create - создает пост', '/history - ахуительная история', sep='\n')
    await message.reply(msg, parse_mode=ParseMode.MARKDOWN)