67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Genre alias normalization and profile key mapping.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
GENRE_INPUT_ALIASES: dict[str, str] = {
|
|
"修仙/玄幻": "修仙",
|
|
"玄幻修仙": "修仙",
|
|
"玄幻": "修仙",
|
|
"修真": "修仙",
|
|
"都市修真": "都市异能",
|
|
"都市高武": "高武",
|
|
"都市奇闻": "都市脑洞",
|
|
"古言脑洞": "古言",
|
|
"游戏电竞": "电竞",
|
|
"电竞文": "电竞",
|
|
"直播": "直播文",
|
|
"直播带货": "直播文",
|
|
"主播": "直播文",
|
|
"克系": "克苏鲁",
|
|
"克系悬疑": "克苏鲁",
|
|
}
|
|
|
|
|
|
GENRE_PROFILE_KEY_ALIASES: dict[str, str] = {
|
|
"修仙": "xianxia",
|
|
"修仙/玄幻": "xianxia",
|
|
"玄幻": "xianxia",
|
|
"爽文/系统流": "shuangwen",
|
|
"高武": "xianxia",
|
|
"西幻": "xianxia",
|
|
"都市异能": "urban-power",
|
|
"都市脑洞": "urban-power",
|
|
"都市日常": "urban-power",
|
|
"狗血言情": "romance",
|
|
"古言": "romance",
|
|
"青春甜宠": "romance",
|
|
"替身文": "substitute",
|
|
"规则怪谈": "rules-mystery",
|
|
"悬疑脑洞": "mystery",
|
|
"悬疑灵异": "mystery",
|
|
"知乎短篇": "zhihu-short",
|
|
"电竞": "esports",
|
|
"直播文": "livestream",
|
|
"克苏鲁": "cosmic-horror",
|
|
}
|
|
|
|
|
|
def normalize_genre_token(token: str) -> str:
|
|
value = str(token or "").strip()
|
|
if not value:
|
|
return ""
|
|
return GENRE_INPUT_ALIASES.get(value, value)
|
|
|
|
|
|
def to_profile_key(genre: str) -> str:
|
|
value = str(genre or "").strip()
|
|
if not value:
|
|
return ""
|
|
normalized = normalize_genre_token(value)
|
|
return GENRE_PROFILE_KEY_ALIASES.get(normalized, normalized.lower())
|
|
|