Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -1,7 +1,9 @@
|
|
1 |
import streamlit as st
|
2 |
import requests
|
3 |
import streamlit.components.v1 as components
|
4 |
-
import
|
|
|
|
|
5 |
|
6 |
# Hàm để gọi API và hiển thị kết quả
|
7 |
def get(url):
|
@@ -18,41 +20,40 @@ def extract_data(data):
|
|
18 |
|
19 |
|
20 |
# Tạo nút "Get Predict Signal"
|
21 |
-
signal_real = "
|
22 |
time_real = "None"
|
23 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
url = st.secrets["url_api"]
|
25 |
data = get(url)
|
26 |
extracted_data = extract_data(data)
|
27 |
for entry in extracted_data:
|
28 |
time_real = entry['time']
|
29 |
signal_real = entry['signal']
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
st.markdown(f"""
|
34 |
-
<!DOCTYPE html>
|
35 |
-
<html lang="en">
|
36 |
-
<head>
|
37 |
-
<meta charset="UTF-8">
|
38 |
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
39 |
-
<title>Bitcoin Signal Dashboard</title>
|
40 |
-
</head>
|
41 |
-
<body>
|
42 |
-
<div>
|
43 |
-
<table border="1" cellpadding="10" cellspacing="0" style="margin:auto; text-align:center;">
|
44 |
-
<tr>
|
45 |
-
<th>Signal</th>
|
46 |
-
</tr>
|
47 |
-
<tr>
|
48 |
-
<td id="signal">{signal_real}</td>
|
49 |
-
</tr>
|
50 |
-
<tr>
|
51 |
-
<td id="update-time">Updated: {time_real}</td>
|
52 |
-
</tr>
|
53 |
-
</table>
|
54 |
-
</div>
|
55 |
-
</body>
|
56 |
-
</html>
|
57 |
|
58 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
import streamlit as st
|
2 |
import requests
|
3 |
import streamlit.components.v1 as components
|
4 |
+
import time
|
5 |
+
import pandas as pd
|
6 |
+
from datetime import datetime
|
7 |
|
8 |
# Hàm để gọi API và hiển thị kết quả
|
9 |
def get(url):
|
|
|
20 |
|
21 |
|
22 |
# Tạo nút "Get Predict Signal"
|
23 |
+
signal_real = "Sell"
|
24 |
time_real = "None"
|
25 |
+
# Initialize state
|
26 |
+
if 'signal' not in st.session_state:
|
27 |
+
st.session_state.signal = None
|
28 |
+
st.session_state.update_time = None
|
29 |
+
|
30 |
+
# Create a button
|
31 |
+
if st.button('Show Bitcoin Signal'):
|
32 |
url = st.secrets["url_api"]
|
33 |
data = get(url)
|
34 |
extracted_data = extract_data(data)
|
35 |
for entry in extracted_data:
|
36 |
time_real = entry['time']
|
37 |
signal_real = entry['signal']
|
38 |
+
signal, update_time = signal_real, time_real
|
39 |
+
st.session_state.signal = signal
|
40 |
+
st.session_state.update_time = update_time
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
|
42 |
+
# Define colors based on the signal
|
43 |
+
if st.session_state.signal == 'Buy':
|
44 |
+
color = '#4CAF50'
|
45 |
+
elif st.session_state.signal == 'Sell':
|
46 |
+
color = '#FF4C4C'
|
47 |
+
else:
|
48 |
+
color = '#888888' # Default color (gray) before the button is clicked
|
49 |
+
|
50 |
+
# Display the signal and update time in a styled box
|
51 |
+
st.markdown(
|
52 |
+
f"""
|
53 |
+
<div style="border: 2px solid {color}; border-radius: 10px; padding: 20px; margin-top: 20px;">
|
54 |
+
<h2 style="color: {color};">Bitcoin Signal: {st.session_state.signal if st.session_state.signal else 'N/A'}</h2>
|
55 |
+
<p style="font-size: 16px; color: #777;">Time Update: {st.session_state.update_time if st.session_state.update_time else 'N/A'}</p>
|
56 |
+
</div>
|
57 |
+
""",
|
58 |
+
unsafe_allow_html=True
|
59 |
+
)
|