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('Вы уже зарегестрированы')
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}")
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:Неправильный ответ!')
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 )
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)
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)
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( 'Вас нет в нашей базе данных, для начала вам необходимо зарегистрироваться' )
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( 'Вас нет в нашей базе данных, для начала вам необходимо зарегистрироваться' )
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)
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: Неправильный ответ!")
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)
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
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 )
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)
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)
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()
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
async def My_setting(message: Message): user = db.select_user(id=message.from_user.id) await message.answer(f"Страна: Україна\n" f"Возраст: {user}")