Пример #1
0
def delete_tweet(id):
    """
    Deleta um tweet no banco de dados
    ----------
    id : str
        Id do tweet
    """
    session = Session()

    session.execute(delete(Tweet).where(Tweet.id_tweet == id))

    # Realiza commit e encerra sessão
    session.commit()
    session.close()
Пример #2
0
def delete_log_update_tweets(user):
    """
    Deleta um Username no banco de dados
    ----------
    user : str
        Username a ser deletado
    """
    session = Session()

    session.execute(
        delete(Log_update_tweets).where(Log_update_tweets.username == user))

    # Realiza commit e encerra sessão
    session.commit()
    session.close()
Пример #3
0
def upsert_tweets_username(log_user, tweets):
    """
    Insere um log_user na tabela de log_update_tweets
    Insere um array de objetos de tweets no banco de dados
    Caso já exista então atualiza
    Parâmetros
    ----------
    log_user : dict
        Dicionário com o username para ser inserido/atualizado.
        exemplo dict(username='******', updated='2019-02-01T14:34:11Z')
    tweets : list
        list de dicionários com os tweets para serem inseridos/atualizados.
        exemplo: [dict(id_tweet='1', username='******', text='tweet')]
    """
    session = Session()

    insert_log_user = insert(Log_update_tweets).values(log_user)
    update_columns_username = {
        col.name: col
        for col in insert_log_user.excluded if col.name not in ('username')
    }

    do_update_username = insert_log_user.on_conflict_do_update(
        index_elements=['username'], set_=update_columns_username)

    session.execute(do_update_username)

    if (len(tweets) > 0):
        insert_tweet = insert(Tweet).values(tweets)
        update_columns_tweet = {
            col.name: col
            for col in insert_tweet.excluded if col.name not in ('id_tweet')
        }

        do_update_stmt = insert_tweet.on_conflict_do_update(
            index_elements=['id_tweet'], set_=update_columns_tweet)

        session.execute(do_update_stmt)
    else:
        logger.info("Nenhum novo tweet foi capturado para " +
                    log_user['username'])

    # Realiza commit e encerra sessão
    session.commit()
    session.close()