def __get_number_date_events(event_date):
    client = db_utils.connect()
    db = client[skill_config.DB_NAME]

    res = db.ephemeris.count_documents({
        'date': event_date
    })

    db_utils.close(client)

    return res
def __user_exists(user_id, date):
    client = db_utils.connect()
    db = client[skill_config.DB_NAME]

    res = db.users.count_documents({
        'user_id': user_id,
        'date': date
    })

    db_utils.close(client)

    return res == 1
def __get_already_fetched_events(user_id, date):
    client = db_utils.connect()
    db = client[skill_config.DB_NAME]

    res = db.users.find_one({
        'user_id': user_id,
        'date': date
    })

    db_utils.close(client)

    return res['fetched_events']
def __reset_user_fetched_events(user_id, date):
    client = db_utils.connect()
    db = client[skill_config.DB_NAME]

    db.users.find_one_and_update({
        'user_id': user_id,
        'date': date
    }, {
        '$set': {
            'fetched_events': []
        }
    })

    db_utils.close(client)
def __add_user_fetched_event(user_id, date, event_id):
    client = db_utils.connect()
    db = client[skill_config.DB_NAME]

    db.users.find_one_and_update({
        'user_id': user_id,
        'date': date
    }, {
        '$push': {
            'fetched_events': event_id
        }
    })

    db_utils.close(client)
def __get_random_event_not_fetched(date, already_fetched):
    client = db_utils.connect()
    db = client[skill_config.DB_NAME]

    events = db.ephemeris.aggregate([
        {
            '$match': {
                'date': date,
                '_id': {
                    '$nin': already_fetched
                }
            }
        },
        {
            '$sample': { 'size': 1 }
        }
    ])

    db_utils.close(client)

    return list(events)[0]
예제 #7
0
def close():
    db.close()