Ejemplo n.º 1
0
def orm_change_user_privacy_setting(telegram_user_id, privacy_setting):
    telegram_user = orm_get_telegram_user(telegram_user_id)

    telegram_user.has_accepted_privacy_rules = privacy_setting
    telegram_user.privacy_acceptance_mechanism = 'U'

    if privacy_setting:
        telegram_user.privacy_acceptance_timestamp = django_timezone.now()
    else:
        telegram_user.privacy_acceptance_timestamp = None

    telegram_user.save()

    _update_user_in_cache(telegram_user)
Ejemplo n.º 2
0
def orm_set_telegram_user_categories(telegram_user_id: int,
                                     categories: object) -> TelegramUser:
    """assign categories to user.categories (replacing exiting user categories); if categories is None, all user's categories are removed"""

    telegram_user = orm_get_telegram_user(telegram_user_id)

    telegram_user.categories.clear()

    if categories is not None:
        telegram_user.categories.set(categories.all())

    telegram_user.save()
    _update_user_in_cache(telegram_user)

    return telegram_user
Ejemplo n.º 3
0
def orm_parse_user_age(telegram_user: TelegramUser, message_text: str):
    """parse age from text sent by user; returns age, -1 for value error"""
    try:
        age = int(message_text)

        if age < 0:
            age = -1
    except ValueError:
        orm_logger.error(f"wrong format for age! {message_text}")
        age = -1

    telegram_user.age = age
    telegram_user.save()
    _update_user_in_cache(telegram_user)
    orm_logger.info(
        f"parse_user_age: age set for user {telegram_user.user_id} to {age}")

    return age
Ejemplo n.º 4
0
def orm_add_telegram_user(user):
    """ creates a new user, if not existing; returns instance of user """

    telegram_user = orm_get_telegram_user(user.id)

    if telegram_user is None:  # telegram user has not been registered yet
        new_telegram_user = TelegramUser()
        new_telegram_user.user_id = user.id
        new_telegram_user.username = user.username
        new_telegram_user.first_name = user.first_name
        new_telegram_user.last_name = user.last_name
        new_telegram_user.language_code = user.language_code
        new_telegram_user.save()

        # new users: should they have all news categories selected? or none?
        if orm_get_system_parameter(
                CREATE_USER_WITH_ALL_CATEGORIES_SELECTED) == "True":
            # (select all news categories)
            for k in Category.objects.all():
                new_telegram_user.categories.add(k)

        new_telegram_user.save()

        _update_user_in_cache(new_telegram_user)
        orm_logger.info(
            f"orm_add_telegram_user: new user {new_telegram_user.user_id}")

        return new_telegram_user
    else:
        orm_logger.info(
            f"orm_add_telegram_user: existing user {telegram_user.user_id}")

        telegram_user.has_user_blocked_bot = False

        telegram_user.save()

        _update_user_in_cache(telegram_user)

        return telegram_user
Ejemplo n.º 5
0
def orm_inc_telegram_user_number_received_news_items(
        telegram_user: TelegramUser):
    telegram_user.number_of_received_news_items = telegram_user.number_of_received_news_items + 1
    telegram_user.save()

    _update_user_in_cache(telegram_user)
Ejemplo n.º 6
0
def orm_update_telegram_user(telegram_user: TelegramUser):
    orm_logger.debug(f"orm_update_telegram_user {telegram_user.user_id}")
    if telegram_user is not None:
        telegram_user.save()
        _update_user_in_cache(telegram_user)
Ejemplo n.º 7
0
def orm_set_telegram_user_custom_educational_level(
        telegram_user: TelegramUser, custom_education_level: str):
    telegram_user.custom_educational_level = custom_education_level
    telegram_user.educational_level = 'g'
    telegram_user.save()
    _update_user_in_cache(telegram_user)
Ejemplo n.º 8
0
def orm_set_telegram_user_educational_level(telegram_user: TelegramUser,
                                            choice: str):
    telegram_user.educational_level = choice
    telegram_user.save()
    _update_user_in_cache(telegram_user)