Ejemplo n.º 1
0
def join_spree_get_amount(update, context):
    global current_spree_id

    text = update.message.text
    validation = Validation(None)
    validation_result = validation.isValidAmount(text)
    if validation_result == "":
        buttons = [[InlineKeyboardButton(text='Back', callback_data=str(END))]]
        keyboard = InlineKeyboardMarkup(buttons)
        update.message.reply_text(text='Successfully joined Spree! ✅',
                                  reply_markup=keyboard)
        amt = "%.2f" % (float(text))

        user_name = update.effective_user['username']
        spree_ref = db.collection(u'Sprees').document(current_spree_id)
        spree_obj = spree_ref.get().to_dict()
        total_people = spree_obj.get('total_people')
        total_people.append(user_name)
        people_num = spree_obj.get('people_num') + 1

        curr_amt = float(spree_obj.get('current_amount')) + float(amt)
        remaining_amt = float(spree_obj.get('remaining_amount')) - float(amt)
        spree_ref.set(
            {
                u'total_people': total_people,
                u'people_num': people_num,
                u'current_amount': curr_amt,
                u'remaining_amount': remaining_amt
            },
            merge=True)

        if remaining_amt <= 0.0:
            #send shit here
            send_text = 'Your spree ' + spree_obj.get(
                'Spree_name'
            ) + ', is complete! 🎉\nThe minimum spending of $' + str(
                spree_obj.get('min_amount')
            ) + ' has been met. \n\nHere are your fellow Spreenters: '
            for list_username in total_people:
                send_text += '\n   @' + list_username

            print(send_text)
            user_db = db.collection(u'Users')
            for list_username in total_people:
                temp_user = user_db.where(u'Username', u'==',
                                          list_username).limit(1).stream()

                for temp_o in temp_user:
                    lol = temp_o.to_dict()
                    list_userid = lol['User_id']
                    bot.sendMessage(chat_id=list_userid, text=send_text)
            spree_ref.delete()

        current_spree_id = None
        return SHOWING
    else:
        bot.sendMessage(chat_id=update.effective_user['id'],
                        text=validation_result)
Ejemplo n.º 2
0
def join_spree_get_amount(update, context):
    global current_spree_id

    text = update.message.text
    validation = Validation(None)
    validation_result = validation.isValidAmount(text)
    if validation_result == "":
        buttons = [[InlineKeyboardButton(text='Back', callback_data=str(END))]]
        keyboard = InlineKeyboardMarkup(buttons)
        update.message.reply_text(text='Successfully joined Spree!',
                                  reply_markup=keyboard)
        amt = "%.2f" % (float(text))

        user_name = update.effective_user['username']
        spree_ref = db.collection(u'Sprees').document(current_spree_id)
        spree_obj = spree_ref.get().to_dict()
        total_people = spree_obj.get('total_people')
        total_people.append(user_name)
        people_num = spree_obj.get('people_num') + 1

        curr_amt = spree_obj.get('current_amount') + float(amt)
        remaining_amt = spree_obj.get('remaining_amount') - float(amt)
        spree_ref.set(
            {
                u'total_people': total_people,
                u'people_num': people_num,
                u'current_amount': curr_amt,
                u'remaining_amount': remaining_amt
            },
            merge=True)

        if remaining_amt <= 0:
            #send shit here

            spree_ref.delete()

        current_spree_id = None
        return SHOWING
    else:
        bot.sendMessage(chat_id=update.effective_user['id'],
                        text=validation_result)