Ceci est un module simple qui récupére les valeurs instantanées de crypto-monnaies en BTC et USD à partir des API Coin360.com et CoinmarketCap
Installez d'abord le package
pip install cryptocurrencies_scraper
from cryptocurrencies_scraper . CurrencyService import Manager
manager = Manager () # Create a new instance of the Manager
manager . update () # Ask the manager to update all currencies values
manager . all_currencies () # returns a dict that contain the currency name and symbol as key and currency information as a list
manager . get_curency ( 'btc' ) # return the list of currency values retrived for bitcoin using symbol
manager . get_curency ( 'bitcoin' ) # return the list of currency values retrived for bitcoin using name
Un grattoir doit prolonger le CurrentPriceInterface
. Voici un schéma de base pour un nouveau grattoir
class MySourceForCurrencies ( CurrentPriceInterface ):
instance = None
URL = 'https://api.mysource.com/v1/ticker/?limit=3000'
NAME = "mysource.com"
@ classmethod
def get_instance ( cls ) -> 'MySourceForCurrencies' :
if cls . instance is None :
cls . instance = MySourceForCurrencies ()
return cls . instance
def __init__ ( self ):
super (). __init__ ()
def update_currency_list ( self ):
self . process_data ( requests . get ( self . URL ). json ())
def process_data ( self , json_data : json ) -> None :
# Manipulate the the json to be Currency "parsable"
c = Currency . parse_json ( json_data , self . NAME )
#When parsed, add it to the index
NameIndexes . get_instance (). add_to_index ( c )
return None
Pour que votre grattoir fonctionne, vous devez l'ajouter au gestionnaire
from cryptocurrencies_scraper . CurrencyService import Manager
manager = Manager ()
manager . add_source ( MySourceForCurrencies . get_instance ())
# you can also remove a source
manager . remove_source ( MySourceForCurrencies . NAME )
Ensuite, sur chaque manager.update()
appelez votre grattoir sera appelé et les devises ajoutées à l'index
Cette classe est utilisée en interne pour indexer toutes les devises. Lorsqu'une nouvelle monnaie est ajoutée, elle sera regroupée par le symbole et le nom (symbole supérieur, nom en minuscules)
La seule méthode utile est NameIndexes.get_instance().add_to_index(currency)
. À chaque mise à jour, il est complété en terminaison de toutes les vieilles valeurs.
Currency
C'est l'objet qui représente une devise ici est la structure
{
"symbol" : " BTC " ,
"name" : " Bitcoin " ,
"valueUSD" : 5513 ,
"valueBTC" : 1 ,
"lastUpdate" : 1566531513813 ,
"source" : " coin360.com " ,
"changes" : {
"7d" : -1 ,
"24h" : -5 ,
"1h" : -10
}
}