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 3dbf201bda5bbc29384a7d6c20000116578314fd Mon Sep 17 00:00:00 2001 From: khaaleoo Date: Mon, 24 Feb 2025 09:47:29 +0700 Subject: [PATCH 2/2] docs: Mark achievement image support as completed in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9fbc7d7..e4490b4 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ Example error response: - [ ] Add support for achievement descriptions - [ ] Add support for achievement dates -- [ ] Add support for achievement images +- [x] Add support for achievement images - [ ] Add API key authentication - [ ] Add more detailed statistics - [ ] Add support for organization achievements