import requests from datetime import datetime def get_fiat_price(currency: str, date: str = None): url_base = "https://api.exchangerate.host/" endpoint = f"{date}" if date else "latest" url = f"{url_base}{endpoint}?base={currency.upper()}&symbols=USD" res = requests.get(url) data = res.json() return data['rates']['USD'] def get_crypto_price(crypto_id: str, date: str = None): if date: d = datetime.strptime(date, "%Y-%m-%d") formatted_date = d.strftime("%d-%m-%Y") url = f"https://api.coingecko.com/api/v3/coins/{crypto_id}/history?date={formatted_date}" res = requests.get(url) data = res.json() return data["market_data"]["current_price"]["usd"] else: url = f"https://api.coingecko.com/api/v3/simple/price?ids={crypto_id}&vs_currencies=usd" res = requests.get(url) return res.json()[crypto_id]["usd"] def detect_type(symbol: str): symbol = symbol.lower() crypto_ids = ["bitcoin", "ethereum", "dogecoin"] fiat_currencies = ["usd", "eur", "gbp", "try"] if symbol in crypto_ids: return "crypto" elif symbol in fiat_currencies: return "fiat" elif symbol == "xau": return "gold" else: return "unknown" def get_price(symbol: str, date: str = None): symbol = symbol.lower() type_ = detect_type(symbol) if type_ == "fiat": return get_fiat_price(symbol, date) elif type_ == "crypto": return get_crypto_price(symbol, date) elif type_ == "gold": # Altın için XAU/USD kuru kullanılır url = f"https://api.exchangerate.host/{date if date else 'latest'}?base=XAU&symbols=USD" res = requests.get(url) return res.json()["rates"]["USD"] else: raise ValueError("Bilinmeyen para birimi!") def hesapla(miktar, birim, tarih): eski_fiyat = get_price(birim, tarih) bugunku_fiyat = get_price(birim) eski_deger = miktar * eski_fiyat yeni_deger = miktar * bugunku_fiyat fark = yeni_deger - eski_deger oran = (fark / eski_deger) * 100 print(f"\n{tarih} tarihinde {miktar} {birim.upper()} = ${round(eski_deger, 2)}") print(f"Bugünkü değeri = ${round(yeni_deger, 2)}") print(f"Değişim: {round(fark, 2)} USD ({round(oran, 2)}%)\n") # 🔍 Kullanıcı girişi miktar = float(input("Miktar gir: ")) birim = input("Para birimi gir (usd, eur, btc, eth, xau): ").lower() tarih = input("Tarih gir (yyyy-mm-dd): ") hesapla(miktar, birim, tarih)