194 Commits

Author SHA1 Message Date
Siddharth Dushantha eb79980c33 Remove unused line of code 2026-04-12 17:48:42 +02:00
Siddharth Dushantha e2a225697f Fix missing punctuation 2026-04-12 17:38:01 +02:00
Siddharth Dushantha 173ae5b824 Update usage 2026-04-12 17:35:14 +02:00
Siddharth Dushantha dcb935337c Remove --no-txt
It was removed a long time ago but the argumenet still exists.
2026-04-12 17:32:35 +02:00
Siddharth Dushantha ed883ad7c8 fix copy paste error 2026-04-12 16:55:54 +02:00
Siddharth Dushantha a68ea46fb4 Removed unesseary unnecessary returns 2026-04-12 16:54:42 +02:00
Siddharth Dushantha ed73b175d7 Use data.sherlockproject.xyz
I've created data.sherlockproject.xyz so that it will be eaiser for
people use Sherlock's data in other projects if needed.
2026-04-12 16:49:37 +02:00
Siddharth Dushantha a192cb4bfe Merge pull request #2897 from sherlock-project/clean-up
Minor clean up
2026-04-12 13:54:08 +02:00
Siddharth Dushantha b5e891550c Cleaned up footer text 2026-04-12 13:52:18 +02:00
Siddharth Dushantha 190c2af514 Mention uv as pip alternative 2026-04-12 13:50:55 +02:00
Siddharth Dushantha 8175af39ae Removed Apify Actor Usage 2026-04-12 13:47:20 +02:00
Paul Pfeister 574aeb4ac5 Merge pull request #2824 from vatsalgargg/fix-linkedin-waf
fix: bypass LinkedIn WAF blocking requests (HTTP 999)
2026-03-17 02:26:18 -04:00
vatsalgargg 382bc3210a fix: bypass LinkedIn WAF with standard browser headers 2026-03-12 23:14:40 +05:30
Paul Pfeister 17c443af19 Merge pull request #2812 from cclauss/patch-5
Test on Python 3.14 and free-threaded Python 3.14t
2026-03-08 17:34:47 -07:00
Paul Pfeister 9d6c47fdb4 Merge pull request #2811 from danielalanbates/fix/chess-com-case-sensitivity
fix: allow uppercase letters in Chess.com username regex
2026-02-28 22:18:26 -05:00
Christian Clauss 10bed20e70 Test on Python 3.14 and free-threaded Python 3.14t 2026-02-20 12:14:34 +01:00
Your Name fd3833b744 fix: allow uppercase letters in Chess.com username regex
Fixes #2799

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 11:24:27 -08:00
Paul Pfeister 8f8ebf3c15 Merge pull request #2794 from ellieplayswow/feature/add-wow-sites
data: add Wowhead, Wago addons, CurseForge
2026-02-04 17:39:01 -08:00
ellieplayswow 4253014085 data: add Wowhead, Wago addons, CurseForge 2026-02-03 21:06:11 +00:00
Paul Pfeister 725c68907a Merge pull request #2791 from amydosomething/add-sites
Add Shelf support
2026-01-24 00:49:10 -08:00
amydosomething c66d10bfed Remove Fiverr and Substack from PR 2026-01-20 19:53:27 +05:30
amydosomething e0002779b4 Add sites Fiverr, Substack and Shelf to data.json 2026-01-20 18:43:49 +05:30
Paul Pfeister 8f1308b90d Merge pull request #2758 from Aaditya-Chunekar/patch-2
Add Credly data to JSON resource
2025-12-29 19:54:44 -08:00
Paul Pfeister e856b05c2c Merge pull request #2636 from simplyNour/Bug/fix-gradle-false-pos-test-failure
Bug: Fix local variable scoping issue affecting false-pos test output
2025-12-29 18:56:30 -08:00
Aaditya fe9e750dab Add Credly data to JSON resource 2025-11-14 09:27:07 +05:30
Paul Pfeister 842ae1f754 Merge pull request #2733 from Aaditya-Chunekar/patch-1
Add Nothing Community data to data.json
2025-10-29 16:34:10 -07:00
Paul Pfeister 339634f7bc Merge pull request #2737 from Nolanp123/fix-minecraft-regex
Fix Minecraft False Positives for Long Usernames
2025-10-28 20:47:32 -07:00
Nolan Parker c1632693bb Add regexCheck to Minecraft to prevent false positives for long usernames 2025-10-28 20:39:53 -05:00
Aaditya e19cb32009 Add Nothing Community data to data.json 2025-10-27 11:20:30 +05:30
Paul Pfeister b69c8ef940 Merge pull request #2710 from Aaditya-Chunekar/add-sites
hacktoberfest: Added sites support
2025-10-26 00:16:29 -07:00
Aaditya-Chunekar 2724711060 feat: add tmdb 2025-10-26 09:49:31 +05:30
Paul Pfeister 0a68ab7f4c Merge pull request #2709 from Aaditya-Chunekar/add-topmate
hacktoberfest: Add topmate.io support
2025-10-24 20:15:02 -07:00
Paul Pfeister 8675178be1 Merge pull request #2705 from Aaditya-Chunekar/add-site-seoforum
hacktoberfest: Add SEO Forum Support
2025-10-24 20:12:50 -07:00
Aaditya-Chunekar 9bafb8a280 feat: add n8n, HackerSploit, Arduino Forum 2025-10-24 09:37:40 +05:30
Aaditya-Chunekar 8e5549862a feat: add topmate.io 2025-10-24 09:14:42 +05:30
Aaditya-Chunekar 8797fcd517 feat: add SEOForum 2025-10-24 08:46:23 +05:30
Paul Pfeister 0995d4d669 chore: reformat 2025-10-23 19:39:05 -04:00
Paul Pfeister 6c0c273a0b Merge pull request #2695 from simplyNour/Bug/urls-are-not-clickable-in-excel-file
Make urls clickable when saved to excel
2025-10-23 16:25:17 -07:00
Paul Pfeister 3eeba790fd Merge pull request #2722 from VivekGaddam/Twitch_Added
Added Twitch Platform Support to Sherlock
2025-10-23 15:28:01 -07:00
Paul Pfeister 61a29ec373 Merge pull request #2723 from imhiteshgarg/adding_lemmy
adding lemmy
2025-10-23 15:26:57 -07:00
Paul Pfeister 9fbbbf7c73 Merge pull request #2724 from obiwan04kanobi/feat/add-codolio
feat: add Codolio to supported sites
2025-10-23 15:26:16 -07:00
obiwan04kanobi 331b68d909 feat: add Codolio to supported sites
Add Codolio (coding portfolio tracker) as a new site target for username detection.

Detection method: Message-based using title tag differences
- Existing profiles: '<title>Username | Codolio</title>'
- Non-existing profiles: '<title>Page Not Found | Codolio</title>'

Tested with multiple usernames to confirm accurate detection.
2025-10-23 22:42:06 +05:30
Hitesh Garg 8c3e093561 adding lemmy
adding lemmy
2025-10-23 21:38:18 +05:30
vivekgaddam e35e5e3af1 corrected Twitch 2025-10-23 19:41:00 +05:30
vivekgaddam 906287b305 added twitch 2025-10-23 19:18:31 +05:30
Matheus Felipe 0dbb6abcc5 Fix Minor Capitalization Issue in README.md (#2716) 2025-10-23 09:08:29 -03:00
Matheus Felipe 03e097cc82 Reorder Terraria Forums to correct alphabetical position (#2700) 2025-10-23 08:53:50 -03:00
Matheus Felipe 91c1964918 Add GameFaqs support (#2721)
Co-authored-by: Maquinero123456 <jimenanavarrodavid@uma.es>
2025-10-23 08:04:41 -03:00
Matheus Felipe 373f3d389a Added support for Trovo (#2720) 2025-10-23 06:17:28 -03:00
SirAzako 828c47109d Added support for Trovo 2025-10-23 06:10:20 -03:00
Matheus Felipe 94245b25df Add OpenGameArt support (#2719)
Co-authored-by: Horațiu Mlendea <Horatiu.Mlendea@ProtonMail.com>
2025-10-23 05:03:35 -03:00
Matheus Felipe 734542f0af Add mstdn.social (#2718) 2025-10-23 04:19:10 -03:00
Matheus Felipe 1f8166ba9f Remove unclaimed username entry for mstdn.social 2025-10-23 03:41:21 -03:00
MagicLike 6f1ddaa615 Added mstdn.social
Added another Mastodon instance: mstdn.social
2025-10-23 03:32:54 -03:00
Nolan Parker 7ee2891517 Fix Minor Capitalization Issue in README.md 2025-10-22 22:16:13 -05:00
Paul Pfeister b893e4aa20 Merge pull request #2711 from imhiteshgarg/add_observablehq
Adding ObservableHQ site
2025-10-21 23:04:24 -07:00
Hitesh Garg eff869906a Adding ObservableHQ site
Adding ObservableHQ site
2025-10-22 10:58:31 +05:30
Paul Pfeister 2a0107e189 Merge pull request #2702 from ABSCP4/patch-1
Update README.md
2025-10-20 15:33:36 -07:00
ABSCP4 5d8c4de212 Update README.md
fixed typo
2025-10-20 11:01:32 -07:00
Nolan Parker 1f9d7e8373 Reorder Terraria Forums to correct alphabetical position 2025-10-19 15:53:09 -05:00
Paul Pfeister 184470f871 Merge pull request #2699 from Nolanp123/fix-codesandbox-name
Fix site name formatting for CodeSandbox
2025-10-19 13:14:14 -07:00
Nolan Parker 342dbc85cc Fix site name formatting for CodeSandbox 2025-10-19 14:44:47 -05:00
Paul Pfeister 457e16e84f Merge pull request #2670 from simplyNour/Bug/fix-false-positive-for-topcoder
fix: false positive for Topcoder
2025-10-18 23:47:34 -07:00
Paul Pfeister 43b3736b75 Merge pull request #2697 from raman1236/add-odysee-support
Add Odysee support
2025-10-18 23:06:15 -07:00
Paul Pfeister 64a49ffe17 Merge pull request #2698 from KaiAllAlone/KaiAllAlone-warframe-market
Add Warframe Market support
2025-10-18 22:48:00 -07:00
rvasikarla 0afd2006c6 Add Odysee support
- Add Odysee platform to sherlock database- Uses canonical link detection for non-existent users- URL pattern: https://odysee.com/@\{username\}- Detects error via canonical redirect to main site
2025-10-18 16:47:27 -05:00
rvasikarla 3c270173a7 Add Odysee support
- Add Odysee platform to sherlock database- Uses canonical link detection for non-existent users- URL pattern: https://odysee.com/@\{username\}- Detects error via canonical redirect to main site
2025-10-18 16:44:10 -05:00
rvasikarla 8d73f9ef4c Add Odysee support
- Add Odysee platform to sherlock database- Uses canonical link detection for non-existent users- URL pattern: https://odysee.com/@\{username\}- Detects error via canonical redirect to main site
2025-10-18 16:37:31 -05:00
Debanuj Roy 472c086805 Update data.jsonfixed syntax error 2025-10-19 03:06:25 +05:30
Debanuj Roy 400c277f24 more robust 2025-10-19 03:00:43 +05:30
Debanuj Roy e759564550 Update data.jsonupdate matching logic 2025-10-19 02:55:33 +05:30
Debanuj Roy deebe7137c Added Warframe Market 2025-10-19 02:45:07 +05:30
nour cb14ccbaaf Make urls clickable when saved to excel 2025-10-18 15:21:36 +03:00
Paul Pfeister eb892795e9 Merge pull request #2683 from 403Code/patch-1
Add: Cfx.re Forum
2025-10-15 10:52:32 -07:00
Rizey (Nantaaaaaaaaaa) 09de90066b Update data.json 2025-10-15 13:39:44 +07:00
Rizey (Nantaaaaaaaaaa) cd1f27c12b Update data.json 2025-10-15 13:29:42 +07:00
Rizey (Nantaaaaaaaaaa) b837de8358 Add Cfx.re Forum 2025-10-15 13:22:09 +07:00
Paul Pfeister 7a70f35883 Merge pull request #2680 from bjornmorten/add/norwegian-forums
Add Norwegian forum sites (diskusjon.no & forum.kvinneguiden.no)
2025-10-14 11:25:31 -07:00
bjornmorten 4b17dae385 fix: regex max length for kvinneguiden 2025-10-14 19:48:02 +02:00
Paul Pfeister efefe3f54a Merge pull request #2682 from bjornmorten/add/cryptohack
Add: CryptoHack
2025-10-14 10:41:41 -07:00
Paul Pfeister 4b70a1fc25 Merge pull request #2681 from bjornmorten/add/hackmd
Add: HackMD
2025-10-14 10:41:31 -07:00
bjornmorten a7893f399e add: CryptoHack 2025-10-14 19:28:53 +02:00
bjornmorten 1cb6c12851 add: HackMD 2025-10-14 19:21:36 +02:00
bjornmorten c4f7485ecf fix: alphabetical ordering 2025-10-14 19:10:57 +02:00
bjornmorten 228f50413e add: diskusjon.no and forum.kvinneguiden.no 2025-10-14 19:08:35 +02:00
Paul Pfeister d1867b1b51 Merge pull request #2679 from aryanj10/fix-fasle-positive-for-lesswrong
Fix LessWrong detection Issue #2634
2025-10-14 09:58:56 -07:00
Aryan Jain 6d2497582e Fix LessWrong detection Issue #2634 2025-10-14 11:04:15 -04:00
Paul Pfeister 885c43b8af Merge pull request #2677 from spmedia/patch-9
Add: BreachSta.rs Forum
2025-10-13 16:12:36 -07:00
Edmond Major III 8ad47b0b23 Update data.json 2025-10-13 17:23:10 -05:00
Edmond Major III e93af99424 Update data.json
remix based off title instead of text in body
2025-10-13 17:20:50 -05:00
Edmond Major III 5862ab4f92 Update data.json
Add in BreachSta.rs forum - a popular cybercrime forum

https://breachsta.rs/profile/Sleepybubble - returns valid profile

https://breachsta.rs/profile/asdfasdfasdf - returns "Not found
This page doesn't exist"
2025-10-13 17:15:26 -05:00
Paul Pfeister 4110cac45c Merge pull request #2661 from KaiAllAlone/terraria-forums
Site Added:Terraria forums
2025-10-13 15:07:31 -07:00
Paul Pfeister d66b18e8ae Merge pull request #2676 from spmedia/patch-8
Add: Patched.sh
2025-10-13 14:53:19 -07:00
Edmond Major III b532fc6a38 Add: Patched.sh
Add Patched, a popular cybercrime forum.

https://patched.sh/User/blue = valid user

https://patched.sh/User/khjasjkdhfa38a = not a valid user and displays "The member you specified is either invalid or doesn't exist."
2025-10-13 13:20:03 -05:00
Paul Pfeister 99cf073835 Merge pull request #2674 from spmedia/patch-6
Add: Cracked.sh
2025-10-13 10:41:46 -07:00
Edmond Major III ec7e1b8b81 Update data.json
Trailing / was the issue so removed it
2025-10-13 12:30:50 -05:00
Edmond Major III a4aab38901 Update data.json
Remove www
2025-10-13 12:24:02 -05:00
Edmond Major III 5202900618 Update data.json
Updated error msg on no user
2025-10-13 12:16:09 -05:00
Edmond Major III 26444a98ad Update data.json
Add Cracked.sh - a popular skid hacker website

Examples of profiles:

Claimed: https://cracked.sh/Blue - gives status code of 200

Unclaimed: https://cracked.sh/noonewouldeverusethis7 - gives status code of 404
2025-10-13 12:12:43 -05:00
Paul Pfeister bced3242f3 Merge pull request #2668 from simplyNour/Bug/fix-false-positive-for-hackerearth
fix:  false positive for hackerearth
2025-10-13 10:03:00 -07:00
Paul Pfeister 08aabdad76 Merge pull request #2673 from simplyNour/Deprecate/pepper-site-is-no-longer-operating
Deprecate: Pepper.it closed its doors on August2025
2025-10-13 10:00:45 -07:00
Paul Pfeister 170ee0b928 Merge branch 'master' into Deprecate/pepper-site-is-no-longer-operating 2025-10-13 09:58:47 -07:00
Paul Pfeister 2c9a54438a Merge pull request #2672 from simplyNour/Feature/add-pepper-global-sites
Feat: Add pepper stores worldwide websites
2025-10-13 09:57:36 -07:00
nour 84f4886809 Feat: Add pepper stores worldwide websites 2025-10-13 17:46:38 +03:00
nour e26fd6b643 Fix: false positive for topcoder due to invalid regex 2025-10-13 16:27:02 +03:00
Paul Pfeister ce5de20f80 Merge pull request #2659 from faizan842/re-enable-opencollective-powershell-realmeye
Re-enable OpenCollective and Realmeye
2025-10-12 19:01:46 -07:00
Paul Pfeister 3ff2d135b5 Merge branch 'master' into re-enable-opencollective-powershell-realmeye 2025-10-12 18:58:04 -07:00
Paul Pfeister 1e65b4a209 Merge pull request #2657 from KaiAllAlone/patch-1
Add Pokemon Forums
2025-10-12 18:55:13 -07:00
Debanuj Roy db3545b7b0 Added more robust message 2025-10-12 16:31:27 +05:30
Debanuj Roy 1898a0c4a9 Add Terraria Forums 2025-10-12 16:27:30 +05:30
Faizan Habib 0d32357b10 Re-enable OpenCollective and Realmeye
- Updated OpenCollective to use status_code detection (previously used message detection)
- Added Realmeye with message detection

Both sites were previously removed due to false positives but have been verified to work correctly now:
- OpenCollective: Returns 200 for existing profiles, 404 for non-existent
- Realmeye: Shows 'Sorry, but we either:' error message for non-existent players

Tested with known usernames:
- OpenCollective: sindresorhus
- Realmeye: rotmg

Note: PowerShell Gallery was initially included but removed after discovering their /profiles/ endpoint no longer works.
2025-10-12 13:57:22 +05:30
Debanuj Roy 1be2abb056 Resolved wrong urlMain 2025-10-12 13:39:55 +05:30
Debanuj Roy fb392534ef Add Pokemon Forums 2025-10-12 08:03:23 +05:30
Paul Pfeister bd49aac9d1 Merge pull request #2606 from Fandroid745/fix/babyru-false-positive
fix: Add error messages to BabyRu to prevent false positives
2025-10-11 18:10:54 -04:00
Matheus Felipe 94838863fd Cleanup site-list.py (#2307) 2025-10-11 15:30:08 -03:00
Matheus Felipe 79973a58ea Update file handling to include encoding and correct comments 2025-10-11 15:21:36 -03:00
Fandroid745 b9a72b55ca fix: use Unicode escape sequences for BabyRu error messages 2025-10-11 23:14:43 +05:30
Paul Pfeister ef55f7ddd3 chore: reformat json 2025-10-11 13:34:45 -04:00
Paul Pfeister 28b78e7ddd Merge pull request #2633 from VivekGaddam/add-tiktok-support
Add TikTok (tiktok.com) to supported sites
2025-10-11 13:33:39 -04:00
Paul Pfeister d2072e2cac chore: rem tiktok for improved rev 2025-10-11 13:32:51 -04:00
Paul Pfeister 3edb73cb23 Merge pull request #2650 from Nirzak/patch-1
Added classifiers for supported python version
2025-10-11 13:30:20 -04:00
Paul Pfeister 6d1280ee9d Merge pull request #2651 from aryanj10/add-tiktok-pinterest
Added support for TikTok & Pinterest
2025-10-11 13:12:13 -04:00
Dhanush Sugganahalli 0c457e590a Merge branch 'master' into fix/babyru-false-positive 2025-10-11 21:24:18 +05:30
Aryan Jain dc307fc0fd feat: add TikTok and Pinterest site detection support 2025-10-11 10:34:48 -04:00
Nirjas Jakilim d6256e9fc6 classifiers for supported python version 2025-10-11 20:27:27 +06:00
Aryan Jain 1645828527 Add TikTok site support 2025-10-11 09:25:00 -04:00
Matheus Felipe e774b08dc5 Add imood.com support (#2647) 2025-10-11 09:28:06 -03:00
Matheus Felipe 99067b2e59 Add imood.com support
resolve #2646
2025-10-11 09:23:52 -03:00
nour f039b50c4e Deprecate: Pepper closed its doors on August 14th 2025. 2025-10-11 08:29:32 +03:00
nour 7d5bd97142 fix: false positive for hackerearth 2025-10-11 07:17:01 +03:00
vivekgaddam 70b5055631 corrected india F+ prevent 2025-10-11 08:54:40 +05:30
Paul Pfeister 1be25e70df Merge pull request #2621 from MaxwellOldshein/feat/validate-remote-manifest-with-local-schema-before-validate-target-test-suite
feat: GitHub Actions - Validate Remote Manifest Against Local Schema Before Running Validate Modified Targets Test Suite
2025-10-10 20:41:58 -04:00
Paul Pfeister 9000575f7c Merge pull request #2631 from simplyNour/Add-Vjudge-Support-to-Sherlock
Add Vjudge to the sites source
2025-10-10 20:38:16 -04:00
Paul Pfeister 220ebf935c Merge pull request #2640 from sctech-tr/patch-1
add status cafe (status.cafe)
2025-10-10 20:22:44 -04:00
sctech 959c4a2b26 change method for status.cafe 2025-10-10 20:38:08 +03:00
sctech 443d43df21 add status cafe 2025-10-10 20:09:45 +03:00
Paul Pfeister 80080cd57c Merge pull request #2638 from simplyNour/Bug/fix-false-positive-for-kaskus 2025-10-10 12:51:15 -04:00
nour 80922a93fa fix: false positive for kaskus 2025-10-10 18:53:28 +03:00
nour 45494fc74b bug: fix local variable scoping issue in test validate targets 2025-10-10 06:29:55 +03:00
nour d92e2339a1 feat: add vjudge 2025-10-10 05:28:28 +03:00
vivekgaddam 659bf92d99 corrected the errorMsg 2025-10-09 19:50:43 +05:30
vivekgaddam 3e4d9bcd85 Add TikTok support to Sherlock 2025-10-09 17:57:15 +05:30
Matheus Felipe d3076cdfe0 Add Ifunny (#2632) 2025-10-09 09:16:41 -03:00
Derick Kunz 51436cefe8 Add Ifunny 2025-10-09 08:51:13 -03:00
Paul Pfeister 08a8177286 Merge pull request #2610 from eslteacher902010/add-musescore-clean 2025-10-09 06:19:35 -04:00
Paul Pfeister e6d5fd64e0 Merge pull request #2622 from akh7177/Add-support-for-Discord.bio
Add support for Discord.bio
2025-10-08 13:03:57 -04:00
Abhyuday K Hegde ac9f3a7fd5 Add support for Discord.bio 2025-10-08 11:21:53 +05:30
Paul Pfeister 289ab28b98 Merge pull request #2576 from obiwan04kanobi/add-aws-skills-profile-site
Add AWS Skills Profile site to Sherlock
2025-10-07 19:46:54 -04:00
Maxwell Oldshein 46ad6c9a5e Fix whitespace. 2025-10-07 14:53:47 -04:00
Maxwell Oldshein d20dcbe8db Retain original whitespace 2025-10-07 14:52:53 -04:00
Maxwell Oldshein 70c3c84196 Update validation logic placement in workflow 2025-10-07 14:50:54 -04:00
Dhanush Sugganahalli 53840c6a98 Merge branch 'master' into fix/babyru-false-positive 2025-10-07 14:41:12 +05:30
Fandroid745 068fff8711 fix:Remove regexCheck field and changed encoding to UTF-8 2025-10-07 14:33:32 +05:30
Maxwell Oldshein 5735d01804 Validate remote manifest against local schema 2025-10-06 23:52:14 -04:00
Paul Pfeister f60de0d8f8 Merge pull request #2616 from akh7177/Add-new-sites-to-data.json 2025-10-06 13:39:04 -04:00
Paul Pfeister cb3ab91492 Merge pull request #2485 from manjushsh/code-sandbox 2025-10-06 13:30:10 -04:00
paul_kniaz 4eea79ed6a MuseScore: use GET for status_code via request_method to avoid 403 on HEAD 2025-10-06 13:07:45 -04:00
Abhyuday K Hegde 03c051a525 Add new sites to Sherlock 2025-10-06 18:47:38 +05:30
Aniket eccdf80b95 Add Pronouns.page (#2419)
* Add support for Pronouns.page (#2418)

* Update the url
2025-10-06 09:52:56 -03:00
Manjush Shetty eb51bf9b1a misc: remove isnsfw from hive 2025-10-06 17:15:44 +05:30
Manjush Shetty 5d7b438fd6 add urlProbe 2025-10-06 17:11:50 +05:30
Manjush Shetty ef0b97fb57 chore: try with api instead 2025-10-06 16:54:07 +05:30
Manjush Shetty c6c3522159 chore: add custom regex for codesandbox usernames 2025-10-06 16:45:53 +05:30
Manjush Shetty 2908c8eaa8 chore: try with different message 2025-10-06 16:40:59 +05:30
Manjush S f05b8e0ed6 Merge branch 'sherlock-project:master' into code-sandbox 2025-10-06 16:21:40 +05:30
Fandroid745 01bca6b39f fix: corrected the regexCheck field value to an empty string 2025-10-06 08:57:11 +05:30
Paul Pfeister d2835e56a4 Merge pull request #2568 from shreyasNaik0101/fix/remediate-blitztactics
fix(sites): Remediate false positive for Blitz Tactics
2025-10-05 14:17:43 -04:00
shreyasNaik0101 0cf110e69e Merge branch 'master' into fix/remediate-blitztactics 2025-10-05 22:56:59 +05:30
Paul Pfeister a88adb0488 Merge pull request #2559 from frogtheastronaut/master
Removed duplicate Bluesky entry in data.json
2025-10-05 13:23:53 -04:00
Fandroid745 4010a58dde fix: changed the username_claimed to example placeholder 2025-10-05 22:23:17 +05:30
Paul Pfeister b9e28b9b23 Merge pull request #2588 from shreyasNaik0101/fix/correct-ci-diff
fix(ci): Use merge-base for correct target validation
2025-10-05 12:49:58 -04:00
Paul Pfeister d0e005da23 Merge pull request #2609 from akh7177/Add-support-for-WakaTime
Add support for WakaTime
2025-10-05 12:30:24 -04:00
paul_kniaz 7a4f19e6b3 Fix MuseScore URL endpoint 2025-10-05 12:27:30 -04:00
paul_kniaz f958e7b96f update MuseScore username_claimed to arrangeme (valid profile) 2025-10-05 12:13:37 -04:00
paul_kniaz 4c99bf3b75 Add MuseScore site (clean version) 2025-10-05 10:44:55 -04:00
Fandroid745 e3066a1d7a fix:added the username_claimed field 2025-10-05 18:59:04 +05:30
Abhyuday K Hegde f0510a169a Add support for WakaTime 2025-10-05 15:52:56 +05:30
manjushsh 738df6c362 chore: add error message to the codesandbox 2025-10-05 15:22:37 +05:30
Paul Pfeister 83a38db110 Merge pull request #2582 from dollaransh17/fix/boardgamegeek-false-positive
fix(sites): Update BoardGameGeek URL structure and detection method
2025-10-05 02:39:29 -04:00
dollaransh17 9e3448d992 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
2025-10-05 11:59:41 +05:30
shreyasNaik0101 70e3c0ddd8 fix(ci): Address review feedback for correctness and efficiency 2025-10-05 11:00:14 +05:30
Fandroid745 017c08a45d fix: Add error messages to BabyRu to prevent false positives 2025-10-05 10:53:59 +05:30
shreyasNaik0101 4d00884d8c fix(ci): Implement secure diff logic per feedback 2025-10-05 03:00:21 +05:30
shreyasNaik0101 3079e7a218 fix(ci): Use merge-base for correct target validation 2025-10-04 15:25:30 +05:30
dollaransh17 94c013886a 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.
2025-10-04 11:33:27 +05:30
dollaransh17 c5e209d78e 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.
2025-10-04 11:23:55 +05:30
dollaransh17 3e653c46b0 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.
2025-10-04 03:12:47 +05:30
dollaransh17 91f3b16993 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.
2025-10-04 02:55:57 +05:30
obiwan04kanobi 0f3df0f4da **PR description:**
This PR adds AWS Skills Profile to Sherlock’s supported sites in data.json. The configuration uses a unique substring (`shareProfileAccepted":false`) for reliable detection of non-existent usernames, addressing the challenge of JavaScript-rendered error messages.
- Site details and detection logic follow Sherlock’s contributing guidelines and Code of Conduct.
- No changes to core logic; only a new site entry.
- Reviewed for schema compliance and duplicate key cleanup as noted.
2025-10-03 13:46:53 +05:30
shreyasNaik0101 876e58b159 fix(sites): Remediate false positive for Blitz Tactics 2025-10-03 05:45:43 +05:30
Ethan Zhang 4fe41f09ff Removed duplicate Bluesky entry in data.json 2025-10-02 12:42:47 +10:00
manjushsh 4706323976 data: add hive blog 2025-06-27 20:05:01 +05:30
manjushsh 4721c7f553 data: Add code sandboxio 2025-06-27 19:42:23 +05:30
Pallavi Kathait 193de54b6d Update site-list.py
These changes improve readability and maintain the functionality of the original code.
2024-09-29 21:31:19 +05:30
11 changed files with 575 additions and 186 deletions
+1 -1
View File
@@ -65,7 +65,7 @@ The Actor provides three types of outputs:
| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `username` | string | Yes | Username the search was conducted for |
| `links` | arrray | Yes | Array with found links to the social media |
| `links` | array | Yes | Array with found links to the social media |
| `links[]`| string | No | URL to the account
### Example Dataset Item (JSON)
+9 -7
View File
@@ -27,12 +27,12 @@ on:
jobs:
tox-lint:
runs-on: ubuntu-latest
# Linting is ran through tox to ensure that the same linter
# Linting is run through tox to ensure that the same linter
# is used by local runners
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up linting environment
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install tox and related dependencies
@@ -44,7 +44,7 @@ jobs:
tox-matrix:
runs-on: ${{ matrix.os }}
strategy:
# We want to know what specicic versions it fails on
# We want to know what specific versions it fails on
fail-fast: false
matrix:
os: [
@@ -57,11 +57,13 @@ jobs:
'3.11',
'3.12',
'3.13',
'3.14',
'3.14t',
]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: Set up environment ${{ matrix.python-version }}
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install tox and related dependencies
@@ -75,7 +77,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Get version from pyproject.toml
+36 -10
View File
@@ -17,29 +17,40 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v5
with:
# Checkout the base branch but fetch all history to avoid a second fetch call
ref: ${{ github.base_ref }}
fetch-depth: 1
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: '3.13'
python-version: "3.13"
- name: Install Poetry
uses: abatilo/actions-poetry@v4
with:
poetry-version: 'latest'
poetry-version: "latest"
- name: Install dependencies
run: |
poetry install --no-interaction --with dev
- name: Drop in place updated manifest from base
- name: Prepare JSON versions for comparison
run: |
cp sherlock_project/resources/data.json data.json.base
git fetch origin pull/${{ github.event.pull_request.number }}/head:pr --depth=1
git show pr:sherlock_project/resources/data.json > sherlock_project/resources/data.json
cp sherlock_project/resources/data.json data.json.head
# Fetch only the PR's branch head (single network call in this step)
git fetch origin pull/${{ github.event.pull_request.number }}/head:pr
# Find the merge-base commit between the target branch and the PR branch
MERGE_BASE=$(git merge-base origin/${{ github.base_ref }} pr)
echo "Comparing PR head against merge-base commit: $MERGE_BASE"
# Safely extract the file from the PR's head and the merge-base commit
git show pr:sherlock_project/resources/data.json > data.json.head
git show $MERGE_BASE:sherlock_project/resources/data.json > data.json.base
# CRITICAL FIX: Overwrite the checked-out data.json with the one from the PR
# This ensures that pytest runs against the new, updated file.
cp data.json.head sherlock_project/resources/data.json
- name: Discover modified targets
id: discover-modified
@@ -47,8 +58,16 @@ jobs:
CHANGED=$(
python - <<'EOF'
import json
with open("data.json.base") as f: base = json.load(f)
with open("data.json.head") as f: head = json.load(f)
import sys
try:
with open("data.json.base") as f: base = json.load(f)
with open("data.json.head") as f: head = json.load(f)
except FileNotFoundError as e:
print(f"Error: Could not find {e.filename}", file=sys.stderr)
sys.exit(1)
except json.JSONDecodeError as e:
print(f"Error: Could not decode JSON from a file - {e}", file=sys.stderr)
sys.exit(1)
changed = []
for k, v in head.items():
@@ -63,6 +82,13 @@ jobs:
echo -e ">>> Changed targets: \n$(echo $CHANGED | tr ',' '\n')"
echo "changed_targets=$CHANGED" >> "$GITHUB_OUTPUT"
- name: Validate remote manifest against local schema
if: steps.discover-modified.outputs.changed_targets != ''
run: |
poetry run pytest tests/test_manifest.py::test_validate_manifest_against_local_schema
# --- The rest of the steps below are unchanged ---
- name: Validate modified targets
if: steps.discover-modified.outputs.changed_targets != ''
continue-on-error: true
+17 -11
View File
@@ -1,39 +1,45 @@
#!/usr/bin/env python
# This module generates the listing of supported sites which can be found in
# sites.md. It also organizes all the sites in alphanumeric order
# sites.mdx. It also organizes all the sites in alphanumeric order
import json
import os
DATA_REL_URI: str = "sherlock_project/resources/data.json"
DEFAULT_ENCODING = "utf-8"
# Read the data.json file
with open(DATA_REL_URI, "r", encoding="utf-8") as data_file:
with open(DATA_REL_URI, "r", encoding=DEFAULT_ENCODING) as data_file:
data: dict = json.load(data_file)
# Removes schema-specific keywords for proper processing
social_networks: dict = dict(data)
social_networks = data.copy()
social_networks.pop('$schema', None)
# Sort the social networks in alphanumeric order
social_networks: list = sorted(social_networks.items())
social_networks = sorted(social_networks.items())
# Make output dir where the site list will be written
os.mkdir("output")
# Write the list of supported sites to sites.md
with open("output/sites.mdx", "w") as site_file:
site_file.write("---\ntitle: 'List of supported sites'\nsidebarTitle: 'Supported sites'\nicon: 'globe'\ndescription: 'Sherlock currently supports **400+** sites'\n---\n\n")
# Write the list of supported sites to sites.mdx
with open("output/sites.mdx", "w", encoding=DEFAULT_ENCODING) as site_file:
site_file.write("---\n")
site_file.write("title: 'List of supported sites'\n")
site_file.write("sidebarTitle: 'Supported sites'\n")
site_file.write("icon: 'globe'\n")
site_file.write("description: 'Sherlock currently supports **400+** sites'\n")
site_file.write("---\n\n")
for social_network, info in social_networks:
url_main = info["urlMain"]
is_nsfw = "**(NSFW)**" if info.get("isNSFW") else ""
site_file.write(f"1. [{social_network}]({url_main}) {is_nsfw}\n")
# Overwrite the data.json file with sorted data
with open(DATA_REL_URI, "w") as data_file:
with open(DATA_REL_URI, "w", encoding=DEFAULT_ENCODING) as data_file:
sorted_data = json.dumps(data, indent=2, sort_keys=True)
data_file.write(sorted_data)
data_file.write("\n")
data_file.write("\n") # Keep the newline after writing data
print("Finished updating supported site listing!")
+19 -47
View File
@@ -23,17 +23,17 @@
> [!WARNING]
> Packages for ParrotOS and Ubuntu 24.04, maintained by a third party, appear to be __broken__.
> Users of these systems should defer to pipx/pip or Docker.
> Users of these systems should defer to [`uv`](https://docs.astral.sh/uv/)/`pipx`/`pip` or Docker.
| Method | Notes |
| - | - |
| `pipx install sherlock-project` | `pip` may be used in place of `pipx` |
| `pipx install sherlock-project` | `pip` or [`uv`](https://docs.astral.sh/uv/) may be used in place of `pipx` |
| `docker run -it --rm sherlock/sherlock` |
| `dnf install sherlock-project` | |
Community-maintained packages are available for Debian (>= 13), Ubuntu (>= 22.10), Homebrew, Kali, and BlackArch. These packages are not directly supported or maintained by the Sherlock Project.
See all alternative installation methods [here](https://sherlockproject.xyz/installation)
See all alternative installation methods [here](https://sherlockproject.xyz/installation).
## General usage
@@ -51,70 +51,42 @@ Accounts found will be stored in an individual text file with the corresponding
```console
$ sherlock --help
usage: sherlock [-h] [--version] [--verbose] [--folderoutput FOLDEROUTPUT]
[--output OUTPUT] [--tor] [--unique-tor] [--csv] [--xlsx]
[--site SITE_NAME] [--proxy PROXY_URL] [--json JSON_FILE]
[--timeout TIMEOUT] [--print-all] [--print-found] [--no-color]
[--browse] [--local] [--nsfw]
usage: sherlock [-h] [--version] [--verbose] [--folderoutput FOLDEROUTPUT] [--output OUTPUT] [--csv] [--xlsx] [--site SITE_NAME] [--proxy PROXY_URL] [--dump-response]
[--json JSON_FILE] [--timeout TIMEOUT] [--print-all] [--print-found] [--no-color] [--browse] [--local] [--nsfw] [--txt] [--ignore-exclusions]
USERNAMES [USERNAMES ...]
Sherlock: Find Usernames Across Social Networks (Version 0.14.3)
Sherlock: Find Usernames Across Social Networks (Version 0.16.0)
positional arguments:
USERNAMES One or more usernames to check with social networks.
Check similar usernames using {?} (replace to '_', '-', '.').
USERNAMES One or more usernames to check with social networks. Check similar usernames using {?} (replace to '_', '-', '.').
optional arguments:
options:
-h, --help show this help message and exit
--version Display version information and dependencies.
--verbose, -v, -d, --debug
Display extra debugging information and metrics.
--folderoutput FOLDEROUTPUT, -fo FOLDEROUTPUT
If using multiple usernames, the output of the results will be
saved to this folder.
If using multiple usernames, the output of the results will be saved to this folder.
--output OUTPUT, -o OUTPUT
If using single username, the output of the result will be saved
to this file.
--tor, -t Make requests over Tor; increases runtime; requires Tor to be
installed and in system path.
--unique-tor, -u Make requests over Tor with new Tor circuit after each request;
increases runtime; requires Tor to be installed and in system
path.
If using single username, the output of the result will be saved to this file.
--csv Create Comma-Separated Values (CSV) File.
--xlsx Create the standard file for the modern Microsoft Excel
spreadsheet (xlsx).
--site SITE_NAME Limit analysis to just the listed sites. Add multiple options to
specify more than one site.
--xlsx Create the standard file for the modern Microsoft Excel spreadsheet (xlsx).
--site SITE_NAME Limit analysis to just the listed sites. Add multiple options to specify more than one site.
--proxy PROXY_URL, -p PROXY_URL
Make requests over a proxy. e.g. socks5://127.0.0.1:1080
--dump-response Dump the HTTP response to stdout for targeted debugging.
--json JSON_FILE, -j JSON_FILE
Load data from a JSON file or an online, valid, JSON file.
Load data from a JSON file or an online, valid, JSON file. Upstream PR numbers also accepted.
--timeout TIMEOUT Time (in seconds) to wait for response to requests (Default: 60)
--print-all Output sites where the username was not found.
--print-found Output sites where the username was found.
--print-found Output sites where the username was found (also if exported as file).
--no-color Don't color terminal output
--browse, -b Browse to all results on default browser.
--local, -l Force the use of the local data.json file.
--nsfw Include checking of NSFW sites from default list.
--txt Enable creation of a txt file
--ignore-exclusions Ignore upstream exclusions (may return more false positives)
```
## Apify Actor Usage [![Sherlock Actor](https://apify.com/actor-badge?actor=netmilk/sherlock)](https://apify.com/netmilk/sherlock?fpr=sherlock)
<a href="https://apify.com/netmilk/sherlock?fpr=sherlock"><img src="https://apify.com/ext/run-on-apify.png" alt="Run Sherlock Actor on Apify" width="176" height="39" /></a>
You can run Sherlock in the cloud without installation using the [Sherlock Actor](https://apify.com/netmilk/sherlock?fpr=sherlock) on [Apify](https://apify.com?fpr=sherlock) free of charge.
``` bash
$ echo '{"usernames":["user123"]}' | apify call -so netmilk/sherlock
[{
"username": "user123",
"links": [
"https://www.1337x.to/user/user123/",
...
]
}]
```
Read more about the [Sherlock Actor](../.actor/README.md), including how to use it programmatically via the Apify [API](https://apify.com/netmilk/sherlock/api?fpr=sherlock), [CLI](https://docs.apify.com/cli/?fpr=sherlock) and [JS/TS and Python SDKs](https://docs.apify.com/sdk?fpr=sherlock).
## Credits
@@ -124,7 +96,7 @@ Thank you to everyone who has contributed to Sherlock! ❤️
<img src="https://contrib.rocks/image?&columns=25&max=10000&&repo=sherlock-project/sherlock" alt="contributors"/>
</a>
## Star history
## Star History
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=sherlock-project/sherlock&type=Date&theme=dark" />
@@ -135,7 +107,7 @@ Thank you to everyone who has contributed to Sherlock! ❤️
## License
MIT © Sherlock Project<br/>
Original Creator - [Siddharth Dushantha](https://github.com/sdushantha)
Creator - [Siddharth Dushantha](https://github.com/sdushantha)
<!-- Reference Links -->
+4
View File
@@ -29,6 +29,10 @@ classifiers = [
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Security"
]
homepage = "https://sherlockproject.xyz/"
+2 -9
View File
@@ -37,7 +37,6 @@ class QueryNotify:
self.result = result
# return
def start(self, message=None):
"""Notify Start.
@@ -56,7 +55,6 @@ class QueryNotify:
Nothing.
"""
# return
def update(self, result):
"""Notify Update.
@@ -75,7 +73,6 @@ class QueryNotify:
self.result = result
# return
def finish(self, message=None):
"""Notify Finish.
@@ -94,7 +91,6 @@ class QueryNotify:
Nothing.
"""
# return
def __str__(self):
"""Convert Object To String.
@@ -137,7 +133,6 @@ class QueryNotifyPrint(QueryNotify):
self.print_all = print_all
self.browse = browse
return
def start(self, message):
"""Notify Start.
@@ -163,7 +158,6 @@ class QueryNotifyPrint(QueryNotify):
# An empty line between first line and the result(more clear output)
print('\r')
return
def countResults(self):
"""This function counts the number of results. Every time the function is called,
@@ -238,7 +232,7 @@ class QueryNotifyPrint(QueryNotify):
Fore.WHITE + "]" +
Fore.GREEN + f" {self.result.site_name}:" +
Fore.YELLOW + f" {msg}")
elif result.status == QueryStatus.WAF:
if self.print_all:
print(Style.BRIGHT + Fore.WHITE + "[" +
@@ -254,10 +248,9 @@ class QueryNotifyPrint(QueryNotify):
f"Unknown Query Status '{result.status}' for site '{self.result.site_name}'"
)
return
def finish(self, message="The processing has been finished."):
"""Notify Start.
"""Notify Finish.
Will print the last line to the standard output.
Keyword Arguments:
self -- This object.
+483 -83
View File
@@ -79,13 +79,13 @@
"username_claimed": "pink"
},
"AllMyLinks": {
"errorMsg": "Page not found",
"errorType": "message",
"regexCheck": "^[a-z0-9][a-z0-9-]{2,32}$",
"url": "https://allmylinks.com/{}",
"urlMain": "https://allmylinks.com/",
"username_claimed": "blue"
},
"errorMsg": "Page not found",
"errorType": "message",
"regexCheck": "^[a-z0-9][a-z0-9-]{2,32}$",
"url": "https://allmylinks.com/{}",
"urlMain": "https://allmylinks.com/",
"username_claimed": "blue"
},
"AniWorld": {
"errorMsg": "Dieses Profil ist nicht verf\u00fcgbar",
"errorType": "message",
@@ -149,6 +149,12 @@
"urlProbe": "https://archive.org/details/@{}?noscript=true",
"username_claimed": "blue"
},
"Arduino Forum": {
"errorType": "status_code",
"url": "https://forum.arduino.cc/u/{}/summary",
"urlMain": "https://forum.arduino.cc/",
"username_claimed": "system"
},
"ArtStation": {
"errorType": "status_code",
"url": "https://www.artstation.com/{}",
@@ -173,6 +179,12 @@
"urlMain": "https://atcoder.jp/",
"username_claimed": "ksun48"
},
"Vjudge": {
"errorType": "status_code",
"url": "https://VJudge.net/user/{}",
"urlMain": "https://VJudge.net/",
"username_claimed": "tokitsukaze"
},
"Audiojungle": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z0-9_]+$",
@@ -193,6 +205,13 @@
"urlMain": "https://www.avizo.cz/",
"username_claimed": "blue"
},
"AWS Skills Profile": {
"errorType": "message",
"errorMsg": "shareProfileAccepted\":false",
"url": "https://skillsprofile.skillbuilder.aws/user/{}/",
"urlMain": "https://skillsprofile.skillbuilder.aws",
"username_claimed": "mayank04pant"
},
"BOOTH": {
"errorType": "response_url",
"errorUrl": "https://booth.pm/",
@@ -259,7 +278,8 @@
"username_claimed": "blue"
},
"Blitz Tactics": {
"errorType": "status_code",
"errorMsg": "That page doesn't exist",
"errorType": "message",
"url": "https://blitztactics.com/{}",
"urlMain": "https://blitztactics.com/",
"username_claimed": "Lance5500"
@@ -278,14 +298,6 @@
"urlMain": "https://bsky.app/",
"username_claimed": "mcuban"
},
"BoardGameGeek": {
"errorType": "message",
"regexCheck": "^[a-zA-Z0-9_]*$",
"errorMsg": "User not found",
"url": "https://boardgamegeek.com/user/{}",
"urlMain": "https://boardgamegeek.com",
"username_claimed": "blue"
},
"BongaCams": {
"errorType": "status_code",
"isNSFW": true,
@@ -299,12 +311,27 @@
"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/{}/",
"urlMain": "https://community.brave.com/",
"username_claimed": "blue"
},
"BreachSta.rs Forum": {
"errorMsg": "<title>Error - BreachStars</title>",
"errorType": "message",
"url": "https://breachsta.rs/profile/{}",
"urlMain": "https://breachsta.rs/",
"username_claimed": "Sleepybubble"
},
"BugCrowd": {
"errorType": "status_code",
"url": "https://bugcrowd.com/{}",
@@ -325,6 +352,12 @@
"urlMain": "https://buzzfeed.com/",
"username_claimed": "blue"
},
"Cfx.re Forum": {
"errorType": "status_code",
"url": "https://forum.cfx.re/u/{}/summary",
"urlMain": "https://forum.cfx.re",
"username_claimed": "hightowerlssd"
},
"CGTrader": {
"errorType": "status_code",
"regexCheck": "^[^.]*?$",
@@ -414,7 +447,7 @@
"Chess": {
"errorMsg": "Username is valid",
"errorType": "message",
"regexCheck": "^[a-z1-9]{3,25}$",
"regexCheck": "^[a-zA-Z0-9_]{3,25}$",
"url": "https://www.chess.com/member/{}",
"urlMain": "https://www.chess.com/",
"urlProbe": "https://www.chess.com/callback/user/valid?username={}",
@@ -505,12 +538,29 @@
"urlMain": "https://coderwall.com",
"username_claimed": "hacker"
},
"CodeSandbox": {
"errorType": "message",
"errorMsg": "Could not find user with username",
"regexCheck": "^[a-zA-Z0-9_-]{3,30}$",
"url": "https://codesandbox.io/u/{}",
"urlProbe": "https://codesandbox.io/api/v1/users/{}",
"urlMain": "https://codesandbox.io",
"username_claimed": "icyjoseph"
},
"Codewars": {
"errorType": "status_code",
"url": "https://www.codewars.com/users/{}",
"urlMain": "https://www.codewars.com",
"username_claimed": "example"
},
"Codolio": {
"errorType": "message",
"errorMsg": "<title>Page Not Found | Codolio</title>",
"url": "https://codolio.com/profile/{}",
"urlMain": "https://codolio.com/",
"username_claimed": "testuser",
"regexCheck": "^[a-zA-Z0-9_-]{3,30}$"
},
"Coinvote": {
"errorType": "status_code",
"url": "https://coinvote.cc/profile/{}",
@@ -537,6 +587,13 @@
"urlMain": "https://coroflot.com/",
"username_claimed": "blue"
},
"Cplusplus": {
"errorType": "message",
"errorMsg": "<title>404 Page Not Found</title>",
"url": "https://cplusplus.com/user/{}",
"urlMain": "https://cplusplus.com",
"username_claimed": "mbozzi"
},
"Cracked": {
"errorType": "response_url",
"errorUrl": "https://www.cracked.com/",
@@ -544,6 +601,19 @@
"urlMain": "https://www.cracked.com/",
"username_claimed": "blue"
},
"Cracked Forum": {
"errorMsg": "The member you specified is either invalid or doesn't exist",
"errorType": "message",
"url": "https://cracked.sh/{}",
"urlMain": "https://cracked.sh/",
"username_claimed": "Blue"
},
"Credly": {
"errorType": "status_code",
"url": "https://www.credly.com/users/{}",
"urlMain": "https://www.credly.com/",
"username_claimed": "credly"
},
"Crevado": {
"errorType": "status_code",
"regexCheck": "^[\\w@-]+?$",
@@ -558,6 +628,13 @@
"urlMain": "https://crowdin.com/",
"username_claimed": "blue"
},
"CryptoHack": {
"errorType": "response_url",
"errorUrl": "https://cryptohack.org/",
"url": "https://cryptohack.org/user/{}/",
"urlMain": "https://cryptohack.org/",
"username_claimed": "blue"
},
"Cryptomator Forum": {
"errorType": "status_code",
"url": "https://community.cryptomator.org/u/{}",
@@ -613,21 +690,21 @@
"urlMain": "https://www.dealabs.com/",
"username_claimed": "blue"
},
"DeviantArt": {
"errorType": "message",
"errorMsg": "Llama Not Found",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$",
"url": "https://www.deviantart.com/{}",
"urlMain": "https://www.deviantart.com/",
"username_claimed": "blue"
},
"DeviantArt": {
"errorType": "message",
"errorMsg": "Llama Not Found",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$",
"url": "https://www.deviantart.com/{}",
"urlMain": "https://www.deviantart.com/",
"username_claimed": "blue"
},
"DigitalSpy": {
"errorMsg": "The page you were looking for could not be found.",
"errorType": "message",
"url": "https://forums.digitalspy.com/profile/{}",
"urlMain": "https://forums.digitalspy.com/",
"username_claimed": "blue",
"regexCheck": "^\\w{3,20}$"
"errorMsg": "The page you were looking for could not be found.",
"errorType": "message",
"url": "https://forums.digitalspy.com/profile/{}",
"urlMain": "https://forums.digitalspy.com/",
"username_claimed": "blue",
"regexCheck": "^\\w{3,20}$"
},
"Discogs": {
"errorType": "status_code",
@@ -640,10 +717,7 @@
"url": "https://discord.com",
"urlMain": "https://discord.com/",
"urlProbe": "https://discord.com/api/v9/unique-username/username-attempt-unauthed",
"errorMsg": [
"{\"taken\":false}",
"The resource is being rate limited"
],
"errorMsg": ["{\"taken\":false}", "The resource is being rate limited"],
"request_method": "POST",
"request_payload": {
"username": "{}"
@@ -653,12 +727,28 @@
},
"username_claimed": "blue"
},
"Discord.bio": {
"errorType": "message",
"errorMsg": "<title>Server Error (500)</title>",
"url": "https://discords.com/api-v2/bio/details/{}",
"urlMain": "https://discord.bio/",
"username_claimed": "robert"
},
"Discuss.Elastic.co": {
"errorType": "status_code",
"url": "https://discuss.elastic.co/u/{}",
"urlMain": "https://discuss.elastic.co/",
"username_claimed": "blue"
},
"Diskusjon.no": {
"errorMsg": "{\"result\":\"ok\"}",
"errorType": "message",
"regexCheck": "^[a-zA-Z0-9_.-]{3,40}$",
"urlProbe": "https://www.diskusjon.no/?app=core&module=system&controller=ajax&do=usernameExists&input={}",
"url": "https://www.diskusjon.no",
"urlMain": "https://www.diskusjon.no",
"username_claimed": "blue"
},
"Disqus": {
"errorType": "status_code",
"url": "https://disqus.com/{}",
@@ -683,7 +773,6 @@
"Duolingo": {
"errorMsg": "{\"users\":[]}",
"errorType": "message",
"url": "https://www.duolingo.com/profile/{}",
"urlMain": "https://duolingo.com/",
"urlProbe": "https://www.duolingo.com/2017-06-30/users?username={}",
@@ -856,6 +945,12 @@
"urlMain": "https://www.gamespot.com/",
"username_claimed": "blue"
},
"GameFAQs": {
"errorType": "status_code",
"url": "https://gamefaqs.gamespot.com/community/{}",
"urlMain": "https://gamefaqs.gamespot.com",
"username_claimed": "blue"
},
"GeeksforGeeks": {
"errorType": "status_code",
"url": "https://auth.geeksforgeeks.org/user/{}",
@@ -915,6 +1010,14 @@
"urlMain": "https://www.github.com/",
"username_claimed": "blue"
},
"Warframe Market": {
"errorType": "status_code",
"request_method": "GET",
"url": "https://warframe.market/profile/{}",
"urlMain": "https://warframe.market/",
"urlProbe": "https://api.warframe.market/v2/user/{}",
"username_claimed": "kaiallalone"
},
"GitLab": {
"errorMsg": "[]",
"errorType": "message",
@@ -1004,18 +1107,14 @@
"username_claimed": "blazezaria"
},
"HackerEarth": {
"errorMsg": "404. URL not found.",
"errorType": "message",
"errorType": "status_code",
"url": "https://hackerearth.com/@{}",
"urlMain": "https://hackerearth.com/",
"username_claimed": "naveennamani877"
},
"HackerNews": {
"__comment__": "First errMsg invalid, second errMsg rate limited. Not ideal. Adjust for better rate limit filtering.",
"errorMsg": [
"No such user.",
"Sorry."
],
"errorMsg": ["No such user.", "Sorry."],
"errorType": "message",
"url": "https://news.ycombinator.com/user?id={}",
"urlMain": "https://news.ycombinator.com/",
@@ -1036,6 +1135,18 @@
"urlMain": "https://hackerrank.com/",
"username_claimed": "satznova"
},
"HackerSploit": {
"errorType": "status_code",
"url": "https://forum.hackersploit.org/u/{}",
"urlMain": "https://forum.hackersploit.org/",
"username_claimed": "hackersploit"
},
"HackMD": {
"errorType": "status_code",
"url": "https://hackmd.io/@{}",
"urlMain": "https://hackmd.io/",
"username_claimed": "blue"
},
"Harvard Scholar": {
"errorType": "status_code",
"url": "https://scholar.harvard.edu/{}",
@@ -1056,6 +1167,13 @@
"urlMain": "https://www.heavy-r.com/",
"username_claimed": "kilroy222"
},
"Hive Blog": {
"errorMsg": "<title>User Not Found - Hive</title>",
"errorType": "message",
"url": "https://hive.blog/@{}",
"urlMain": "https://hive.blog/",
"username_claimed": "mango-juice"
},
"Holopin": {
"errorMsg": "true",
"errorType": "message",
@@ -1107,6 +1225,12 @@
"urlMain": "https://www.ifttt.com/",
"username_claimed": "blue"
},
"Ifunny": {
"errorType": "status_code",
"url": "https://ifunny.co/user/{}",
"urlMain": "https://ifunny.co/",
"username_claimed": "agua"
},
"IRC-Galleria": {
"errorType": "response_url",
"errorUrl": "https://irc-galleria.net/users/search?username={}",
@@ -1141,6 +1265,12 @@
"urlProbe": "https://api.imgur.com/account/v1/accounts/{}?client_id=546c25a59c58ad7",
"username_claimed": "blue"
},
"imood": {
"errorType": "status_code",
"url": "https://www.imood.com/users/{}",
"urlMain": "https://www.imood.com/",
"username_claimed": "blue"
},
"Instagram": {
"errorType": "status_code",
"url": "https://instagram.com/{}",
@@ -1217,6 +1347,13 @@
"urlMain": "https://discourse.joplinapp.org/",
"username_claimed": "laurent"
},
"Jupyter Community Forum": {
"errorMsg": "Oops! That page doesnt exist or is private.",
"errorType": "message",
"url": "https://discourse.jupyter.org/u/{}/summary",
"urlMain": "https://discourse.jupyter.org",
"username_claimed": "choldgraf"
},
"Kaggle": {
"errorType": "status_code",
"url": "https://www.kaggle.com/{}",
@@ -1226,7 +1363,9 @@
"kaskus": {
"errorType": "status_code",
"url": "https://www.kaskus.co.id/@{}",
"urlMain": "https://www.kaskus.co.id/",
"urlMain": "https://www.kaskus.co.id",
"urlProbe": "https://www.kaskus.co.id/api/users?username={}",
"request_method": "GET",
"username_claimed": "l0mbart"
},
"Keybase": {
@@ -1261,6 +1400,15 @@
"urlMain": "https://www.kongregate.com/",
"username_claimed": "blue"
},
"Kvinneguiden": {
"errorMsg": "{\"result\":\"ok\"}",
"errorType": "message",
"regexCheck": "^[a-zA-Z0-9_.-]{3,18}$",
"urlProbe": "https://forum.kvinneguiden.no/?app=core&module=system&controller=ajax&do=usernameExists&input={}",
"url": "https://forum.kvinneguiden.no",
"urlMain": "https://forum.kvinneguiden.no",
"username_claimed": "blue"
},
"LOR": {
"errorType": "status_code",
"url": "https://www.linux.org.ru/people/{}/profile",
@@ -1268,7 +1416,7 @@
"username_claimed": "red"
},
"Laracast": {
"errorType":"status_code",
"errorType": "status_code",
"url": "https://laracasts.com/@{}",
"urlMain": "https://laracasts.com/",
"regexCheck": "^[a-zA-Z0-9_-]{3,}$",
@@ -1286,12 +1434,20 @@
"urlMain": "https://leetcode.com/",
"username_claimed": "blue"
},
"LessWrong": {
"errorType": "status_code",
"url": "https://www.lesswrong.com/users/@{}",
"urlMain": "https://www.lesswrong.com/",
"LemmyWorld": {
"errorType": "message",
"errorMsg": "<h1>Error!</h1>",
"url": "https://lemmy.world/u/{}",
"urlMain": "https://lemmy.world",
"username_claimed": "blue"
},
"LessWrong": {
"url": "https://www.lesswrong.com/users/{}",
"urlMain": "https://www.lesswrong.com/",
"errorType": "response_url",
"errorUrl": "https://www.lesswrong.com/",
"username_claimed": "habryka"
},
"Letterboxd": {
"errorMsg": "Sorry, we can\u2019t find the page you\u2019ve requested.",
"errorType": "message",
@@ -1315,8 +1471,13 @@
"urlMain": "https://lichess.org",
"username_claimed": "john"
},
"LinkedIn": {
"LinkedIn": {
"errorType": "status_code",
"headers": {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8"
},
"regexCheck": "^[a-zA-Z0-9]{3,100}$",
"request_method": "GET",
"url": "https://linkedin.com/in/{}",
@@ -1401,6 +1562,7 @@
"Minecraft": {
"errorMsg": "Couldn't find any profile with name",
"errorType": "message",
"regexCheck": "^.{1,25}$",
"url": "https://api.mojang.com/users/profiles/minecraft/{}",
"urlMain": "https://minecraft.net/",
"username_claimed": "blue"
@@ -1433,6 +1595,13 @@
"urlMain": "https://www.motorradfrage.net/",
"username_claimed": "gutefrage"
},
"MuseScore": {
"errorType": "status_code",
"url": "https://musescore.com/{}",
"urlMain": "https://musescore.com/",
"username_claimed": "arrangeme",
"request_method": "GET"
},
"MyAnimeList": {
"errorType": "status_code",
"url": "https://myanimelist.net/profile/{}",
@@ -1446,12 +1615,12 @@
"username_claimed": "blue"
},
"Mydramalist": {
"errorMsg": "The requested page was not found",
"errorType": "message",
"url": "https://www.mydramalist.com/profile/{}",
"urlMain": "https://mydramalist.com",
"username_claimed": "elhadidy12398"
},
"errorMsg": "The requested page was not found",
"errorType": "message",
"url": "https://www.mydramalist.com/profile/{}",
"urlMain": "https://mydramalist.com",
"username_claimed": "elhadidy12398"
},
"Myspace": {
"errorType": "status_code",
"url": "https://myspace.com/{}",
@@ -1546,18 +1715,36 @@
"urlProbe": "https://notabug.org/{}/followers",
"username_claimed": "red"
},
"Nothing Community": {
"errorType": "status_code",
"url": "https://nothing.community/u/{}",
"urlMain": "https://nothing.community/",
"username_claimed": "Carl"
},
"Nyaa.si": {
"errorType": "status_code",
"url": "https://nyaa.si/user/{}",
"urlMain": "https://nyaa.si/",
"username_claimed": "blue"
},
"Open Collective": {
"errorMsg": "Oops! Page not found",
"ObservableHQ": {
"errorType": "message",
"errorMsg": "Page not found",
"url": "https://observablehq.com/@{}",
"urlMain": "https://observablehq.com/",
"username_claimed": "mbostock"
},
"Open Collective": {
"errorType": "status_code",
"url": "https://opencollective.com/{}",
"urlMain": "https://opencollective.com/",
"username_claimed": "pylapp"
"username_claimed": "sindresorhus"
},
"OpenGameArt": {
"errorType": "status_code",
"url": "https://opengameart.org/users/{}",
"urlMain": "https://opengameart.org",
"username_claimed": "ski"
},
"OpenStreetMap": {
"errorType": "status_code",
@@ -1566,6 +1753,13 @@
"urlMain": "https://www.openstreetmap.org/",
"username_claimed": "blue"
},
"Odysee": {
"errorMsg": "<link rel=\"canonical\" content=\"odysee.com\"/>",
"errorType": "message",
"url": "https://odysee.com/@{}",
"urlMain": "https://odysee.com/",
"username_claimed": "Odysee"
},
"Opensource": {
"errorType": "status_code",
"url": "https://opensource.com/users/{}",
@@ -1614,6 +1808,13 @@
"urlMain": "https://pastebin.com/",
"username_claimed": "blue"
},
"Patched": {
"errorMsg": "The member you specified is either invalid or doesn't exist.",
"errorType": "message",
"url": "https://patched.sh/User/{}",
"urlMain": "https://patched.sh/",
"username_claimed": "blue"
},
"Patreon": {
"errorType": "status_code",
"url": "https://www.patreon.com/{}",
@@ -1627,12 +1828,68 @@
"urlMain": "https://pentesterlab.com/",
"username_claimed": "0day"
},
"PepperIT": {
"errorMsg": "La pagina che hai provato a raggiungere non si trova qui",
"errorType": "message",
"url": "https://www.pepper.it/profile/{}/overview",
"urlMain": "https://www.pepper.it",
"username_claimed": "asoluinostrisca"
"HotUKdeals": {
"errorType": "status_code",
"url": "https://www.hotukdeals.com/profile/{}",
"urlMain": "https://www.hotukdeals.com/",
"username_claimed": "Blue",
"request_method": "GET"
},
"Mydealz": {
"errorType": "status_code",
"url": "https://www.mydealz.de/profile/{}",
"urlMain": "https://www.mydealz.de/",
"username_claimed": "blue",
"request_method": "GET"
},
"Chollometro": {
"errorType": "status_code",
"url": "https://www.chollometro.com/profile/{}",
"urlMain": "https://www.chollometro.com/",
"username_claimed": "blue",
"request_method": "GET"
},
"PepperNL": {
"errorType": "status_code",
"url": "https://nl.pepper.com/profile/{}",
"urlMain": "https://nl.pepper.com/",
"username_claimed": "Dynaw",
"request_method": "GET"
},
"PepperPL": {
"errorType": "status_code",
"url": "https://www.pepper.pl/profile/{}",
"urlMain": "https://www.pepper.pl/",
"username_claimed": "FireChicken",
"request_method": "GET"
},
"Preisjaeger": {
"errorType": "status_code",
"url": "https://www.preisjaeger.at/profile/{}",
"urlMain": "https://www.preisjaeger.at/",
"username_claimed": "Stefan",
"request_method": "GET"
},
"Pepperdeals": {
"errorType": "status_code",
"url": "https://www.pepperdeals.se/profile/{}",
"urlMain": "https://www.pepperdeals.se/",
"username_claimed": "Mark",
"request_method": "GET"
},
"PepperealsUS": {
"errorType": "status_code",
"url": "https://www.pepperdeals.com/profile/{}",
"urlMain": "https://www.pepperdeals.com/",
"username_claimed": "Stepan",
"request_method": "GET"
},
"Promodescuentos": {
"errorType": "status_code",
"url": "https://www.promodescuentos.com/profile/{}",
"urlMain": "https://www.promodescuentos.com/",
"username_claimed": "blue",
"request_method": "GET"
},
"Periscope": {
"errorType": "status_code",
@@ -1727,11 +1984,11 @@
"username_claimed": "pylapp"
},
"Pychess": {
"errorType": "message",
"errorMsg": "404",
"url": "https://www.pychess.org/@/{}",
"urlMain": "https://www.pychess.org",
"username_claimed": "gbtami"
"errorType": "message",
"errorMsg": "404",
"url": "https://www.pychess.org/@/{}",
"urlMain": "https://www.pychess.org",
"username_claimed": "gbtami"
},
"PromoDJ": {
"errorType": "status_code",
@@ -1739,6 +1996,12 @@
"urlMain": "http://promodj.com/",
"username_claimed": "blue"
},
"Pronouns.page": {
"errorType": "status_code",
"url": "https://pronouns.page/@{}",
"urlMain": "https://pronouns.page/",
"username_claimed": "andrea"
},
"PyPi": {
"errorType": "status_code",
"url": "https://pypi.org/user/{}",
@@ -1746,6 +2009,13 @@
"urlMain": "https://pypi.org",
"username_claimed": "Blue"
},
"Python.org Discussions": {
"errorMsg": "Oops! That page doesnt exist or is private.",
"errorType": "message",
"url": "https://discuss.python.org/u/{}/summary",
"urlMain": "https://discuss.python.org",
"username_claimed": "pablogsal"
},
"Rajce.net": {
"errorType": "status_code",
"regexCheck": "^[\\w@-]+?$",
@@ -1794,6 +2064,13 @@
"urlMain": "https://www.reddit.com/",
"username_claimed": "blue"
},
"Realmeye": {
"errorMsg": "Sorry, but we either:",
"errorType": "message",
"url": "https://www.realmeye.com/player/{}",
"urlMain": "https://www.realmeye.com/",
"username_claimed": "rotmg"
},
"Reisefrage": {
"errorType": "status_code",
"url": "https://www.reisefrage.net/nutzer/{}",
@@ -1841,6 +2118,13 @@
"urlMain": "https://royalcams.com",
"username_claimed": "asuna-black"
},
"Ruby Forums": {
"errorMsg": "Oops! That page doesnt exist or is private.",
"errorType": "message",
"url": "https://ruby-forum.com/u/{}/summary",
"urlMain": "https://ruby-forums.com",
"username_claimed": "rishard"
},
"RubyGems": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]{1,40}",
@@ -1888,6 +2172,18 @@
"urlMain": "https://www.scribd.com/",
"username_claimed": "blue"
},
"SEOForum": {
"errorType": "status_code",
"url": "https://seoforum.com/@{}",
"urlMain": "https://www.seoforum.com/",
"username_claimed": "ko"
},
"Shelf": {
"errorType": "status_code",
"url": "https://www.shelf.im/{}",
"urlMain": "https://www.shelf.im/",
"username_claimed": "blue"
},
"ShitpostBot5000": {
"errorType": "status_code",
"url": "https://www.shitpostbot.com/user/{}",
@@ -2041,7 +2337,6 @@
},
"Spotify": {
"errorType": "status_code",
"url": "https://open.spotify.com/user/{}",
"urlMain": "https://open.spotify.com/",
"username_claimed": "blue"
@@ -2053,6 +2348,13 @@
"urlMain": "https://robertsspaceindustries.com/",
"username_claimed": "blue"
},
"Status Cafe": {
"errorMsg": "Page Not Found",
"errorType": "message",
"url": "https://status.cafe/users/{}",
"urlMain": "https://status.cafe/",
"username_claimed": "blue"
},
"Steam Community (Group)": {
"errorMsg": "No group could be retrieved for the given URL",
"errorType": "message",
@@ -2088,6 +2390,22 @@
"urlProbe": "https://ch.tetr.io/api/users/{}",
"username_claimed": "osk"
},
"TheMovieDB": {
"errorType": "status_code",
"url": "https://www.themoviedb.org/u/{}",
"urlMain": "https://www.themoviedb.org/",
"username_claimed": "blue"
},
"TikTok": {
"url": "https://www.tiktok.com/@{}",
"urlMain": "https://www.tiktok.com",
"errorType": "message",
"errorMsg": [
"\"statusCode\":10221",
"Govt. of India decided to block 59 apps"
],
"username_claimed": "charlidamelio"
},
"Tiendanube": {
"url": "https://{}.mitiendanube.com/",
"urlMain": "https://www.tiendanube.com/",
@@ -2100,7 +2418,13 @@
"urlMain": "https://topcoder.com/",
"username_claimed": "USER",
"urlProbe": "https://api.topcoder.com/v5/members/{}",
"regexCheck": "[a-zA-Z0-9 ]"
"regexCheck": "^[a-zA-Z0-9_.]+$"
},
"Topmate": {
"errorType": "status_code",
"url": "https://topmate.io/{}",
"urlMain": "https://topmate.io/",
"username_claimed": "blue"
},
"TRAKTRAIN": {
"errorType": "status_code",
@@ -2132,6 +2456,13 @@
"urlMain": "https://tenor.com/",
"username_claimed": "red"
},
"Terraria Forums": {
"errorMsg": "The following members could not be found",
"errorType": "message",
"url": "https://forums.terraria.org/index.php?search/42798315/&c[users]={}&o=relevance",
"urlMain": "https://forums.terraria.org/index.php",
"username_claimed": "blue"
},
"ThemeForest": {
"errorType": "status_code",
"url": "https://themeforest.net/user/{}",
@@ -2208,6 +2539,21 @@
"urlMain": "https://tweakers.net",
"username_claimed": "femme"
},
"Twitch": {
"errorMsg": "content='Twitch is the world&#39;s leading video platform and community for gamers.'",
"errorType": "message",
"url": "https://www.twitch.tv/{}",
"urlMain": "https://www.twitch.tv",
"username_claimed": "xqc"
},
"Trovo": {
"errorMsg": "Uh Ohhh...",
"errorType": "message",
"url": "https://trovo.live/s/{}/",
"urlMain": "https://trovo.live",
"username_claimed": "Aimilios"
},
"Twitter": {
"errorMsg": [
"<div class=\"error-panel\"><span>User ",
@@ -2246,6 +2592,13 @@
"urlMain": "https://untappd.com/",
"username_claimed": "untappd"
},
"Valorant Forums": {
"errorMsg": "The page you requested could not be found.",
"errorType": "message",
"url": "https://valorantforums.com/u/{}",
"urlMain": "https://valorantforums.com",
"username_claimed": "Wolves"
},
"VK": {
"errorType": "response_url",
"errorUrl": "https://www.quora.com/profile/{}",
@@ -2273,9 +2626,7 @@
"username_claimed": "red"
},
"Venmo": {
"errorMsg": [
"Venmo | Page Not Found"
],
"errorMsg": ["Venmo | Page Not Found"],
"errorType": "message",
"headers": {
"Host": "account.venmo.com"
@@ -2320,6 +2671,12 @@
"urlMain": "https://discourse.wicg.io/",
"username_claimed": "stefano"
},
"Wakatime": {
"errorType": "status_code",
"url": "https://wakatime.com/@{}",
"urlMain": "https://wakatime.com/",
"username_claimed": "blue"
},
"Warrior Forum": {
"errorType": "status_code",
"url": "https://www.warriorforum.com/members/{}.html",
@@ -2464,7 +2821,6 @@
},
"YouTube": {
"errorType": "status_code",
"url": "https://www.youtube.com/@{}",
"urlMain": "https://www.youtube.com/",
"username_claimed": "youtube"
@@ -2687,6 +3043,12 @@
"urlMain": "https://mastodon.xyz/",
"username_claimed": "TheKinrar"
},
"mstdn.social": {
"errorType": "status_code",
"url": "https://mstdn.social/@{}",
"urlMain": "https://mstdn.social/",
"username_claimed": "MagicLike"
},
"mercadolivre": {
"errorType": "status_code",
"url": "https://www.mercadolivre.com.br/perfil/{}",
@@ -2719,6 +3081,12 @@
"urlMain": "https://www.nairaland.com/",
"username_claimed": "red"
},
"n8n Community": {
"errorType": "status_code",
"url": "https://community.n8n.io/u/{}/summary",
"urlMain": "https://community.n8n.io/",
"username_claimed": "n8n"
},
"nnRU": {
"errorType": "status_code",
"regexCheck": "^[\\w@-]+?$",
@@ -2773,6 +3141,14 @@
"urlMain": "https://pikabu.ru/",
"username_claimed": "blue"
},
"Pinterest": {
"errorType": "status_code",
"errorUrl": "https://www.pinterest.com/",
"url": "https://www.pinterest.com/{}/",
"urlProbe": "https://www.pinterest.com/oembed.json?url=https://www.pinterest.com/{}/",
"urlMain": "https://www.pinterest.com/",
"username_claimed": "blue"
},
"pr0gramm": {
"errorType": "status_code",
"url": "https://pr0gramm.com/user/{}",
@@ -2838,7 +3214,7 @@
"url": "https://{}.tumblr.com/",
"urlMain": "https://www.tumblr.com/",
"username_claimed": "goku"
},
},
"uid": {
"errorType": "status_code",
"url": "http://uid.me/{}",
@@ -2865,13 +3241,6 @@
"urlMain": "https://znanylekarz.pl",
"username_claimed": "janusz-nowak"
},
"Bluesky": {
"errorType": "status_code",
"url": "https://bsky.app/profile/{}.bsky.social",
"urlProbe": "https://public.api.bsky.app/xrpc/app.bsky.actor.getProfile?actor={}.bsky.social",
"urlMain": "https://bsky.app/",
"username_claimed": "mcuban"
},
"Platzi": {
"errorType": "status_code",
"errorCode": 404,
@@ -2879,5 +3248,36 @@
"urlMain": "https://platzi.com/",
"username_claimed": "freddier",
"request_method": "GET"
},
"BabyRu": {
"url": "https://www.baby.ru/u/{}",
"urlMain": "https://www.baby.ru/",
"errorType": "message",
"errorMsg": [
"\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u0438\u0441\u043a\u0430\u043b\u0438, \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\u0430",
"\u0414\u043e\u0441\u0442\u0443\u043f \u0441 \u0432\u0430\u0448\u0435\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d"
],
"username_claimed": "example"
},
"Wowhead": {
"url": "https://wowhead.com/user={}",
"urlMain": "https://wowhead.com/",
"errorType": "status_code",
"errorCode": 404,
"username_claimed": "blue"
},
"addons.wago.io": {
"url": "https://addons.wago.io/user/{}",
"urlMain": "https://addons.wago.io/",
"errorType": "status_code",
"errorCode": 404,
"username_claimed": "blue"
},
"CurseForge": {
"url": "https://www.curseforge.com/members/{}/projects",
"urlMain": "https://www.curseforge.com.",
"errorType": "status_code",
"errorCode": 404,
"username_claimed": "blue"
}
}
+2 -12
View File
@@ -675,16 +675,6 @@ def main():
help="Include checking of NSFW sites from default list.",
)
# TODO deprecated in favor of --txt, retained for workflow compatibility, to be removed
# in future release
parser.add_argument(
"--no-txt",
action="store_true",
dest="no_txt",
default=False,
help="Disable creation of a txt file - WILL BE DEPRECATED",
)
parser.add_argument(
"--txt",
action="store_true",
@@ -925,8 +915,8 @@ def main():
{
"username": usernames,
"name": names,
"url_main": url_main,
"url_user": url_user,
"url_main": [f'=HYPERLINK(\"{u}\")' for u in url_main],
"url_user": [f'=HYPERLINK(\"{u}\")' for u in url_user],
"exists": exists,
"http_status": http_status,
"response_time_s": response_time_s,
+1 -6
View File
@@ -8,7 +8,7 @@ import requests
import secrets
MANIFEST_URL = "https://raw.githubusercontent.com/sherlock-project/sherlock/master/sherlock_project/resources/data.json"
MANIFEST_URL = "https://data.sherlockproject.xyz"
EXCLUSIONS_URL = "https://raw.githubusercontent.com/sherlock-project/sherlock/refs/heads/exclusions/false_positive_exclusions.txt"
class SiteInformation:
@@ -121,11 +121,6 @@ class SitesInformation:
# users from creating issue about false positives which has already been fixed or having outdated data
data_file_path = MANIFEST_URL
# Ensure that specified data file has correct extension.
if not data_file_path.lower().endswith(".json"):
raise FileNotFoundError(f"Incorrect JSON file extension for data file '{data_file_path}'.")
# if "http://" == data_file_path[:7].lower() or "https://" == data_file_path[:8].lower():
if data_file_path.lower().startswith("http"):
# Reference is to a URL.
try:
+1
View File
@@ -16,6 +16,7 @@ def set_pattern_upper_bound(pattern: str, upper_bound: int = FALSE_POSITIVE_QUAN
"""Set upper bound for regex patterns that use quantifiers such as `+` `*` or `{n,}`."""
def replace_upper_bound(match: re.Match) -> str: # type: ignore
lower_bound: int = int(match.group(1)) if match.group(1) else 0 # type: ignore
nonlocal upper_bound
upper_bound = upper_bound if lower_bound < upper_bound else lower_bound # type: ignore # noqa: F823
return f'{{{lower_bound},{upper_bound}}}'