[fix] solution/backend: site_payload 날씨 라벨도 코드별 고유값으로 — 앞 커밋 누락분
직전 커밋(cd77171)에서 문서·프론트만 옮기고 서버 쪽 표(site_payload._weather_condition)를
빠뜨렸다. use-live-weather.ts 와 같은 표를 봐야 하이드레이션 전후 문구가 안 바뀐다는
불변식이 절반만 적용된 상태였다 — 여기서 마저 맞춘다.
This commit is contained in:
parent
cd771719df
commit
adb3460c37
@ -501,33 +501,48 @@ def _sections(saved_sections, default_spec) -> list:
|
||||
return out
|
||||
|
||||
|
||||
# WMO weather code → 한 줄 날씨. ★ solution/site/src/lib/use-live-weather.ts 의 condition() 과
|
||||
# **같은 구간**이어야 한다. 렌더러는 프리렌더된 이 값으로 그리다가 하이드레이션 뒤 최신 캐시로 덮어쓰는데,
|
||||
# 두 곳이 다른 표를 쓰면 같은 날씨인데 화면 문구가 바뀐다(사장님 눈에는 버그로 보인다).
|
||||
# WMO weather code → 한 줄 날씨. 코드 하나마다 고유 문구다(뭉치지 않는다) — ★ solution/site/src/lib/
|
||||
# use-live-weather.ts 의 WEATHER_CONDITION_BY_CODE 와 **같은 표**여야 한다. 렌더러는 프리렌더된
|
||||
# 이 값으로 그리다가 하이드레이션 뒤 최신 캐시로 덮어쓰는데, 두 곳이 다른 표를 쓰면 같은 날씨인데
|
||||
# 화면 문구가 바뀐다(사장님 눈에는 버그로 보인다).
|
||||
_WEATHER_CONDITION_BY_CODE = {
|
||||
0: "맑음",
|
||||
1: "대체로 맑음",
|
||||
2: "구름 조금",
|
||||
3: "흐림",
|
||||
45: "안개",
|
||||
48: "착빙성 안개",
|
||||
51: "가벼운 이슬비",
|
||||
53: "보통 이슬비",
|
||||
55: "강한 이슬비",
|
||||
56: "가벼운 착빙성 이슬비",
|
||||
57: "강한 착빙성 이슬비",
|
||||
61: "약한 비",
|
||||
63: "보통 비",
|
||||
65: "강한 비",
|
||||
66: "약한 착빙성 비",
|
||||
67: "강한 착빙성 비",
|
||||
71: "약한 눈",
|
||||
73: "보통 눈",
|
||||
75: "강한 눈",
|
||||
77: "싸라기눈",
|
||||
80: "약한 소나기",
|
||||
81: "보통 소나기",
|
||||
82: "강한 소나기",
|
||||
85: "약한 소나기눈",
|
||||
86: "강한 소나기눈",
|
||||
95: "뇌우",
|
||||
96: "약한 우박 뇌우",
|
||||
99: "강한 우박 뇌우",
|
||||
}
|
||||
|
||||
|
||||
def _weather_condition(code) -> str:
|
||||
try:
|
||||
value = int(code)
|
||||
except (TypeError, ValueError):
|
||||
return "흐림"
|
||||
if value == 0:
|
||||
return "맑음"
|
||||
if 1 <= value <= 2:
|
||||
return "구름많음"
|
||||
if value == 3:
|
||||
return "흐림"
|
||||
if value in (45, 48):
|
||||
return "안개"
|
||||
if 51 <= value <= 57:
|
||||
return "이슬비"
|
||||
if 61 <= value <= 67:
|
||||
return "비"
|
||||
if 71 <= value <= 77 or value in (85, 86):
|
||||
return "눈"
|
||||
if 80 <= value <= 82:
|
||||
return "소나기"
|
||||
if 95 <= value <= 99:
|
||||
return "뇌우"
|
||||
return "흐림"
|
||||
return _WEATHER_CONDITION_BY_CODE.get(value, "흐림")
|
||||
|
||||
|
||||
def _weather(row: dict):
|
||||
|
||||
Loading…
Reference in New Issue
Block a user