[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
|
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:
|
def _weather_condition(code) -> str:
|
||||||
try:
|
try:
|
||||||
value = int(code)
|
value = int(code)
|
||||||
except (TypeError, ValueError):
|
except (TypeError, ValueError):
|
||||||
return "흐림"
|
return "흐림"
|
||||||
if value == 0:
|
return _WEATHER_CONDITION_BY_CODE.get(value, "흐림")
|
||||||
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 "흐림"
|
|
||||||
|
|
||||||
|
|
||||||
def _weather(row: dict):
|
def _weather(row: dict):
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user