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()
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)
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')
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')
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
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)
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)