Esempio n. 1
0
async  def registing(message: types.Message):
    user = db.select_user(message.from_user.id)
    if user is None:
        await message.answer('Отлично, введите *логин*', parse_mode='Markdown')
        await Test.Login.set()
    else:
        await message.answer('Вы уже зарегестрированы')
Esempio n. 2
0
async def bot_start_admin(message: types.Message):
    user_id = message.from_user.id
    username = message.from_user.username
    full_name = message.from_user.full_name
    if not db.select_user(user_id=user_id):
        db.add_user(user_id, username, full_name)
    count_users = db.count_users()[0]
    bot_username = (await bot.get_me()).username
    id_referral = db.get_id(user_id)[0]
    bot_link = "https://t.me/{bot_username}?start={id_referral}".format(
        bot_username=bot_username, id_referral=id_referral)
    balance = db.check_balance(user_id)[0]
    promo = db.get_promo(user_id)[0]
    text = f"""
    Сейчас в базе {count_users} человек!

    Ваша реферальная ссылка: {bot_link}

    Ваш промокод: {promo}

    Проверить рефералов можно по команде: /referrals
    Установить/показать промокод по команде: /promo
    Посмотреть все товары по команде: /items
    Добавить товар по команде: /add_item

    Ваш баланс: {balance} монет.
            """
    await message.answer(
        f"Добро пожаловать, <b>Администратор - {full_name}!</b>"
        f"{text}")
Esempio n. 3
0
async def func_answer10(message: types.message, str_ans9):
    if str_ans9 == Answer_List_Question_Easy[9]:
        await message.answer(text='Вопрос 10:Правильный ответ!')
        RATE = db.select_user(id=message.from_user.id)[-1]
        db.update_rating(id=message.from_user.id, rating=RATE + 1.0)
    else:
        await message.answer(text='Вопрос 10:Неправильный ответ!')
Esempio n. 4
0
async def empty_query(query: types.InlineQuery):
    user = query.from_user.id
    check_user = db.select_user(user_id=user)
    if check_user is None:
        await query.answer(
            results=[],
            switch_pm_text="Бот недоступен. Подключить",
            switch_pm_parameter="connect_user",
            cache_time=5
        )
        return
    items = db.select_all_items_abc()
    res = []
    for item in items:
        id = item[0]
        name = item[1]
        # photo_id = item[2]
        # description = item[3]
        price = item[4]/100
        url = item[5]
        inline_text = f"Цена:\t{price}"
        text = f"<b>{name}</b>\n\n<b>Цена:</b> \t{price:,}"
        # res.append(types.InlineQueryResultCachedPhoto(id=id, photo_file_id=photo_id, caption=text,
        #                                               parse_mode="HTML", reply_markup=show_keyboard(id)))
        res.append(types.InlineQueryResultArticle(id=id, title=name,
                                                  input_message_content=types.InputTextMessageContent(
                                                      message_text=text
                                                  ),
                                                  reply_markup=show_keyboard(id),
                                                  description=inline_text,
                                                  thumb_url=url))
    await query.answer(
        results=res,
        cache_time=5
    )
Esempio n. 5
0
async def bot_start(message: types.Message):
    await message.answer(f"Привет, {message.from_user.full_name}!",
                         reply_markup=ReplyKeyboardRemove())
    if not db.select_user(user_id=message.from_user.id):
        await message.answer("Добавляем тебя в БД...")
        db.add_user(message.from_user.id)
    await message.answer("Готов к работе!", reply_markup=add_feed)
Esempio n. 6
0
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)
Esempio n. 7
0
async def unregist(message: types.Message):
    if db.select_user(id=message.from_user.id) is not None:
        db.delete_user_from_db(id=message.from_user.id)
        await message.answer('Вы отписались от рассылки')
    else:
        await message.answer(
            'Вас нет в нашей базе данных, для начала вам необходимо зарегистрироваться'
        )
Esempio n. 8
0
async def reg_call(call: CallbackQuery):
    await call.answer(cache_time=60)
    if db.select_user(id=call.message.from_user.id) is not None:
        db.delete_user_from_db(id=call.message.from_user.id)
        await call.message.answer('Вы отписались от рассылки')
    else:
        await call.message.answer(
            'Вас нет в нашей базе данных, для начала вам необходимо зарегистрироваться'
        )
Esempio n. 9
0
async def show_referrals(message: types.Message):
    user_id = message.from_user.id
    refs = db.check_referrals(user_id)
    print(refs)
    text = "Ваши рефералы:\n--------------\n"
    for num, ref in enumerate(refs):
        user = db.select_user(user_id=ref[0])
        text += str(num+1) + f". Username: @{user[2]}\nFull name: {user[3]}\n--------------\n"
    await message.answer(text)
Esempio n. 10
0
async def check_answer_medium_7(message: types.Message, str_ans7):
    result = re.search(str(List_Of_Pattern_regex[6]), str(str_ans7),
                       re.IGNORECASE)
    if result is not None:
        await message.answer("Вопрос 7: Правильный ответ!")
        RATE = db.select_user(id=message.from_user.id)[-1]
        db.update_rating(id=message.from_user.id, rating=RATE + 3.0)
    else:
        await message.answer("Вопрос 7: Неправильный ответ!")
Esempio n. 11
0
async def cancel_allez(call: CallbackQuery):
    await call.message.edit_reply_markup()
    await call.answer('Вы <b>отписались</b> от всех постов Хабра',
                      show_alert=True)
    # проверить - если была подписка на канал - предложить самому
    user = db.select_user(id=int(call.message.chat.id))
    if user['status'] == 'all_posts':
        await bot.kick_chat_member(channels[0], call.message.chat.id)

    await db.update_user_status('new_user', call.message.chat.id)
    await db.delete_user_hubs(call.message.chat.id)
Esempio n. 12
0
def create_kb_particular_group(status):
    print('function: create_kb_particular_group')
    particular_group_users = db.select_user(status=status)
    kb_particular_group = InlineKeyboardMarkup()

    for user in particular_group_users:
        kb_particular_group.add(
            InlineKeyboardButton(text=user[1], callback_data=user[1]))
        kb_particular_group.insert(
            InlineKeyboardButton(
                text='изменить',
                callback_data=change_button_data.new(
                    user_id=user[0],
                    # user_name = user[1],
                    # user_status = user[2],
                    type_button='change_button')))

    return kb_particular_group
Esempio n. 13
0
async def some_query(query: types.InlineQuery):
    user = query.from_user.id
    check_user = db.select_user(user_id=user)
    if check_user is None:
        await query.answer(
            results=[],
            switch_pm_text="Бот недоступен. Подключить",
            switch_pm_parameter="connect_user",
            cache_time=5
        )
        return

    text = query.query
    if len(text) >= 2:
        items = db.search_items(text)
        res = []
        for item in items:
            id = item[0]
            name = item[1]
            # photo_id = item[2]
            url = item[5]
            description = item[3]
            price = item[4]/100
            inline_text = f"Цена:\t{price}"
            text = f"<b>{name}</b>\n\n<i>{description}</i>\n\n<b>Цена:</b> \t{price:,}"
            # markup = types.InlineKeyboardMarkup(
            #     inline_keyboard=[
            #         [types.InlineKeyboardButton(
            #             text="Показать товар",
            #             callback_data=show_item.new(id=id)
            #         )]
            #     ]
            # )
            res.append(types.InlineQueryResultArticle(id=id, title=name,
                                                      input_message_content=types.InputTextMessageContent(
                                                          message_text=text
                                                      ),
                                                      reply_markup=show_keyboard(id),
                                                      description=inline_text,
                                                      thumb_url=url))
        await query.answer(
            results=res,
            cache_time=5
        )
Esempio n. 14
0
async def bot_start(message: types.Message):
    # SET ARGS
    user_id = message.from_user.id
    username = message.from_user.username
    full_name = message.from_user.full_name

    # CHECK IF IN DB
    if not db.select_user(user_id=user_id):
        # CHECK REFERRAL
        try:
            referral = message.get_args()
            # CHECK IF FROM INLINE MODE
            if referral == "connect_user":
                await message.answer(
                    "Чтобы использовать этого бота введите код приглашения, либо пройдите по реферальной ссылке",
                    reply_markup=send_promo)
                return
        except ValueError:
            await message.answer(
                "Чтобы использовать этого бота введите код приглашения, либо пройдите по реферальной ссылке",
                reply_markup=send_promo)
            return

        # ADD USER TO DB
        db.add_user(user_id, username, full_name, referral)
        await message.answer("Вы зарегистрированы!")
        # ADD MONEY FOR REFERRAL ADN NOTIFY USER
        ref_user_id = db.get_user_id(referral)[0]
        db.add_money(10, ref_user_id)
        await ref_notify(dp, ref_user_id, f"У вас новый реферал, +10 монет!")

    bot_username = (await bot.get_me()).username
    id_referral = db.get_id(user_id)[0]
    bot_link = "https://t.me/{bot_username}?start={id_referral}".format(
        bot_username=bot_username, id_referral=id_referral)
    balance = db.check_balance(user_id)[0]
    text = f"""
Ваша реферальная ссылка: {bot_link}
Проверить рефералов можно по команде: /referrals
Установить/показать промокод по команде: /promo

Ваш баланс: {balance} монет.
        """
    await message.answer(text, reply_markup=change_to_inline)
Esempio n. 15
0
async def next_place(call: CallbackQuery, callback_data: dict,
                     state: FSMContext):
    await call.answer(cache_time=1)
    data = await state.get_data()
    user = db.select_user(id=call.from_user.id)
    # получаем координаты из БД
    # postgres : await db.get_coordinates(id=call.from_user.id)
    new_lat, new_lon = db.get_coordinates(id=call.from_user.id)
    closes_places = choose_nearest(new_lat,
                                   new_lon,
                                   Attractions,
                                   name_object=data.get('lastLocations'))
    if not closes_places:
        await call.message.edit_text(
            text='Список мест для посещения закончилось!\n')
        await call.message.edit_reply_markup()
        await call.message.answer(text="Чтобы сбросить карту нажмите /")
        return

    await SendToUserLocationUpdateDataBase(closes_places, call)
Esempio n. 16
0
async def enter_email(message: types.Message, state: FSMContext):
    email = message.text
    db.update_user_email(email=email, id=message.from_user.id)
    user = db.select_user(id=message.from_user.id)
    await message.answer(f"Данные обновлены. Запись в БД: {user}")
    await state.finish()
Esempio n. 17
0
async def bot_start(message:types.Message):
    user_id = message.from_user.id
    name = message.from_user.full_name
    user_in_db = db.select_user(id=user_id)

    if len(user_in_db) == 0:
        text = f'''
            Здравствуйте, {name}! Ваш запрос в обработке.
        '''

        try:
            db.add_user(id=user_id, name=name)
        except sqlite3.IntegrityError as err:
            print(err)
        
        # for admin in super_admins:
        #     await bot.send_message(chat_id=admin, text=f'поступил новый запрос от {name}')
        # text = f'поступил новый запрос от {name}'
        await notify_someone(f'поступил новый запрос от {name}', 'admin')
        

        await bot.send_message(chat_id=user_id, text=text)

    else:
        status = [item for t in user_in_db for item in t][2]
        list_rights = {
            'admin': {
                'message': 'ваши права  - администратор. Используйте меню.',
                'keyboard': create_kb_coustom_main_menu(user_id)
            },
            'changer': {
                'message': 'ваши права - чейнджер.',
                'keyboard': None
            },
            'operator': {
                'message': 'ваши права - оператор.',
                'keyboard': None
            },
            'secretary': {
                'message': 'ваши права - секретарь.',
                'keyboard': None
            },
            'executor': {
                'message': 'ваши права - исполнитель.',
                'keyboard': None
            },
            'permit': {
                'message': 'вы можете заказать пропуск.',
                'keyboard': None
            },
            'request': {
                'message': 'ваш запрос в обработке.',
                'keyboard': None
            }
        }
        
        for item in list_rights.keys():
            if item == status:
                text = f'{name}, {list_rights[status]["message"]}'
                reply_markup = list_rights[status]['keyboard']

                break

        await bot.send_message (
            chat_id=user_id,
            text=text,
            reply_markup=create_kb_coustom_main_menu(user_id)
        )

        return
Esempio n. 18
0
async def My_setting(message: Message):
    user = db.select_user(id=message.from_user.id)
    await message.answer(f"Страна: Україна\n" f"Возраст: {user}")