From d982b1c3f0fcd7e6ecf00d1d781ab0341616e0a9 Mon Sep 17 00:00:00 2001 From: Manikandan Gunaseelan Date: Fri, 12 Mar 2021 11:10:14 +0530 Subject: [PATCH] Add song list excel file and song_tweet.py song_tweet.py uses the Twitter API to tweet song recommendations automatically. Windows task scheduler automatically runs this script twice a day on my machine. --- Song_list.xlsx | Bin 0 -> 105762 bytes song_tweet.py | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 Song_list.xlsx create mode 100644 song_tweet.py diff --git a/Song_list.xlsx b/Song_list.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..502cdf49ad58edfda90b546678898c14dda7a72e GIT binary patch literal 105762 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�C(@*X!8cdXPgrrB>#2UbYkQ(T%f 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 Qh%qM)Mt%6%82JGH2atWcUjP6A literal 0 HcmV?d00001 diff --git a/song_tweet.py b/song_tweet.py new file mode 100644 index 0000000..bfea84b --- /dev/null +++ b/song_tweet.py @@ -0,0 +1,40 @@ +#! python3 + +# This code selects a random song from an Excel sheet (Song_list.xlsx) +# And sends out a tweet from my twitter account recommending that song + +import tweepy +import openpyxl +import random + +# You can get the following keys using the Twitter API +# Apply on developer.twitter.com and create a new app +# Note - the API must have read and write permissions to tweet on your behalf + +consumer_key = '' +consumer_secret = '' + +access_token = '' +access_token_secret = '' + +wb = openpyxl.load_workbook('Song_list.xlsx') +sheet = wb['Sheet1'] +num = random.randint(2, 181) + +song = 'A' + str(num) +artist = 'B' + str(num) + +twt = "Hello Twitter! Here's a song for you. Check out - "+ sheet[song].value + " by " + sheet[artist].value + +def OAuth(): + try: + auth = tweepy.OAuthHandler(consumer_key, consumer_secret) + auth.set_access_token(access_token, access_token_secret) + return auth + except Exception as e: + return None + +oauth = OAuth() +api = tweepy.API(oauth) + +api.update_status(twt)