SimHoc/twitHandler.py

45 lines
1.6 KiB
Python

import tweepy, os, json, player
dataDir = "Data"
class TwitHandler(object):
"""Twitter connection handler class"""
api = tweepy.Client()
def __init__(self):
path = os.path.join(dataDir, "Twitter.keys")
if os.path.exists(path):
with open(path) as keysFile:
bearerToken, consumerKey, consumerSecret, accessKey, accessSecret = [line.strip() for line in keysFile.readlines()]
else:
raise FileNotFoundError
self.api = tweepy.Client(bearerToken, consumerKey, consumerSecret, accessKey, accessSecret)
def scanForMention(self, lastRepliedID):
mentions = self.api.get_users_mentions(1479541275862908928, since_id=lastRepliedID, max_results=20)
if mentions.data is None or len(mentions.data) == 0:
return
for mention in reversed(mentions.data): #do oldest first
lastID = mention.id
if "rate " in mention.text.lower():
try:
name = mention.text.split("rate ",1)[1]
self.sendTextReply(player.Player(name).twitterString(), mention)
except:
print("Tweet already replied to.")
with open(os.path.join(dataDir, "lastID.twt"), 'w') as file:
file.write(str(lastID+1))
def sendTextTweet(self, text:str):
self.api.create_tweet(text=text)
def sendTextReply(self, text:str, prevTweet):
self.api.create_tweet(in_reply_to_tweet_id=prevTweet.id, text=text)
def changeBio(self, newText):
pass #awaiting API v1 permission