Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import twitter
- import babynames #get it here http://pastebin.com/ZL0VYWV7
- from time import sleep, gmtime, strftime
- class BabyBotError(Exception):
- def __init__(self, message):
- super(BabyBotError, self).__init__(message)
- def main():
- ckey ="ENTER YOUR OWN"
- csecret ="ENTER YOUR OWN"
- mytoken="ENTER YOUR OWN"
- tsecret="ENTER YOUR OWN"
- bna = babynames.BabyNameAnalyzer()
- api = twitter.Api(consumer_key=ckey,consumer_secret=csecret,access_token_key=token,access_token_secret=tsecret)
- namecounter= {}
- myfollowers = api.GetFollowers()
- myfriends = api.GetFriends()
- while True:
- try:
- for follower in myfollowers:
- if follower.id not in [myfriend.id for myfriend in myfriends]:
- try:
- api.CreateFriendship(follower.id)
- except Exception as e:
- if e[0][0]["code"] == 160:
- print strftime("%Y-%m-%d %H:%M:%S", gmtime()), "Error code {}-{}".format(e[0][0]["code"], e[0][0]["message"])
- myfriends.append(follower)
- print "[?] Fixed now? ", follower in myfriends
- break
- print "[Zzz] Dealing with friends can be exhausting. Time for a 15 second nap!"
- sleep(15)
- for message in api.GetDirectMessages():
- try:
- if len(message.text.split(" ")) == 2 and message.text.split(" ")[1] not in namecounter:
- gender = message.text.split(" ")[0]
- name = message.text.split(" ")[1]
- namecounter[name] = 1
- bna.plotName(gender, name)
- mymessage = "@{0} Here are stats for the {1}'s name {2}.".format(message.sender.screen_name,gender,name)
- print "[-] Posting the following message: ", mymessage
- api.PostUpdate(mymessage,'{}.png'.format(name))
- api.DestroyDirectMessage(message.id)
- elif len(message.text.split(" ")) == 2 and message.text.split(" ")[1] in namecounter:
- namecounter[message.text.split(" ")[1]]+=1
- api.DestroyDirectMessage(message.id)
- else:
- api.DestroyDirectMessage(message.id)
- print strftime("%Y-%m-%d %H:%M:%S", gmtime()), "[!] Baby bot error"
- raise BabyBotError("Malformed request")
- except KeyError:
- try:
- api.PostUpdate("@{0} {1} was not found in the data".format(message.sender.screen_name,name))
- except Exception:
- api.DestroyDirectMessage(message.id)
- except Exception as e:
- try:
- print strftime("%Y-%m-%d %H:%M:%S", gmtime()), "Error code {}-{}".format(e[0][0]["code"], e[0][0]["message"])
- except:
- print strftime("%Y-%m-%d %H:%M:%S", gmtime()), e
- print strftime("%Y-%m-%d %H:%M:%S", gmtime()),"Current names recorded are:\n "
- for k,v in namecounter.items():
- print "The name {} has been requested {} times".format(k, v)
- print "[Zzz] Napping for 60 Seconds. Will check for new messages soon!"
- sleep(60)
- except Exception as e:
- try:
- print strftime("%Y-%m-%d %H:%M:%S", gmtime()), "Error code {}-{}".format(e[0][0]["code"], e[0][0]["message"])
- if e[0][0]["code"] == 88:
- print "[Zzz] Twitter thinks im interfacing too often! Napping for 300 seconds"
- sleep(300)
- except:
- print strftime("%Y-%m-%d %H:%M:%S", gmtime()), e
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement