From 91f3b16993f2f1dc70d3750d84249ebff8d24038 Mon Sep 17 00:00:00 2001 From: dollaransh17 Date: Sat, 4 Oct 2025 02:55:57 +0530 Subject: [PATCH 1/5] fix(sites): Update BoardGameGeek URL structure and detection method BoardGameGeek changed from /user/{} to /profile/{} URL structure. Also updated from message to status_code detection as the site no longer returns clear error messages for non-existent users. --- sherlock_project/resources/data.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sherlock_project/resources/data.json b/sherlock_project/resources/data.json index b30ec929..3f7f5ac3 100644 --- a/sherlock_project/resources/data.json +++ b/sherlock_project/resources/data.json @@ -279,10 +279,9 @@ "username_claimed": "mcuban" }, "BoardGameGeek": { - "errorType": "message", + "errorType": "status_code", "regexCheck": "^[a-zA-Z0-9_]*$", - "errorMsg": "User not found", - "url": "https://boardgamegeek.com/user/{}", + "url": "https://boardgamegeek.com/profile/{}", "urlMain": "https://boardgamegeek.com", "username_claimed": "blue" }, From 3e653c46b07c858811619517b28a17742cb4847a Mon Sep 17 00:00:00 2001 From: dollaransh17 Date: Sat, 4 Oct 2025 03:12:47 +0530 Subject: [PATCH 2/5] fix(sites): Remove BoardGameGeek - unreliable detection BoardGameGeek returns identical pages for both existing and non-existing users, making reliable username detection impossible with HTTP-based methods. The site likely uses JavaScript to load user-specific content dynamically. --- sherlock_project/resources/data.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/sherlock_project/resources/data.json b/sherlock_project/resources/data.json index 3f7f5ac3..891b6245 100644 --- a/sherlock_project/resources/data.json +++ b/sherlock_project/resources/data.json @@ -278,13 +278,6 @@ "urlMain": "https://bsky.app/", "username_claimed": "mcuban" }, - "BoardGameGeek": { - "errorType": "status_code", - "regexCheck": "^[a-zA-Z0-9_]*$", - "url": "https://boardgamegeek.com/profile/{}", - "urlMain": "https://boardgamegeek.com", - "username_claimed": "blue" - }, "BongaCams": { "errorType": "status_code", "isNSFW": true, From c5e209d78e203f931a9e3bc6e51d6b49fdd33d3c Mon Sep 17 00:00:00 2001 From: dollaransh17 Date: Sat, 4 Oct 2025 11:23:55 +0530 Subject: [PATCH 3/5] fix(sites): Implement BoardGameGeek API detection as suggested Using the API endpoint suggested by akh7177: https://api.geekdo.com/api/users?username={} However, there's an edge case where valid users contain empty arrays in their JSON response (adminBadges[], userMicrobadges[], supportYears[]) which causes Sherlock's substring matching to incorrectly flag them as 'not found' when looking for the '[]' error pattern. The API correctly returns: - Valid user: JSON object with user data (but contains [] substrings) - Invalid user: Exactly '[]' (2 characters total) This needs further refinement to distinguish between the exact '[]' response vs JSON containing '[]' substrings. --- sherlock_project/resources/data.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sherlock_project/resources/data.json b/sherlock_project/resources/data.json index 891b6245..09168d17 100644 --- a/sherlock_project/resources/data.json +++ b/sherlock_project/resources/data.json @@ -278,6 +278,15 @@ "urlMain": "https://bsky.app/", "username_claimed": "mcuban" }, + "BoardGameGeek": { + "errorMsg": "[]", + "errorType": "message", + "regexCheck": "^[a-zA-Z0-9_]*$", + "url": "https://boardgamegeek.com/profile/{}", + "urlMain": "https://boardgamegeek.com", + "urlProbe": "https://api.geekdo.com/api/users?username={}", + "username_claimed": "blue" + }, "BongaCams": { "errorType": "status_code", "isNSFW": true, From 94c013886a677df9b7e1192267d548b4520f2958 Mon Sep 17 00:00:00 2001 From: dollaransh17 Date: Sat, 4 Oct 2025 11:33:27 +0530 Subject: [PATCH 4/5] fix(sites): Remove BoardGameGeek due to incompatible detection BoardGameGeek cannot be reliably detected with Sherlock's current capabilities: - Original HTML detection: Returns false positives - API endpoint approach: The API returns status 200 for both valid and invalid users - Invalid user: Returns exactly '[]' - Valid user: Returns JSON containing '[]' substrings (e.g., "adminBadges":[]) Since Sherlock's 'message' errorType uses substring matching, it incorrectly identifies valid users as "not found" when checking for '[]' in the response. The site's API response format is fundamentally incompatible with Sherlock's detection methods (message/status_code/response_url), so removal is the only viable solution to prevent false positives and false negatives. Addresses false positive issue originally reported in testing. --- sherlock_project/resources/data.json | 9 --------- 1 file changed, 9 deletions(-) diff --git a/sherlock_project/resources/data.json b/sherlock_project/resources/data.json index 09168d17..891b6245 100644 --- a/sherlock_project/resources/data.json +++ b/sherlock_project/resources/data.json @@ -278,15 +278,6 @@ "urlMain": "https://bsky.app/", "username_claimed": "mcuban" }, - "BoardGameGeek": { - "errorMsg": "[]", - "errorType": "message", - "regexCheck": "^[a-zA-Z0-9_]*$", - "url": "https://boardgamegeek.com/profile/{}", - "urlMain": "https://boardgamegeek.com", - "urlProbe": "https://api.geekdo.com/api/users?username={}", - "username_claimed": "blue" - }, "BongaCams": { "errorType": "status_code", "isNSFW": true, From 9e3448d9923fecec7504ef67cc5d0f0892494dcb Mon Sep 17 00:00:00 2001 From: dollaransh17 Date: Sun, 5 Oct 2025 11:59:41 +0530 Subject: [PATCH 5/5] fix(sites): So , Implemented BoardGameGeek using username validation API - Added BoardGameGeek back using the new API endpoint suggested by @ppfeister - Uses https://api.geekdo.com/api/accounts/validate/username?username={} for detection - errorMsg checks for '"isValid":true' to detect valid usernames - This approach avoids the previous issues with: * HTML parsing returning false positives * User API returning JSON with '[]' substrings that caused detection problems - Successfully tested with both valid (blue) and invalid usernames Thanks @ppfeister for the API suggestion and @akh7177 for the initial guidance --- sherlock_project/resources/data.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sherlock_project/resources/data.json b/sherlock_project/resources/data.json index 891b6245..6c09c39c 100644 --- a/sherlock_project/resources/data.json +++ b/sherlock_project/resources/data.json @@ -291,6 +291,14 @@ "urlMain": "https://www.bookcrossing.com/", "username_claimed": "blue" }, + "BoardGameGeek": { + "errorMsg": "\"isValid\":true", + "errorType": "message", + "url": "https://boardgamegeek.com/user/{}", + "urlMain": "https://boardgamegeek.com/", + "urlProbe": "https://api.geekdo.com/api/accounts/validate/username?username={}", + "username_claimed": "blue" + }, "BraveCommunity": { "errorType": "status_code", "url": "https://community.brave.com/u/{}/",