simikkk commited on
Commit
806df03
·
verified ·
1 Parent(s): 2496900

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +49 -2
app.py CHANGED
@@ -2,9 +2,56 @@ import streamlit as st
2
  import pandas as pd
3
  import time
4
  import urllib.parse
5
- import stripe # Připraveno pro splnění požadavků v requirements.txt
6
- import streamlit.components.v1 as components # Bezpečný import pro HTML komponenty na Hugging Face
 
7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  # -----------------------------------------------------------------------------
9
  # KOMPLETNÍ JAZYKOVÉ LOKALIZACE PRO VŠECHNY PRVKY NA STRÁNCE (CZ, SK, EN)
10
  # -----------------------------------------------------------------------------
 
2
  import pandas as pd
3
  import time
4
  import urllib.parse
5
+ import stripe
6
+ import streamlit.components.v1 as components
7
+ import requests
8
 
9
+ # -----------------------------------------------------------------------------
10
+ # ŽIVÉ KURZY Z ČNB (API)
11
+ # -----------------------------------------------------------------------------
12
+ @st.cache_data(ttl=3600)
13
+ def get_live_currencies():
14
+ # Výchozí fallback (pokud by ČNB nebyla dostupná)
15
+ fallback = {
16
+ "EUR": {"symbol": "€", "rate": 1.0},
17
+ "CZK": {"symbol": "Kč", "rate": 25.0},
18
+ "USD": {"symbol": "$", "rate": 1.1},
19
+ "GBP": {"symbol": "£", "rate": 0.85},
20
+ "CHF": {"symbol": "CHF", "rate": 0.95}
21
+ }
22
+ try:
23
+ url = "https://www.cnb.cz/cs/financni-trhy/devizovy-trh/kurzy-devizoveho-trhu/kurzy-devizoveho-trhu/denni_kurs.txt"
24
+ response = requests.get(url, timeout=5)
25
+ if response.status_code == 200:
26
+ lines = response.text.split("\n")
27
+ # Základna pro přepočet: EUR = 1
28
+ rates = {"EUR": 1.0, "CZK": 1.0}
29
+ for line in lines[2:]:
30
+ if "|" in line:
31
+ parts = line.split("|")
32
+ mnozstvi = float(parts[2].replace(",", "."))
33
+ kod = parts[3].strip()
34
+ kurz = float(parts[4].replace(",", "."))
35
+ rates[kod] = kurz / mnozstvi
36
+
37
+ eur_czk = rates.get("EUR", 25.0)
38
+ return {
39
+ "EUR": {"symbol": "€", "rate": 1.0},
40
+ "CZK": {"symbol": "Kč", "rate": round(eur_czk, 2)},
41
+ "USD": {"symbol": "$", "rate": round(eur_czk / rates.get("USD", 1.1), 2)},
42
+ "GBP": {"symbol": "£", "rate": round(eur_czk / rates.get("GBP", 0.85), 2)},
43
+ "CHF": {"symbol": "CHF", "rate": round(eur_czk / rates.get("CHF", 0.95), 2)},
44
+ }
45
+ except:
46
+ return fallback
47
+ return fallback
48
+
49
+ # Globální proměnná s aktuálními kurzy
50
+ CURRENCIES = get_live_currencies()
51
+
52
+ # -----------------------------------------------------------------------------
53
+ # DÁLE POKRAČUJE TVŮJ PŮVODNÍ KÓD (TRANSLATIONS atd.)
54
+ # -----------------------------------------------------------------------------
55
  # -----------------------------------------------------------------------------
56
  # KOMPLETNÍ JAZYKOVÉ LOKALIZACE PRO VŠECHNY PRVKY NA STRÁNCE (CZ, SK, EN)
57
  # -----------------------------------------------------------------------------