Esempio n. 1
0
def echo_message(message):
    """
    Hace un 'eco' de lo que se recibe y no se ha procesado en algún comando anterior.
    :param message:
    :return:
    """
    bot.reply_to(message, message.text)
Esempio n. 2
0
def load(message):
    """
    Recupera un dato guardado con save
    """

    chat_id = message.chat.id
    data = chat.Chat.get_config(chat_id, 'memory')
    if not data:
        bot.reply_to(message, "Aún no has guardado nada")
        return

    bot.reply_to(message, "Dato recuperado: %s" % data.value)
Esempio n. 3
0
def save(message):
    """
    Guarda un dato en el chat que se puede recuperar después
    """

    data = util.extract_arguments(message.text)
    if not data:
        bot.reply_to(message, "Debe indicar el dato que quiere que guarde")
        return

    chat_id = message.chat.id
    chat.Chat.set_config(chat_id, 'memory', data)
    bot.reply_to(message, "Dato guardado. Usa /load para recuperar")
Esempio n. 4
0
def weather(message):
    """
    Ejemplo de API con Token en la URL

    Usa la API definida en https://openweathermap.org/current para conocer el tiempo
    en una ciudad
    """
    weather_token = os.environ.get('OPENWEATHER_TOKEN', False)
    if not weather_token:
        bot.reply_to(message, "Debe configurarse el token de openweather")
        return

    city = util.extract_arguments(message.text).upper()
    if not city:
        bot.reply_to(message, "Debe indicar una ciudad")
        return

    url = 'https://api.openweathermap.org/data/2.5/weather?q=%s,es&lang=sp&units=metric&APPID=%s' % (
        city, weather_token)
    response = requests.get(url=url)

    if response.status_code is not requests.codes.ok:
        bot.reply_to(message, "Error al consultar el tiempo")
        return

    data = response.json()
    bot.reply_to(message, "La temperatura es de %sºC" % data['main']['temp'])
Esempio n. 5
0
def change(message):
    """
    Ejemplo de API abierta

    Usa la API definida en https://bitcoincharts.com/about/markets-api/
    para saber el tipo de cambio de una moneda
    :param message:
    :return:
    """
    exchange = util.extract_arguments(message.text).upper()
    if not exchange:
        bot.reply_to(message,
                     "Debe indicar un tipo de cambio. Ej.: EUR, USD, ...")
        return

    # request.get(url).json() Devuelve los datos de una API pública
    response = requests.get(
        'http://api.bitcoincharts.com/v1/weighted_prices.json').json()
    if exchange not in response:
        bot.reply_to(message, "No se ha encontrado el tipo de cambio")
        return

    bot.reply_to(
        message,
        "Un bitcoin equivale a %s %s" % (response[exchange]['24h'], exchange))
Esempio n. 6
0
def start(message):
    bot.reply_to(message, 'Hello, ' + message.from_user.first_name)
Esempio n. 7
0
def test(message):
    bot.reply_to(message, 'Has mandado test')
Esempio n. 8
0
def test(message):
    bot.reply_to(message, 'Has escrito /test')