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)
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)
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")
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'])
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))
def start(message): bot.reply_to(message, 'Hello, ' + message.from_user.first_name)
def test(message): bot.reply_to(message, 'Has mandado test')
def test(message): bot.reply_to(message, 'Has escrito /test')