mirror of
https://github.com/aljazceru/hummingbot-dashboard.git
synced 2025-12-27 18:24:22 +01:00
55 lines
2.0 KiB
Python
55 lines
2.0 KiB
Python
import time
|
|
|
|
from pycoingecko import CoinGeckoAPI
|
|
import pandas as pd
|
|
import re
|
|
|
|
|
|
class CoinGeckoUtils:
|
|
def __init__(self):
|
|
self.connector = CoinGeckoAPI()
|
|
|
|
def get_all_coins_df(self):
|
|
coin_list = self.connector.get_coins_list()
|
|
return pd.DataFrame(coin_list)
|
|
|
|
def get_all_coins_markets_df(self):
|
|
coin_list = self.connector.get_coins_markets(vs_currency="USD")
|
|
return pd.DataFrame(coin_list)
|
|
|
|
def get_coin_tickers_by_id(self, coin_id: str):
|
|
coin_tickers = self.connector.get_coin_ticker_by_id(id=coin_id)
|
|
coin_tickers_df = pd.DataFrame(coin_tickers["tickers"])
|
|
coin_tickers_df["token_id"] = coin_id
|
|
return coin_tickers_df
|
|
|
|
def get_coin_tickers_by_id_list(self, coins_id: list):
|
|
dfs = []
|
|
for coin_id in coins_id:
|
|
df = self.get_coin_tickers_by_id(coin_id)
|
|
dfs.append(df)
|
|
time.sleep(1)
|
|
|
|
coin_tickers_df = pd.concat(dfs)
|
|
coin_tickers_df["exchange"] = coin_tickers_df["market"].apply(
|
|
lambda x: re.sub("Exchange", "", x["name"]))
|
|
coin_tickers_df.drop(columns="market", inplace=True)
|
|
coin_tickers_df["trading_pair"] = coin_tickers_df.base + "-" + coin_tickers_df.target
|
|
return coin_tickers_df
|
|
|
|
def get_all_exchanges_df(self):
|
|
exchanges_list = self.connector.get_exchanges_list()
|
|
return pd.DataFrame(exchanges_list)
|
|
|
|
def get_exchanges_markets_info_by_id_list(self, exchanges_id: list):
|
|
dfs = []
|
|
for exchange_id in exchanges_id:
|
|
df = pd.DataFrame(self.connector.get_exchanges_by_id(exchange_id)["tickers"])
|
|
dfs.append(df)
|
|
exchanges_spreads_df = pd.concat(dfs)
|
|
exchanges_spreads_df["exchange"] = exchanges_spreads_df["market"].apply(
|
|
lambda x: re.sub("Exchange", "", x["name"]))
|
|
exchanges_spreads_df.drop(columns="market", inplace=True)
|
|
exchanges_spreads_df["trading_pair"] = exchanges_spreads_df.base + "-" + exchanges_spreads_df.target
|
|
return exchanges_spreads_df
|