-
Notifications
You must be signed in to change notification settings - Fork 1
/
programacao.py
executable file
·91 lines (78 loc) · 3.27 KB
/
programacao.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
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from pprint import pprint
import json
import requests
import urllib
HEADERS = {'token': 'hack2017-grupo3'}
URL_BASE = 'https://api.sde.globo.com/esportes/futebol/modalidades/futebol_de_campo/categorias/profissional'
def get_stadium_name(ref, stadium_id):
return ref['sedes'][str(stadium_id)]['nome_popular']
def get_team_name(ref, team_id):
return ref['equipes'][str(team_id)]['nome_popular']
# Game Raw Data Example
# {u'cancelado': False,
# u'data_realizacao': u'2017-05-14',
# u'decisivo': False,
# u'equipe_mandante_id': 266,
# u'equipe_visitante_id': 277,
# u'escalacao_mandante_id': 451761,
# u'escalacao_visitante_id': 451758,
# u'fase_id': 5196,
# u'hora_realizacao': u'11:00:00',
# u'jogo_id': 211239,
# u'placar_oficial_mandante': None,
# u'placar_oficial_visitante': None,
# u'placar_penaltis_mandante': None,
# u'placar_penaltis_visitante': None,
# u'rodada': 1,
# u'sede_id': 277,
# u'suspenso': False,
# u'vencedor_jogo': None,
# u'wo': False}
def get_next_game(team_id, date):
url = URL_BASE + '/campeonatos/campeonato-brasileiro/edicoes/campeonato-brasileiro-2017/jogos?equipe_id=%s&data_hora_inicial=%s' % (team_id, date)
resp = requests.get(url, headers=HEADERS).json()
if ('jogos' in resp['resultados'].keys()):
return resp['resultados']['jogos'][0], resp['referencias']
return None, None
# Formato da resposta:
# Campeonato Brasileiro 2017
# Dia, Horario
# Estadio
# (logo) meu_time x time_adversario (logo)
#
def format_next_game(game_info,ref):
dia = game_info['data_realizacao']
horario = game_info['hora_realizacao']
estadio = get_stadium_name(ref, game_info['sede_id'])
timeA = get_team_name(ref, game_info['equipe_mandante_id'])
timeB = get_team_name(ref, game_info['equipe_visitante_id'])
#TODO: add logo for teams
return '''Campeonato Brasileiro 2017\n%s, %s\n%s\n%s x %s\n''' % (dia, horario, estadio, timeA, timeB)
def get_last_game(team_id, date):
url = URL_BASE + '/campeonatos/campeonato-brasileiro/edicoes/campeonato-brasileiro-2017/jogos?equipe_id=%s&data_hora_final=%s&ord=desc' % (team_id, date)
resp = requests.get(url, headers=HEADERS).json()
#pprint(resp)
if ('jogos' in resp['resultados'].keys()):
return resp['resultados']['jogos'][0], resp['referencias']
return None, None
def format_last_game(game_info, ref):
dia = game_info['data_realizacao']
horario = game_info['hora_realizacao']
estadio = get_stadium_name(ref, game_info['sede_id'])
timeA = get_team_name(ref, game_info['equipe_mandante_id'])
timeB = get_team_name(ref, game_info['equipe_visitante_id'])
scoreA = game_info['placar_oficial_visitante']
scoreB = game_info['placar_oficial_mandante']
#TODO: add logo for teams
return '''Campeonato Brasileiro 2017\n%s, %s\n%s\n%s %s - %s %s\n''' % (dia, horario, estadio, timeA, scoreA, scoreB, timeB)
#url = 'https://api.sde.globo.com/jogos/211240/scouts'
#response = get_next_game_formatted(266, "2017-05-01")
#print(response)
# print get_equipes_popular_name_list()
def format_game(upcoming, game_info, ref):
if upcoming:
return format_next_game(game_info, ref)
else:
return format_last_game(game_info, ref)