Spaces:
Sleeping
Sleeping
File size: 5,132 Bytes
db3cbbd 3ba5be8 db3cbbd 63feda0 db3cbbd 4a5e189 63feda0 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
import streamlit as st
from st_paywall import add_auth
from st_paywall.google_auth import get_logged_in_user_email, show_login_button
from st_paywall.stripe_auth import is_active_subscriber, redirect_button
from st_paywall.buymeacoffee_auth import get_bmac_payers
import st_paywall.google_auth as google_auth
import st_paywall.stripe_auth as stripe_auth
payment_provider = st.secrets.get("payment_provider", "stripe")
def add_auth(
required: bool = True,
login_button_text: str = "Login with Google",
login_button_color: str = "#FD504D",
login_sidebar: bool = True,
subscribe_color_button = "#FFA500",
):
if required:
require_auth(
login_button_text=login_button_text,
login_sidebar=login_sidebar,
login_button_color=login_button_color,
)
else:
optional_auth(
login_button_text=login_button_text,
login_sidebar=login_sidebar,
login_button_color=login_button_color,
)
def require_auth(
login_button_text: str = "Login with Google",
login_button_color: str = "#FD504D",
subscribe_button_color: str = "#FFA500",
login_sidebar: bool = True,):
user_email = get_logged_in_user_email()
if not user_email:
show_login_button(
text=login_button_text, color=login_button_color, sidebar=login_sidebar
)
st.stop()
if payment_provider == "stripe":
is_subscriber = user_email and is_active_subscriber(user_email)
elif payment_provider == "bmac":
is_subscriber = user_email and user_email in get_bmac_payers()
else:
raise ValueError("payment_provider must be 'stripe' or 'bmac'")
if not is_subscriber:
redirect_button(
text="Make a Donation",
customer_email=user_email,
payment_provider=payment_provider,
)
st.session_state.user_subscribed = False
st.stop()
elif is_subscriber:
st.session_state.user_subscribed = True
if st.sidebar.button("Logout", type="primary"):
del st.session_state.email
del st.session_state.user_subscribed
st.rerun()
def optional_auth(
login_button_text: str = "Login with Google",
login_button_color: str = "#FD504D",
login_sidebar: bool = True,
subscribe_button_color: str = "#FFA500", # Add this line
):
user_email = get_logged_in_user_email()
if payment_provider == "stripe":
is_subscriber = user_email and is_active_subscriber(user_email)
elif payment_provider == "bmac":
is_subscriber = user_email and user_email in get_bmac_payers()
else:
raise ValueError("payment_provider must be 'stripe' or 'bmac'")
if not user_email:
show_login_button(
text=login_button_text, color=login_button_color, sidebar=login_sidebar
)
st.session_state.email = ""
st.sidebar.markdown("")
if not is_subscriber:
redirect_button(
text="Subscribe now!", customer_email="", payment_provider=payment_provider, color=subscribe_button_color
)
st.sidebar.markdown("")
st.session_state.user_subscribed = False
elif is_subscriber:
st.session_state.user_subscribed = True
if st.session_state.email != "":
if st.sidebar.button("Logout", type="primary"):
del st.session_state.email
del st.session_state.user_subscribed
st.rerun()
st.set_page_config(
page_title="UAP Analytics",
page_icon="๐ธ",
layout="wide",
initial_sidebar_state="expanded",
)
add_auth(required=False, login_button_color="#FFA500",subscribe_color_button="#FFA500")
if st.session_state.email is not '':
st.write('')
st.write(f'User: {st.session_state.email}')
if "buttons" in st.session_state:
st.session_state.buttons = st.session_state.buttons
from PIL import Image
import base64
def get_base64_of_bin_file(bin_file):
with open(bin_file, 'rb') as f:
data = f.read()
return base64.b64encode(data).decode()
def set_png_as_page_bg(png_file):
bin_str = get_base64_of_bin_file(png_file)
page_bg_img = '''
<style>
.stApp {
background-image: url("data:image/png;base64,%s");
background-size: cover;
}
</style>
''' % bin_str
st.markdown(page_bg_img, unsafe_allow_html=True)
if st.toggle('Set background image', True):
set_png_as_page_bg('saucer.webp') # Replace with your background image path
pg = st.navigation([
st.Page("rag_search.py", title="Smart-Search (Retrieval Augmented Generations)", icon="๐"),
st.Page("parsing.py", title="UAP Feature Extraction (Shape, Speed, Color)", icon="๐"),
st.Page("analyzing.py", title="Statistical Analysis (UMAP+HDBSCAN, XGBoost, V-Cramer)", icon="๐ง "),
st.Page("magnetic.py", title="Magnetic Anomaly Detection (InterMagnet Stations)", icon="๐งฒ"),
st.Page("map.py", title="Interactive Map (Tracking variations, Proximity with Military Bases, Nuclear Facilities)", icon="๐บ๏ธ"),
])
pg.run()
|