From 92fcc0368969329a9cc8ff66d7c2e8ce3ae8bc3a Mon Sep 17 00:00:00 2001 From: khaaleoo Date: Sun, 23 Feb 2025 19:27:01 +0700 Subject: [PATCH 1/2] feat: Enhance achievement parsing with image URL extraction Update regex pattern to capture achievement image URLs alongside type and tier information, expanding the achievement data model to include image source details --- src/index.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/index.ts b/src/index.ts index be207ce..e025098 100644 --- a/src/index.ts +++ b/src/index.ts @@ -82,18 +82,19 @@ export default { return createJsonResponse({ total: 0, achievements: [] }); } - const achievements: { type: string; tier?: number }[] = []; + const achievements: { type: string; tier?: number; image?: string }[] = []; const pattern = new RegExp( - `]*href="/${username}\\?achievement=([^&]+)[^>]*>.*?(?:class="Label[^>]*achievement-tier-label[^>]*>x(\\d+))?(?:)?`, + `]*href="/${username}\\?achievement=([^&]+)[^>]*>\\s*]*>.*?(?:class="Label[^>]*achievement-tier-label[^>]*>x(\\d+))?(?:)?`, 'gs' ); let match; while ((match = pattern.exec(achievementsSection[0])) !== null) { - const [, type, tier] = match; + const [, type, imgSrc, tier] = match; achievements.push({ type: type.trim(), tier: tier ? parseInt(tier) : 1, + image: imgSrc }); } From 8bbeafc32bb2f1cd8ee3077d4dca5d968cdc4cb3 Mon Sep 17 00:00:00 2001 From: Leo <64216877+wangrunlin@users.noreply.github.com> Date: Sun, 23 Feb 2025 21:56:54 +0800 Subject: [PATCH 2/2] perf: Apply suggestions from code review --- src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index e025098..ed078d4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -90,11 +90,11 @@ export default { let match; while ((match = pattern.exec(achievementsSection[0])) !== null) { - const [, type, imgSrc, tier] = match; + const [, type, image, tier] = match; achievements.push({ type: type.trim(), tier: tier ? parseInt(tier) : 1, - image: imgSrc + image }); }