def crearTabla(letra):
    session = Session()
    paises = session.query(Pais).filter_by(grupo=letra)
    info_paises = []
    for pais in paises:
        foto = "../home/luis/dev/Mundial-Telegram-Bot/banderas/{0}.jpg".format(
            pais.nombre[:])
        puntos, victorias, empates, derrotas, goles_favor, goles_contra = info_equipo(
            pais.nombre)
        data_pais = {
            'nombre': pais.nombre,
            'puntos': puntos,
            'victorias': victorias,
            'empates': empates,
            'derrotas': derrotas,
            'goles_favor': goles_favor,
            'goles_contra': goles_contra,
            'foto': foto
        }
        info_paises.append(data_pais)
    info_paises = sorted(info_paises, key=lambda dict: dict['nombre'])
    info_paises = sorted(
        info_paises,
        key=lambda dict: dict['goles_contra'] - dict['goles_favor'])
    info_paises = sorted(info_paises, key=lambda dict: -dict['puntos'])

    with open(os.path.join(BASE_PATH, 'grupo.html'), 'r') as f:
        template = Template(f.read())
    css = os.path.join(BASE_PATH, 'grupo.css')
    img = imgkit.from_string(template.render(info_paises=info_paises,
                                             letra=letra),
                             'Tabla{0}.jpg'.format(letra.upper()),
                             css=css)
Esempio n. 2
0
def partidos_fixture(grupo):
    session = Session()
    paises = list(session.query(Pais).filter_by(grupo=grupo))
    partidos = []
    for pais in paises:
        partidos_de_un_equipo = session.query(Partidos).filter_by(equipo1=pais.id).all()
        partidos += partidos_de_un_equipo
    partidos = sorted(partidos,key=lambda partido:  partido.horario)
    return partidos
Esempio n. 3
0
def agregar_partido(bot,update):
    message = update.message.text
    message = message.lower()
    message = message.replace('/agregarpartido','')
    partido = message.split(',')
    equipo1, equipo2 , horario, clase = partido
    equipo1 = equipo1.strip()
    equipo2 = equipo2.strip()
    horario = horario.strip()
    clase = clase.strip()
    session = Session()
    pais1 = session.query(Pais).filter_by(nombre=equipo1).first()
    pais2 = session.query(Pais).filter_by(nombre=equipo2).first()
    if pais1 is None or pais2 is None:
        update.message.reply_text(
            'El nombre de algun pais esta mal'
        )
        return
    partidos_izquierda =  session.query(Partidos).filter_by(equipo1=pais1.id).order_by('horario')
    partidos_derecha = session.query(Partidos).filter_by(equipo2=pais1.id).order_by('horario')
    partidos = list(partidos_izquierda) + list(partidos_derecha)
    for partido in partidos:
        if partido.ya_termino == False and (pais2.id == partido.equipo1 or pais2.id == partido.equipo2):
            update.message.reply_text(
                'El partido ya existe.'
            )
            return
    partido_a_agregar = Partidos(pais1.id,pais2.id,horario,clase)
    session.add(partido_a_agregar)
    session.commit()
    update.message.reply_text(
        'Partido agregado exitosamente'
    )
Esempio n. 4
0
def crearFixture(letra):
    session = Session()
    partidos = partidos_fixture(letra)
    info_partidos = []
    for partido in partidos:
        pais1 = partido.equipo1
        pais2 = partido.equipo2
        foto1 = "../home/luis/dev/Mundial-Telegram-Bot/banderas/{0}.jpg".format(traducir_pais(pais1))
        foto2 = "../home/luis/dev/Mundial-Telegram-Bot/banderas/{0}.jpg".format(traducir_pais(pais2))
        gf,gc = partido.resultado.split("-") 
        horario = datetime.strptime(partido.horario, "%Y:%m:%d:%H:%M")
        horario = "{0} {1} de {2} a las {3}".format(
                    horario.strftime("%A").title(),
                    horario.strftime("%d"),
                    horario.strftime("%B").title(),
                    horario.strftime("%H:%M")
                    )
        if partido.ya_termino:
            horario = "Finalizó"
        data_partido = {'pais1':traducir_pais(pais1), 'pais2':traducir_pais(pais2),'foto1':foto1,
                        'foto2':foto2, 'gf':gf, 'gc':gc, 'horario':horario}
        # print(data_partido)
        info_partidos.append(data_partido)
   
    
   
   
   

    with open(os.path.join(BASE_PATH,'fixture.html'), 'r') as f:
        template = Template(f.read())
    css = os.path.join(BASE_PATH, 'fixture.css')
    img = imgkit.from_string(template.render(info_partidos=info_partidos , letra = letra), 'fixture{0}.jpg'.format(letra.upper()), css=css)
Esempio n. 5
0
def modificar_partido(bot,update):
    message = update.message.text
    message = message.lower()
    message = message.replace('/modificarpartido ','')
    equipo1, equipo2 , resultado , clase = message.split(',')
    equipo1 = equipo1.strip()
    equipo2 = equipo2.strip()
    resultado = resultado.strip()
    clase = clase.strip()
    session = Session()
    pais1 = session.query(Pais).filter_by(nombre=equipo1).first()
    pais2 = session.query(Pais).filter_by(nombre=equipo2).first()
    partidos_izquierda =  session.query(Partidos).filter_by(equipo1=pais1.id).order_by('horario')
    partidos_derecha = session.query(Partidos).filter_by(equipo2=pais1.id).order_by('horario')
    partidos = list(partidos_izquierda) + list(partidos_derecha)
    partido_a_modificar = None
    for partido in partidos:
        if clase == partido.clase_de_partido and (pais2.id == partido.equipo1 or pais2.id == partido.equipo2):
            partido_a_modificar = partido 
    if partido_a_modificar is None:
        update.message.reply_text(
            'El partido no existe'
        )
        return
    if pais1.id == partido_a_modificar.equipo1:
        partido_a_modificar.resultado = resultado
    else:
        goles1, goles2 = resultado.split('-')
        partido_a_modificar.resultado = goles2 + '-' + goles1  
    session.commit()
    update.message.reply_text(
        'Se ha modificado el partido con exito'
    )
Esempio n. 6
0
def deseliminar(bot, update):
    message = update.message.text
    message = message.lower()
    message = message.replace('/deseliminar','')
    message = message.strip()
    message = traducir(message)
    if message is None:
        update.message.reply_text(
                'Error al ingresar el nombre del pais.'
        )
        return
    session = Session()
    pais = session.query(Pais).filter_by(nombre=message).first()
    pais.en_juego = True
    session.commit()
    Tarjeta(pais)
    update.message.reply_text(
        'Terminado.'
    )
def info_equipo(pais):
    pais = pais.lower()
    pais = pais.strip()
    session = Session()
    pais = session.query(Pais).filter_by(nombre=pais).first()
    partidos_izquierda =  session.query(Partidos).filter_by(equipo1=pais.id).order_by('horario')
    partidos_derecha = session.query(Partidos).filter_by(equipo2=pais.id).order_by('horario')
    partidos = list(partidos_izquierda) + list(partidos_derecha)
    victorias = 0
    empates = 0
    derrotas = 0
    goles_favor = 0
    goles_contra = 0
    for partido in partidos:
        if partido.ya_termino:
            if pais.id == partido.equipo1:
                goles_equipo1 , goles_equipo2 = partido.resultado.split('-')
                goles_equipo1 = int(goles_equipo1)
                goles_equipo2 = int(goles_equipo2)
                if goles_equipo1 > goles_equipo2:
                    victorias += 1
                else:
                    if goles_equipo1 == goles_equipo2:
                        empates += 1
                    else:
                        derrotas += 1
                goles_favor += goles_equipo1
                goles_contra += goles_equipo2
            else:
                goles_equipo1 , goles_equipo2 = partido.resultado.split('-')
                goles_equipo1 = int(goles_equipo1)
                goles_equipo2 = int(goles_equipo2)
                if goles_equipo1 > goles_equipo2:
                    derrotas += 1
                else:
                    if goles_equipo1 == goles_equipo2:
                        empates += 1
                    else:
                        victorias += 1
                goles_favor += goles_equipo2
                goles_contra += goles_equipo1
    puntos = victorias*3 + empates
    return puntos,victorias,empates,derrotas,goles_favor,goles_contra
Esempio n. 8
0
def terminar_partido(bot,update):
    message = update.message.text
    message = message.lower()
    message = message.replace('/terminarpartido ','')
    message = message.strip()
    equipo1, equipo2 , clase = message.split(',')
    equipo1 = traducir(equipo1)
    equipo2 = traducir(equipo2)
    session = Session()
    pais1 = session.query(Pais).filter_by(nombre=equipo1).first()
    pais2 = session.query(Pais).filter_by(nombre=equipo2).first()
    partidos_izquierda =  session.query(Partidos).filter_by(equipo1=pais1.id).order_by('horario')
    partidos_derecha = session.query(Partidos).filter_by(equipo2=pais1.id).order_by('horario')
    partidos = list(partidos_izquierda) + list(partidos_derecha)
    partido_a_modificar = None
    for partido in partidos:
        if clase == partido.clase_de_partido and (pais2.id == partido.equipo1 or pais2.id == partido.equipo2):
            partido_a_modificar = partido
    if partido_a_modificar is None:
        update.message.reply_text(
            'El partido no existe'
        )
        return
    partido_a_modificar.ya_termino = True
    session.commit()
    if partido_a_modificar.clase_de_partido == 'grupo':
        letra_del_grupo = session.query(Pais).filter_by(nombre=equipo1).first().grupo
        crearTabla(letra_del_grupo)
        Tarjeta(pais1)
        Tarjeta(pais2)
        crearFixture(letra_del_grupo)
    update.message.reply_text(
            'Se ha modificado el partido con exito'
        )
    return
        
Esempio n. 9
0
        estado = "Eliminado."
    if partidos_jugados != 0:
        GFxP = str(int(goles_favor) / partidos_jugados)[0:4]
        GCxP = str(int(goles_contra) / partidos_jugados)[0:4]
    data_pais = {
        'nombre': pais.nombre,
        'victorias': victorias,
        'empates': empates,
        'derrotas': derrotas,
        'goles_favor': goles_favor,
        'goles_contra': goles_contra,
        'foto': foto,
        'GFxP': str(GFxP),
        'GCxP': str(GCxP),
        'partidos_jugados': str(partidos_jugados)
    }
    with open(os.path.join(BASE_PATH, 'estadisticas.html'), 'r') as f:
        template = Template(f.read())
    css = os.path.join(BASE_PATH, 'estadisticas.css')
    img = imgkit.from_string(template.render(data_pais=data_pais,
                                             estado=estado),
                             'Stats{0}.jpg'.format(pais.nombre.upper()),
                             css=css)


if __name__ == "__main__":
    session = Session()
    paises = session.query(Pais)
    for pais in paises:
        Tarjeta(pais)
def traducir_pais(id_pais):
    session = Session()
    pais = session.query(Pais).filter_by(id=int(id_pais)).first()
    return pais.nombre