From 676c82136269ba5a8f64f45bd6320bc0d03bb881 Mon Sep 17 00:00:00 2001 From: "mr. brown" <164935737+fviolence@users.noreply.github.com> Date: Wed, 4 Mar 2026 13:57:18 +0100 Subject: [PATCH] fix index.js to obtain pkgarch value from index.json instead of package name (#113) --- index.js | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/index.js b/index.js index cc0bdcf..21c149b 100644 --- a/index.js +++ b/index.js @@ -52,19 +52,27 @@ async function getSubtargets(target) { } async function getDetails(target, subtarget) { - const packagesUrl = `${url}${target}/${subtarget}/packages/`; - const $ = await fetchHTML(packagesUrl); - let vermagic = ''; + // pkgarch from packages/index.json + // for apk-based is required change (should work also for ipk-based) + const indexUrl = `${url}${target}/${subtarget}/packages/index.json`; let pkgarch = ''; + try { + const { data } = await axios.get(indexUrl, { responseType: 'json' }); + pkgarch = data.architecture || ''; + } catch (e) { + // keep pkgarch empty + } - $('a').each((index, element) => { - const name = $(element).attr('href'); - if (name && name.startsWith('kernel_')) { - const vermagicMatch = name.match(/kernel_\d+\.\d+\.\d+(?:-\d+)?[-~]([a-f0-9]+)(?:-r\d+)?_([a-zA-Z0-9_-]+)\.ipk$/); - if (vermagicMatch) { - vermagic = vermagicMatch[1]; - pkgarch = vermagicMatch[2]; - } + // vermagic from kmods directory name (more reliable than parsing kernel filename) + const kmodsUrl = `${url}${target}/${subtarget}/kmods/`; + const $ = await fetchHTML(kmodsUrl); + let vermagic = ''; + + $('table tr td.n a').each((_, el) => { + const name = $(el).attr('href'); + if (name && name.endsWith('/')) { + vermagic = name.slice(0, -1); + return false; // break } });