diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index fb44d4ff..a70ad44d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -34,13 +34,12 @@ jobs: - name: Install Dependencies run: | python -m pip install --upgrade pip - pip install flake8 pytest + pip install ruff flake8 pytest if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Lint With flake8 + - name: Lint With Ruff run: | # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - + ruff check . --output-format=github --select=E9,F63,F7,F82 # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Sherlock Site Detect Tests diff --git a/README.md b/README.md index b71cc2bc..f8b1c029 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ $ python3 -m pip install -r requirements.txt ```console $ python3 sherlock --help usage: sherlock [-h] [--version] [--verbose] [--folderoutput FOLDEROUTPUT] - [--output OUTPUT] [--tor] [--unique-tor] [--csv] + [--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] @@ -70,7 +70,7 @@ optional arguments: path. --csv Create Comma-Separated Values (CSV) File. --xlsx Create the standard file for the modern Microsoft Excel - spreadsheet (xslx). + 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 @@ -170,9 +170,13 @@ If some sites are failing due to connection problems (site is down, in maintenan you can exclude them from tests by creating a `tests/.excluded_sites` file with a list of sites to ignore (one site name per line). -## Stargazers over time +## Star History -[![Stargazers over time](https://starchart.cc/sherlock-project/sherlock.svg)](https://starchart.cc/sherlock-project/sherlock) + + + + Sherlock Project Star History Chart + ## License diff --git a/removed_sites.json b/removed_sites.json index bc0cba9a..87d10c57 100644 --- a/removed_sites.json +++ b/removed_sites.json @@ -492,13 +492,6 @@ "urlMain": "https://www.cloob.com/", "username_claimed": "blue" }, - "1337x": { - "errorMsg": "Bad Username", - "errorType": "message", - "url": "https://1337x.to/user/{}/", - "urlMain": "https://1337x.to", - "username_claimed": "TheMorozko" - }, "TM-Ladder": { "errorMsg": "player unknown or invalid", "errorType": "message", @@ -763,14 +756,6 @@ "urlProbe": "https://onlyfans.com/api2/v2/users/{}", "username_claimed": "theemilylynne" }, - "Instagram": { - "errorMsg": "Nothing found!", - "errorType": "message", - "url": "https://www.instagram.com/{}", - "urlMain": "https://www.instagram.com/", - "urlProbe": "https://www.picuki.com/profile/{}", - "username_claimed": "blue" - }, "OK": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_.-]*$", @@ -869,5 +854,42 @@ "url": "https://ebio.gg/{}", "urlMain": "https:/ebio.gg", "username_claimed": "dev" + }, + "metacritic": { + "errorMsg": "User not found", + "errorType": "message", + "regexCheck": "^(?![-_].)[A-Za-z0-9-_]{3,15}$", + "url": "https://www.metacritic.com/user/{}", + "urlMain": "https://www.metacritic.com/", + "username_claimed": "blue" + }, + "Oracle Communities": { + "errorType": "status_code", + "url": "https://community.oracle.com/people/{}", + "urlMain": "https://community.oracle.com", + "username_claimed": "dev" + }, + "HexRPG": { + "errorMsg": "Error : User ", + "errorType": "message", + "regexCheck": "^[a-zA-Z0-9_ ]{3,20}$", + "url": "https://www.hexrpg.com/userinfo/{}", + "urlMain": "https://www.hexrpg.com/", + "username_claimed": "blue" + }, + "G2G": { + "errorType": "response_url", + "errorUrl": "https://www.g2g.com/{}", + "regexCheck": "^[A-Za-z][A-Za-z0-9_]{2,11}$", + "url": "https://www.g2g.com/{}", + "urlMain": "https://www.g2g.com/", + "username_claimed": "user" + }, + "BitCoinForum": { + "errorMsg": "The user whose profile you are trying to view does not exist.", + "errorType": "message", + "url": "https://bitcoinforum.com/profile/{}", + "urlMain": "https://bitcoinforum.com", + "username_claimed": "bitcoinforum.com" } } diff --git a/removed_sites.md b/removed_sites.md index b1e5aa58..e946120c 100644 --- a/removed_sites.md +++ b/removed_sites.md @@ -424,7 +424,7 @@ Good-bye [Google Plus](https://en.wikipedia.org/wiki/Google%2B)... ## InsaneJournal As of 2020-02-23, InsaneJournal returns false positive, when providing a username which contains a period. -Since we were not able to find the critera for a valid username, the best thing to do now is to remove it. +Since we were not able to find the criteria for a valid username, the best thing to do now is to remove it. ```json "InsaneJournal": { @@ -625,7 +625,7 @@ removed ## Coderwall As of 2020-07-06, Coderwall returns false positives when checking for an username which contains a period. -I have tried to find out what Coderwall's criteria is for a valid username, but unfortunetly I have not been able to +I have tried to find out what Coderwall's criteria is for a valid username, but unfortunately I have not been able to find it and because of this, the best thing we can do now is to remove it. ```json "Coderwall": { @@ -1178,19 +1178,6 @@ As of 2021-10-25, Cloob seems to be down and their site is not responding. } ``` -### 1337x -As of 2021-11-21, 1337x seems to be down causing false positives. -```json - "1337x": { - "errorMsg": "Bad Username", - "errorType": "message", - "url": "https://1337x.to/user/{}/", - "urlMain": "https://1337x.to", - "username_claimed": "TheMorozko", - "username_unclaimed": "noonewouldeverusethis7" - } -``` - ### TM-Ladder As of 2021-11-30, TM-Ladder is returning false positives due to rate limits. @@ -1700,20 +1687,6 @@ As of 2023.04.20, OnlyFans returns false negatives on checking usernames with th } ``` -## Instagram -As of 2023.04.21, Instagram returns false positives as picuki.com was used to query for usernames but they now user Cloudflare - -```json - "Instagram": { - "errorMsg": "Nothing found!", - "errorType": "message", - "url": "https://www.instagram.com/{}", - "urlMain": "https://www.instagram.com/", - "urlProbe": "https://www.picuki.com/profile/{}", - "username_claimed": "blue" - } -``` - ## OK As of 2023.04.21, Ok.ru returns false positives ```json @@ -1827,7 +1800,7 @@ As of 2023.08.29, GunsAndAmmo responds with 404 from time to time ``` ## TikTok -As of 2023.12.21, TikTok returns false positives. This is because the webpage returns a somewhat blank page. This prevents us from being able to check for the existance of usernames. Proxitok does not work either. +As of 2023.12.21, TikTok returns false positives. This is because the webpage returns a somewhat blank page. This prevents us from being able to check for the existence of usernames. Proxitok does not work either. ```json "TikTok": { @@ -1851,7 +1824,7 @@ As of 2023.12.21, Lolchess returns false positives. ``` ## Virgool -As of 2023.12.21, Lolchess returns false positives. +As of 2023.12.21, Virgool returns false positives. ```json "Virgool": { "errorMsg": "\u06f4\u06f0\u06f4", @@ -1863,7 +1836,7 @@ As of 2023.12.21, Lolchess returns false positives. ``` ## Whonix Forum -As of 2023.12.21, Lolchess returns false positives. +As of 2023.12.21, Whonix Forum returns false positives. ```json "Whonix Forum": { "errorType": "status_code", @@ -1874,7 +1847,7 @@ As of 2023.12.21, Lolchess returns false positives. ``` ## Ebio -As of 2023.12.21, Lolchess returns false positives. +As of 2023.12.21, Ebio returns false positives. ```json "ebio.gg": { "errorType": "status_code", @@ -1882,4 +1855,66 @@ As of 2023.12.21, Lolchess returns false positives. "urlMain": "https:/ebio.gg", "username_claimed": "dev" }, +``` + +## HexRPG +__2024-04-07 :__ HexRPG behind authentication wall. Unable to check usernames without logging in. +```json + "HexRPG": { + "errorMsg": "Error : User ", + "errorType": "message", + "regexCheck": "^[a-zA-Z0-9_ ]{3,20}$", + "url": "https://www.hexrpg.com/userinfo/{}", + "urlMain": "https://www.hexrpg.com/", + "username_claimed": "blue" + } +``` + +## Oracle Communities +__2024-04-07 :__ Oracle Communities behind authentication wall. Unable to check usernames without logging in. +```json + "Oracle Communities": { + "errorType": "status_code", + "url": "https://community.oracle.com/people/{}", + "urlMain": "https://community.oracle.com", + "username_claimed": "dev" + } +``` + +## Metacritic +__2024-04-07 :__ Non-existent users seemingly displayed as real users with no activity. Needs adjustment. +```json + "metacritic": { + "errorMsg": "User not found", + "errorType": "message", + "regexCheck": "^(?![-_].)[A-Za-z0-9-_]{3,15}$", + "url": "https://www.metacritic.com/user/{}", + "urlMain": "https://www.metacritic.com/", + "username_claimed": "blue" + } +``` + +## G2G +__2024-04-10 :__ Seems to be loading profiles with some wierd javascript setup that sherlock doesn't like, leading to difficult to control false positives +```json + "G2G": { + "errorType": "response_url", + "errorUrl": "https://www.g2g.com/{}", + "regexCheck": "^[A-Za-z][A-Za-z0-9_]{2,11}$", + "url": "https://www.g2g.com/{}", + "urlMain": "https://www.g2g.com/", + "username_claimed": "user" + } +``` + +## Bitcoin Forum +__2024-04-24 :__ BCF seems to have gone defunct. Uncertain. +```json +"BitCoinForum": { + "errorMsg": "The user whose profile you are trying to view does not exist.", + "errorType": "message", + "url": "https://bitcoinforum.com/profile/{}", + "urlMain": "https://bitcoinforum.com", + "username_claimed": "bitcoinforum.com" + } ``` \ No newline at end of file diff --git a/sherlock/__main__.py b/sherlock/__main__.py index 28d0a160..b10bd6ae 100644 --- a/sherlock/__main__.py +++ b/sherlock/__main__.py @@ -15,7 +15,7 @@ if __name__ == "__main__": python_version = sys.version.split()[0] if sys.version_info < (3, 6): - print("Sherlock requires Python 3.6+\nYou are using Python %s, which is not supported by Sherlock" % (python_version)) + print(f"Sherlock requires Python 3.6+\nYou are using Python {python_version}, which is not supported by Sherlock.") sys.exit(1) import sherlock diff --git a/sherlock/notify.py b/sherlock/notify.py index 87bfa0bb..4af1ff18 100644 --- a/sherlock/notify.py +++ b/sherlock/notify.py @@ -238,6 +238,15 @@ 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 + "[" + + Fore.RED + "-" + + Fore.WHITE + "]" + + Fore.GREEN + f" {self.result.site_name}:" + + Fore.RED + " Blocked by bot detection" + + Fore.YELLOW + " (proxy may help)") else: # It should be impossible to ever get here... diff --git a/sherlock/resources/data.json b/sherlock/resources/data.json index abd4a2af..7f2b801d 100644 --- a/sherlock/resources/data.json +++ b/sherlock/resources/data.json @@ -1,4 +1,15 @@ { + "1337x": { + "errorMsg": [ + "Error something went wrong.", + "404 Not Found" + ], + "errorType": "message", + "regexCheck": "^[A-Za-z0-9]{4,12}$", + "url": "https://www.1337x.to/user/{}/", + "urlMain": "https://www.1337x.to/", + "username_claimed": "FitGirl" + }, "2Dimensions": { "errorType": "status_code", "url": "https://2Dimensions.com/a/{}", @@ -137,15 +148,17 @@ }, "Archive of Our Own": { "errorType": "status_code", + "regexCheck": "^[^.]*?$", "url": "https://archiveofourown.org/users/{}", "urlMain": "https://archiveofourown.org/", "username_claimed": "test" }, "Archive.org": { - "errorMsg": "cannot find account", + "errorMsg": "could not fetch an account with user item identifier", "errorType": "message", "url": "https://archive.org/details/@{}", "urlMain": "https://archive.org", + "urlProbe": "https://archive.org/details/@{}?noscript=true", "username_claimed": "blue" }, "ArtStation": { @@ -266,13 +279,6 @@ "urlMain": "https://bitbucket.org/", "username_claimed": "white" }, - "BitCoinForum": { - "errorMsg": "The user whose profile you are trying to view does not exist.", - "errorType": "message", - "url": "https://bitcoinforum.com/profile/{}", - "urlMain": "https://bitcoinforum.com", - "username_claimed": "bitcoinforum.com" - }, "Bitwarden Forum": { "errorType": "status_code", "regexCheck": "^(?![.-])[a-zA-Z0-9_.-]{3,20}$", @@ -328,8 +334,8 @@ "username_claimed": "blue" }, "CGTrader": { - "errorMsg": "3D models for CG digital design and artwork", - "errorType": "message", + "errorType": "status_code", + "regexCheck": "^[^.]*?$", "url": "https://www.cgtrader.com/{}", "urlMain": "https://www.cgtrader.com", "username_claimed": "blue" @@ -337,9 +343,16 @@ "CNET": { "errorMsg": "null null - CNET", "errorType": "message", + "regexCheck": "^[a-z].*$", "url": "https://www.cnet.com/profiles/{}/", "urlMain": "https://www.cnet.com/", - "username_claimed": "elliottcnet" + "username_claimed": "melliott" + }, + "CSSBattle": { + "errorType": "status_code", + "url": "https://cssbattle.dev/player/{}", + "urlMain": "https://cssbattle.dev", + "username_claimed": "beo" }, "CTAN": { "errorType": "status_code", @@ -448,6 +461,12 @@ "urlMain": "https://codesnippets.fandom.com", "username_claimed": "bob" }, + "Codeberg": { + "errorType": "status_code", + "url": "https://codeberg.org/{}", + "urlMain": "https://codeberg.org/", + "username_claimed": "blue" + }, "Codecademy": { "errorMsg": "This profile could not be found", "errorType": "message", @@ -509,8 +528,8 @@ "username_claimed": "blue" }, "Contently": { - "errorMsg": "Leading Content Marketing Platform | Contently", - "errorType": "message", + "errorType": "response_url", + "errorUrl": "https://contently.com", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://{}.contently.com/", "urlMain": "https://contently.com/", @@ -556,6 +575,15 @@ "urlMain": "https://cults3d.com/en", "username_claimed": "brown" }, + "CyberDefenders": { + "errorMsg": "Online Cyber Security Blue Team Training - CyberDefenders", + "errorType": "message", + "regexCheck": "^[^\\/:*?\"<>|@]{3,50}$", + "request_method": "GET", + "url": "https://cyberdefenders.org/p/{}", + "urlMain": "https://cyberdefenders.org/", + "username_claimed": "mlohn" + }, "DEV Community": { "errorType": "status_code", "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", @@ -637,6 +665,7 @@ }, "Eintracht Frankfurt Forum": { "errorType": "status_code", + "regexCheck": "^[^.]*?$", "url": "https://community.eintracht.de/fans/{}", "urlMain": "https://community.eintracht.de/", "username_claimed": "mmammu" @@ -786,14 +815,6 @@ "urlMain": "https://freesound.org/", "username_claimed": "blue" }, - "G2G": { - "errorType": "response_url", - "errorUrl": "https://www.g2g.com/{}", - "regexCheck": "^[A-Za-z][A-Za-z0-9_]{2,11}$", - "url": "https://www.g2g.com/{}", - "urlMain": "https://www.g2g.com/", - "username_claimed": "user" - }, "GNOME VCS": { "errorType": "response_url", "errorUrl": "https://gitlab.gnome.org/{}", @@ -816,20 +837,21 @@ "username_claimed": "blue" }, "GeeksforGeeks": { - "errorMsg": "Login GeeksforGeeks", - "errorType": "message", + "errorType": "status_code", "url": "https://auth.geeksforgeeks.org/user/{}", "urlMain": "https://www.geeksforgeeks.org/", "username_claimed": "adam" }, "Genius (Artists)": { "errorType": "status_code", + "regexCheck": "^[a-zA-Z0-9]{5,50}$", "url": "https://genius.com/artists/{}", "urlMain": "https://genius.com/", "username_claimed": "genius" }, "Genius (Users)": { "errorType": "status_code", + "regexCheck": "^[a-zA-Z0-9]*?$", "url": "https://genius.com/{}", "urlMain": "https://genius.com/", "username_claimed": "genius" @@ -923,6 +945,7 @@ "Gumroad": { "errorMsg": "Page not found (404) - Gumroad", "errorType": "message", + "regexCheck": "^[^.]*?$", "url": "https://www.gumroad.com/{}", "urlMain": "https://www.gumroad.com/", "username_claimed": "blue" @@ -933,14 +956,6 @@ "urlMain": "https://www.gutefrage.net/", "username_claimed": "gutefrage" }, - "HEXRPG": { - "errorMsg": "Error : User ", - "errorType": "message", - "regexCheck": "^[a-zA-Z0-9_ ]{3,20}$", - "url": "https://www.hexrpg.com/userinfo/{}", - "urlMain": "https://www.hexrpg.com/", - "username_claimed": "blue" - }, "HackTheBox": { "errorType": "status_code", "url": "https://forum.hackthebox.eu/profile/{}", @@ -953,6 +968,14 @@ "urlMain": "https://hackaday.io/", "username_claimed": "adam" }, + "HackenProof (Hackers)": { + "errorMsg": "Web3\u2019s Largest Ethical Hackers Community | HackenProof", + "errorType": "message", + "regexCheck": "^[\\w-]{,34}$", + "url": "https://hackenproof.com/hackers/{}", + "urlMain": "https://hackenproof.com/", + "username_claimed": "blazezaria" + }, "HackerEarth": { "errorMsg": "404. URL not found.", "errorType": "message", @@ -961,7 +984,11 @@ "username_claimed": "naveennamani877" }, "HackerNews": { - "errorMsg": "No such user.", + "::::README::::": "First errMsg invalid, second errMsg rate limited. Not ideal. Adjust for better rate limit filtering.", + "errorMsg": [ + "No such user.", + "Sorry." + ], "errorType": "message", "url": "https://news.ycombinator.com/user?id={}", "urlMain": "https://news.ycombinator.com/", @@ -977,6 +1004,7 @@ "HackerRank": { "errorMsg": "Something went wrong", "errorType": "message", + "regexCheck": "^[^.]*?$", "url": "https://hackerrank.com/{}", "urlMain": "https://hackerrank.com/", "username_claimed": "satznova" @@ -1033,6 +1061,13 @@ "urlMain": "https://hubski.com/", "username_claimed": "blue" }, + "HudsonRock": { + "errorMsg": "No results", + "errorType": "message", + "url": "https://cavalier.hudsonrock.com/api/json/v2/osint-tools/search-by-username?username={}", + "urlMain": "https://hudsonrock.com", + "username_claimed": "testadmin" + }, "ICQ": { "errorType": "status_code", "url": "https://icq.im/{}/en", @@ -1040,8 +1075,7 @@ "username_claimed": "Micheal" }, "IFTTT": { - "errorMsg": "The requested page or file does not exist", - "errorType": "message", + "errorType": "status_code", "regexCheck": "^[A-Za-z0-9]{3,35}$", "url": "https://www.ifttt.com/p/{}", "urlMain": "https://www.ifttt.com/", @@ -1082,6 +1116,13 @@ "urlProbe": "https://api.imgur.com/account/v1/accounts/{}?client_id=546c25a59c58ad7", "username_claimed": "blue" }, + "Instagram": { + "errorType": "status_code", + "url": "https://instagram.com/{}", + "urlMain": "https://instagram.com/", + "urlProbe": "https://www.picuki.com/profile/{}", + "username_claimed": "instagram" + }, "Instructables": { "errorType": "status_code", "url": "https://www.instructables.com/member/{}", @@ -1172,8 +1213,11 @@ "username_claimed": "blue" }, "Kongregate": { - "errorMsg": "Sorry, no account with that name was found.", - "errorType": "message", + "errorType": "status_code", + "headers": { + "Accept": "text/html", + "User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0" + }, "regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$", "url": "https://www.kongregate.com/accounts/{}", "urlMain": "https://www.kongregate.com/", @@ -1225,7 +1269,8 @@ "username_claimed": "blue" }, "Linktree": { - "errorType": "status_code", + "errorMsg": "\"statusCode\":404", + "errorType": "message", "url": "https://linktr.ee/{}", "urlMain": "https://linktr.ee/", "username_claimed": "anne" @@ -1305,13 +1350,6 @@ "urlProbe": "https://api.mixcloud.com/{}/", "username_claimed": "jenny" }, - "Modelhub": { - "errorType": "status_code", - "isNSFW": true, - "url": "https://www.modelhub.com/{}/videos", - "urlMain": "https://www.modelhub.com/", - "username_claimed": "secretcrush" - }, "Monkeytype": { "errorType": "status_code", "url": "https://monkeytype.com/profile/{}", @@ -1454,6 +1492,7 @@ }, "OpenStreetMap": { "errorType": "status_code", + "regexCheck": "^[^.]*?$", "url": "https://www.openstreetmap.org/user/{}", "urlMain": "https://www.openstreetmap.org/", "username_claimed": "blue" @@ -1464,12 +1503,6 @@ "urlMain": "https://opensource.com/", "username_claimed": "red" }, - "Oracle Community": { - "errorType": "status_code", - "url": "https://community.oracle.com/people/{}", - "urlMain": "https://community.oracle.com", - "username_claimed": "dev" - }, "OurDJTalk": { "errorMsg": "The specified member cannot be found", "errorType": "message", @@ -1511,6 +1544,13 @@ "urlMain": "https://www.patreon.com/", "username_claimed": "blue" }, + "PentesterLab": { + "errorType": "status_code", + "regexCheck": "^[\\w]{4,30}$", + "url": "https://pentesterlab.com/profile/{}", + "urlMain": "https://pentesterlab.com/", + "username_claimed": "0day" + }, "PepperIT": { "errorMsg": "La pagina che hai provato a raggiungere non si trova qui", "errorType": "message", @@ -1526,6 +1566,7 @@ }, "Pinkbike": { "errorType": "status_code", + "regexCheck": "^[^.]*?$", "url": "https://www.pinkbike.com/u/{}/", "urlMain": "https://www.pinkbike.com/", "username_claimed": "blue" @@ -1564,8 +1605,8 @@ "username_claimed": "swiftstickler" }, "Polymart": { - "errorMsg": "Looks like we couldn't find this user. Sorry!", - "errorType": "message", + "errorType": "response_url", + "errorUrl": "https://polymart.org/user/-1", "url": "https://polymart.org/user/{}", "urlMain": "https://polymart.org/", "username_claimed": "craciu25yt" @@ -1786,6 +1827,7 @@ "username_claimed": "blue" }, "Slides": { + "errorCode": 204, "errorType": "status_code", "url": "https://slides.com/{}", "urlMain": "https://slides.com/", @@ -1838,6 +1880,12 @@ "urlMain": "https://speedrun.com/", "username_claimed": "3Tau" }, + "Spells8": { + "errorType": "status_code", + "url": "https://forum.spells8.com/u/{}", + "urlMain": "https://spells8.com", + "username_claimed": "susurrus" + }, "Splice": { "errorType": "status_code", "url": "https://splice.com/{}", @@ -1846,6 +1894,7 @@ }, "Splits.io": { "errorType": "status_code", + "regexCheck": "^[^.]*?$", "url": "https://splits.io/users/{}", "urlMain": "https://splits.io", "username_claimed": "cambosteve" @@ -1894,6 +1943,7 @@ "Strava": { "errorMsg": "Strava | Running, Cycling & Hiking App - Train, Track & Share", "errorType": "message", + "regexCheck": "^[^.]*?$", "url": "https://www.strava.com/athletes/{}", "urlMain": "https://www.strava.com/", "username_claimed": "blue" @@ -1926,12 +1976,15 @@ "username_claimed": "traktrain" }, "Telegram": { - "errorMsg": "", + "errorMsg": [ + "Telegram Messenger", + "If you have Telegram, you can contact TGx:Can't show details", + "errorType": "message", + "regexCheck": "^[A-Za-z0-9]{3,15}$", + "url": "https://torrentgalaxy.to/profile/{}", + "urlMain": "https://torrentgalaxy.to/", + "username_claimed": "GalaxyRG" + }, "TradingView": { "errorType": "status_code", "request_method": "GET", @@ -2052,6 +2113,12 @@ "urlMain": "https://unsplash.com/", "username_claimed": "jenny" }, + "Untappd": { + "errorType": "status_code", + "url": "https://untappd.com/user/{}", + "urlMain": "https://untappd.com/", + "username_claimed": "untappd" + }, "VK": { "errorType": "response_url", "errorUrl": "https://www.quora.com/profile/{}", @@ -2222,7 +2289,13 @@ "username_claimed": "blue" }, "YandexMusic": { - "errorType": "status_code", + "::::README::::": "The first and third errorMsg relate to geo-restrictions and bot detection/captchas.", + "errorMsg": [ + "\u041e\u0448\u0438\u0431\u043a\u0430 404", + "= 300 or r.status_code < 200: - query_status = QueryStatus.CLAIMED - else: + elif r.status_code >= 300 or r.status_code < 200: query_status = QueryStatus.AVAILABLE elif error_type == "response_url": # For this detection method, we have turned off the redirect. @@ -555,7 +568,7 @@ def main(): action="store_true", dest="xlsx", default=False, - help="Create the standard file for the modern Microsoft Excel spreadsheet (xslx).", + help="Create the standard file for the modern Microsoft Excel spreadsheet (xlsx).", ) parser.add_argument( "--site", diff --git a/sherlock/tests/all.py b/sherlock/tests/all.py index 7943fab4..926946fd 100644 --- a/sherlock/tests/all.py +++ b/sherlock/tests/all.py @@ -52,7 +52,7 @@ class SherlockDetectTests(SherlockBaseTest): self.assertEqual("message", site_data["errorType"]) # Generate a valid username based on the regex for a username that the - # site supports that is *most likely* not taken. The regex is slighlty + # site supports that is *most likely* not taken. The regex is slightly # modified version of site_data["regexCheck"] as we want a username # that has the maximum length that is supported by the site. This way, # we wont generate a random username that might actually exist. This @@ -109,7 +109,7 @@ class SherlockDetectTests(SherlockBaseTest): self.assertEqual("status_code", site_data["errorType"]) # Generate a valid username based on the regex for a username that the - # site supports that is *most likely* not taken. The regex is slighlty + # site supports that is *most likely* not taken. The regex is slightly # modified version of site_data["regexCheck"] as we want a username # that has the maximum length that is supported by the site. This way, # we wont generate a random username that might actually exist. This diff --git a/sites.md b/sites.md index b193fa5a..223887f6 100644 --- a/sites.md +++ b/sites.md @@ -1,4 +1,5 @@ -## List Of Supported Sites (396 Sites In Total!) +## List Of Supported Sites (400 Sites In Total!) +1. ![](https://www.google.com/s2/favicons?domain=https://www.1337x.to/) [1337x](https://www.1337x.to/) 1. ![](https://www.google.com/s2/favicons?domain=https://2Dimensions.com/) [2Dimensions](https://2Dimensions.com/) 1. ![](https://www.google.com/s2/favicons?domain=http://forum.3dnews.ru/) [3dnews](http://forum.3dnews.ru/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.7cups.com/) [7Cups](https://www.7cups.com/) @@ -37,7 +38,6 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://www.bikemap.net/) [Bikemap](https://www.bikemap.net/) 1. ![](https://www.google.com/s2/favicons?domain=https://forum.dangerousthings.com/) [BioHacking](https://forum.dangerousthings.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://bitbucket.org/) [BitBucket](https://bitbucket.org/) -1. ![](https://www.google.com/s2/favicons?domain=https://bitcoinforum.com) [BitCoinForum](https://bitcoinforum.com) 1. ![](https://www.google.com/s2/favicons?domain=https://bitwarden.com/) [Bitwarden Forum](https://bitwarden.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.blipfoto.com/) [Blipfoto](https://www.blipfoto.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.blogger.com/) [Blogger](https://www.blogger.com/) @@ -49,6 +49,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://buzzfeed.com/) [BuzzFeed](https://buzzfeed.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.cgtrader.com) [CGTrader](https://www.cgtrader.com) 1. ![](https://www.google.com/s2/favicons?domain=https://www.cnet.com/) [CNET](https://www.cnet.com/) +1. ![](https://www.google.com/s2/favicons?domain=https://cssbattle.dev) [CSSBattle](https://cssbattle.dev) 1. ![](https://www.google.com/s2/favicons?domain=https://ctan.org/) [CTAN](https://ctan.org/) 1. ![](https://www.google.com/s2/favicons?domain=https://caddy.community/) [Caddy Community](https://caddy.community/) 1. ![](https://www.google.com/s2/favicons?domain=https://community.cartalk.com/) [Car Talk Community](https://community.cartalk.com/) @@ -65,6 +66,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://www.clozemaster.com) [Clozemaster](https://www.clozemaster.com) 1. ![](https://www.google.com/s2/favicons?domain=https://www.clubhouse.com) [Clubhouse](https://www.clubhouse.com) 1. ![](https://www.google.com/s2/favicons?domain=https://codesnippets.fandom.com) [Code Snippet Wiki](https://codesnippets.fandom.com) +1. ![](https://www.google.com/s2/favicons?domain=https://codeberg.org/) [Codeberg](https://codeberg.org/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.codecademy.com/) [Codecademy](https://www.codecademy.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.codechef.com/) [Codechef](https://www.codechef.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://codeforces.com/) [Codeforces](https://codeforces.com/) @@ -81,6 +83,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://crowdin.com/) [Crowdin](https://crowdin.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://community.cryptomator.org/) [Cryptomator Forum](https://community.cryptomator.org/) 1. ![](https://www.google.com/s2/favicons?domain=https://cults3d.com/en) [Cults3D](https://cults3d.com/en) +1. ![](https://www.google.com/s2/favicons?domain=https://cyberdefenders.org/) [CyberDefenders](https://cyberdefenders.org/) 1. ![](https://www.google.com/s2/favicons?domain=https://dev.to/) [DEV Community](https://dev.to/) 1. ![](https://www.google.com/s2/favicons?domain=https://dmoj.ca/) [DMOJ](https://dmoj.ca/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.dailymotion.com/) [DailyMotion](https://www.dailymotion.com/) @@ -114,7 +117,6 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://freelance.habr.com/) [Freelance.habr](https://freelance.habr.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.freelancer.com/) [Freelancer](https://www.freelancer.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://freesound.org/) [Freesound](https://freesound.org/) -1. ![](https://www.google.com/s2/favicons?domain=https://www.g2g.com/) [G2G](https://www.g2g.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://gitlab.gnome.org/) [GNOME VCS](https://gitlab.gnome.org/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.gaiaonline.com/) [GaiaOnline](https://www.gaiaonline.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.gamespot.com/) [Gamespot](https://www.gamespot.com/) @@ -136,9 +138,9 @@ 1. ![](https://www.google.com/s2/favicons?domain=http://en.gravatar.com/) [Gravatar](http://en.gravatar.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.gumroad.com/) [Gumroad](https://www.gumroad.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.gutefrage.net/) [Gutefrage](https://www.gutefrage.net/) -1. ![](https://www.google.com/s2/favicons?domain=https://www.hexrpg.com/) [HEXRPG](https://www.hexrpg.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://forum.hackthebox.eu/) [HackTheBox](https://forum.hackthebox.eu/) 1. ![](https://www.google.com/s2/favicons?domain=https://hackaday.io/) [Hackaday](https://hackaday.io/) +1. ![](https://www.google.com/s2/favicons?domain=https://hackenproof.com/) [HackenProof (Hackers)](https://hackenproof.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://hackerearth.com/) [HackerEarth](https://hackerearth.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://news.ycombinator.com/) [HackerNews](https://news.ycombinator.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://hackerone.com/) [HackerOne](https://hackerone.com/) @@ -150,6 +152,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://houzz.com/) [Houzz](https://houzz.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://hubpages.com/) [HubPages](https://hubpages.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://hubski.com/) [Hubski](https://hubski.com/) +1. ![](https://www.google.com/s2/favicons?domain=https://hudsonrock.com) [HudsonRock](https://hudsonrock.com) 1. ![](https://www.google.com/s2/favicons?domain=https://icq.com/) [ICQ](https://icq.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.ifttt.com/) [IFTTT](https://www.ifttt.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://irc-galleria.net/) [IRC-Galleria](https://irc-galleria.net/) @@ -157,6 +160,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://www.imagefap.com/) [Image Fap](https://www.imagefap.com/) **(NSFW)** 1. ![](https://www.google.com/s2/favicons?domain=https://imgup.cz/) [ImgUp.cz](https://imgup.cz/) 1. ![](https://www.google.com/s2/favicons?domain=https://imgur.com/) [Imgur](https://imgur.com/) +1. ![](https://www.google.com/s2/favicons?domain=https://instagram.com/) [Instagram](https://instagram.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.instructables.com/) [Instructables](https://www.instructables.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://app.intigriti.com) [Intigriti](https://app.intigriti.com) 1. ![](https://www.google.com/s2/favicons?domain=https://forum.ionicframework.com/) [Ionic Forum](https://forum.ionicframework.com/) @@ -190,7 +194,6 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://www.memrise.com/) [Memrise](https://www.memrise.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://minecraft.net/) [Minecraft](https://minecraft.net/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.mixcloud.com/) [MixCloud](https://www.mixcloud.com/) -1. ![](https://www.google.com/s2/favicons?domain=https://www.modelhub.com/) [Modelhub](https://www.modelhub.com/) **(NSFW)** 1. ![](https://www.google.com/s2/favicons?domain=https://monkeytype.com/) [Monkeytype](https://monkeytype.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://motherless.com/) [Motherless](https://motherless.com/) **(NSFW)** 1. ![](https://www.google.com/s2/favicons?domain=https://www.motorradfrage.net/) [Motorradfrage](https://www.motorradfrage.net/) @@ -214,13 +217,13 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://ogu.gg/) [OGUsers](https://ogu.gg/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.openstreetmap.org/) [OpenStreetMap](https://www.openstreetmap.org/) 1. ![](https://www.google.com/s2/favicons?domain=https://opensource.com/) [Opensource](https://opensource.com/) -1. ![](https://www.google.com/s2/favicons?domain=https://community.oracle.com) [Oracle Community](https://community.oracle.com) 1. ![](https://www.google.com/s2/favicons?domain=https://ourdjtalk.com/) [OurDJTalk](https://ourdjtalk.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://pcgamer.com) [PCGamer](https://pcgamer.com) 1. ![](https://www.google.com/s2/favicons?domain=https://psnprofiles.com/) [PSNProfiles.com](https://psnprofiles.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://packagist.org/) [Packagist](https://packagist.org/) 1. ![](https://www.google.com/s2/favicons?domain=https://pastebin.com/) [Pastebin](https://pastebin.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.patreon.com/) [Patreon](https://www.patreon.com/) +1. ![](https://www.google.com/s2/favicons?domain=https://pentesterlab.com/) [PentesterLab](https://pentesterlab.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.pepper.it) [PepperIT](https://www.pepper.it) 1. ![](https://www.google.com/s2/favicons?domain=https://www.periscope.tv/) [Periscope](https://www.periscope.tv/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.pinkbike.com/) [Pinkbike](https://www.pinkbike.com/) @@ -270,6 +273,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://sourceforge.net/) [SourceForge](https://sourceforge.net/) 1. ![](https://www.google.com/s2/favicons?domain=https://soylentnews.org) [SoylentNews](https://soylentnews.org) 1. ![](https://www.google.com/s2/favicons?domain=https://speedrun.com/) [Speedrun.com](https://speedrun.com/) +1. ![](https://www.google.com/s2/favicons?domain=https://spells8.com) [Spells8](https://spells8.com) 1. ![](https://www.google.com/s2/favicons?domain=https://splice.com/) [Splice](https://splice.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://splits.io) [Splits.io](https://splits.io) 1. ![](https://www.google.com/s2/favicons?domain=https://www.sporcle.com/) [Sporcle](https://www.sporcle.com/) @@ -288,6 +292,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://tenor.com/) [Tenor](https://tenor.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://themeforest.net/) [ThemeForest](https://themeforest.net/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.tnaflix.com/) [TnAFlix](https://www.tnaflix.com/) **(NSFW)** +1. ![](https://www.google.com/s2/favicons?domain=https://torrentgalaxy.to/) [TorrentGalaxy](https://torrentgalaxy.to/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.tradingview.com/) [TradingView](https://www.tradingview.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.trakt.tv/) [Trakt](https://www.trakt.tv/) 1. ![](https://www.google.com/s2/favicons?domain=https://trashbox.ru/) [TrashboxRU](https://trashbox.ru/) @@ -301,6 +306,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://typeracer.com) [Typeracer](https://typeracer.com) 1. ![](https://www.google.com/s2/favicons?domain=https://ultimate-guitar.com/) [Ultimate-Guitar](https://ultimate-guitar.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://unsplash.com/) [Unsplash](https://unsplash.com/) +1. ![](https://www.google.com/s2/favicons?domain=https://untappd.com/) [Untappd](https://untappd.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://vk.com/) [VK](https://vk.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://vsco.co/) [VSCO](https://vsco.co/) 1. ![](https://www.google.com/s2/favicons?domain=https://forum.velomania.ru/) [Velomania](https://forum.velomania.ru/) @@ -358,7 +364,7 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://www.interpals.net/) [interpals](https://www.interpals.net/) 1. ![](https://www.google.com/s2/favicons?domain=https://irecommend.ru/) [irecommend](https://irecommend.ru/) 1. ![](https://www.google.com/s2/favicons?domain=https://jbzd.com.pl/) [jbzd.com.pl](https://jbzd.com.pl/) -1. ![](https://www.google.com/s2/favicons?domain=http://www.jeuxvideo.com) [jeuxvideo](http://www.jeuxvideo.com) +1. ![](https://www.google.com/s2/favicons?domain=https://www.jeuxvideo.com) [jeuxvideo](https://www.jeuxvideo.com) 1. ![](https://www.google.com/s2/favicons?domain=https://ko-fi.com) [kofi](https://ko-fi.com) 1. ![](https://www.google.com/s2/favicons?domain=https://www.kwork.ru/) [kwork](https://www.kwork.ru/) 1. ![](https://www.google.com/s2/favicons?domain=https://lab.pentestit.ru/) [labpentestit](https://lab.pentestit.ru/) @@ -370,7 +376,6 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.xyz/) [mastodon.technology](https://mastodon.xyz/) 1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.xyz/) [mastodon.xyz](https://mastodon.xyz/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.mercadolivre.com.br) [mercadolivre](https://www.mercadolivre.com.br) -1. ![](https://www.google.com/s2/favicons?domain=https://www.metacritic.com/) [metacritic](https://www.metacritic.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.minds.com) [minds](https://www.minds.com) 1. ![](https://www.google.com/s2/favicons?domain=https://moikrug.ru/) [moikrug](https://moikrug.ru/) 1. ![](https://www.google.com/s2/favicons?domain=https://mstdn.io/) [mstdn.io](https://mstdn.io/) @@ -394,6 +399,5 @@ 1. ![](https://www.google.com/s2/favicons?domain=https://www.toster.ru/) [toster](https://www.toster.ru/) 1. ![](https://www.google.com/s2/favicons?domain=https://uid.me/) [uid](https://uid.me/) 1. ![](https://www.google.com/s2/favicons?domain=https://wiki.vg/) [wiki.vg](https://wiki.vg/) -1. ![](https://www.google.com/s2/favicons?domain=https://wykop.pl) [wykop.pl](https://wykop.pl) 1. ![](https://www.google.com/s2/favicons?domain=https://xhamster.com) [xHamster](https://xhamster.com) **(NSFW)** 1. ![](https://www.google.com/s2/favicons?domain=https://znanylekarz.pl) [znanylekarz.pl](https://znanylekarz.pl)