Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -127,8 +127,15 @@ class SajuCalculator:
|
|
127 |
def calculate_saju(birth_date, birth_time, gender, birth_place):
|
128 |
"""사주 계산 메인 함수"""
|
129 |
try:
|
|
|
|
|
|
|
|
|
130 |
# 날짜 파싱
|
131 |
-
|
|
|
|
|
|
|
132 |
|
133 |
calculator = SajuCalculator()
|
134 |
|
@@ -155,7 +162,7 @@ def calculate_saju(birth_date, birth_time, gender, birth_place):
|
|
155 |
return result
|
156 |
|
157 |
except Exception as e:
|
158 |
-
return f"❌ 계산 중 오류가 발생했습니다: {str(e)}"
|
159 |
|
160 |
def format_saju_result(ganzhi, elements, ten_gods, daeun, birth_datetime, gender, birth_place):
|
161 |
"""사주 결과 포맷팅"""
|
@@ -284,7 +291,7 @@ def get_element_balance_advice(elements):
|
|
284 |
|
285 |
# Gradio 인터페이스 생성
|
286 |
def create_interface():
|
287 |
-
with gr.Blocks(title="🔮 사주명리 만세력 시스템"
|
288 |
gr.HTML("""
|
289 |
<div style="text-align: center; padding: 20px;">
|
290 |
<h1>🔮 사주명리학 만세력 분석 시스템</h1>
|
@@ -296,15 +303,16 @@ def create_interface():
|
|
296 |
with gr.Column(scale=1):
|
297 |
gr.HTML("<h3>📝 정보 입력</h3>")
|
298 |
|
299 |
-
birth_date = gr.
|
300 |
label="생년월일",
|
301 |
-
|
|
|
302 |
)
|
303 |
|
304 |
birth_time = gr.Textbox(
|
305 |
label="태어난 시간",
|
306 |
placeholder="14:30",
|
307 |
-
info="
|
308 |
)
|
309 |
|
310 |
gender = gr.Radio(
|
@@ -321,15 +329,13 @@ def create_interface():
|
|
321 |
|
322 |
calculate_btn = gr.Button(
|
323 |
"🔮 만세력 분석하기",
|
324 |
-
variant="primary"
|
325 |
-
size="lg"
|
326 |
)
|
327 |
|
328 |
with gr.Row():
|
329 |
with gr.Column():
|
330 |
result_output = gr.Markdown(
|
331 |
-
label="분석 결과"
|
332 |
-
elem_classes=["saju-result"]
|
333 |
)
|
334 |
|
335 |
# 이벤트 연결
|
|
|
127 |
def calculate_saju(birth_date, birth_time, gender, birth_place):
|
128 |
"""사주 계산 메인 함수"""
|
129 |
try:
|
130 |
+
# 입력 검증
|
131 |
+
if not birth_date or not birth_time:
|
132 |
+
return "❌ 생년월일과 태어난 시간을 모두 입력해주세요."
|
133 |
+
|
134 |
# 날짜 파싱
|
135 |
+
try:
|
136 |
+
birth_datetime = datetime.strptime(f"{birth_date} {birth_time}", "%Y-%m-%d %H:%M")
|
137 |
+
except ValueError:
|
138 |
+
return "❌ 날짜 형식이 올바르지 않습니다. YYYY-MM-DD HH:MM 형식으로 입력해주세요.\n예: 1990-05-15 14:30"
|
139 |
|
140 |
calculator = SajuCalculator()
|
141 |
|
|
|
162 |
return result
|
163 |
|
164 |
except Exception as e:
|
165 |
+
return f"❌ 계산 중 오류가 발생했습니다: {str(e)}\n\n입력 형식을 다시 확인해주세요.\n- 생년월일: YYYY-MM-DD (예: 1990-05-15)\n- 시간: HH:MM (예: 14:30)"
|
166 |
|
167 |
def format_saju_result(ganzhi, elements, ten_gods, daeun, birth_datetime, gender, birth_place):
|
168 |
"""사주 결과 포맷팅"""
|
|
|
291 |
|
292 |
# Gradio 인터페이스 생성
|
293 |
def create_interface():
|
294 |
+
with gr.Blocks(title="🔮 사주명리 만세력 시스템") as demo:
|
295 |
gr.HTML("""
|
296 |
<div style="text-align: center; padding: 20px;">
|
297 |
<h1>🔮 사주명리학 만세력 분석 시스템</h1>
|
|
|
303 |
with gr.Column(scale=1):
|
304 |
gr.HTML("<h3>📝 정보 입력</h3>")
|
305 |
|
306 |
+
birth_date = gr.Textbox(
|
307 |
label="생년월일",
|
308 |
+
placeholder="1990-05-15",
|
309 |
+
info="YYYY-MM-DD 형식으로 입력 (양력 기준)"
|
310 |
)
|
311 |
|
312 |
birth_time = gr.Textbox(
|
313 |
label="태어난 시간",
|
314 |
placeholder="14:30",
|
315 |
+
info="HH:MM 형식 (24시간 기준)"
|
316 |
)
|
317 |
|
318 |
gender = gr.Radio(
|
|
|
329 |
|
330 |
calculate_btn = gr.Button(
|
331 |
"🔮 만세력 분석하기",
|
332 |
+
variant="primary"
|
|
|
333 |
)
|
334 |
|
335 |
with gr.Row():
|
336 |
with gr.Column():
|
337 |
result_output = gr.Markdown(
|
338 |
+
label="분석 결과"
|
|
|
339 |
)
|
340 |
|
341 |
# 이벤트 연결
|