put in more escapes. har har har.

remotes/1705286528371406548/stable1
b3yond 2017-06-17 18:25:17 +02:00
parent e476c9b2da
commit f181545f14
2 changed files with 53 additions and 23 deletions

2
.gitignore vendored
View File

@ -1,4 +1,6 @@
*.swp
.idea/
last_rt
ticketfrei.cfg
seen_toots.pickle
seen_toots.pickle.part

View File

@ -1,7 +1,9 @@
#!/usr/bin/env python
__author__ = "b3yond"
import twitter
import requests
from time import sleep
"""
@ -9,7 +11,7 @@ How to get these keys is described in doc/twitter_api.md
After you received keys, store them in ../../api_keys, one at a line.
"""
with open("../../api_keys", "r") as file:
with open("../appkeys/ticketfrei@twitter.com", "r") as file:
keys = file.readlines()
for i in keys:
print i,
@ -23,32 +25,58 @@ api = twitter.Api(consumer_key = keys[0].strip(),
# This counter is needed to keep track which was the last tweet you retweeted
last_rt = ""
with open("../last_rt", "r+") as file:
last_rt = file.read()
# Words which have to be included into the tweets for the tweet to get retweeted
with open("../triggerwords.txt", "r") as file:
with open("../triggerwords", "r") as file:
triggers = file.readlines()
try:
while 1:
sleep(1)
while 1:
sleep(1)
# Store all mentions in a list of Status Objects
mentions = api.GetMentions(since_id=last_rt)
print mentions
for i in mentions:
print i.user.name, i.user.id, i.text # debug
# Is the Text of the Tweet in the triggerlist?
for j in triggers:
if i.text.lower().find(j):
# Retweet status, save the id so it doesn't get crawled again
# Store all mentions in a list of Status Objects
try:
mentions = api.GetMentions(since_id=last_rt)
except requests.exceptions.ConnectionError:
done = False
while done == False:
try:
feedback = api.PostRetweet(i.id)
print feedback
except twitter.error.TwitterError:
print("[ERROR] probably you already retweeted this tweet.")
last_rt = i.id
break
mentions = api.GetMentions(since_id=last_rt)
done = True
except:
sleep(10)
print mentions
for i in mentions:
print i.user.name, i.user.id, i.text # debug
# Is the Text of the Tweet in the triggerlist?
for j in triggers:
if i.text.lower().find(j):
# Retweet status
try:
api.PostRetweet(i.id)
# This is an Error we need to get rid of. Why are tweets RTed twice?
except twitter.error.TwitterError:
print("[ERROR] probably you already retweeted this tweet.")
except requests.exceptions.ConnectionError:
done = False
while done == False:
try:
api.PostRetweet(i.id)
done = True
except:
sleep(10)
# save the id so it doesn't get crawled again
last_rt = i.id
break
except:
api.PostDirectMessage("Help! I broke down. restart me pls :$", "801098086005243904", "links_tech")
with open("../last_rt", "w") as file:
file.write(last_rt)