Update app.py
Browse files
app.py
CHANGED
|
@@ -52,6 +52,9 @@ def serve_assets(path):
|
|
| 52 |
def serve_wishes(path):
|
| 53 |
return send_from_directory('data/wishes', path)
|
| 54 |
|
|
|
|
|
|
|
|
|
|
| 55 |
|
| 56 |
class SimpleDB:
|
| 57 |
def __init__(self, reflections_path="data/reflections.json", wishes_path="data/wishes.json"):
|
|
@@ -932,10 +935,6 @@ def create_interface():
|
|
| 932 |
**청신 의식을 시작하려면 아래 버튼을 눌러주세요.**
|
| 933 |
""")
|
| 934 |
enter_btn = gr.Button("청신 의식 시작하기", variant="primary")
|
| 935 |
-
enter_btn.click(
|
| 936 |
-
fn=lambda: gr.update(selected=1),
|
| 937 |
-
outputs=[tabs]
|
| 938 |
-
)
|
| 939 |
|
| 940 |
with gr.TabItem("청신") as tab_listen:
|
| 941 |
gr.Markdown("## 청신 - 신을 부르기 위한 정화 의식")
|
|
@@ -955,19 +954,46 @@ def create_interface():
|
|
| 955 |
gr.Markdown("## 聽身, 請神 (몸의 소리를 듣고 신을 청하다) ")
|
| 956 |
# HTML로 오디오 플레이어를 직접 삽입
|
| 957 |
gr.HTML("""
|
| 958 |
-
<
|
| 959 |
-
<
|
| 960 |
-
|
| 961 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 962 |
""")
|
| 963 |
-
|
| 964 |
with gr.Column():
|
| 965 |
reflection_input = gr.Textbox(
|
| 966 |
-
label="
|
| 967 |
lines=3,
|
| 968 |
max_lines=5
|
| 969 |
)
|
| 970 |
-
save_btn = gr.Button("
|
| 971 |
reflections_display = gr.Dataframe(
|
| 972 |
headers=["시간", "감상", "감정 분석"],
|
| 973 |
label="기록된 감상들",
|
|
@@ -1159,6 +1185,9 @@ def create_interface():
|
|
| 1159 |
print(f"Baseline error: {str(e)}")
|
| 1160 |
return current_state, "오류가 발생했습니다. 다시 시도해주세요.", gr.update(selected=0)
|
| 1161 |
|
|
|
|
|
|
|
|
|
|
| 1162 |
def handle_save_reflection(text, state):
|
| 1163 |
if not text.strip():
|
| 1164 |
return state, []
|
|
@@ -1296,8 +1325,8 @@ def create_interface():
|
|
| 1296 |
)
|
| 1297 |
|
| 1298 |
enter_btn.click(
|
| 1299 |
-
fn=
|
| 1300 |
-
outputs=
|
| 1301 |
)
|
| 1302 |
|
| 1303 |
save_btn.click(
|
|
|
|
| 52 |
def serve_wishes(path):
|
| 53 |
return send_from_directory('data/wishes', path)
|
| 54 |
|
| 55 |
+
@app.route('/assets/<path:filename>')
|
| 56 |
+
def serve_audio(filename):
|
| 57 |
+
return send_from_directory('assets', filename, mimetype='audio/mp3')
|
| 58 |
|
| 59 |
class SimpleDB:
|
| 60 |
def __init__(self, reflections_path="data/reflections.json", wishes_path="data/wishes.json"):
|
|
|
|
| 935 |
**청신 의식을 시작하려면 아래 버튼을 눌러주세요.**
|
| 936 |
""")
|
| 937 |
enter_btn = gr.Button("청신 의식 시작하기", variant="primary")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 938 |
|
| 939 |
with gr.TabItem("청신") as tab_listen:
|
| 940 |
gr.Markdown("## 청신 - 신을 부르기 위한 정화 의식")
|
|
|
|
| 954 |
gr.Markdown("## 聽身, 請神 (몸의 소리를 듣고 신을 청하다) ")
|
| 955 |
# HTML로 오디오 플레이어를 직접 삽입
|
| 956 |
gr.HTML("""
|
| 957 |
+
<div class="audio-player-container">
|
| 958 |
+
<audio id="bgMusic" controls="controls" style="width: 100%; max-width: 500px;">
|
| 959 |
+
<source src="assets/main_music.mp3" type="audio/mpeg">
|
| 960 |
+
</audio>
|
| 961 |
+
</div>
|
| 962 |
+
<script>
|
| 963 |
+
// 탭 변경을 감지하여 음악 재생
|
| 964 |
+
document.addEventListener('DOMContentLoaded', function() {
|
| 965 |
+
const audio = document.querySelector('#bgMusic');
|
| 966 |
+
if(audio) {
|
| 967 |
+
// 탭 진입 시 음악 재생
|
| 968 |
+
audio.play().catch(function(error) {
|
| 969 |
+
console.log("음악 자동재생 실패:", error);
|
| 970 |
+
});
|
| 971 |
+
}
|
| 972 |
+
});
|
| 973 |
+
</script>
|
| 974 |
+
<style>
|
| 975 |
+
.audio-player-container {
|
| 976 |
+
width: 100%;
|
| 977 |
+
margin: 20px auto;
|
| 978 |
+
text-align: center;
|
| 979 |
+
padding: 20px;
|
| 980 |
+
}
|
| 981 |
+
audio {
|
| 982 |
+
width: 100%;
|
| 983 |
+
max-width: 500px;
|
| 984 |
+
margin: 0 auto;
|
| 985 |
+
display: block;
|
| 986 |
+
}
|
| 987 |
+
</style>
|
| 988 |
""")
|
| 989 |
+
|
| 990 |
with gr.Column():
|
| 991 |
reflection_input = gr.Textbox(
|
| 992 |
+
label="기록과 함께 마음의 번잡함을 내려놓으세요. 본 정보는 저장되지 않습니다.",
|
| 993 |
lines=3,
|
| 994 |
max_lines=5
|
| 995 |
)
|
| 996 |
+
save_btn = gr.Button("기록 남기기", variant="secondary")
|
| 997 |
reflections_display = gr.Dataframe(
|
| 998 |
headers=["시간", "감상", "감정 분석"],
|
| 999 |
label="기록된 감상들",
|
|
|
|
| 1185 |
print(f"Baseline error: {str(e)}")
|
| 1186 |
return current_state, "오류가 발생했습니다. 다시 시도해주세요.", gr.update(selected=0)
|
| 1187 |
|
| 1188 |
+
def move_to_chungshin():
|
| 1189 |
+
return gr.Tabs.update(selected="청신")
|
| 1190 |
+
|
| 1191 |
def handle_save_reflection(text, state):
|
| 1192 |
if not text.strip():
|
| 1193 |
return state, []
|
|
|
|
| 1325 |
)
|
| 1326 |
|
| 1327 |
enter_btn.click(
|
| 1328 |
+
fn=lambda: gr.Tabs.update(selected="청신"),
|
| 1329 |
+
outputs=tabs
|
| 1330 |
)
|
| 1331 |
|
| 1332 |
save_btn.click(
|