def select_log_update_tweets(user): session = Session() username = session.query(Log_update_tweets).filter( Log_update_tweets.username == user).one() session.close() return username
def insert_tweet(id_tweet, username, text=None, date=None, url=None, reply_count=None, retweet_count=None, like_count=None, quote_count=None): """ Insere um novo tweet no banco de dados Caso já exista então atualiza Parâmetros ---------- id_tweet : str Id do tweet (deve ser único) username : str Username no autor do tweet text : str Texto do tweet username : str Username no autor do tweet date : datetime Data do tweet url : str URL para o tweet reply_count : int Contagem de replies retweet_count : int Contagem de retweets like_count : int Contagem de likes quote_count : int Contagem de citações """ session = Session() new_tweet = Tweet(id_tweet=id_tweet, username=username, text=text, date=date, url=url, reply_count=reply_count, retweet_count=retweet_count, like_count=like_count, quote_count=quote_count) session.merge(new_tweet) # Realiza commit e encerra sessão session.commit() session.close()
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()
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()
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()
def insert_log_update_tweets(username, updated=None): """ Insere um username e a data de atualização no banco de dados Caso já exista então atualiza Parâmetros ---------- username : str Username no twitter updated : datetime Data da última atualização dos tweets """ session = Session() new_update_log = Log_update_tweets(username=username, updated=updated) session.merge(new_update_log) # Realiza commit e encerra sessão session.commit() session.close()