Curso de programación de criptomonedas con Python - 7. Crear un bot informador de STEEM (parte 2/2)

in #spanish7 years ago (edited)

En la clase anterior empezamos a crear nuestro bot informador de STEEM recogiendo los datos de tres APIs diferentes: Bittrex, Poloniex y Coinmarketcap. Hoy vamos a ordenar esos datos y los vamos a mandar a nuestro correo electrónico.

Este es el código completo con el que terminamos en el capítulo anterior:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import smtplib, ast
from bittrex import bittrex
from poloniex import poloniex
from coinmarketcap import Market

bittrex = bittrex('Tu APIKEY', 'Tu APISECRET')
poloniex = poloniex('Tu APIKEY', tu APISECRET')
coinmarketcap = Market()

steem_bittrex = bittrex.getticker('BTC-STEEM')
ultimo_steem_bittrex = steem_bittrex['Last']
ultimo_steem_poloniex = poloniex.returnTicker().get('BTC_STEEM')['last']
coinmarket_steem = ast.literal_eval(coinmarketcap.ticker('steem'))
porcentaje_24h = coinmarket_steem[0]['percent_change_24h']
porcentaje_7d = coinmarket_steem[0]['percent_change_7d']

Ordenar la información

Ahora vamos a darle un poco de orden y limpieza para que pueda ser leído fácilmente por humanos. Primero crearemos una variable llamada resumen. Dentro de esta variable habrá una cadena de texto con toda la información. Para ello vamos a encadenar texto entre sí, de la siguiente forma:

resumen = 'Precio de STEEM' + '\n' + 'Bittrex: ' + str(ultimo_steem_bittrex) + '\n' + 'Poloniex: ' + str(ultimo_steem_poloniex)  + '\n\n' + 'Porcentaje de subida/bajada: ' + '\n' + str(porcentaje_24h) + '\n' + str(porcentaje_7d)

No nos asustemos si no lo entendemos a primera vista, es muy fácil de comprender. Lo que se encuentra entre ´'...'´ son cadenas de texto que se van uniendo entre sí con ´+´. Las ´'\n'´ se utilizan para hacer saltos de línea en Python.

Si nos fijamos, las variables con los datos que recopilamos están encerrados entre paréntesis con ´str()´. Esto significa que estamos convirtiendo los datos en cadenas, ´str()´ hace referencia a string y es una función integrada en la librería estándar de Python para convertir tipos de datos como los números a cadenas de texto.

Comprobamos que lo hemos hecho bien escribiendo print resumen. Debería aparecernos algo como esto:

Enviando un mail en Python

Ahora vamos a usar la librería smptlib que importamos al principio. Para ello, copiamos el siguiente código y le cambiaremos algunas cosas:

to = 
gmail_user =
gmail_pwd = 
smtpserver = smtplib.SMTP("smtp.gmail.com", 587)
smtpserver.ehlo()
smtpserver.starttls()
smtpserver.ehlo
smtpserver.login(gmail_user, gmail_pwd)
header = 'To:' + to + '\n' +?from: ' + gmail_user + '\n' + 'Subject: Precio de STEEM \n'
msg = header + resumen
smtpserver.sendmail(gmail_user, to, msg)
smtpserver.close()

Donde dice to = escribimos a continuación la direeción de email donde queremos enviarlo entre comillas simples: 'mail'. En gmail_user = hacemos lo mismo para el email desde donde lo enviamos y en gmail_pwd = lo mismo para la contraseña del email desde donde lo enviamos.

Entonces lo ejecutaremos para comprobar si funciona. En caso de error es posible que tengas que dar acceso a aplicaciones menos seguras desde tu cuenta de google. Antes de ello, busca información en internet sobre el error que reporte Python.

Si has recibido el correo, ¡enhorabuena! Ya has construido tu primera aplicación Python para recopilar datos de criptomonedas. Pronto veremos cosas más complicadas, pero con lo visto hasta ahora ya puedes hacer muchas cosas. ¡Nos vemos en la próxima lección!


Índice del curso:

1. Presentación
2. Cómo empezar: llamadas a APIs
3. Envolturas
4. Recopilar datos uno a uno: diccionarios
5. Recopilar datos uno a uno: listas
6. Funciones. Crear un bot informador de STEEM (parte 1/2)

Sort:  

This post has been linked to from another place on Steem.

Learn more about and upvote to support linkback bot v0.5. Flag this comment if you don't want the bot to continue posting linkbacks for your posts.

Built by @ontofractal

Creo que vi algunos post parecido en ingles aqui mismo en steem... voy a ver si me animo a hablar sobre estadisticas y steem :D

Coin Marketplace

STEEM 0.24
TRX 0.11
JST 0.031
BTC 61875.79
ETH 3013.13
USDT 1.00
SBD 3.69