def print_stats(): nb_tweets = session.query(TWEET).count() nb_tw_originaux = session.query(TWEET).filter(TWEET.retweet == False).count() nb_comptes = session.query(COMPTE).count() nb_keywords = session.query(KEYWORD).count() print(f"Nombre de tweets : {nb_tweets}") print(f"Nombre de tweets (hors RT): {nb_tw_originaux}") print(f"Nombre de comptes d'utilisateurs : {nb_comptes}") print(f"Nombre de keywords : {nb_keywords}")
def main(): tweets_to_process = ( session.query(TWEET).filter(TWEET.texte_retraite == None)) # noqa lg.info(f"Tweet to process : {tweets_to_process.count()}") while tweets_to_process.count() > 0: for tweet in tweets_to_process.all()[0:1000]: tweet.texte_retraite = processing(tweet.texte) session.commit() session.close() tweets_to_process = (session.query(TWEET).filter( TWEET.texte_retraite == ""))
def add_keyword(keyword=None): if not keyword: keyword = input( """Veuillez entrer le nouveau mot clé à ajouter. Pour les hashtags, inclure le symbole '#'\n""") keyword = keyword.replace('#', '%23') existing_keyword = session.query(KEYWORD).filter(KEYWORD.valeur == keyword) if not existing_keyword.all(): # CASE 1 : keyword doesnt exist ==> new keyword create new_entry = KEYWORD(keyword) session.add(new_entry) session.commit() elif existing_keyword.one().active is False: # CASE 2 : keywords already exists but inactive : # ask if want to activate it reactivate = input( """Le mot clé est déjà présent dans la base de données. Souhaitez vous le réactiver ? (o/n)\n""") if reactivate == "o": activate_keyword(keyword) else: print("Le mot clé n'a pas été réactivé") else: # CASE 3 : keyword already exists and is active : do nothing" print("Le mot clé est déjà présent dans la base de données") session.close()
def display_keywords(): keywords = session.query(KEYWORD).all() print("LISTE DES MOTS CLES :") for keyword in keywords: if keyword.active: statut = "actif" else: statut = "inactif" print(f" { keyword.valeur.replace('%23', '#') } ({ statut })")
def main(): tweets_to_process = session.query(TWEET).filter( TWEET.nb_rt == None) # noqa while tweets_to_process.count() > 0: lg.info(f"""Searching influence data. Tweets remaining : {tweets_to_process.count()}""") tweet_list = tweets_to_process.all()[0:100] ids = [tweet.tweet_id for tweet in tweet_list] results = api_query(ids) for tweet in tweets_to_process.all()[0:100]: tweet.nb_favori = results[tweet.tweet_id]["nb_favori"] tweet.nb_rt = results[tweet.tweet_id]["nb_rt"] tweet.date_influence = auj session.commit() session.close() tweets_to_process = session.query(TWEET).filter( TWEET.nb_rt == None) # noqa
def main(older=True): keywords = ( session.query(KEYWORD) .filter(KEYWORD.active == True) # noqa .order_by(KEYWORD.nb_rech) .all() ) print(keywords) for keyword in keywords: run_keyword(keyword, older) lg.info("Program over")
def write_data(res, keyword): """ Reorganize result data and write them to sqlite database """ for tw in res['statuses']: tweet_id = tw['id'] user_id = tw['user']['id'] # Writing User data: compte = session.query(COMPTE).filter(COMPTE.user_id == user_id) if not compte.all(): # Si non existant on le créé compte = COMPTE(tw['user']) session.add(compte) else: compte = compte.one() # Writing Tweet_data: tweet = session.query(TWEET).filter(TWEET.tweet_id == tweet_id) if not tweet.all(): tweet = TWEET(tw) tweet.compte = compte session.add(tweet) lg.info(f"adding tweet {tweet_id}") # Updating Keyword data : if keyword.plus_ancien_tweet: if tweet_id < keyword.plus_ancien_tweet: keyword.plus_ancien_tweet = tweet_id else: keyword.plus_ancien_tweet = tweet_id if keyword.plus_recent_tweet: if tweet_id > keyword.plus_recent_tweet: keyword.plus_recent_tweet = tweet_id else: keyword.plus_recent_tweet = tweet_id session.commit()
def desactivate_keyword(keyword=None): if not keyword: keyword = input( """Veuillez entrer la valeur du mot clé à désactiver. Ce mot clé ne sera pas supprimé de la base de données. Pour les hashtags, inclure le symbole '#'\n""") keyword = keyword.replace('#', '%23') existing_keyword = session.query(KEYWORD).filter(KEYWORD.valeur == keyword) if not existing_keyword.all(): # CASE 1 : keyword doesnt exists ==> stop print("Le mot clé demandé n'existe pas") else: existing_keyword.one().active = False session.commit() print("Le mot clé a été désactivé") session.close()
def activate_keyword(keyword=None): if not keyword: keyword = input( """Veuillez entrer la valeur du mot clé à réactiver. Pour les hashtags, inclure le symbole '#'\n""") keyword = keyword.replace('#', '%23') existing_keyword = session.query(KEYWORD).filter(KEYWORD.valeur == keyword) if not existing_keyword.all(): # CASE 1 : keyword doesnt exists ==> proposer création create = input( "Le mot clé n'existe pas. Souhaitez vous le créer ? (o/n)\n") if create == "o": add_keyword(keyword) else: existing_keyword.one().active = True session.commit() print("Le mot clé a été réactivé") session.close()
def delete_keyword(keyword=None): if not keyword: keyword = input( """Veuillez entrer la valeur du mot clé à supprimer. Pour les hashtags, inclure le symbole '#'. Attention, cette action est irréversible\n""") keyword = keyword.replace('#', '%23') existing_keyword = ( session.query(KEYWORD) .filter(KEYWORD.valeur == keyword)) if not existing_keyword.all(): # CASE 1 : keyword doesnt exists ==> stop print("Le mot clé demandé n'existe pas") else: # CASE 2 : keyword exists ==> delete existing_keyword.delete() session.commit() print("Le mot clé a été supprimé") session.close()
def __init__(self): self.tweets = (session.query(TWEET.tweet_id, TWEET.month, TWEET.year, TWEET.envir3))