aboutsummaryrefslogtreecommitdiff
path: root/cogs/twitter.py
diff options
context:
space:
mode:
authorAnInternetTroll <lucafulger@gmail.com>2020-07-28 17:41:47 +0000
committerAnInternetTroll <lucafulger@gmail.com>2020-07-28 17:41:47 +0000
commit00da19bb448cd303fd1c70c9c639496ff16d8a91 (patch)
tree2c49ebe54c7e65a3cd69872b79d6800465bd4ca4 /cogs/twitter.py
parent4c157a51515d788b4319af2e7227c60a86e6bccd (diff)
downloadsteve-bot-00da19bb448cd303fd1c70c9c639496ff16d8a91.tar
steve-bot-00da19bb448cd303fd1c70c9c639496ff16d8a91.tar.gz
steve-bot-00da19bb448cd303fd1c70c9c639496ff16d8a91.tar.bz2
steve-bot-00da19bb448cd303fd1c70c9c639496ff16d8a91.tar.lz
steve-bot-00da19bb448cd303fd1c70c9c639496ff16d8a91.tar.xz
steve-bot-00da19bb448cd303fd1c70c9c639496ff16d8a91.tar.zst
steve-bot-00da19bb448cd303fd1c70c9c639496ff16d8a91.zip
BUG: cannot send message
Diffstat (limited to 'cogs/twitter.py')
-rwxr-xr-x[-rw-r--r--]cogs/twitter.py38
1 files changed, 23 insertions, 15 deletions
diff --git a/cogs/twitter.py b/cogs/twitter.py
index d321ca3..668169c 100644..100755
--- a/cogs/twitter.py
+++ b/cogs/twitter.py
@@ -1,37 +1,45 @@
+import json
from discord.ext import commands, tasks
import discord
import tweepy
+import asyncio
-class MyStreamListener(tweepy.StreamListener):
+class StreamListener(tweepy.StreamListener):
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_status(self, status):
- if hasattr(status, "retweeted_status"): # Check if Retweet
- try:
- print(status.retweeted_status.extended_tweet["full_text"])
- except AttributeError:
- print(status.retweeted_status.text)
- else:
- try:
- print(status.extended_tweet["full_text"])
- except AttributeError:
- print(status.text)
+ def on_data(self, data):
+ global channelTweet
+ data = json.loads(data)
+ tweetUser = data['user']['screen_name']
+ tweetID = data['id_str']
+ tweetLink = f'https://twitter.com/{tweetUser}/status/{tweetID}'
+ loop = asyncio.get_event_loop()
+ try:
+ loop.run_until_complete(channelTweet.send(tweetLink))
+ finally:
+ loop.run_until_complete(loop.shutdown_asyncgens())
+ loop.close()
+ #print(json.dumps(data, indent='\t'))
class Twitter(commands.Cog):
def __init__(self, bot):
self.bot = bot
+ global channelTweet
+ channelTweet = self.bot.get_channel(737713121447378965)
+
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 = MyStreamListener()
- self.myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
- self.myStream.filter(follow=['1287799985040437254'], is_async=True)
+ 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