Telegram bot Aire Gijón (Work in progress) [py]

Paso 0.
Crear un env en Anaconda e instalar todos los packages (Lo indican en el vídeo)

Primer paso.
Echale un vistazo a este vídeo donde te acompañan en los primeros pasos.


Segundo paso.
Una vez que el chat ya te responda y tengas una función, deberías tener un código así (probar diferencias):

import os
import telebot

#API_KEY = os.getenv('API_KEY') // En windows al final fué más rápido sin ENV. 
bot = telebot.TeleBot('Aquí tu API KEY')

@bot.message_handler(commands=['hola'])
def hola(message):
    bot.reply_to(message, "Hola capullin")

@bot.message_handler(commands=['yeah'])
def yeah(message):
    bot.send_message(message.chat.id, "Hola capullin")


Tercer paso.
Chequear como es la API de maps.sensor.community. Aquí la describen bien.


Cuarto Paso.
Sí no sabes mucho de Python como es mi caso, viene bien este tutorial par amanejar API’S en Python. También este sobre como leer los diccionarios.


Quinto paso.
Me hice una lista con todos los sensores del area de Gijón. A mano 😉

sensores = [72384,64120,72289,73510,73768,69414,72437,60233,73213,73219,70332,73138,71637,71191,69703,72424]


Para enviarse también la localización, está este otro truco.

Sexto paso.
La función para que responda a la llamada de cada sensor (Por el número que tenemos en el mapa)

@bot.message_handler(func=lambda m: True)
def echo_all(message):
    pilla = []

    for d in sensores:
        if message.text in str(d):
            try:
             sens = "https://data.sensor.community/airrohr/v1/sensor/"
             slash = "/"
             f = sens+str(d)+slash
             response = requests.get(f)
             pilla.append(response.json()[0]["sensordatavalues"][0]["value"])
             pilla.append(response.json()[0]["sensordatavalues"][1]["value"])
             pilla.append(response.json()[0]["location"]["latitude"])
             pilla.append(response.json()[0]["location"]["longitude"])
             bot.send_location(message.chat.id, latitude=pilla[2], longitude=pilla[3])

             print("Ahora mismo el valor de PM10 es: "+pilla[0]+"| el de PM2.5 es: "+pilla[1])
             v = "Ahora mismo el valor de PM10 es: "
             v2 = " | El de PM2.5 es: "
             v3 = v + pilla[0] + v2 + pilla[1]
             bot.send_message(message.chat.id, v3)

            except:
             print("No encontré nada!")
             v3 = "No encontré nada!"
             bot.send_message(message.chat.id, v3)



bot.polling()


Subido al GitHub de Rotor Studio > https://github.com/rotor-studio/AireGijon