コード例 #1
0
ファイル: flask_app.py プロジェクト: Battosa1/bothyip
def increase_user_deposit():
    json = request.get_json(silent=True)
    user_id = json['user_id']
    amount = json['amount']
    try:
        user_id = int(user_id)
    except TypeError:
        return Response(response='Invalid user id',
                        status=400,
                        mimetype='application/json')
    try:
        user = User.get(User.chat_id == user_id)
    except DoesNotExist as e:
        return Response(response='There is no such user',
                        status=400,
                        mimetype='application/json')

    try:
        amount = float(amount)
    except ValueError:
        return Response(response='Not like a fractional number',
                        status=400,
                        mimetype='application/json')

    TopUp.create(amount=amount, user=user)
    return Response(response='Successfully',
                    status=200,
                    mimetype='application/json')
コード例 #2
0
ファイル: flask_app.py プロジェクト: Battosa1/bothyip
def top_up_balance():
    data = request.get_json()

    if data['outputs'][0]['addresses'][0].lower(
    ) != config.project_eth_address()[2:]:
        return Response(response='Success',
                        status=200,
                        mimetype='application/json')

    amount = data['total'] / _ETH_WEI
    if not amount:
        return Response(response='Success',
                        status=200,
                        mimetype='application/json')
    wallet = data['inputs'][0]['addresses'][0].lower()
    wallet = f'0x{wallet}'

    try:
        user = User.get(wallet=wallet)
        top_up = TopUp.create(user=user, amount=amount, from_wallet=wallet)
    except DoesNotExist:
        top_up = TopUp.create(amount=amount,
                              received=False,
                              from_wallet=wallet)

    return Response(response='Success',
                    status=200,
                    mimetype='application/json')
コード例 #3
0
def lost_top_ups():
    lost_top_ups = TopUp.select().where(TopUp.received == False)

    return render_template(
        'lost_top_ups.html',
        lost_top_ups=lost_top_ups
    )
コード例 #4
0
ファイル: flask_app.py プロジェクト: Battosa1/bothyip
def top_up_received():
    json_request = request.get_json(silent=True)
    id = json_request['id']
    user_id = json_request['user_id']
    try:
        user_id = int(user_id)
    except TypeError:
        return Response(response='Invalid user id',
                        status=400,
                        mimetype='application/json')
    top_up = TopUp.get(id=id)
    if top_up.received:
        return Response(response='Replenishment is already credited',
                        status=400,
                        mimetype='application/json')
    try:
        user = User.get(User.chat_id == user_id)
    except DoesNotExist as e:
        return Response(response='No such user',
                        status=400,
                        mimetype='application/json')

    top_up.user = user
    top_up.received = True
    top_up.save()

    return Response(response='Successfully',
                    status=200,
                    mimetype='application/json')
コード例 #5
0
ファイル: flask_app.py プロジェクト: Battosa1/bothyip
def top_up_delete():
    json_request = request.get_json(silent=True)
    id = json_request['id']
    top_up = TopUp.get(id=id)
    top_up.delete_instance()

    return Response(response='Successfully',
                    status=200,
                    mimetype='application/json')
コード例 #6
0
def increase_user_deposit():
    json = request.get_json(silent=True)
    user_id = json['user_id']
    amount = json['amount']
    try:
        user_id = int(user_id)
    except TypeError:
        return Response(
            response='Неправильный id пользователя',
            status=400,
            mimetype='application/json'
        )
    try:
        user = User.get(User.chat_id == user_id)
    except DoesNotExist as e:
        return Response(
            response='Нет такого юзера',
            status=400,
            mimetype='application/json'
        )

    try:
        amount = float(amount)
    except ValueError:
        return Response(
            response='Не похоже на дробное число',
            status=400,
            mimetype='application/json'
        )

    TopUp.create(
        amount=amount,
        user=user
    )
    return Response(
        response='Успешно',
        status=200,
        mimetype='application/json'
    )
コード例 #7
0
ファイル: flask_app.py プロジェクト: Battosa1/bothyip
def statistics():
    def get_chart_data_for_transactions(transactions, columns):
        statistics_data = {}
        for transaction in transactions:
            date = transaction.created_at.strftime("%d %B")
            if date not in statistics_data:
                statistics_data[date] = 0
            statistics_data[date] += float(transaction.amount)

        chart_data = [columns]
        for day in statistics_data.keys():
            chart_data.append([day, statistics_data[day]])

        return chart_data

    now = datetime.datetime.now()
    month_ago = now - datetime.timedelta(days=30)
    withdrawals = Withdrawal.select() \
        .where(Withdrawal.created_at < now) \
        .where(Withdrawal.created_at > month_ago).order_by(Withdrawal.created_at)

    top_ups = TopUp.select() \
        .where(TopUp.created_at < now) \
        .where(TopUp.created_at > month_ago).order_by(TopUp.created_at)

    withdrawal_data = get_chart_data_for_transactions(withdrawals,
                                                      ['Day', 'Withdrawals'])

    top_up_data = get_chart_data_for_transactions(top_ups, ['Day', 'TopUps'])

    registrations = User.select().where(User.created_at < now) \
        .where(User.created_at > month_ago).order_by(User.created_at)

    registration_temp = {}
    for registration in registrations:
        date = registration.created_at.strftime("%d %B")
        if date not in registration_temp:
            registration_temp[date] = 0
        registration_temp[date] += 1

    registration_data = [['Day', 'Registrations']]

    for day in registration_temp.keys():
        registration_data.append([day, registration_temp[day]])

    return render_template('statistics.html',
                           withdrawal_data=withdrawal_data,
                           top_up_data=top_up_data,
                           registration_data=registration_data)
コード例 #8
0
ファイル: input_handlers.py プロジェクト: Battosa1/bothyip
def _demo_top_up(bot, update):
    from models import TopUp
    chat_id = bot.chat_id
    text = update.message.text
    user = bot.user
    try:
        amount = _validate_transaction(user, text, demo=True)
    except ValueError:
        bot.send_message(chat_id=chat_id, text='Инпут ерор)))))00')
        return bot_states.DEMO_TOP_UP

    top_up = TopUp.create(user=user, amount=amount, from_wallet=user.wallet)
    bot.send_message(chat_id=chat_id,
                     text=lang.back_to_main_menu(),
                     reply_markup=keyboards.main_keyboard())
    return bot_states.MAIN
コード例 #9
0
def top_up_received():
    json_request = request.get_json(silent=True)
    id = json_request['id']
    user_id = json_request['user_id']
    try:
        user_id = int(user_id)
    except TypeError:
        return Response(
            response='Неверный id пользователя',
            status=400,
            mimetype='application/json'
        )
    top_up = TopUp.get(id=id)
    if top_up.received:
        return Response(
            response='Пополнение уже зачислено',
            status=400,
            mimetype='application/json'
        )
    try:
        user = User.get(User.chat_id == user_id)
    except DoesNotExist as e:
        return Response(
            response='Нет такого пользователя',
            status=400,
            mimetype='application/json'
        )

    top_up.user = user
    top_up.received = True
    top_up.save()

    return Response(
        response='Успешно',
        status=200,
        mimetype='application/json'
    )