aboutsummaryrefslogtreecommitdiff
path: root/cogs/twitter.py
diff options
context:
space:
mode:
Diffstat (limited to 'cogs/twitter.py')
-rwxr-xr-xcogs/twitter.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/cogs/twitter.py b/cogs/twitter.py
new file mode 100755
index 0000000..67e792a
--- /dev/null
+++ b/cogs/twitter.py
@@ -0,0 +1,50 @@
+import json
+from discord.ext import commands, tasks
+import discord
+import tweepy
+import requests
+
+class StreamListener(tweepy.StreamListener):
+ def __init__(self):
+ with open('./config.json') as f:
+ self.config = json.load(f)
+
+ def on_error(self, status_code):
+ if status_code == 420:
+ print("Rate limit reached. ")
+ #returning False in on_error disconnects the stream
+ return False
+
+ def on_data(self, data):
+ data = json.loads(data)
+ try:
+ tweetUser = data['tweet']['user']['screen_name']
+ tweetID = data['tweet']['id_str']
+ except:
+ tweetUser = data['user']['screen_name']
+ tweetID = data['id_str']
+ tweetLink = f'https://twitter.com/{tweetUser}/status/{tweetID}'
+ body = {
+ "content": tweetLink
+ }
+ global config
+ r = requests.post(self.config['574267523869179904']['tweetWebhook'], headers={"Content-Type": "application/json"}, data=json.dumps(body))#config['574267523869179904']['tweetWebhook'], data=json.dumps(body))
+ print(r.status_code)
+ print(r.text)
+ #print(json.dumps(data, indent='\t'))
+
+
+class Twitter(commands.Cog):
+ def __init__(self, bot):
+ self.bot = bot
+
+ auth = tweepy.OAuthHandler(self.bot.config['twitter']['consumer_key'], self.bot.config['twitter']['consumer_secret'])
+ auth.set_access_token(self.bot.config['twitter']['access_token'], self.bot.config['twitter']['access_token_secret'])
+
+ api = tweepy.API(auth)
+ myStreamListener = StreamListener()
+ stream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
+ stream.filter(follow=['1287799985040437254'], is_async=True)
+
+def setup(bot):
+ bot.add_cog(Twitter(bot)) \ No newline at end of file