rank: separate MP and novel tracks
Browse files
app.py
CHANGED
|
@@ -91,6 +91,7 @@ _SAFE_KEYS = (
|
|
| 91 |
"submitted_at", "season", "scored_at", "status", "gate", "hold_kind",
|
| 92 |
"axes", "detail", "notes", "note", "total", "total_max", "held_axes",
|
| 93 |
"known_in_mp", "is_anchor", "tier", "rank", "div_rank", "division",
|
|
|
|
| 94 |
)
|
| 95 |
|
| 96 |
# ๊ณต๊ฐ๋ฅผ ๊ณ ๋ฅธ ์ ์ถ์๋ง ํจ๊ป ๋ด๋ณด๋ธ๋ค. ๋น๊ณต๊ฐ๋ฉด ์ด ๋ชฉ๋ก์ ํต์งธ๋ก ๋น ์ง๋ค.
|
|
@@ -377,6 +378,7 @@ def _leaderboard_body(season):
|
|
| 377 |
e.get("submitted_at") or 0))
|
| 378 |
n = 0
|
| 379 |
div_n = {}
|
|
|
|
| 380 |
for e in merged:
|
| 381 |
# ์ฐธ๊ฐ ์ ์ถ์ mask() ๊ฐ ์กฐ์ฑ์์ ๊ตฌ์ญ์ ๋ฝ์ ๋ฃ์ด ๋์๋ค. ๊ธฐ์ค๋ฌผ์ง์ mask ๋ฅผ
|
| 382 |
# ๊ฑฐ์น์ง ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ์ฑ์ด๋ค - ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ฎ์ผ๋ฉด ์ ๋ถ other ๊ฐ ๋๋ค.
|
|
@@ -388,6 +390,8 @@ def _leaderboard_body(season):
|
|
| 388 |
if e.get("is_anchor") or e.get("tier", 1) != 1 or unscored:
|
| 389 |
e["rank"] = None # ๊ธฐ์ค๋ฌผ์ง์ ์ฒ๋๋ฅผ ํ์ํ ๋ฟ ๋ฑ์๋ฅผ ๊ฐ์ง ์๋๋ค
|
| 390 |
e["div_rank"] = None
|
|
|
|
|
|
|
| 391 |
else:
|
| 392 |
n += 1
|
| 393 |
e["rank"] = n
|
|
@@ -395,6 +399,15 @@ def _leaderboard_body(season):
|
|
| 395 |
d = e["division"]
|
| 396 |
div_n[d] = div_n.get(d, 0) + 1
|
| 397 |
e["div_rank"] = div_n[d]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 398 |
tally = {}
|
| 399 |
for e in merged:
|
| 400 |
if e.get("is_anchor"):
|
|
|
|
| 91 |
"submitted_at", "season", "scored_at", "status", "gate", "hold_kind",
|
| 92 |
"axes", "detail", "notes", "note", "total", "total_max", "held_axes",
|
| 93 |
"known_in_mp", "is_anchor", "tier", "rank", "div_rank", "division",
|
| 94 |
+
"track", "track_rank",
|
| 95 |
)
|
| 96 |
|
| 97 |
# ๊ณต๊ฐ๋ฅผ ๊ณ ๋ฅธ ์ ์ถ์๋ง ํจ๊ป ๋ด๋ณด๋ธ๋ค. ๋น๊ณต๊ฐ๋ฉด ์ด ๋ชฉ๋ก์ ํต์งธ๋ก ๋น ์ง๋ค.
|
|
|
|
| 378 |
e.get("submitted_at") or 0))
|
| 379 |
n = 0
|
| 380 |
div_n = {}
|
| 381 |
+
trk_n = {}
|
| 382 |
for e in merged:
|
| 383 |
# ์ฐธ๊ฐ ์ ์ถ์ mask() ๊ฐ ์กฐ์ฑ์์ ๊ตฌ์ญ์ ๋ฝ์ ๋ฃ์ด ๋์๋ค. ๊ธฐ์ค๋ฌผ์ง์ mask ๋ฅผ
|
| 384 |
# ๊ฑฐ์น์ง ์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ์ฑ์ด๋ค - ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋ฎ์ผ๋ฉด ์ ๋ถ other ๊ฐ ๋๋ค.
|
|
|
|
| 390 |
if e.get("is_anchor") or e.get("tier", 1) != 1 or unscored:
|
| 391 |
e["rank"] = None # ๊ธฐ์ค๋ฌผ์ง์ ์ฒ๋๋ฅผ ํ์ํ ๋ฟ ๋ฑ์๋ฅผ ๊ฐ์ง ์๋๋ค
|
| 392 |
e["div_rank"] = None
|
| 393 |
+
e["track"] = None if e.get("is_anchor") else ("mp" if e.get("known_in_mp") else "novel")
|
| 394 |
+
e["track_rank"] = None
|
| 395 |
else:
|
| 396 |
n += 1
|
| 397 |
e["rank"] = n
|
|
|
|
| 399 |
d = e["division"]
|
| 400 |
div_n[d] = div_n.get(d, 0) + 1
|
| 401 |
e["div_rank"] = div_n[d]
|
| 402 |
+
# **ํธ๋ ์์.** ๊ฐ์ ์กฐ์ฑ์ ๋ ๊ฒฝ๋ก๋ก ์ฑ์ ํด ์ฌ๋ณด๋ ์ ๊ท ์กฐ์ฑ ์ชฝ์ด
|
| 403 |
+
# ๊ณํต์ ์ผ๋ก ์ํด์๋ค(32๊ฑด ์ค 28๊ฑด, ํ๊ท 1~2์ , ์ต๋ 3.5์ ). MP ์ ๊ฐ์ด
|
| 404 |
+
# ์์ผ๋ฉด ๊ทธ ๊ฐ์ ์ฐ๊ณ ์์ผ๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ณ์ฐํ๋๋ฐ, ๋ ์์ ๋๊ธ์ด ๋ค๋ฅด๋ค.
|
| 405 |
+
# ๋๊ธ์ด ๋ค๋ฅธ ๊ฒ์ ํ ์ค๋ก ์ธ์ฐ๋ฉด "์๋ก์ด ์กฐ์ฑ์ผ์๋ก ๋ถ๋ฆฌํ" ์์ํ๊ฐ ๋๋ค -
|
| 406 |
+
# ์ ๊ท์ฑ์ ๋ฐฐ์ ์ ๊ฑธ์ด ๋๊ณ ๊ทธ๋ฌ๋ฉด ๊ทธ ๋ฐฐ์ ์ด ๊ฑฐ์ง๋ง์ด ๋๋ค.
|
| 407 |
+
tr = "mp" if e.get("known_in_mp") else "novel"
|
| 408 |
+
e["track"] = tr
|
| 409 |
+
trk_n[tr] = trk_n.get(tr, 0) + 1
|
| 410 |
+
e["track_rank"] = trk_n[tr]
|
| 411 |
tally = {}
|
| 412 |
for e in merged:
|
| 413 |
if e.get("is_anchor"):
|