Compare commits

...

2 commits

Author SHA1 Message Date
f595dcd83d
better handling of invalid tweets 2022-08-08 09:36:10 +02:00
dcda3d107e
handle request errors 2022-08-08 09:09:21 +02:00

39
main.py
View file

@ -42,7 +42,7 @@ def load(variables) -> dict:
return keys return keys
def cleanTweet(tweet: str) -> str: def cleanTweet(tweet: str) -> str | None:
"""Remove all unwanted elements from the tweet""" """Remove all unwanted elements from the tweet"""
# Convert to lower case # Convert to lower case
tweet = tweet.lower() tweet = tweet.lower()
@ -56,7 +56,7 @@ def cleanTweet(tweet: str) -> str:
tweet = sub(r"#\S+", " ", tweet) tweet = sub(r"#\S+", " ", tweet)
else: else:
# Too much hashtags in the tweet -> so ignore it # Too much hashtags in the tweet -> so ignore it
return "" return None
# Remove usernames # Remove usernames
tweet = sub(r"@\S+", " ", tweet) tweet = sub(r"@\S+", " ", tweet)
# Remove everything who isn't a letter/number/space # Remove everything who isn't a letter/number/space
@ -109,18 +109,20 @@ class Listener(StreamingClient):
# Log # Log
if keys["VERBOSE"]: if keys["VERBOSE"]:
infoLastWord = "dernier mot : " infoLastWord = "dernier mot : "
if len(lastWord) > 0: newline = "\n"
infoLastWord += f"dernier mot : {lastWord.split()[-1:][0]}" match lastWord:
else: case None:
infoLastWord += "tweet ignoré car trop de hashtags" infoLastWord += "tweet ignoré car trop de hashtags"
case w if len(w) == 0:
infoLastWord += "tweet pas intéressant"
case _:
infoLastWord += f"dernier mot : {lastWord.split()[-1:][0]}"
newline = ""
print( print(
f"Tweet trouvé de {username} ({infoLastWord})...", end=" ") f"Tweet trouvé de {username} ({infoLastWord})...{newline}", end=" ")
# Hashtag tweet # Ignore a tweet
if len(lastWord) == 0: if lastWord == None or len(lastWord) == 0:
if keys["VERBOSE"]:
# Newline
print("")
return return
# Fetch the last word of the tweet # Fetch the last word of the tweet
@ -172,6 +174,19 @@ class Listener(StreamingClient):
if keys["VERBOSE"]: if keys["VERBOSE"]:
print("Annulation car le dernier mot n'est pas intéressant.") print("Annulation car le dernier mot n'est pas intéressant.")
def on_request_error(self, status_code):
print(f"{errorMessage[:-2]} ({status_code}) !", end=" ")
match status_code:
case 420:
if keys["VERBOSE"]:
print("Déconnecter du flux.")
case 429:
if keys["VERBOSE"]:
print("En attente de reconnexion...")
case _:
print("\n")
return False
def repeater(word: str) -> str: def repeater(word: str) -> str:
"""Formating a word who need to be repeated""" """Formating a word who need to be repeated"""