From 4d24e5c83c61f09487711bc2e0343182575b1bd7 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Wed, 5 Jun 2024 09:42:23 +0100 Subject: [PATCH] alteradas chamadas 'consultar_preco()' e 'consultar_preco_token()' para devolverem multiplos resultados --- README.md | 4 +-- coingecko_api.py | 39 ++++++++++++++-------- historico_precos.csv | 78 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index c43a050..e6cf641 100644 --- a/README.md +++ b/README.md @@ -65,9 +65,9 @@ esta é a minha tentativa! :D > ✅ check api server status - **simple** - > ✅⚠️ coin price by ids (só retorna dados para um ID) + > ✅ coin price by ids - > ✅⚠️ coin price by token addresses (só retorna dados para um contracto) + > ✅ coin price by token addresses > ❌⬛ supported currencies list - **coins** diff --git a/coingecko_api.py b/coingecko_api.py index 22d3fa0..d8f6c0c 100644 --- a/coingecko_api.py +++ b/coingecko_api.py @@ -41,6 +41,11 @@ def consultar_preco(id_criptomoeda: str = '', flag_include_last_updated_at: bool = False, precisao: int | str = 'full' ) -> tuple: + ''' + consultar preço de um ou mais moedas usando o seu ID de Moeda + + podem ser passadas multiplos IDs de moedas separadas por virgula, como objecto de tipo 'str' + ''' # validacao de parametros if not isinstance(id_criptomoeda, str): raise TypeError('\'id_criptomoeda\' não é do tipo \'str\'') @@ -78,11 +83,13 @@ def consultar_preco(id_criptomoeda: str = '', resposta = requests.get(url_pedido, headers=headers) return resposta.status_code, resposta.json() # debug (decomentar linhas seguintes para testar funcao) -# codigo, dados_dict = consultar_preco('bitcoin', 'eur', precisao=0) -# print(f'codigo: {codigo}') -# for item in dados_dict: -# print(f'{dados_dict[item]}') -# print(dados) +# codigo, dados_dict = consultar_preco('bitcoin,dogecoin,ethereum,0chain', 'eur') +# if codigo == 200: +# print(f'codigo: {codigo}') +# for moeda in dados_dict: +# print(f'{moeda}') +# for vs_currency in dados_dict[moeda]: +# print(f'\t{vs_currency}: {dados_dict[moeda][vs_currency]:.2f}') # https://docs.coingecko.com/v3.0.1/reference/simple-supported-currencies # obter lista de todas as moedas suportadas por CoinGecko que podem ser usados como 'vs_currencies' @@ -93,8 +100,9 @@ def obter_lista_moedas_vs_currencies() -> tuple: return resposta.status_code, resposta.json() # debug (decomentar linhas seguintes para testar funcao) # codigo, dados = obter_lista_moedas_vs_currencies() -# for item in dados: -# print(item) +# if codigo == 200: +# for item in dados: +# print(item) # https://docs.coingecko.com/v3.0.1/reference/simple-token-price # consultar preco de token usando o endereco de contrato do token @@ -151,12 +159,14 @@ def consultar_preco_token( return resposta.status_code, resposta.json() # debug (decomentar linhas seguintes para testar funcao) # id_plataforma = 'ethereum' -# endereco_contracto = '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599' -# codigo, dados = consultar_preco_token(id_plataforma, endereco_contracto, 'eur') +# enderecos_contracto = '0x2260fac5e5542a773aa44fbcfedf7c193bc2c599,0x4594cffbfc09bc5e7ecf1c2e1c1e24f0f7d29036' +# codigo, dados = consultar_preco_token(id_plataforma, enderecos_contracto, 'eur') # print(f'codigo: {codigo}') # if codigo == 200: -# for item in dados: -# print(f'{dados[item]}') +# for contrato in dados: +# print(f'{contrato}') +# for vs_currency in dados[contrato]: +# print(f'\t{vs_currency}: {dados[contrato][vs_currency]:0.2f}') # https://api.coingecko.com/api/v3/coins/list # obter todas as moedas suportadas em CoinGecko com IDs, nome, simbolo e (no caso de contractos) endereco na plataforma das moedas @@ -203,6 +213,7 @@ def consulta_ohcl(criptomoeda: str = '', return resposta.status_code, resposta.json() # debug (decomentar linhas seguintes para testar funcao) # codigo, dados = consulta_ohcl('dogecoin', 'eur', precisao=5) -# print(f'codigo: {codigo}') -# for item in dados: -# print(item) +# if codigo == 200: +# print(f'codigo: {codigo}') +# for item in dados: +# print(item) diff --git a/historico_precos.csv b/historico_precos.csv index db92a11..97b4e1e 100644 --- a/historico_precos.csv +++ b/historico_precos.csv @@ -182,3 +182,81 @@ data_unix,criptomoeda,vs_currency,preco_abertura,preco_maximo,preco_minimo,preco 1716436800000,bitcoin,eur,63859.939,64250.165,63859.939,64010.364 1716451200000,bitcoin,eur,64082.909,64493.094,64024.978,64328.023 1716163200000,bitcoin,eur,60788.937,61088.408,60761.301,60924.868 +1716465600000,bitcoin,eur,64373.908,64552.559,64101.853,64552.559 +1716480000000,bitcoin,eur,64483.015,64510.68,62482.214,62810.554 +1716494400000,bitcoin,eur,62849.4,62919.692,61920.421,62253.333 +1716508800000,bitcoin,eur,62050.284,63078.264,61724.461,62795.078 +1716523200000,bitcoin,eur,62838.651,62896.058,62569.424,62734.548 +1716537600000,bitcoin,eur,62772.152,62791.499,61866.426,61918.83 +1716552000000,bitcoin,eur,62062.624,62275.889,61608.017,62077.713 +1716566400000,bitcoin,eur,62085.254,62982.436,61753.541,62849.001 +1716580800000,bitcoin,eur,62967.745,63747.426,62678.234,63582.099 +1716595200000,bitcoin,eur,63686.28,63731.468,63150.075,63150.075 +1716609600000,bitcoin,eur,63128.79,63455.249,63125.737,63310.32 +1716624000000,bitcoin,eur,63321.653,63388.372,63208.915,63345.846 +1716638400000,bitcoin,eur,63351.918,64130.464,63349.562,63784.235 +1716652800000,bitcoin,eur,63659.059,63869.557,63498.907,63582.399 +1716667200000,bitcoin,eur,63492.472,63806.962,63492.472,63765.151 +1716681600000,bitcoin,eur,63739.805,63921.864,63649.661,63850.683 +1716696000000,bitcoin,eur,63883.978,63883.978,63460.704,63689.073 +1716710400000,bitcoin,eur,63644.014,63955.778,63525.665,63866.905 +1716724800000,bitcoin,eur,63892.087,64009.46,63597.751,63662.431 +1716739200000,bitcoin,eur,63715.511,63919.836,63323.706,63339.559 +1716753600000,bitcoin,eur,63441.323,63539.455,63329.628,63446.614 +1716768000000,bitcoin,eur,63476.756,63476.756,62983.895,63150.481 +1716782400000,bitcoin,eur,63148.063,63796.916,63132.923,63410.904 +1716796800000,bitcoin,eur,63443.422,63459.378,63006.23,63247.071 +1716811200000,bitcoin,eur,63233.066,63470.008,62855.157,62998.658 +1716825600000,bitcoin,eur,63015.668,64774.106,62984.625,64692.033 +1716840000000,bitcoin,eur,64787.14,65010.319,63517.197,63860.772 +1716854400000,bitcoin,eur,63754.723,64235.61,63754.723,63871.134 +1716868800000,bitcoin,eur,63902.723,63906.81,62250.644,62465.101 +1716883200000,bitcoin,eur,62512.366,62517.493,62098.184,62169.212 +1716897600000,bitcoin,eur,62171.989,63316.295,62101.904,62795.589 +1716912000000,bitcoin,eur,62761.64,62969.527,62198.784,62855.978 +1716926400000,bitcoin,eur,62787.085,63061.339,61896.282,63061.339 +1716940800000,bitcoin,eur,62874.453,63164.239,62717.385,62950.706 +1716955200000,bitcoin,eur,62936.943,63412.409,62881.977,63398.604 +1716969600000,bitcoin,eur,63350.653,63463.515,62661.615,62694.057 +1716984000000,bitcoin,eur,62595.922,62677.65,62360.234,62410.175 +1716998400000,bitcoin,eur,62390.391,62700.556,62227.575,62354.12 +1717012800000,bitcoin,eur,62258.282,62675.437,62114.032,62238.786 +1717027200000,bitcoin,eur,62295.781,62700.701,62136.529,62561.005 +1717041600000,bitcoin,eur,62555.026,63057.905,62444.456,63024.915 +1717056000000,bitcoin,eur,62998.344,63287.336,62535.111,62535.111 +1717070400000,bitcoin,eur,62485.402,62867.9,62102.933,62649.103 +1717084800000,bitcoin,eur,62616.63,63571.039,62616.63,63216.194 +1717099200000,bitcoin,eur,63226.6,64082.556,63068.849,63306.865 +1717113600000,bitcoin,eur,63350.944,63350.944,62883.036,63123.742 +1717128000000,bitcoin,eur,63109.591,63454.912,63027.977,63385.469 +1717142400000,bitcoin,eur,63315.755,63436.901,62903.438,62903.438 +1717156800000,bitcoin,eur,62987.273,63073.731,62592.328,62979.21 +1717171200000,bitcoin,eur,62958.817,63586.251,61961.018,61971.494 +1717185600000,bitcoin,eur,61885.436,62559.732,61533.66,62559.732 +1717200000000,bitcoin,eur,62321.773,62383.841,61817.314,62145.918 +1717214400000,bitcoin,eur,62151.671,62341.972,62085.422,62322.684 +1717228800000,bitcoin,eur,62313.876,62353.003,62186.246,62292.207 +1717243200000,bitcoin,eur,62236.357,62348.817,62236.315,62282.893 +1717257600000,bitcoin,eur,62274.039,62467.001,62261.585,62372.756 +1717272000000,bitcoin,eur,62273.685,62411.629,62205.718,62365.248 +1717286400000,bitcoin,eur,62343.209,62441.054,62307.145,62362.929 +1717300800000,bitcoin,eur,62385.276,62492.655,62246.686,62385.939 +1717315200000,bitcoin,eur,62389.349,62465.702,62335.215,62370.506 +1717329600000,bitcoin,eur,62367.658,62773.257,62058.855,62773.257 +1717344000000,bitcoin,eur,62828.173,62960.339,62495.291,62697.381 +1717358400000,bitcoin,eur,62715.837,62753.545,62174.803,62479.478 +1717372800000,bitcoin,eur,62451.12,62626.495,62303.029,62419.716 +1717387200000,bitcoin,eur,62416.452,63352.934,62253.197,62999.219 +1717401600000,bitcoin,eur,63016.812,63704.448,62902.927,63454.384 +1717416000000,bitcoin,eur,63510.073,63933.004,63505.699,63768.494 +1717430400000,bitcoin,eur,63704.799,64676.378,63238.484,63661.475 +1717444800000,bitcoin,eur,64056.28,64056.28,63283.019,63366.996 +1717459200000,bitcoin,eur,63392.859,63728.109,63015.926,63083.788 +1717473600000,bitcoin,eur,63085.155,63573.748,62995.939,63389.793 +1717488000000,bitcoin,eur,63396.298,63466.523,63038.609,63421.245 +1717502400000,bitcoin,eur,63333.322,63500.437,63016.392,63446.638 +1717516800000,bitcoin,eur,63490.903,64867.358,63366.685,64867.358 +1717531200000,bitcoin,eur,64716.645,65243.555,64391.74,64576.01 +1717545600000,bitcoin,eur,64716.365,64990.297,64519.516,64881.834 +1717560000000,bitcoin,eur,64832.495,65455.914,64739.747,65140.303 +1717574400000,bitcoin,eur,65263.876,65563.725,65146.737,65495.129