Update app.py
Browse files
app.py
CHANGED
|
@@ -94,7 +94,7 @@ def klasordeki_unluleri_getir():
|
|
| 94 |
|
| 95 |
unlu_verileri = klasordeki_unluleri_getir()
|
| 96 |
|
| 97 |
-
# --- SESSION STATE
|
| 98 |
if 'selected_actor' not in st.session_state:
|
| 99 |
st.session_state.selected_actor = None
|
| 100 |
|
|
@@ -112,11 +112,13 @@ filtered_names = [name for name, data in unlu_verileri.items() if data['c'] == g
|
|
| 112 |
|
| 113 |
st.sidebar.markdown(f"### 📋 Available Cast / Mevcut Oyuncular")
|
| 114 |
|
| 115 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
| 116 |
for n in filtered_names:
|
| 117 |
-
|
| 118 |
-
st.session_state.selected_actor = n
|
| 119 |
-
st.rerun()
|
| 120 |
|
| 121 |
# --- ANA EKRAN ---
|
| 122 |
st.title("🎬 CastMatch AI: Talent Matching System / Yetenek Eşleştirme Sistemi")
|
|
@@ -128,28 +130,27 @@ col_actor, col_match = st.columns([1, 2])
|
|
| 128 |
with col_actor:
|
| 129 |
st.subheader("👤 Pick an Actor / Oyuncu Seç")
|
| 130 |
|
| 131 |
-
#
|
| 132 |
-
# Eğer
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
|
| 138 |
-
|
|
|
|
| 139 |
"Select from list / Listeden seçin:",
|
| 140 |
filtered_names,
|
| 141 |
-
index=
|
| 142 |
placeholder="Choose an actor... / Bir oyuncu seçin...",
|
| 143 |
key="main_selectbox"
|
| 144 |
)
|
| 145 |
|
| 146 |
-
#
|
| 147 |
-
if
|
| 148 |
-
st.session_state.selected_actor =
|
| 149 |
-
if selected_actor_box:
|
| 150 |
-
st.rerun()
|
| 151 |
|
| 152 |
-
#
|
| 153 |
if st.session_state.selected_actor:
|
| 154 |
actor = st.session_state.selected_actor
|
| 155 |
found_path = None
|
|
@@ -164,7 +165,7 @@ with col_actor:
|
|
| 164 |
else:
|
| 165 |
st.error("Image not found. / Resim bulunamadı.")
|
| 166 |
else:
|
| 167 |
-
st.info("Please select an actor. /
|
| 168 |
|
| 169 |
with col_match:
|
| 170 |
st.subheader("🎯 Best Career Matches / En İyi Kariyer Eşleşmeleri")
|
|
@@ -192,4 +193,4 @@ with col_match:
|
|
| 192 |
st.write("Waiting for selection... / Seçim bekleniyor...")
|
| 193 |
|
| 194 |
st.markdown("---")
|
| 195 |
-
st.info("💡 **How it works? / Nasıl çalışır?**:
|
|
|
|
| 94 |
|
| 95 |
unlu_verileri = klasordeki_unluleri_getir()
|
| 96 |
|
| 97 |
+
# --- SESSION STATE YÖNETİMİ ---
|
| 98 |
if 'selected_actor' not in st.session_state:
|
| 99 |
st.session_state.selected_actor = None
|
| 100 |
|
|
|
|
| 112 |
|
| 113 |
st.sidebar.markdown(f"### 📋 Available Cast / Mevcut Oyuncular")
|
| 114 |
|
| 115 |
+
# Sidebar Buton Fonksiyonu
|
| 116 |
+
def select_actor(name):
|
| 117 |
+
st.session_state.selected_actor = name
|
| 118 |
+
|
| 119 |
+
# Sol Paneldeki isim butonları
|
| 120 |
for n in filtered_names:
|
| 121 |
+
st.sidebar.button(f"👤 {n}", key=f"sb_{n}", on_click=select_actor, args=(n,))
|
|
|
|
|
|
|
| 122 |
|
| 123 |
# --- ANA EKRAN ---
|
| 124 |
st.title("🎬 CastMatch AI: Talent Matching System / Yetenek Eşleştirme Sistemi")
|
|
|
|
| 130 |
with col_actor:
|
| 131 |
st.subheader("👤 Pick an Actor / Oyuncu Seç")
|
| 132 |
|
| 133 |
+
# Kutu Otomatik Güncelleme Mantığı
|
| 134 |
+
# Eğer session_state doluysa ve listede varsa onu seç, yoksa None bırak.
|
| 135 |
+
if st.session_state.selected_actor in filtered_names:
|
| 136 |
+
idx = filtered_names.index(st.session_state.selected_actor)
|
| 137 |
+
else:
|
| 138 |
+
idx = None
|
| 139 |
|
| 140 |
+
# SELECTBOX: index parametresi doğrudan idx değişkenine bağlıdır
|
| 141 |
+
current_selection = st.selectbox(
|
| 142 |
"Select from list / Listeden seçin:",
|
| 143 |
filtered_names,
|
| 144 |
+
index=idx,
|
| 145 |
placeholder="Choose an actor... / Bir oyuncu seçin...",
|
| 146 |
key="main_selectbox"
|
| 147 |
)
|
| 148 |
|
| 149 |
+
# Kutu üzerinden manuel seçim yapılırsa state'i güncelle
|
| 150 |
+
if current_selection != st.session_state.selected_actor:
|
| 151 |
+
st.session_state.selected_actor = current_selection
|
|
|
|
|
|
|
| 152 |
|
| 153 |
+
# GÖRSEL ALANI
|
| 154 |
if st.session_state.selected_actor:
|
| 155 |
actor = st.session_state.selected_actor
|
| 156 |
found_path = None
|
|
|
|
| 165 |
else:
|
| 166 |
st.error("Image not found. / Resim bulunamadı.")
|
| 167 |
else:
|
| 168 |
+
st.info("Please select an actor to start. / Başlamak için lütfen bir oyuncu seçin.")
|
| 169 |
|
| 170 |
with col_match:
|
| 171 |
st.subheader("🎯 Best Career Matches / En İyi Kariyer Eşleşmeleri")
|
|
|
|
| 193 |
st.write("Waiting for selection... / Seçim bekleniyor...")
|
| 194 |
|
| 195 |
st.markdown("---")
|
| 196 |
+
st.info("💡 **How it works? / Nasıl çalışır?**: AI analyzes based on local image assets. / AI yerel resim varlıklarını analiz eder.")
|