Last active
September 21, 2015 12:09
-
-
Save gschizas/0034c51e71fe532433cf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# coding: utf-8 | |
import urllib.parse | |
import praw | |
import configparser | |
import datetime | |
import http.server | |
import webbrowser | |
from dateutil.parser import parse as dateparser | |
class ScriptCallbackWebServer(http.server.BaseHTTPRequestHandler): | |
def do_GET(self): | |
url = urllib.parse.urlparse(self.path) | |
query = urllib.parse.parse_qs(url.query) | |
if url.path != '/authorize_callback' or 'code' not in query: | |
self.send_response(404) | |
return | |
self.send_response(200) | |
self.send_header("Content-type", "text/html") | |
self.end_headers() | |
self.wfile.write("<html><head><title>Simple Bot Helper</title></head>".encode('utf-8')) | |
self.wfile.write("<body><p>This is the authorise callback page.</p>".encode('utf-8')) | |
self.wfile.write("<p>You accessed path: {}</p>".format(self.path).encode('utf-8')) | |
self.wfile.write("<p>You can close your browser".encode('utf-8')) | |
self.wfile.write("</body></html>".encode('utf-8')) | |
self.server.callback_code = query['code'][0] | |
self.server.now_serving = False | |
class RedditAgent(praw.Reddit): | |
def __init__(self, user_agent=None, ini_section='DEFAULT', *args, **kwargs): | |
if user_agent is None: | |
user_agent = 'Reddit Temporary Script by /u/gschizas version ' + datetime.date.today().isoformat() | |
scope = {'identity', 'flair', 'read', 'modflair', 'modlog', 'modposts', 'mysubreddits', 'wikiread', 'edit', 'modcontributors'} | |
self.section = ini_section | |
super().__init__(user_agent=user_agent, *args, **kwargs) | |
self.config.decode_html_entities = True | |
self.cfg = configparser.ConfigParser() | |
with open('bot.ini') as f: | |
self.cfg.read_file(f) | |
self.client = self.cfg[self.section]['client'] | |
self.secret = self.cfg[self.section]['secret'] | |
self.access_token = self.cfg[self.section].get('access_token', '') | |
self.refresh_token = self.cfg[self.section].get('refresh_token', '') | |
redirect_url = 'http://localhost:65281/authorize_callback' | |
self.set_oauth_app_info(self.client, self.secret, redirect_url) | |
if self.access_token == '' or self.refresh_token == '': | |
url = self.get_authorize_url('reddit_scratch', scope, True) | |
webbrowser.open(url) | |
callback_code = self.start_web_server(65281) | |
access_information = self.get_access_information(callback_code) | |
self.access_token = access_information['access_token'] | |
self.refresh_token = access_information['refresh_token'] | |
self.save_state() | |
last_refresh = dateparser(self.cfg[self.section]['last_refresh']) | |
minutes = (datetime.datetime.now() - last_refresh).total_seconds() / 60 | |
if minutes < 60: | |
self.refresh_token = None | |
else: | |
access_information = self.refresh_access_information(self.refresh_token) | |
self.access_token = access_information['access_token'] | |
self.refresh_token = access_information['refresh_token'] | |
self.save_state() | |
self.set_access_credentials(scope, self.access_token, self.refresh_token, True) | |
def start_web_server(self, port): | |
""" | |
:rtype : string | |
""" | |
server = http.server.HTTPServer(('', port), ScriptCallbackWebServer) | |
print('Started httpserver on port:', port) | |
server.now_serving = True | |
server.callback_code = None | |
# Wait for incoming http requests | |
# until a proper result is found | |
while server.now_serving: | |
server.handle_request() | |
server.server_close() | |
return server.callback_code | |
def save_state(self): | |
self.cfg[self.section]['access_token'] = self.access_token | |
self.cfg[self.section]['refresh_token'] = self.refresh_token | |
self.cfg[self.section]['last_refresh'] = datetime.datetime.now().isoformat() | |
with open('bot.ini', 'w') as f: | |
self.cfg.write(f) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3.4 | |
# -*- coding: utf-8 -*- | |
import yaml | |
import locale | |
import shutil | |
from bot import RedditAgent | |
import datetime | |
import requests | |
locale.setlocale(locale.LC_ALL, '') | |
with open('vote_prediction_results.yml', encoding='utf8') as f: | |
data = yaml.load(f) | |
results = data['results'] | |
parties = data['parties'] | |
result_names = data['result_names'] | |
users = data['users'] | |
votes = data['votes'] | |
party_lookup_ypes = { | |
4:"ΣΥΡΙΖΑ", | |
2:"ΝΔ", | |
41:"ΧΑ", | |
75:"Ποτάμι", | |
3:"ΚΚΕ", | |
57:"ΑΝΕΛ", | |
100:"ΛΑΕ", | |
15:"ΕΚ", | |
105:"ΠΑΣΟΚ" | |
} | |
now = datetime.datetime.now() | |
live_data = requests.get('http://ekloges.ypes.gr/current/dyn1/v/epik_1.js', params={'_dc': int(now.timestamp()*1000)}).json() | |
live_votes = {party_lookup_ypes[p['PARTY_ID']]: p['Perc'] for p in live_data['party'] if p['PARTY_ID'] in party_lookup_ypes} | |
stat_data = requests.get('http://ekloges.ypes.gr/current/stat/v/epik_1.js', params={'_dc': int(now.timestamp()*1000)}).json() | |
# results[result_names[0]] = live_votes | |
#reporting = (live_data['Egkyra'] + live_data['Akyra'] + live_data['Leyka']) / live_data['Gramenoi'] | |
reporting = live_data['NumTm'] / stat_data['CountTm'] | |
# average_result = dict(zip(parties, [0] * len(parties))) | |
# for result_name in result_names: | |
# for party in parties: | |
# vote_entry = results[result_name][party] | |
# # (results[result_name][party][0]+results[result_name][party][1])/2 | |
# if type(vote_entry) == float: | |
# vote = vote_entry | |
# else: | |
# vote = (vote_entry[0] + vote_entry[1]) / 2 | |
# average_result[party] += vote | |
# for party in parties: | |
# average_result[party] /= len(result_names) | |
#ranks = list(average_result.items()) | |
ranks = list(live_votes.items()) | |
ranks.sort(key=lambda x: -x[1]) | |
parties = [r[0] for r in ranks] | |
live_diff12 = live_votes[parties[0]] - live_votes[parties[1]] | |
table = 'Ενσωμάτωση: '+locale.format('%02.2f', 100*reporting)+'%\n\n' | |
table += 'Αποτέλεσμα/Κόμμα|' + '|'.join(parties) + '|Δ12|Βαθμοί|Συνολική διαφορά\n' | |
table += '----' + '|---:' * (3 + len(parties)) + '\n' | |
table += '*Επίσημα*' | |
for party in parties: | |
table += '|' + locale.format('%02.2f', live_votes[party]) + '%' | |
table += '|' + locale.format('%+2.2f', live_diff12) | |
table += '\n' | |
# table += '*Μέσος όρος exit poll*' | |
# for party in parties: | |
# table += '|' + locale.format('%02.2f', average_result[party]) + '%' | |
# table += '\n' | |
# table += '*Θέση*' | |
# for party in parties: | |
# table += '|' + str(1+parties.index(party)) | |
# table += '\n' | |
# for result_name in result_names: | |
# table += '*' + result_name + '*' | |
# for party in parties: | |
# vote_entry = results[result_name][party] | |
# if type(vote_entry) == float: | |
# vote = vote_entry | |
# else: | |
# vote = (vote_entry[0] + vote_entry[1]) / 2 | |
# table += '|' + locale.format('%02.2f', vote) + '%' | |
# table += '||\n' | |
# table += 'Χρήστες' + '|' * (1 + len(parties)) + '\n' | |
user_results = [] | |
for user in users: | |
user_table = '' | |
total_diff = 0 | |
score = 0 | |
score_reasons = [] | |
user_table += '**' + user + '**' | |
# for party in parties: | |
# vote = votes[user][party] | |
# user_table += '|' + locale.format('%02.2f', vote) + '%' | |
# user_table += '\n' | |
# user_delta_table = 'Δ' | |
user_ranks = list(votes[user].items()) | |
user_ranks.sort(key=lambda x: -x[1]) | |
user_parties = [r[0] for r in user_ranks] | |
for party in parties: | |
user_vote = votes[user][party] | |
result_vote = live_votes[party] | |
diff = result_vote - user_vote | |
total_diff += abs(diff) | |
if abs(diff) < 0.1: score_reasons.append(party + ' < 0,1% : 5'); score += 5 | |
elif abs(diff) < 1: score_reasons.append(party + ' < 1% : 4'); score += 4 | |
elif abs(diff) < 2: score_reasons.append(party + ' < 2% : 3'); score += 3 | |
elif abs(diff) < 3: score_reasons.append(party + ' < 3% : 2'); score += 2 | |
elif abs(diff) < 5: score_reasons.append(party + ' < 5% : 1'); score += 1 | |
else: score_reasons.append(party + ' >= 5% (' + locale.format('%+2.2f', diff) + '): 0') | |
user_rank = user_parties.index(party) | |
if user_rank == parties.index(party): | |
correct_rank = '\u2611' | |
correct_rank_title = '' | |
score_reasons.append(party + ' rank : 2') | |
score += 2 | |
else: | |
correct_rank = '\u2610' | |
correct_rank_title = 'wrong rank ({} vs {})'.format(user_rank, parties.index(party)) | |
if (user_vote >= 3.0 and result_vote >= 3.0) or (user_vote < 3.0 and result_vote < 3.0): | |
correct_enter = '\u2611' | |
correct_enter_title = '' | |
score_reasons.append(party + ' enters : 2') | |
score += 2 | |
else: | |
correct_enter = '\u2610' | |
correct_enter_title = 'wrong enter' | |
user_table += '|' | |
user_table += '[' + correct_rank +'](#r "' + correct_rank_title + '")' | |
user_table += '[' + correct_enter + '](#r "' + correct_enter_title + '")' | |
user_table += '[' + locale.format('%+2.2f', diff) + '%](#v "' + locale.format('%02.2f', user_vote) + '")' | |
result_1st = votes[user][parties[0]] | |
result_2nd = votes[user][parties[1]] | |
user_diff12 = result_1st-result_2nd | |
diff12 = abs(user_diff12 - live_diff12) | |
if diff12 < 0.05: score_reasons.append('Δ12 < 0.05% : 5'); score += 5 | |
elif diff12 < 0.1: score_reasons.append('Δ12 < 0.1% : 4'); score += 4 | |
elif diff12 < 1: score_reasons.append('Δ12 < 1% : 3'); score += 3 | |
elif diff12 < 2: score_reasons.append('Δ12 < 2% : 2'); score += 2 | |
elif diff12 < 3: score_reasons.append('Δ12 < 3% : 1'); score += 1 | |
else: score_reasons.append('Δ12 >= 3% (' + locale.format('%+2.2f', diff12) + ') : 0') | |
user_table += '|[' + locale.format('%+2.2f', diff12) + '](#d "' + locale.format('%+2.2f', user_diff12) + '")' | |
# user_delta_table += '\n' | |
score_reasons = [s.replace(' ', '\xa0') for s in score_reasons] | |
# user_table += 'Βαθμοί|**' + str(score) + '**' + '|'*(len(parties)-1) | |
score_reasons_text = ', '.join(score_reasons) | |
user_table += '|**[' + str(score) + '](#here "'+ score_reasons_text +'")**|' + locale.format('%+2.2f', total_diff) | |
user_table += '\n' | |
user_results.append((score + .001*(1000.0 - total_diff), user_table)) | |
user_results.sort(reverse=True) | |
table += ''.join(ur[1] for ur in user_results) | |
table += '\n----\n' | |
table += "Τελευταία ενημέρωση (ΥπΕσ): " + live_data['Updated'] + ' \n' | |
table += "Τελευταία ενημέρωση (gschizas): " + now.strftime('%Y-%m-%d %H:%M:%S') + '\n' | |
r = RedditAgent() | |
submission = r.get_submission("https://www.reddit.com/r/greece/comments/3lopua/") | |
body = submission.selftext | |
marker = "#Αποτελέσματα\n\n" | |
table_start = body.find(marker) + len(marker) | |
new_body = body[0:table_start] + table | |
now_text = now.strftime('%Y%m%d-%H%M%S') | |
historical_filename = 'vote_contest_results-{}.txt'.format(now_text) | |
latest_filename = 'vote_contest_results-latest.txt' | |
with open(historical_filename, encoding='utf-8', mode='w') as f: | |
f.write(new_body) | |
shutil.copy(historical_filename, latest_filename) | |
if new_body != body: | |
#print(new_body) | |
submission.edit(new_body) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
parties: | |
- ΣΥΡΙΖΑ | |
- ΝΔ | |
- ΧΑ | |
- Ποτάμι | |
- ΚΚΕ | |
- ΑΝΕΛ | |
- ΠΑΣΟΚ | |
- ΕΚ | |
- ΛΑΕ | |
users: | |
- gschizas | |
- ntebis | |
- Mpidis | |
- ravingraven | |
- xNIBx | |
- galher | |
- hargikas | |
- amaklp | |
- Ohmaigad- | |
- -Lautrec- | |
- sapounious | |
- funkris | |
- eatsfoobars | |
- Archonios | |
- Belthronding | |
- Pel0r | |
- erevoz | |
- paul232 | |
- TankCommander3301 | |
- EmbattledRanger | |
- rompwns2 | |
- duke777 | |
- forgotthepass | |
- petamenos | |
- Greek-Guy | |
- videoleader | |
- Spyros3000 | |
- n1ghthawk05 | |
- brucejoel99 | |
- Stamts | |
- sailorobvious | |
- TheCh000senOne | |
- Swagger_Muffin69 | |
- MIXXEDDOWN | |
- Liquid_her0 | |
- IM_A_PIG | |
- cybertroll | |
- doofious | |
- Melydron | |
- Malefic_Fatalis | |
- StripTheFlesh | |
votes: | |
-Lautrec-: | |
ΑΝΕΛ: 1.9 | |
ΕΚ: 3.3 | |
ΚΚΕ: 6.0 | |
ΛΑΕ: 2.8 | |
ΝΔ: 29.9 | |
ΠΑΣΟΚ: 5.8 | |
Ποτάμι: 4.5 | |
ΣΥΡΙΖΑ: 31.0 | |
ΧΑ: 6.2 | |
Archonios: | |
ΑΝΕΛ: 2.4 | |
ΕΚ: 5.9 | |
ΚΚΕ: 4.5 | |
ΛΑΕ: 4.9 | |
ΝΔ: 20.3 | |
ΠΑΣΟΚ: 3.2 | |
Ποτάμι: 3.8 | |
ΣΥΡΙΖΑ: 22.4 | |
ΧΑ: 9.5 | |
Belthronding: | |
ΑΝΕΛ: 2.8 | |
ΕΚ: 4.7 | |
ΚΚΕ: 4.9 | |
ΛΑΕ: 4.2 | |
ΝΔ: 29.8 | |
ΠΑΣΟΚ: 4.5 | |
Ποτάμι: 5.0 | |
ΣΥΡΙΖΑ: 32.0 | |
ΧΑ: 8.5 | |
EmbattledRanger: | |
ΑΝΕΛ: 2.0 | |
ΕΚ: 2.5 | |
ΚΚΕ: 5.5 | |
ΛΑΕ: 5.0 | |
ΝΔ: 25.0 | |
ΠΑΣΟΚ: 4.0 | |
Ποτάμι: 5.0 | |
ΣΥΡΙΖΑ: 27.5 | |
ΧΑ: 8.0 | |
Greek-Guy: | |
ΑΝΕΛ: 2.5 | |
ΕΚ: 3.0 | |
ΚΚΕ: 5.0 | |
ΛΑΕ: 4.0 | |
ΝΔ: 28.5 | |
ΠΑΣΟΚ: 6.0 | |
Ποτάμι: 5.5 | |
ΣΥΡΙΖΑ: 27.5 | |
ΧΑ: 7.0 | |
IM_A_PIG: | |
ΑΝΕΛ: 2.5 | |
ΕΚ: 4.5 | |
ΚΚΕ: 6.2 | |
ΛΑΕ: 4.2 | |
ΝΔ: 28.4 | |
ΠΑΣΟΚ: 4.3 | |
Ποτάμι: 4.5 | |
ΣΥΡΙΖΑ: 27.1 | |
ΧΑ: 10.5 | |
Liquid_her0: | |
ΑΝΕΛ: 3.5 | |
ΕΚ: 3.0 | |
ΚΚΕ: 5.0 | |
ΛΑΕ: 2.8 | |
ΝΔ: 25.5 | |
ΠΑΣΟΚ: 4.5 | |
Ποτάμι: 4.0 | |
ΣΥΡΙΖΑ: 35.6 | |
ΧΑ: 7.2 | |
MIXXEDDOWN: | |
ΑΝΕΛ: 3.01 | |
ΕΚ: 3.99 | |
ΚΚΕ: 6.66 | |
ΛΑΕ: 3.11 | |
ΝΔ: 30.23 | |
ΠΑΣΟΚ: 6.28 | |
Ποτάμι: 5.41 | |
ΣΥΡΙΖΑ: 32.49 | |
ΧΑ: 6.97 | |
Malefic_Fatalis: | |
ΑΝΕΛ: 2.4 | |
ΕΚ: 4.3 | |
ΚΚΕ: 4.7 | |
ΛΑΕ: 3.5 | |
ΝΔ: 28.5 | |
ΠΑΣΟΚ: 4.9 | |
Ποτάμι: 6.0 | |
ΣΥΡΙΖΑ: 29.2 | |
ΧΑ: 7.0 | |
Melydron: | |
ΑΝΕΛ: 2.5 | |
ΕΚ: 2.5 | |
ΚΚΕ: 7.0 | |
ΛΑΕ: 4.0 | |
ΝΔ: 29.0 | |
ΠΑΣΟΚ: 7.0 | |
Ποτάμι: 5.0 | |
ΣΥΡΙΖΑ: 35.0 | |
ΧΑ: 7.0 | |
Mpidis: | |
ΑΝΕΛ: 3.5 | |
ΕΚ: 3.5 | |
ΚΚΕ: 5.5 | |
ΛΑΕ: 4.0 | |
ΝΔ: 29.0 | |
ΠΑΣΟΚ: 5.0 | |
Ποτάμι: 7.0 | |
ΣΥΡΙΖΑ: 31.0 | |
ΧΑ: 7.0 | |
Ohmaigad-: | |
ΑΝΕΛ: 4.0 | |
ΕΚ: 5.5 | |
ΚΚΕ: 5.5 | |
ΛΑΕ: 5.0 | |
ΝΔ: 30.8 | |
ΠΑΣΟΚ: 5.5 | |
Ποτάμι: 7.0 | |
ΣΥΡΙΖΑ: 29.8 | |
ΧΑ: 6.9 | |
Pel0r: | |
ΑΝΕΛ: 4.0 | |
ΕΚ: 3.0 | |
ΚΚΕ: 6.5 | |
ΛΑΕ: 3.5 | |
ΝΔ: 29.0 | |
ΠΑΣΟΚ: 4.0 | |
Ποτάμι: 4.5 | |
ΣΥΡΙΖΑ: 34.0 | |
ΧΑ: 7.0 | |
Spyros3000: | |
ΑΝΕΛ: 1.9 | |
ΕΚ: 5.2 | |
ΚΚΕ: 5.7 | |
ΛΑΕ: 3.3 | |
ΝΔ: 29.0 | |
ΠΑΣΟΚ: 5.3 | |
Ποτάμι: 6.1 | |
ΣΥΡΙΖΑ: 29.9 | |
ΧΑ: 7.2 | |
Stamts: | |
ΑΝΕΛ: 2.7 | |
ΕΚ: 3.7 | |
ΚΚΕ: 6.0 | |
ΛΑΕ: 4.4 | |
ΝΔ: 29.1 | |
ΠΑΣΟΚ: 4.8 | |
Ποτάμι: 6.5 | |
ΣΥΡΙΖΑ: 30.8 | |
ΧΑ: 7.1 | |
StripTheFlesh: | |
ΑΝΕΛ: 2.8 | |
ΕΚ: 3.5 | |
ΚΚΕ: 6.0 | |
ΛΑΕ: 3.0 | |
ΝΔ: 29.3 | |
ΠΑΣΟΚ: 5.5 | |
Ποτάμι: 5.2 | |
ΣΥΡΙΖΑ: 32.5 | |
ΧΑ: 6.5 | |
Swagger_Muffin69: | |
ΑΝΕΛ: 3.0 | |
ΕΚ: 3.5 | |
ΚΚΕ: 6.4 | |
ΛΑΕ: 3.8 | |
ΝΔ: 29.5 | |
ΠΑΣΟΚ: 6.3 | |
Ποτάμι: 5.4 | |
ΣΥΡΙΖΑ: 32.5 | |
ΧΑ: 7.1 | |
TankCommander3301: | |
ΑΝΕΛ: 3.3 | |
ΕΚ: 4.0 | |
ΚΚΕ: 6.0 | |
ΛΑΕ: 6.25 | |
ΝΔ: 29.0 | |
ΠΑΣΟΚ: 4.75 | |
Ποτάμι: 5.5 | |
ΣΥΡΙΖΑ: 29.75 | |
ΧΑ: 7.5 | |
TheCh000senOne: | |
ΑΝΕΛ: 3.2 | |
ΕΚ: 3.5 | |
ΚΚΕ: 7.2 | |
ΛΑΕ: 6.3 | |
ΝΔ: 28.9 | |
ΠΑΣΟΚ: 5.5 | |
Ποτάμι: 5.1 | |
ΣΥΡΙΖΑ: 33.6 | |
ΧΑ: 7.0 | |
amaklp: | |
ΑΝΕΛ: 3.2 | |
ΕΚ: 3.25 | |
ΚΚΕ: 6.25 | |
ΛΑΕ: 3.25 | |
ΝΔ: 30.25 | |
ΠΑΣΟΚ: 6.25 | |
Ποτάμι: 4.25 | |
ΣΥΡΙΖΑ: 32.75 | |
ΧΑ: 7.25 | |
brucejoel99: | |
ΑΝΕΛ: 2.8 | |
ΕΚ: 4.4 | |
ΚΚΕ: 6.2 | |
ΛΑΕ: 5.5 | |
ΝΔ: 29.6 | |
ΠΑΣΟΚ: 5.4 | |
Ποτάμι: 5.7 | |
ΣΥΡΙΖΑ: 29.5 | |
ΧΑ: 7.5 | |
cybertroll: | |
ΑΝΕΛ: 3.05 | |
ΕΚ: 3.25 | |
ΚΚΕ: 6.6 | |
ΛΑΕ: 3.55 | |
ΝΔ: 30.75 | |
ΠΑΣΟΚ: 5.65 | |
Ποτάμι: 4.35 | |
ΣΥΡΙΖΑ: 33.5 | |
ΧΑ: 7.25 | |
doofious: | |
ΑΝΕΛ: 2.4 | |
ΕΚ: 3.5 | |
ΚΚΕ: 5.6 | |
ΛΑΕ: 3.4 | |
ΝΔ: 31.2 | |
ΠΑΣΟΚ: 6.6 | |
Ποτάμι: 6.8 | |
ΣΥΡΙΖΑ: 30.8 | |
ΧΑ: 6.5 | |
duke777: | |
ΑΝΕΛ: 1.8 | |
ΕΚ: 3.2 | |
ΚΚΕ: 5.2 | |
ΛΑΕ: 2.3 | |
ΝΔ: 33.1 | |
ΠΑΣΟΚ: 4.9 | |
Ποτάμι: 5.9 | |
ΣΥΡΙΖΑ: 35.4 | |
ΧΑ: 6.5 | |
eatsfoobars: | |
ΑΝΕΛ: 2.6 | |
ΕΚ: 3.7 | |
ΚΚΕ: 6.4 | |
ΛΑΕ: 4.6 | |
ΝΔ: 29.6 | |
ΠΑΣΟΚ: 4.2 | |
Ποτάμι: 5.7 | |
ΣΥΡΙΖΑ: 31.5 | |
ΧΑ: 7.8 | |
erevoz: | |
ΑΝΕΛ: 2.0 | |
ΕΚ: 2.5 | |
ΚΚΕ: 3.5 | |
ΛΑΕ: 5.0 | |
ΝΔ: 30.0 | |
ΠΑΣΟΚ: 5.0 | |
Ποτάμι: 7.0 | |
ΣΥΡΙΖΑ: 34.0 | |
ΧΑ: 6.0 | |
forgotthepass: | |
ΑΝΕΛ: 2.5 | |
ΕΚ: 3.2 | |
ΚΚΕ: 4.2 | |
ΛΑΕ: 2.5 | |
ΝΔ: 28.7 | |
ΠΑΣΟΚ: 6.0 | |
Ποτάμι: 5.2 | |
ΣΥΡΙΖΑ: 32.2 | |
ΧΑ: 7.78 | |
funkris: | |
ΑΝΕΛ: 2.2 | |
ΕΚ: 4.1 | |
ΚΚΕ: 5.5 | |
ΛΑΕ: 4.4 | |
ΝΔ: 31.9 | |
ΠΑΣΟΚ: 4.8 | |
Ποτάμι: 5.6 | |
ΣΥΡΙΖΑ: 32.2 | |
ΧΑ: 6.3 | |
galher: | |
ΑΝΕΛ: 2.8 | |
ΕΚ: 4.0 | |
ΚΚΕ: 6.5 | |
ΛΑΕ: 4.0 | |
ΝΔ: 27.5 | |
ΠΑΣΟΚ: 6.0 | |
Ποτάμι: 5.0 | |
ΣΥΡΙΖΑ: 31.5 | |
ΧΑ: 8.0 | |
gschizas: | |
ΑΝΕΛ: 1.5 | |
ΕΚ: 3.5 | |
ΚΚΕ: 5.8 | |
ΛΑΕ: 2.7 | |
ΝΔ: 32.9 | |
ΠΑΣΟΚ: 6.2 | |
Ποτάμι: 6.8 | |
ΣΥΡΙΖΑ: 33.0 | |
ΧΑ: 7.0 | |
hargikas: | |
ΑΝΕΛ: 2.8 | |
ΕΚ: 3.5 | |
ΚΚΕ: 5.9 | |
ΛΑΕ: 4.0 | |
ΝΔ: 27.5 | |
ΠΑΣΟΚ: 3.9 | |
Ποτάμι: 6.1 | |
ΣΥΡΙΖΑ: 30.5 | |
ΧΑ: 9.0 | |
n1ghthawk05: | |
ΑΝΕΛ: 2.7 | |
ΕΚ: 4.1 | |
ΚΚΕ: 5.7 | |
ΛΑΕ: 3.5 | |
ΝΔ: 31.4 | |
ΠΑΣΟΚ: 5.8 | |
Ποτάμι: 6.9 | |
ΣΥΡΙΖΑ: 30.7 | |
ΧΑ: 7.3 | |
ntebis: | |
ΑΝΕΛ: 1.87 | |
ΕΚ: 3.0 | |
ΚΚΕ: 4.45 | |
ΛΑΕ: 3.0 | |
ΝΔ: 31.38 | |
ΠΑΣΟΚ: 5.3 | |
Ποτάμι: 6.85 | |
ΣΥΡΙΖΑ: 32.45 | |
ΧΑ: 7.22 | |
paul232: | |
ΑΝΕΛ: 2.5 | |
ΕΚ: 3.5 | |
ΚΚΕ: 5.6 | |
ΛΑΕ: 3.7 | |
ΝΔ: 30.7 | |
ΠΑΣΟΚ: 6.3 | |
Ποτάμι: 6.8 | |
ΣΥΡΙΖΑ: 30.8 | |
ΧΑ: 7.6 | |
petamenos: | |
ΑΝΕΛ: 2.5 | |
ΕΚ: 4.0 | |
ΚΚΕ: 7.0 | |
ΛΑΕ: 4.0 | |
ΝΔ: 29.1 | |
ΠΑΣΟΚ: 4.0 | |
Ποτάμι: 7.0 | |
ΣΥΡΙΖΑ: 33.0 | |
ΧΑ: 6.0 | |
ravingraven: | |
ΑΝΕΛ: 2.7 | |
ΕΚ: 3.7 | |
ΚΚΕ: 5.5 | |
ΛΑΕ: 4.0 | |
ΝΔ: 29.0 | |
ΠΑΣΟΚ: 4.0 | |
Ποτάμι: 5.0 | |
ΣΥΡΙΖΑ: 31.5 | |
ΧΑ: 6.0 | |
rompwns2: | |
ΑΝΕΛ: 1.0 | |
ΕΚ: 1.0 | |
ΚΚΕ: 79.0 | |
ΛΑΕ: 2.0 | |
ΝΔ: 3.0 | |
ΠΑΣΟΚ: 1.0 | |
Ποτάμι: 1.0 | |
ΣΥΡΙΖΑ: 10.0 | |
ΧΑ: 2.0 | |
sailorobvious: | |
ΑΝΕΛ: 2.6 | |
ΕΚ: 3.2 | |
ΚΚΕ: 6.5 | |
ΛΑΕ: 4.0 | |
ΝΔ: 31.0 | |
ΠΑΣΟΚ: 5.5 | |
Ποτάμι: 4.6 | |
ΣΥΡΙΖΑ: 32.3 | |
ΧΑ: 7.7 | |
sapounious: | |
ΑΝΕΛ: 2.0 | |
ΕΚ: 3.9 | |
ΚΚΕ: 5.5 | |
ΛΑΕ: 3.1 | |
ΝΔ: 29.8 | |
ΠΑΣΟΚ: 5.5 | |
Ποτάμι: 6.8 | |
ΣΥΡΙΖΑ: 31.0 | |
ΧΑ: 7.5 | |
videoleader: | |
ΑΝΕΛ: 3.5 | |
ΕΚ: 5.5 | |
ΚΚΕ: 5.8 | |
ΛΑΕ: 3.7 | |
ΝΔ: 27.9 | |
ΠΑΣΟΚ: 5.2 | |
Ποτάμι: 6.0 | |
ΣΥΡΙΖΑ: 31.4 | |
ΧΑ: 6.2 | |
xNIBx: | |
ΑΝΕΛ: 2.2 | |
ΕΚ: 3.1 | |
ΚΚΕ: 6.2 | |
ΛΑΕ: 5.8 | |
ΝΔ: 28.3 | |
ΠΑΣΟΚ: 4.2 | |
Ποτάμι: 6.4 | |
ΣΥΡΙΖΑ: 31.0 | |
ΧΑ: 7.4 | |
result_names: | |
# - παν.μακ | |
# - "διακαναλική 19:00" | |
# - "σκάι 19:00" | |
# - "διακαναλική 20:00" | |
# - "σκάι 20:00" | |
- "επίσημα" | |
results: | |
"σκάι 19:00": | |
ΣΥΡΙΖΑ: [31.0, 35.0] | |
ΝΔ: [29.0, 33.0] | |
ΧΑ: [6.0, 8.0] | |
Ποτάμι: [3.5, 5.5] | |
ΚΚΕ: [5.0, 7.0] | |
ΑΝΕΛ: [2.5, 4.5] | |
ΠΑΣΟΚ: [5.0, 7.0] | |
ΕΚ: [2.5, 4.5] | |
ΛΑΕ: [2.0, 3.0] | |
"διακαναλική 19:00": | |
ΣΥΡΙΖΑ: [30.0, 34.0] | |
ΝΔ: [28.5, 32.5] | |
ΧΑ: [6.5, 8.0] | |
Ποτάμι: [4.0, 5.5] | |
ΚΚΕ: [5.5, 7.0] | |
ΑΝΕΛ: [3.0, 4.0] | |
ΠΑΣΟΚ: [5.5, 7.0] | |
ΕΚ: [2.5, 3.5] | |
ΛΑΕ: [2.5, 3.2] | |
"παν.μακ": | |
ΣΥΡΙΖΑ: [31.0, 35.0] | |
ΝΔ: [29.0, 33.0] | |
ΧΑ: [6.0, 8.0] | |
Ποτάμι: [3.5, 5.5] | |
ΚΚΕ: [5.0, 7.0] | |
ΑΝΕΛ: [2.5, 4.5] | |
ΠΑΣΟΚ: [5.0, 7.0] | |
ΕΚ: [2.5, 4.50] | |
ΛΑΕ: [2.5, 3.5] | |
# "διακαναλική 20:00": | |
"επίσημα": # ignore, now using live feed | |
ΣΥΡΙΖΑ: 35.55 | |
ΝΔ: 28.06 | |
ΧΑ: 7.11 | |
Ποτάμι: 3.93 | |
ΚΚΕ: 5.48 | |
ΑΝΕΛ: 3.70 | |
ΠΑΣΟΚ: 6.40 | |
ΕΚ: 3.45 | |
ΛΑΕ: 2.83 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment