diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..5eb4608 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +datetime +tweepy +emoji \ No newline at end of file diff --git a/tweet_pourcent.py b/tweet_pourcent.py new file mode 100644 index 0000000..96efb00 --- /dev/null +++ b/tweet_pourcent.py @@ -0,0 +1,67 @@ +""" + Calculate the percentage we are in the year, and tweet it. +""" +from datetime import datetime, date +import tweepy +import emoji + +PROGRESS_BAR_SIZE = 25 + +#Your Twitter API credentials +CONSUMER_KEY = '' +CONSUMER_SECRET = '' +ACCESS_TOKEN = '' +ACCESS_TOKEN_SECRET = '' + + +def progress_bar(percentage: int, size: int): + """ + Build and returns a progress bar. + """ + proggress = " | " + for i in range(size): + if percentage * size / 100 >= i: + proggress += "#" + else: + proggress += "-" + proggress += " | " + return proggress + + +def percentage_year(): + """ + Calculate and returns the current year percentage. + """ + current_year = datetime.now().year + start = date(current_year, 1, 1).toordinal() + next_year = date(current_year + 1, 1, 1).toordinal() + days_in_current_year = next_year - start + now = date.today().toordinal() + current_day_in_year = now - start + return (current_day_in_year * 100) / days_in_current_year + +def tweet_it(text: str): + """ + Tweet a given text. + """ + auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET) + auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET) + api = tweepy.API(auth) + api.update_status(text) + +def launch(): + """ + Starts the program. The beginning. + """ + text_to_tweet = "Bonjour Twitter ! :hatching_chick: " + text_to_tweet += "Nous sommes le " + datetime.today().strftime('%d-%m-%Y') + " ! " + text_to_tweet += "Nous sommes actuellement à " + progress_bar( + int(percentage_year()), PROGRESS_BAR_SIZE) + str( + int(percentage_year())) + "% de cette année " + text_to_tweet += str(datetime.now().year) + " ! :fire: " + text_to_tweet += "Bonne journée !" + tweet_it(emoji.emojize(text_to_tweet)) + + +if __name__ == "__main__": + launch()