Example #1
0
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,
                         'Пока смотреть нечего, проверьте чуть позже')
Example #2
0
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)
Example #3
0
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())