Example #1
0
def postData(url, payload, company) -> str:
    headers = {
        'Content-Type': 'application/json',
        'Authorization': 'Basic ' + getUserPassBase64(company),
        'Cookie': 'RuntimeTenantAffinity=msweua3554t49851626'
    }

    try:
        response = requests.request('POST', url, headers=headers, data=payload)
    except requests.exceptions.Timeout:
        print('Superado el tiempo de espera al levantar la cola.')
        save_log(company['name'], 'Error al levantar las colas',
                 'Superado el tiempo de espera')
        envia_telegram(
            ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(),
            str(company['name']) +
            ' Error al levantar las colas. Superado el tiempo de espera')

        return ''
    except requests.exceptions.RequestException as e:
        print(f'Error al levantar la cola. {e}')
        save_log(company['name'], 'Error al levantar las colas', str(e))
        envia_telegram(
            ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(),
            str(company['name']) + ' Error al levantar las colas. ' + str(e))

        return ''

    return response.json()
Example #2
0
def check_weather():
    ok = False
    result_text = ''

    ok, result_text = aemet.get_weather(ConfMgt.get_aemet_token())

    if not ok:
        envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), 'Error al conectar con AEMET')
    else:
        envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), result_text)
Example #3
0
def check_weather_tomorrow():
    ok = False
    result_text = ''

    prediction = aemet.get_weather_days(ConfMgt.get_aemet_token(), 1)

    if not prediction:
        envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), 'Error al conectar con AEMET')
    else:
        ok, result_text = aemet.manage_prediction(prediction)

        if ok:
            envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), result_text)
        else:
            envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), 'Error al conectar con AEMET')
Example #4
0
def procesa_empresa(company):
    json_respuesta = getColas(company)

    if 'value' not in json_respuesta:
        print('Error. No se encuentra atributo value en la respuesta')
        print(f'Respuesta {str(json_respuesta)}')

        save_log(company['name'],
                 'Error. No se encuentra atributo value en la respuesta',
                 str(json_respuesta))
        envia_telegram(
            ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(),
            str(company['name']) +
            ' Error. No se encuentra atributo value en la respuesta ' +
            str(json_respuesta))

        return

    for item in json_respuesta['value']:
        if (item['Object_ID_to_Run'] >= 50000) and (item['Object_ID_to_Run'] <=
                                                    99999):
            if item['Status'] not in ['Ready', 'In Process']:
                texto_mostrar = 'Cola tipo: {0} id: {1} nombre: {2} esta parada. Se va a arrancar. Empresa: {3}'.format(
                    item['Object_Type_to_Run'], item['Object_ID_to_Run'],
                    item['Description'], str(company['name']))

                print(texto_mostrar)
                envia_telegram(ConfMgt.get_telegram_token(),
                               ConfMgt.get_telegram_group_id(), texto_mostrar)

                if activaCola(item['ID'], company):
                    update_log(item, company['name'])
                    envia_telegram(ConfMgt.get_telegram_token(),
                                   ConfMgt.get_telegram_group_id(), 'Correcto')
                    print('')
                    print('Correcto')
                else:
                    print('')
                    print('No se ha podido reactivar')

                    update_log(item, company['name'],
                               'No se ha podido reactivar')
                    envia_telegram(ConfMgt.get_telegram_token(),
                                   ConfMgt.get_telegram_group_id(),
                                   'No se ha podido reactivar')
Example #5
0
def getColas(company) -> str:
    url = company['endpoint_colas']

    payload = {}

    headers = {
        'Authorization': 'Basic ' + getUserPassBase64(company),
        'Cookie': 'RuntimeTenantAffinity=msweua3554t49851626'
    }

    try:
        response = requests.request("GET", url, headers=headers, data=payload)
    except requests.exceptions.Timeout:
        print('Superado el tiempo de espera al leer las colas.')
        save_log(company['name'], 'Error al leer las colas',
                 'Superado el tiempo de espera')
        envia_telegram(
            ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(),
            str(company['name']) +
            ' Error al leer las colas. Superado el tiempo de espera')

        return ''
    except requests.exceptions.RequestException as e:
        print(f'Error al leer las colas. {e}')
        save_log(company['name'], 'Error al leer las colas', str(e))
        envia_telegram(
            ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(),
            str(company['name']) + ' Error al leer las colas ' + str(e))

        return ''

    try:
        js = response.json()
    except json.decoder.JSONDecodeError:
        print('Error al parsear respuesta')
        save_log(company['name'], 'Error al parsear respuesta', response.text)
        envia_telegram(
            ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(),
            str(company['name']) + ' Error al parsear respuesta ' +
            response.text)

        js = ''
    finally:
        return js
Example #6
0
    else:
        envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), result_text)


def check_weather_tomorrow():
    ok = False
    result_text = ''

    prediction = aemet.get_weather_days(ConfMgt.get_aemet_token(), 1)

    if not prediction:
        envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), 'Error al conectar con AEMET')
    else:
        ok, result_text = aemet.manage_prediction(prediction)

        if ok:
            envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), result_text)
        else:
            envia_telegram(ConfMgt.get_telegram_token(), ConfMgt.get_telegram_group_id(), 'Error al conectar con AEMET')


if __name__ == "__main__":
    main(ConfMgt.get_telegram_token())

    for hour in ConfMgt.get_schedule():
        schedule.every().day.at(hour).do(check_weather)

    while True:
        schedule.run_pending()
        time.sleep(1)
Example #7
0
def send_telegram(texto_enviar):
    # Send text to telegram
    update = Updater(token=conf.get_telegram_token())
    update.bot.send_message(chat_id=conf.get_telegram_group_id(), text=texto_enviar)