mirror of
https://github.com/A-Minos/nonebot-plugin-tetris-stats.git
synced 2026-03-05 05:36:54 +08:00
🐛 修复 io rank 比较或展示顺序可能有问题的bug (#574)
Some checks failed
Code Coverage / Test (macos-latest, 3.10) (push) Has been cancelled
Code Coverage / Test (macos-latest, 3.11) (push) Has been cancelled
Code Coverage / Test (macos-latest, 3.12) (push) Has been cancelled
Code Coverage / Test (macos-latest, 3.13) (push) Has been cancelled
Code Coverage / Test (macos-latest, 3.14) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.10) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.11) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.12) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.13) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.14) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.10) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.11) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.12) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.13) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.14) (push) Has been cancelled
TypeCheck / TypeCheck (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Code Coverage / check (push) Has been cancelled
Some checks failed
Code Coverage / Test (macos-latest, 3.10) (push) Has been cancelled
Code Coverage / Test (macos-latest, 3.11) (push) Has been cancelled
Code Coverage / Test (macos-latest, 3.12) (push) Has been cancelled
Code Coverage / Test (macos-latest, 3.13) (push) Has been cancelled
Code Coverage / Test (macos-latest, 3.14) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.10) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.11) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.12) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.13) (push) Has been cancelled
Code Coverage / Test (ubuntu-latest, 3.14) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.10) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.11) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.12) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.13) (push) Has been cancelled
Code Coverage / Test (windows-latest, 3.14) (push) Has been cancelled
TypeCheck / TypeCheck (push) Has been cancelled
CodeQL / Analyze (python) (push) Has been cancelled
Code Coverage / check (push) Has been cancelled
This commit is contained in:
@@ -91,6 +91,22 @@ async def _(event_session: Uninfo, template: Template | None = None):
|
|||||||
await UniMessage.image(raw=await make_image_v2(latest_data, compare_data)).finish()
|
await UniMessage.image(raw=await make_image_v2(latest_data, compare_data)).finish()
|
||||||
|
|
||||||
|
|
||||||
|
_RANK_ORDER_INDEX = {
|
||||||
|
v: i
|
||||||
|
for i, v in enumerate(
|
||||||
|
('x+', 'x', 'u', 'ss', 's+', 's', 's-', 'a+', 'a', 'a-', 'b+', 'b', 'b-', 'c+', 'c', 'c-', 'd+', 'd', 'z')
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def _rank_sort_key(rank: str) -> int:
|
||||||
|
try:
|
||||||
|
return _RANK_ORDER_INDEX[rank]
|
||||||
|
except KeyError as e:
|
||||||
|
msg = f'未知段位: {rank!r}'
|
||||||
|
raise ValueError(msg) from e
|
||||||
|
|
||||||
|
|
||||||
async def make_image_v1(latest_data: TETRIOLeagueStats, compare_data: TETRIOLeagueStats) -> bytes:
|
async def make_image_v1(latest_data: TETRIOLeagueStats, compare_data: TETRIOLeagueStats) -> bytes:
|
||||||
return await render_image(
|
return await render_image(
|
||||||
DataV1(
|
DataV1(
|
||||||
@@ -100,7 +116,11 @@ async def make_image_v1(latest_data: TETRIOLeagueStats, compare_data: TETRIOLeag
|
|||||||
require_tr=round(i[0].tr_line, 2),
|
require_tr=round(i[0].tr_line, 2),
|
||||||
players=i[0].player_count,
|
players=i[0].player_count,
|
||||||
)
|
)
|
||||||
for i in zip(latest_data.fields, compare_data.fields, strict=True)
|
for i in zip(
|
||||||
|
sorted(latest_data.fields, key=lambda x: _rank_sort_key(x.rank)),
|
||||||
|
sorted(compare_data.fields, key=lambda x: _rank_sort_key(x.rank)),
|
||||||
|
strict=True,
|
||||||
|
)
|
||||||
},
|
},
|
||||||
updated_at=latest_data.update_time,
|
updated_at=latest_data.update_time,
|
||||||
lang=get_lang(),
|
lang=get_lang(),
|
||||||
@@ -124,7 +144,11 @@ async def make_image_v2(latest_data: TETRIOLeagueStats, compare_data: TETRIOLeag
|
|||||||
),
|
),
|
||||||
players=i[0].player_count,
|
players=i[0].player_count,
|
||||||
)
|
)
|
||||||
for i in zip(latest_data.fields, compare_data.fields, strict=True)
|
for i in zip(
|
||||||
|
sorted(latest_data.fields, key=lambda x: _rank_sort_key(x.rank)),
|
||||||
|
sorted(compare_data.fields, key=lambda x: _rank_sort_key(x.rank)),
|
||||||
|
strict=True,
|
||||||
|
)
|
||||||
},
|
},
|
||||||
updated_at=latest_data.update_time,
|
updated_at=latest_data.update_time,
|
||||||
lang=get_lang(),
|
lang=get_lang(),
|
||||||
|
|||||||
Reference in New Issue
Block a user