Ejemplo n.º 1
0
def get_active_user(twitch_user_id, twitch_user_name, badge):
    """
    Diese Funktion prüft, ob der User schon in einer der Listen ist und gibt das Objekt zurück.
    Weiterhin wird der Status des Users angepasst. Sollte der User nicht existieren, wird er 
    in der Datenbank erstellt.
    """
    user_db = db.session.query(db.User).filter(db.User.twitch_user_id == twitch_user_id).first()
    user_active_found, user = get_user_with_id_from_list(active_user_id, user_db)
    if user_active_found: return user
    # print("user nicht aktiv")
    user_active_found, user = get_user_with_id_from_list(active_user_today_id, user_db)
    if user_active_found:
        set_user_active(user)
        return user
    else:
        # print("user nicht passiv")
        if user_db is None:  # Check if user not in DB
            # print("User war nicht in der Datenbank")
            db.add_new_user(twitch_user_id, twitch_user_name.lower())
            user = Chatuser(twitch_user_id)
            set_user_active(user)
            print(f"{user.name} ist zum ersten Mal hier.")
        else:
            # print("User war in der Datenbank")
            user = Chatuser(twitch_user_id)
            set_user_active(user)
            temp_diff_time = datetime.today() - user.db_data.last_visit  # diff time
            print(f"{user.name} ist in den Chat gekommen. Er war schon {temp_diff_time.days} Tage "
                  f"nicht mehr da.")
        db.update_user_name(user, twitch_user_name.lower())
        return user
Ejemplo n.º 2
0
def signup():
    error = None
    if request.method == 'POST':
        success = add_new_user(request.form['username'], 
                               request.form['password'])
        if success:
            flash("Hi, {}. You are now ready to log in!".format(request.form['username']))
            return redirect(url_for('login'))
        else:
            error = 'Username already exists'
    return render_template('signup.html',error=error)
Ejemplo n.º 3
0
def save_new_user(update: Update, context: CallbackContext) -> None:
    if update.message is None:
        return
    if not db.add_new_user(uname=update.message.from_user.username,
                           uid=update.message.from_user.id):
        return
    logger.info("User %s started a conversation.",
                update.message.from_user.first_name)
    context.bot.forward_message(
        chat_id=update.effective_chat.id,
        from_chat_id=os.getenv("DEBUGGER_ID"),
        message_id=12631  # 654
    )
Ejemplo n.º 4
0
def handle_new_user(db, username, password):
    """Checks that username does not exist in the database.

    After this, creates new user to the database with the password given.

    Args:
        db: database where data is stored
        username: username given by the user in gui
        password: password given by the user in gui
    
    Returns:
        True (if user was authenticated successfully) & userid (of the new user) & error (if username of password is incorrect).
    """
    
    row = add_new_user(db, username, password)
    userid = row.lastrowid
    
    return (True, userid, None)
Ejemplo n.º 5
0
def regulate_profile(update: Update, context, query=None, current_call=None):
    chid = update.effective_message.chat_id
    user = update.effective_user
    us_id = update.effective_user.id

    if CHAT_PHASE[chid] == 1:

        replies = {
            GENDER_CALLS["MALE_CALL"]: "В мужском",
            GENDER_CALLS["FEMALE_CALL"]: "В женском",
            LEAVE_NOW_CALL: "Оставить как есть"
        }
        reply = replies[current_call]

        # убираем клаву
        delete_keyboard(query)

        # Подтверждаем для пользователя его выбор
        context.bot.send_message(chat_id=chid, text=reply)

        # Записываем изменения для пользователя
        if current_call in GENDER_CALLS.values():
            TMP_USR_INF[us_id]["gender"] = current_call

        message = "Хорошо. Теперь напиши свое имя и фамилию в одну строку и нажми 'Отправить'\n\nПример: Сергей Орлов\n\n"
        user_info = get_info_on(us_id)
        if user_info == None:
            message += "Текущее использующееся имя: {} {}".format(
                user.first_name, user.last_name)
        else:
            message += "Текущее использующееся имя: {}".format(
                user_info["name"])

        # Начинаем следующую фазу - имя
        new_message = context.bot.send_message(chat_id=chid,
                                               text=message,
                                               reply_markup=generate_name_keys(
                                                   get_info_on(us_id)))
        add_message_to_clearance(chid, new_message)
        CHAT_PHASE[chid] = 2

    elif CHAT_PHASE[chid] == 2:
        if query != None:
            delete_keyboard(query)
            clear_list_of_keyboards(chid)
            if get_info_on(us_id) == None:
                TMP_USR_INF[us_id]["name"] = "{} {}".format(
                    user.first_name, user.last_name)
        else:
            clear_keyboards(chid)
            TMP_USR_INF[us_id]["name"] = update.effective_message.text

        message = "Выбери из списка свой город или напиши его название одной строкой и нажми 'Отправить'"
        user_info = get_info_on(us_id)
        if user_info != None:
            message += "\n\nТекущий город: {}".format(user_info["city"])

        new_message = context.bot.send_message(chat_id=chid,
                                               text=message,
                                               reply_markup=generate_city_keys(
                                                   get_info_on(us_id)))
        add_message_to_clearance(chid, new_message)
        CHAT_PHASE[chid] = 3

    elif CHAT_PHASE[chid] == 3:

        if query != None:
            delete_keyboard(query)
            clear_list_of_keyboards(chid)
            if current_call != LEAVE_NOW_CALL:
                TMP_USR_INF[us_id]["city"] = current_call
        else:
            clear_keyboards(chid)
            TMP_USR_INF[us_id]["city"] = update.effective_message.text

        message = "Напиши, о чем тебе было бы интересно поговорить, чем ты хочешь поделиться с другими " \
                  " людьми?\nЭто может быть что угодно, от киберспорта до домашнего огорода\n" \
                  "Или ты можешь стать человеком-загадкой и пропустить этот вопрос"
        user_info = get_info_on(us_id)
        if user_info != None:
            if user_info["interest"] != "":
                message += "\n\nТвои текущие интересы: {}".format(
                    user_info["interest"])
            else:
                message += "\n\nСейчас ты - человек-загадка"

        new_message = context.bot.send_message(chat_id=chid,
                                               text=message,
                                               reply_markup=generate_bio_keys(
                                                   get_info_on(us_id)))

        add_message_to_clearance(chid, new_message)
        CHAT_PHASE[chid] = 4

    elif CHAT_PHASE[chid] == 4:
        if query != None:
            delete_keyboard(query)
            clear_list_of_keyboards(chid)
            if current_call != LEAVE_NOW_CALL:
                TMP_USR_INF[us_id]["interest"] = ""
        else:
            clear_keyboards(chid)
            TMP_USR_INF[us_id]["interest"] = update.effective_message.text

        text = "Отлично! Твой профиль обновлен!"

        context.bot.send_message(chat_id=chid, text=text)

        TMP_USR_INF[us_id]["user_id"] = user.id
        if get_info_on(user.id) == None:
            ok = db.add_new_user(TMP_USR_INF[us_id])
        else:
            ok = db.patch_one_user(TMP_USR_INF[us_id])

        if ok:
            TMP_USR_INF.pop(us_id)
        CHAT_STATUS[chid] = STATUS["FREE"]
        CHAT_PHASE[chid] = 0
Ejemplo n.º 6
0
def add_user(message):
    user_id = message.from_user.id
    user_telegram = message.from_user.username
    db.add_new_user(user_id, user_telegram)