Prefer CN device matches
This commit is contained in:
+18
-6
@@ -857,6 +857,18 @@ def run_mysql_query(sql: str, database: str | None = None) -> list[dict[str, str
|
||||
return rows
|
||||
|
||||
|
||||
SQL_CN_SOURCE_ORDER = """
|
||||
CASE
|
||||
WHEN source_file = 'local/manual_catalog.json'
|
||||
OR (source_file NOT LIKE '%_en.md' AND source_file NOT LIKE '%_global_en.md')
|
||||
THEN 0
|
||||
ELSE 1
|
||||
END ASC,
|
||||
source_rank ASC,
|
||||
record_id ASC
|
||||
""".strip()
|
||||
|
||||
|
||||
def build_sql_query_payload(payload: dict[str, object]) -> dict[str, object]:
|
||||
raw_value = str(payload.get("model_raw") or payload.get("model") or "").strip()
|
||||
if not raw_value:
|
||||
@@ -871,7 +883,7 @@ def build_sql_query_payload(payload: dict[str, object]) -> dict[str, object]:
|
||||
limit = int(limit_value)
|
||||
except Exception as err:
|
||||
raise RuntimeError("limit 必须是数字。") from err
|
||||
limit = max(1, min(limit, 100))
|
||||
limit = 1
|
||||
|
||||
exact_sql = f"""
|
||||
SELECT
|
||||
@@ -893,7 +905,7 @@ SELECT
|
||||
ver_name
|
||||
FROM mobilemodels.mm_device_catalog
|
||||
WHERE alias_norm = '{sql_string(alias_norm)}'
|
||||
ORDER BY source_rank ASC, record_id ASC
|
||||
ORDER BY {SQL_CN_SOURCE_ORDER}
|
||||
LIMIT {limit};
|
||||
""".strip()
|
||||
|
||||
@@ -929,7 +941,7 @@ SELECT
|
||||
ver_name
|
||||
FROM mobilemodels.mm_device_catalog
|
||||
WHERE {name_conditions}
|
||||
ORDER BY source_rank ASC, record_id ASC
|
||||
ORDER BY {SQL_CN_SOURCE_ORDER}
|
||||
LIMIT {limit};
|
||||
""".strip()
|
||||
rows = run_mysql_query(sql)
|
||||
@@ -961,7 +973,7 @@ def build_sql_device_name_query_payload(payload: dict[str, object]) -> dict[str,
|
||||
limit = int(limit_value)
|
||||
except Exception as err:
|
||||
raise RuntimeError("limit 必须是数字。") from err
|
||||
limit = max(1, min(limit, 100))
|
||||
limit = 1
|
||||
|
||||
alias_norm = normalize_text(raw_value)
|
||||
resolved_device_names = resolve_index_device_names(alias_norm) if alias_norm else []
|
||||
@@ -994,7 +1006,7 @@ SELECT
|
||||
ver_name
|
||||
FROM mobilemodels.mm_device_catalog
|
||||
WHERE {name_conditions}
|
||||
ORDER BY source_rank ASC, record_id ASC
|
||||
ORDER BY {SQL_CN_SOURCE_ORDER}
|
||||
LIMIT {limit};
|
||||
""".strip()
|
||||
rows = run_mysql_query(sql)
|
||||
@@ -1026,7 +1038,7 @@ SELECT
|
||||
FROM mobilemodels.mm_device_catalog
|
||||
WHERE device_name LIKE '%{sql_string(raw_value)}%'
|
||||
OR ver_name LIKE '%{sql_string(raw_value)}%'
|
||||
ORDER BY source_rank ASC, record_id ASC
|
||||
ORDER BY {SQL_CN_SOURCE_ORDER}
|
||||
LIMIT {limit};
|
||||
""".strip()
|
||||
rows = run_mysql_query(sql)
|
||||
|
||||
Reference in New Issue
Block a user