/
vote_checker.py
93 lines (72 loc) · 3.36 KB
/
vote_checker.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
__author__ = 'jph'
import urllib2
import re
import datetime as dt
import time
from sendmail import send_mail
import gspreadsheet
###############################################
#Settings:
kategorie = 3 # Kategore 1-4 von klein nach gross
url="https://verein.ing-diba.de/kinder-und-jugend/example/example" #vereins page auf der ING seite
check_intervall = dt.timedelta(minutes=30) #intervall zwischen den abfragen
from_adress="example@gmail.com"
from_password="123456"
to_adress=["example2@gmail.com"]
###############################################
kategorie-=1
def check_votes():
votes_200 = urllib2.urlopen('https://verein.ing-diba.de/club/presentation/search/page/40/category//clubname//location//size//order/rank/direction/ASC')
html_200 = votes_200.read()
abschnitt=re.findall("<li>Stimmen: \d\.?\d*</li>\s*<li>Rang: 200</li>", html_200)
stimmen_200=re.findall('Stimmen: \d\.?\d*',abschnitt[kategorie])[0][-5:]
stimmen_200=int(stimmen_200.replace(":",""))
votes_target = urllib2.urlopen(url)
html_target= votes_target.read()
stimmen_target=re.findall('Stimmen: \d\.?\d*',html_target)[0][-5:]
stimmen_target=int(stimmen_target.replace(":",""))
#print "Stimmen Platz 200: %s" %stimmen_200
#print "Stimmen Eigener Verein: %s" %stimmen_target
#print "Differenz: %s" %(stimmen_target-stimmen_200)
return stimmen_200, stimmen_target
spread = gspreadsheet.Google_Spreadsheet2(spreadsheet="ING_Pfadfinder")
stimmen_200, stimmen_target=check_votes()
spread.write_log(dt.datetime.today(), stimmen_200, stimmen_target, stimmen_target - stimmen_200)
text="Stimmen Platz 200: {}\nStimmen Eigener Verein: {}\nDifferenz: {}\n".format(stimmen_200,stimmen_target,stimmen_target-stimmen_200)
print text
#subject="ING-Vote-Monitoring gestartet..."
#send_mail(from_adress,from_password,to_adress,text,subject,True)
start=dt.datetime.today()+dt.timedelta(seconds=3)
nextalert=start+dt.timedelta(hours=24)
alerts=0
while True:
now=dt.datetime.today()
if now>=start:
alertsold=alerts
print dt.datetime.today()
try:
stimmen_200, stimmen_target=check_votes()
spread.write_log(dt.datetime.today(), stimmen_200, stimmen_target, stimmen_target - stimmen_200)
with open('log.txt', 'a') as logfile:
logfile.write('{},{},{},{} \n'.format(dt.datetime.today(), stimmen_200, stimmen_target,
stimmen_target - stimmen_200))
if stimmen_target<stimmen_200-20:
print "Too few votes, gogogo!"
text="Stimmen Platz 200: {}\nStimmen Eigener Verein: {}\nDifferenz: {}\n".format(stimmen_200,stimmen_target,stimmen_target-stimmen_200)
print text
subject="Alert: too few Votes at ING!"
if now>=nextalert:
send_mail(from_adress,from_password,to_adress,text,subject,True)
alerts+=1
else:
print "Vote difference big enough - waiting..."
except urllib2.URLError:
print "Website not available"
subject="Alert: ING Website not available"
text="\n"
send_mail(from_adress,from_password,to_adress,text,subject,True)
alerts+=1
start=now+check_intervall
if alerts!=alertsold:
nextalert+=dt.timedelta(hours=24)
time.sleep(1)