def watch_post(mes: types.Message): queue = db_acces.get_user_pos_post(mes.from_user.id) post = db_acces.get_post(queue) if post is not None: money = post.price_for_watch / 2 username = post.from_chat_username bot.forward_message(mes.from_user.id, username, post.from_message_id) msg = bot.send_message(mes.from_user.id, 'Смотрим на пост 3 секунды. 3... 2... 1...') db_acces.decrement_watchs(queue) db_acces.increment_watched_posts(mes.from_user.id) db_acces.add_sum_to_balance(mes.from_user.id, money) db_acces.add_sum_to_earned(mes.from_user.id, money) db_acces.add_income_watched(mes.from_user.id, money) time.sleep(3) bot.edit_message_text( 'Отлично! Вы заработали {m}р.'.format(m=str(money)), mes.from_user.id, msg.message_id) db_acces.set_user_pos_post(mes.from_user.id, queue + 1) bot.send_message(mes.from_user.id, 'Продолжайте в том же духе', reply_markup=get_main_menu_markup()) if db_acces.get_post_count_of_watch(queue) == 0: new_post = int(config['stat']['end_posts']) + 1 config.set('stat', 'end_posts', str(new_post)) save_data() db_acces.delete_channel(queue) db_acces.delete_post(queue) db_acces.decrement_user_pos_post(queue) else: bot.send_message(mes.from_user.id, 'Пока смотреть нечего, проверьте чуть позже')
def check_subscription(call: types.CallbackQuery): # TODO: написать систему проверки прав админа у бота username = call.data try: if bot.get_chat_member('@' + username, call.from_user.id) is not None: queue = db_acces.get_user_pos_channel(call.from_user.id) channel = db_acces.get_channel(queue) if channel is None: bot.delete_message(call.from_user.id, call.message.message_id) return money = channel.price_for_sub / 2 db_acces.decrement_sub(queue) db_acces.increment_made_sub(call.from_user.id) db_acces.add_sum_to_balance(call.from_user.id, money) db_acces.add_sum_to_earned(call.from_user.id, money) db_acces.add_income_sub(call.from_user.id, money) bot.edit_message_text('Отлично! Вы заработали {m}р.'.format(m=str(money)), call.from_user.id, call.message.message_id, reply_markup=get_main_menu_markup()) db_acces.set_user_pos_channel(call.from_user.id, queue + 1) if db_acces.get_channel_count_of_sub(queue) == 0: new_channel = int(config['stat']['end_channels']) + 1 config.set('stat', 'end_channels', str(new_channel)) save_data() db_acces.delete_channel(queue) db_acces.decrement_user_pos_channel(queue) else: bot.send_message(call.from_user.id, 'Вы не подписались на канал') except apihelper.ApiException: queue = db_acces.get_user_pos_channel(call.from_user.id) channel = db_acces.get_channel(queue) if channel is None: bot.delete_message(call.from_user.id, call.message.message_id) return money = channel.price_for_sub / 2 db_acces.decrement_sub(queue) db_acces.increment_made_sub(call.from_user.id) db_acces.add_sum_to_balance(call.from_user.id, money) db_acces.add_sum_to_earned(call.from_user.id, money) db_acces.add_income_sub(call.from_user.id, money) bot.edit_message_text('Отлично! Вы заработали {m}р.'.format(m=str(money)), call.from_user.id, call.message.message_id) bot.send_message(call.from_user.id, 'Продолжайте в том же духе', reply_markup=get_main_menu_markup()) db_acces.set_user_pos_channel(call.from_user.id, queue + 1) if db_acces.get_channel_count_of_sub(queue) == 0: new_channel = int(config['stat']['end_channels']) + 1 config.set('stat', 'end_channels', str(new_channel)) save_data() db_acces.delete_channel(queue) db_acces.delete_channel(queue) db_acces.decrement_user_pos_channel(queue)
def add_sum_to_balance(mes: types.Message): if mes.text == 'Отмена': db_acces.set_user_state(mes.from_user.id, states.CHOOSE_OPTION) bot.send_message(mes.from_user.id, 'Отменено', reply_markup=get_admin_markup()) return try: user_id, money = map(int, str(mes.text).split(' - ')) except ValueError: bot.send_message(mes.from_user.id, 'Неверный формат, попробуйте снова') else: result = db_acces.add_sum_to_balance(user_id, money) db_acces.set_user_state(mes.from_user.id, states.CHOOSE_OPTION) if result: got_money = int(config['stat']['got_money']) + money config.set('stat', 'got_money', str(got_money)) save_data() bot.send_message(user_id, 'На ваш баланс зачислено {}р.'.format(str(money))) bot.send_message(mes.from_user.id, 'Баланс пользователя успешно пополнен', reply_markup=get_admin_markup()) else: bot.send_message(mes.from_user.id, 'Ошибка пополнения баланса!', reply_markup=get_admin_markup())