Compare commits

...

2 Commits

Author SHA1 Message Date
KeLin
a1b62b5f2d
Merge 95e73a6275 into 934fd2e091 2026-05-16 19:41:14 +09:00
Kelin
95e73a6275 fix: use safe .get() for 'mode' query param in fetch_customnode_list
The `/customnode/getlist` endpoint crashes with `KeyError: 'mode'`
when the `mode` query parameter is missing from the request. Extract
the mode value once using `.get()` with a default fallback, consistent
with how `skip_update` is already handled on the same endpoint.

Fixes #2740

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 00:25:00 +08:00

View File

@ -931,14 +931,16 @@ async def fetch_customnode_list(request):
else:
skip_update = False
if request.rel_url.query["mode"] == "local":
mode = request.rel_url.query.get("mode", "cache")
if mode == "local":
channel = 'local'
else:
channel = core.get_config()['channel_url']
node_packs = await core.get_unified_total_nodes(channel, request.rel_url.query["mode"], 'cache')
json_obj_github = core.get_data_by_mode(request.rel_url.query["mode"], 'github-stats.json', 'default')
json_obj_extras = core.get_data_by_mode(request.rel_url.query["mode"], 'extras.json', 'default')
node_packs = await core.get_unified_total_nodes(channel, mode, 'cache')
json_obj_github = core.get_data_by_mode(mode, 'github-stats.json', 'default')
json_obj_extras = core.get_data_by_mode(mode, 'extras.json', 'default')
core.populate_github_stats(node_packs, await json_obj_github)
core.populate_favorites(node_packs, await json_obj_extras)