예제 #1
0
def get_prices():
    global price_cache
    now = datetime.datetime.now()
    if (now - price_cache['time']) > datetime.timedelta(minutes=2):
        client = Coinpaprika.Client()
        tickers = client.tickers(quotes="BTC,USD")
        price_cache['time'] = now
        price_cache['values'] = tickers

    return prep_data(price_cache["values"])
예제 #2
0
    def __init__(self, return_json=True):
        self.paprika_client = Coinpaprika.Client()

        self.gecko_client = CoinGeckoAPI()

        self.db = MongoClient(
            os.getenv('MONGO_ATLAS'),
        ).os.getenv['MONGO_DB']

        self.return_json = return_json
예제 #3
0
def get_prices_for_token(day_zero, token, config):

    coinpaprika_client = client.Client()
    prices_in_usd = dict()

    # get token prices from coinpaprika
    coinpaprika_id = config['tokens'][token]['coinpaprika_id']
    prices_array = coinpaprika_client.historical(coinpaprika_id,
                                                 start=datetime.strftime(
                                                     day_zero, '%Y-%m-%d'),
                                                 quote='usd',
                                                 interval='1d')

    prices_in_usd[token] = prices_array

    # transform informations about tokens prices into more handy object
    prices_dict = dict()
    for token in prices_in_usd:
        for record in prices_in_usd[token]:

            prices_dict.setdefault(record['timestamp'][:10], {})
            prices_dict[record['timestamp'][:10]][token] = record['price']

    return prices_dict
예제 #4
0
def average_price(lst):
    return reduce(lambda a, b: a + b, lst) / len(lst)


def days_in_month(year, month):
    num_days = monthrange(year, month)[1]
    days = [date(year, month, day) for day in range(1, num_days + 1)]
    return days


def date_formatting(old_date):
    return date(int(old_date[2]), int(old_date[1]), int(old_date[0]))


client = coinpaprika.Client()

prices = []

parser = argparse.ArgumentParser()
parser.add_argument('-a', '--average', help=' date format DD-MM-YYYY')
parser.add_argument('--start_date', help='start date')
parser.add_argument('--end_date', help='end date')
args = parser.parse_args()

s = args.start_date
e = args.end_date

start = s.split('-')
end = e.split('-')
예제 #5
0
import os
from config import getApi

image='last.png'
api = getApi()

plt.style.use('seaborn-bright')

# SETTING DATE VARIABLES


TODAY = dt.date.today()
START_DATE  = TODAY - dt.timedelta(days=100)

#CALL PAPRIKA CLIENT
client = Coinpaprika.Client()

#SEND REQUEST FOR ALL TICKER DATA
tickers = client.tickers()


# MAKE 100 TOP DATAFRAME
ticker_data_hundred = pd.DataFrame(tickers[:101])

#NORMALIZE 'quotes' DATA TO A DIFFERENT DATAFRAME
ticker_quotes = pd.DataFrame.from_records(ticker_data_hundred['quotes'])
ticker_quotes = ticker_quotes['USD'].apply(pd.Series)


print(ticker_quotes.columns)
예제 #6
0
def get_currency_value(currency_id):
    from coinpaprika import client as CoinPaprika
    client = CoinPaprika.Client()
    data = client.ticker(currency_id)
    return data
예제 #7
0
import os
import json

import aiohttp
from coinpaprika import client as Coinpaprika
import redis
from prodict import Prodict
from toolz import curried
import currency
from urllib3.exceptions import NewConnectionError

from utils import http, default

cache = redis.Redis(host=os.getenv('REDIS_HOST'), port=os.getenv('REDIS_PORT'), db=0)
api = Coinpaprika.Client()
config = default.get("config.json")
available_quote_currencies = 'USD, EUR, PLN, KRW, GBP, CAD, JPY, RUB, TRY, NZD, AUD, CHF, HKD, SGD, PHP, MXN, BRL, THB, CNY, CZK, DKK, HUF, IDR, ILS, INR, MYR, NOK, SEK, ZAR, ISK'


def format_number(number):
    return "{:,}".format(number)


def percent(a, b):
    result = 100 * (b - a) / a
    return result


async def rate_convert(from_currency='USD'):
    url = f'https://api.exchangeratesapi.io/latest?base={from_currency}'
    async with aiohttp.ClientSession() as session: