Merge branch 'master' into #1283-conflicts-resolved

pull/1283/head
Moritz 3 years ago committed by GitHub
commit 9c322c314a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -161,7 +161,6 @@ Here are some things we would appreciate your help on:
- Addition of new site support ¹
- Bringing back site support of [sites that have been removed](removed_sites.md) in the past due to false positives
[1] Please look at the Wiki entry on [adding new sites](https://github.com/sherlock-project/sherlock/wiki/Adding-Sites-To-Sherlock)
to understand the issues.

@ -519,14 +519,6 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Ebay": {
"errorMsg": "<title>eBay Profile - error</title>",
"errorType": "message",
"url": "https://www.ebay.com/usr/{}",
"urlMain": "https://www.ebay.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"GDProfiles": {
"errorType": "status_code",
"url": "https://gdprofiles.com/{}",

@ -1027,20 +1027,6 @@ As of 2021-01-13, Travellerspoint returns false positives
},
```
## Ebay
As of 2021-01-15, Ebay seems to be very laggy and take too long to return a response.
```
"Ebay": {
"errorMsg": "<title>eBay Profile - error</title>",
"errorType": "message",
"url": "https://www.ebay.com/usr/{}",
"urlMain": "https://www.ebay.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
```
## GDProfiles
As of 2021-06-27, GDProfiles takes way too long to respond. Must be an issue on their side.

@ -2,4 +2,5 @@
This module contains the main logic to search for usernames at social
networks.
"""

@ -20,9 +20,8 @@ if __name__ == "__main__":
major = sys.version_info[0]
minor = sys.version_info[1]
python_version = str(major) + "." + str(minor) + "." + str(sys.version_info[2])
if major != 3 or major == 3 and minor < 6:
python_version = str(major) + "." + str(minor) + "." + str(sys.version_info[2])
print("Sherlock requires Python 3.6+\nYou are using Python %s, which is not supported by Sherlock" % (python_version))
sys.exit(1)

@ -33,7 +33,7 @@ class QueryNotify:
self.result = result
return
# return
def start(self, message=None):
"""Notify Start.
@ -52,7 +52,7 @@ class QueryNotify:
Nothing.
"""
return
# return
def update(self, result):
"""Notify Update.
@ -71,7 +71,7 @@ class QueryNotify:
self.result = result
return
# return
def finish(self, message=None):
"""Notify Finish.
@ -90,7 +90,7 @@ class QueryNotify:
Nothing.
"""
return
# return
def __str__(self):
"""Convert Object To String.
@ -101,9 +101,7 @@ class QueryNotify:
Return Value:
Nicely formatted string to get information about this object.
"""
result = str(self.result)
return result
return str(self.result)
class QueryNotifyPrint(QueryNotify):
@ -150,14 +148,43 @@ class QueryNotifyPrint(QueryNotify):
"""
title = "Checking username"
print(Style.BRIGHT + Fore.GREEN + "[" +
Fore.YELLOW + "*" +
Fore.GREEN + f"] {title}" +
Fore.WHITE + f" {message}" +
Fore.GREEN + " on:")
# An empty line between first line and the result(more clear output)
print('\r')
return
def finish(self, message="The processing has been finished."):
"""Notify Start.
Will print the last line to the standard output.
Keyword Arguments:
self -- This object.
message -- The last phrase.
Return Value:
Nothing.
"""
title = "End"
print('\r') # An empty line between last line of main output and last line(more clear output)
print(Style.BRIGHT + Fore.GREEN + "[" +
Fore.YELLOW + "!" +
Fore.GREEN + f"] {title}" +
Fore.GREEN + ": " +
Fore.WHITE + f" {message}" )
# An empty line between first line and the result(more clear output)
# return
def update(self, result):
"""Notify Update.
@ -217,8 +244,9 @@ class QueryNotifyPrint(QueryNotify):
else:
# It should be impossible to ever get here...
raise ValueError(f"Unknown Query Status '{str(result.status)}' for "
f"site '{self.result.site_name}'")
raise ValueError(
f"Unknown Query Status '{result.status}' for site '{self.result.site_name}'"
)
return
@ -231,6 +259,4 @@ class QueryNotifyPrint(QueryNotify):
Return Value:
Nicely formatted string to get information about this object.
"""
result = str(self.result)
return result
return str(self.result)

@ -43,6 +43,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Airbit": {
"errorType": "status_code",
"url": "https://airbit.com/{}",
"urlMain": "https://airbit.com/",
"username_claimed": "airbit",
"username_unclaimed": "noonewouldeverusethis7"
},
"Airliners": {
"errorType": "status_code",
"url": "https://www.airliners.net/user/{}/profile/photos",
@ -158,6 +165,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Autofrage": {
"errorType": "status_code",
"url": "https://www.autofrage.net/nutzer/{}",
"urlMain": "https://www.autofrage.net/",
"username_claimed": "autofrage",
"username_unclaimed": "noonewouldeverusethis7"
},
"Avizo": {
"errorType": "response_url",
"errorUrl": "https://www.avizo.cz/",
@ -204,6 +218,20 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Bezuzyteczna": {
"errorType": "status_code",
"url": "https://bezuzyteczna.pl/uzytkownicy/{}",
"urlMain": "https://bezuzyteczna.pl",
"username_claimed": "Jackson",
"username_unclaimed": "ktobysietaknazwalnawb69"
},
"Bikemap": {
"errorType": "status_code",
"url": "https://www.bikemap.net/en/u/{}/routes/created/",
"urlMain": "https://www.bikemap.net/",
"username_claimed": "bikemap",
"username_unclaimed": "noonewouldeverusethis7"
},
"BinarySearch": {
"errorMsg": "{}",
"errorType": "message",
@ -214,6 +242,13 @@
"username_claimed": "Eyes_Wide_Shut",
"username_unclaimed": "hihowareyou101"
},
"BioHacking": {
"errorType": "status_code",
"url": "https://forum.dangerousthings.com/u/{}",
"urlMain": "https://forum.dangerousthings.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"BitBucket": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z0-9-_]{1,30}$",
@ -363,6 +398,13 @@
"username_claimed": "green",
"username_unclaimed": "noonewouldeverusethis7"
},
"Clubhouse": {
"errorType": "status_code",
"url": "https://www.clubhouse.com/@{}",
"urlMain": "https://www.clubhouse.com",
"username_claimed": "waniathar",
"username_unclaimed": "noonewouldeverusethis7"
},
"Codecademy": {
"errorMsg": "This profile could not be found",
"errorType": "message",
@ -379,6 +421,14 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Codeforces": {
"errorType": "response_url",
"errorUrl": "https://codeforces.com/",
"url": "https://codeforces.com/profile/{}",
"urlMain": "https://www.codeforces.com/",
"username_claimed": "tourist",
"username_unclaimed": "noonewouldeverusethis789"
},
"Codepen": {
"errorType": "status_code",
"url": "https://codepen.io/{}",
@ -463,6 +513,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Cryptomator Forum": {
"errorType": "status_code",
"url": "https://community.cryptomator.org/u/{}",
"urlMain": "https://community.cryptomator.org/",
"username_claimed": "michael",
"username_unclaimed": "noonewouldeverusethis7"
},
"DEV Community": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$",
@ -548,6 +605,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Envato Forum": {
"errorType": "status_code",
"url": "https://forums.envato.com/u/{}",
"urlMain": "https://forums.envato.com/",
"username_claimed": "enabled",
"username_unclaimed": "noonewouldeverusethis7"
},
"Etsy": {
"errorType": "status_code",
"url": "https://www.etsy.com/shop/{}",
@ -586,6 +650,13 @@
"username_claimed": "hackerman",
"username_unclaimed": "noonewouldeverusethis7"
},
"Fameswap": {
"errorType": "status_code",
"url": "https://fameswap.com/user/{}",
"urlMain": "https://fameswap.com/",
"username_claimed": "fameswap",
"username_unclaimed": "noonewouldeverusethis7"
},
"FanCentro": {
"errorMsg": "var environment",
"errorType": "message",
@ -601,6 +672,13 @@
"username_claimed": "Jungypoo",
"username_unclaimed": "noonewouldeverusethis7"
},
"Finanzfrage": {
"errorType": "status_code",
"url": "https://www.finanzfrage.net/nutzer/{}",
"urlMain": "https://www.finanzfrage.net/",
"username_claimed": "finanzfrage",
"username_unclaimed": "noonewouldeverusethis7"
},
"Fiverr": {
"errorMsg": "\"status\":\"success\"",
"errorType": "message",
@ -686,6 +764,14 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis"
},
"G2G": {
"errorType": "response_url",
"errorUrl": "https://www.g2g.com/{}",
"url": "https://www.g2g.com/{}",
"urlMain": "https://www.g2g.com/",
"username_claimed": "user",
"username_unclaimed": "noonewouldeverusethis7"
},
"GNOME VCS": {
"errorType": "response_url",
"errorUrl": "https://gitlab.gnome.org/{}",
@ -695,6 +781,14 @@
"username_claimed": "adam",
"username_unclaimed": "noonewouldeverusethis7"
},
"Gab": {
"errorMsg": "The page you are looking for isn't here.",
"errorType": "message",
"url": "https://gab.com/{}",
"urlMain": "https://gab.com",
"username_claimed": "a",
"username_unclaimed": "noonewouldeverusethis"
},
"GaiaOnline": {
"errorMsg": "No user ID specified or user does not exist",
"errorType": "message",
@ -717,6 +811,27 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis"
},
"Genius (Artists)": {
"errorType": "status_code",
"url": "https://genius.com/artists/{}",
"urlMain": "https://genius.com/",
"username_claimed": "genius",
"username_unclaimed": "noonewouldeverusethis7"
},
"Genius (Users)": {
"errorType": "status_code",
"url": "https://genius.com/{}",
"urlMain": "https://genius.com/",
"username_claimed": "genius",
"username_unclaimed": "noonewouldeverusethis7"
},
"Gesundheitsfrage": {
"errorType": "status_code",
"url": "https://www.gesundheitsfrage.net/nutzer/{}",
"urlMain": "https://www.gesundheitsfrage.net/",
"username_claimed": "gutefrage",
"username_unclaimed": "noonewouldeverusethis7"
},
"GetMyUni": {
"errorType": "status_code",
"url": "https://www.getmyuni.com/user/{}",
@ -724,6 +839,14 @@
"username_claimed": "Upneet.Grover17",
"username_unclaimed": "noonewouldeverusethis7"
},
"Ghost": {
"errorMsg": "Domain Error",
"errorType": "message",
"url": "https://{}.ghost.io/",
"urlMain": "https://ghost.org/",
"username_claimed": "troyhunt",
"username_unclaimed": "noonewouldeverusethis7"
},
"Giphy": {
"errorType": "status_code",
"url": "https://giphy.com/{}",
@ -731,6 +854,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"GitBook": {
"errorType": "status_code",
"url": "https://{}.gitbook.io/",
"urlMain": "https://gitbook.com/",
"username_claimed": "gitbook",
"username_unclaimed": "noonewouldeverusethis7"
},
"GitHub": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z0-9](?:[a-zA-Z0-9]|-(?=[a-zA-Z0-9])){0,38}$",
@ -778,6 +908,14 @@
"username_claimed": "jetbrains",
"username_unclaimed": "noonewouldeverusethis7"
},
"Grailed": {
"errorType": "response_url",
"errorUrl": "https://www.grailed.com/{}",
"url": "https://www.grailed.com/{}",
"urlMain": "https://www.grailed.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Gravatar": {
"errorType": "status_code",
"regexCheck": "^((?!\\.).)*$",
@ -787,7 +925,7 @@
"username_unclaimed": "noonewouldeverusethis7"
},
"Gumroad": {
"errorMsg": "Page not found.",
"errorMsg": "Page not found (404) - Gumroad",
"errorType": "message",
"url": "https://www.gumroad.com/{}",
"urlMain": "https://www.gumroad.com/",
@ -808,6 +946,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Gutefrage": {
"errorType": "status_code",
"url": "https://www.gutefrage.net/nutzer/{}",
"urlMain": "https://www.gutefrage.net/",
"username_claimed": "gutefrage",
"username_unclaimed": "noonewouldeverusethis7"
},
"HEXRPG": {
"errorMsg": "Error : User ",
"errorType": "message",
@ -934,6 +1079,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Ionic Forum": {
"errorType": "status_code",
"url": "https://forum.ionicframework.com/u/{}",
"urlMain": "https://forum.ionicframework.com/",
"username_claimed": "theblue222",
"username_unclaimed": "noonewouldeverusethis7"
},
"Issuu": {
"errorType": "status_code",
"url": "https://issuu.com/{}",
@ -972,6 +1124,20 @@
"username_claimed": "jenny",
"username_unclaimed": "noonewouldeverusethis7"
},
"Joplin Forum": {
"errorType": "status_code",
"url": "https://discourse.joplinapp.org/u/{}",
"urlMain": "https://discourse.joplinapp.org/",
"username_claimed": "laurent",
"username_unclaimed": "noonewouldeverusethis7"
},
"KEAKR": {
"errorType": "status_code",
"url": "https://www.keakr.com/en/profile/{}",
"urlMain": "https://www.keakr.com/",
"username_claimed": "beats",
"username_unclaimed": "noonewouldeverusethis7"
},
"Kaggle": {
"errorType": "status_code",
"url": "https://www.kaggle.com/{}",
@ -1025,6 +1191,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"LessWrong": {
"errorType": "status_code",
"url": "https://www.lesswrong.com/users/@{}",
"urlMain": "https://www.lesswrong.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7why"
},
"Letterboxd": {
"errorMsg": "Sorry, we can\u2019t find the page you\u2019ve requested.",
"errorType": "message",
@ -1048,6 +1221,14 @@
"username_claimed": "anne",
"username_unclaimed": "noonewouldeverusethis7"
},
"Listed": {
"errorType": "response_url",
"errorUrl": "https://listed.to/@{}",
"url": "https://listed.to/@{}",
"urlMain": "https://listed.to/",
"username_claimed": "listed",
"username_unclaimed": "noonewouldeverusethis7"
},
"LiveJournal": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$",
@ -1072,6 +1253,21 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"LottieFiles": {
"errorType": "status_code",
"url": "https://lottiefiles.com/{}",
"urlMain": "https://lottiefiles.com/",
"username_claimed": "lottiefiles",
"username_unclaimed": "noonewouldeverusethis7"
},
"Mapify": {
"errorType": "response_url",
"errorUrl": "https://mapify.travel/{}",
"url": "https://mapify.travel/{}",
"urlMain": "https://mapify.travel/",
"username_claimed": "mapify",
"username_unclaimed": "noonewouldeverusethis7"
},
"Medium": {
"errorMsg": "<body",
"errorType": "message",
@ -1088,6 +1284,14 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Minecraft": {
"errorCode": 204,
"errorType": "status_code",
"url": "https://api.mojang.com/users/profiles/minecraft/{}",
"urlMain": "https://minecraft.net/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"MixCloud": {
"errorType": "status_code",
"url": "https://www.mixcloud.com/{}/",
@ -1096,18 +1300,17 @@
"username_claimed": "jenny",
"username_unclaimed": "noonewouldeverusethis7"
},
"Munzee": {
"Motorradfrage": {
"errorType": "status_code",
"url": "https://www.munzee.com/m/{}",
"urlMain": "https://www.munzee.com/",
"username_claimed": "blue",
"url": "https://www.motorradfrage.net/nutzer/{}",
"urlMain": "https://www.motorradfrage.net/",
"username_claimed": "gutefrage",
"username_unclaimed": "noonewouldeverusethis7"
},
"Minecraft": {
"Munzee": {
"errorType": "status_code",
"errorCode": 204,
"url": "https://api.mojang.com/users/profiles/minecraft/{}",
"urlMain": "https://minecraft.net/",
"url": "https://www.munzee.com/m/{}",
"urlMain": "https://www.munzee.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
@ -1163,6 +1366,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewould"
},
"Needrom": {
"errorType": "status_code",
"url": "https://www.needrom.com/author/{}/",
"urlMain": "https://www.needrom.com/",
"username_claimed": "needrom",
"username_unclaimed": "noonewouldeverusethis7"
},
"Newgrounds": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$",
@ -1210,6 +1420,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"OGUsers": {
"errorType": "status_code",
"url": "https://ogusers.com/{}",
"urlMain": "https://ogusers.com/",
"username_claimed": "ogusers",
"username_unclaimed": "noonewouldeverusethis7"
},
"OK": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_.-]*$",
@ -1358,6 +1575,14 @@
"username_claimed": "swiftstickler",
"username_unclaimed": "noonewouldeverusethis7"
},
"Polymart": {
"errorMsg": "Looks like we couldn't find this user. Sorry!",
"errorType": "message",
"url": "https://polymart.org/user/{}",
"urlMain": "https://polymart.org/",
"username_claimed": "craciu25yt",
"username_unclaimed": "noonewouldeverusethis7"
},
"Pornhub": {
"errorType": "status_code",
"url": "https://pornhub.com/users/{}",
@ -1416,6 +1641,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Rclone Forum": {
"errorType": "status_code",
"url": "https://forum.rclone.org/u/{}",
"urlMain": "https://forum.rclone.org/",
"username_claimed": "ncw",
"username_unclaimed": "noonewouldeverusethis7"
},
"Redbubble": {
"errorType": "status_code",
"url": "https://www.redbubble.com/people/{}",
@ -1434,6 +1666,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Reisefrage": {
"errorType": "status_code",
"url": "https://www.reisefrage.net/nutzer/{}",
"urlMain": "https://www.reisefrage.net/",
"username_claimed": "reisefrage",
"username_unclaimed": "noonewouldeverusethis7"
},
"Replit.com": {
"errorType": "status_code",
"url": "https://replit.com/@{}",
@ -1490,6 +1729,13 @@
"username_claimed": "Blue",
"username_unclaimed": "noonewouldev"
},
"SWAPD": {
"errorType": "status_code",
"url": "https://swapd.co/u/{}",
"urlMain": "https://swapd.co/",
"username_claimed": "swapd",
"username_unclaimed": "noonewouldeverusethis7"
},
"Sbazar.cz": {
"errorType": "status_code",
"url": "https://www.sbazar.cz/{}",
@ -1519,6 +1765,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis"
},
"Shpock": {
"errorType": "status_code",
"url": "https://www.shpock.com/shop/{}/items",
"urlMain": "https://www.shpock.com/",
"username_claimed": "user",
"username_unclaimed": "noonewouldeverusethis7"
},
"Signal": {
"errorMsg": "Oops! That page doesn\u2019t exist or is private.",
"errorType": "message",
@ -1566,7 +1819,8 @@
"username_unclaimed": "noonewouldeverusethis7"
},
"Smule": {
"errorType": "status_code",
"errorMsg": "Smule | Page Not Found (404)",
"errorType": "message",
"url": "https://www.smule.com/{}",
"urlMain": "https://www.smule.com/",
"username_claimed": "blue",
@ -1617,6 +1871,13 @@
"username_claimed": "3Tau",
"username_unclaimed": "noonewould"
},
"Splice": {
"errorType": "status_code",
"url": "https://splice.com/{}",
"urlMain": "https://splice.com/",
"username_claimed": "splice",
"username_unclaimed": "noonewouldeverusethis7"
},
"Splits.io": {
"errorType": "status_code",
"url": "https://splits.io/users/{}",
@ -1631,6 +1892,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Sportlerfrage": {
"errorType": "status_code",
"url": "https://www.sportlerfrage.net/nutzer/{}",
"urlMain": "https://www.sportlerfrage.net/",
"username_claimed": "sportlerfrage",
"username_unclaimed": "noonewouldeverusethis7"
},
"SportsRU": {
"errorType": "status_code",
"url": "https://www.sports.ru/profile/{}/",
@ -1700,6 +1968,13 @@
"username_claimed": "kevin",
"username_unclaimed": "noonewouldeverusethi"
},
"TRAKTRAIN": {
"errorType": "status_code",
"url": "https://traktrain.com/{}",
"urlMain": "https://traktrain.com/",
"username_claimed": "traktrain",
"username_unclaimed": "noonewouldeverusethis7"
},
"Telegram": {
"errorMsg": "<meta property=\"og:description\" content=\"\">",
"errorType": "message",
@ -1724,6 +1999,13 @@
"username_claimed": "red",
"username_unclaimed": "impossibleusername"
},
"ThemeForest": {
"errorType": "status_code",
"url": "https://themeforest.net/user/{}",
"urlMain": "https://themeforest.net/",
"username_claimed": "user",
"username_unclaimed": "noonewouldeverusethis7"
},
"TikTok": {
"errorType": "status_code",
"url": "https://tiktok.com/@{}",
@ -1744,6 +2026,7 @@
},
"TradingView": {
"errorType": "status_code",
"request_method": "GET",
"url": "https://www.tradingview.com/u/{}/",
"urlMain": "https://www.tradingview.com/",
"username_claimed": "blue",
@ -1994,6 +2277,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Wykop": {
"errorType": "status_code",
"url": "https://www.wykop.pl/ludzie/{}",
"urlMain": "https://www.wykop.pl",
"username_claimed": "blue",
"username_unclaimed": "bumpewastaken"
},
"Xbox Gamertag": {
"errorType": "status_code",
"url": "https://xboxgamertag.com/search/{}",
@ -2126,6 +2416,22 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"eBay.com": {
"errorMsg": "The User ID you entered was not found. Please check the User ID and try again.",
"errorType": "message",
"url": "https://www.ebay.com/usr/{}",
"urlMain": "https://www.ebay.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"eBay.de": {
"errorMsg": "Der eingegebene Nutzername wurde nicht gefunden. Bitte pr\u00fcfen Sie den Nutzernamen und versuchen Sie es erneut.",
"errorType": "message",
"url": "https://www.ebay.de/usr/{}",
"urlMain": "https://www.ebay.de/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"eGPU": {
"errorType": "status_code",
"url": "https://egpu.io/forums/profile/{}/",
@ -2443,6 +2749,13 @@
"username_claimed": "red",
"username_unclaimed": "noonewouldeverusethis7"
},
"skyrock": {
"errorType": "status_code",
"url": "https://{}.skyrock.com/",
"urlMain": "https://skyrock.com/",
"username_claimed": "red",
"username_unclaimed": "noonewouldeverusethis7"
},
"social.tchncs.de": {
"errorType": "status_code",
"url": "https://social.tchncs.de/@{}",
@ -2492,6 +2805,13 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis77777"
},
"znanylekarz.pl": {
"errorType": "status_code",
"url": "https://www.znanylekarz.pl/{}",
"urlMain": "https://znanylekarz.pl",
"username_claimed": "janusz-nowak",
"username_unclaimed": "kto-by-sie-tak-nazwal-69"
},
"zoomit": {
"errorMsg": "\u0645\u062a\u0627\u0633\u0641\u0627\u0646\u0647 \u0635\u0641\u062d\u0647 \u06cc\u0627\u0641\u062a \u0646\u0634\u062f",
"errorType": "message",

@ -29,10 +29,8 @@ module_name = "Sherlock: Find Usernames Across Social Networks"
__version__ = "0.14.0"
class SherlockFuturesSession(FuturesSession):
def request(self, method, url, hooks={}, *args, **kwargs):
def request(self, method, url, hooks=None, *args, **kwargs):
"""Request URL.
This extends the FuturesSession request method to calculate a response
@ -54,6 +52,8 @@ class SherlockFuturesSession(FuturesSession):
Request object.
"""
# Record the start time for the request.
if hooks is None:
hooks = {}
start = monotonic()
def response_time(resp, *args, **kwargs):
@ -96,12 +96,11 @@ class SherlockFuturesSession(FuturesSession):
def get_response(request_future, error_type, social_network):
# Default for Response object if some failure occurs.
response = None
error_context = "General Unknown Error"
expection_text = None
exception_text = None
try:
response = request_future.result()
if response.status_code:
@ -109,21 +108,21 @@ def get_response(request_future, error_type, social_network):
error_context = None
except requests.exceptions.HTTPError as errh:
error_context = "HTTP Error"
expection_text = str(errh)
exception_text = str(errh)
except requests.exceptions.ProxyError as errp:
error_context = "Proxy Error"
expection_text = str(errp)
exception_text = str(errp)
except requests.exceptions.ConnectionError as errc:
error_context = "Error Connecting"
expection_text = str(errc)
exception_text = str(errc)
except requests.exceptions.Timeout as errt:
error_context = "Timeout Error"
expection_text = str(errt)
exception_text = str(errt)
except requests.exceptions.RequestException as err:
error_context = "Unknown Error"
expection_text = str(err)
exception_text = str(err)
return response, error_context, expection_text
return response, error_context, exception_text
def interpolate_string(object, username):
@ -199,7 +198,6 @@ def sherlock(username, site_data, query_notify,
session = SherlockFuturesSession(max_workers=max_workers,
session=underlying_session)
# Results from analysis of all sites
results_total = {}
@ -207,10 +205,9 @@ def sherlock(username, site_data, query_notify,
for social_network, net_info in site_data.items():
# Results from analysis of this specific site
results_site = {}
results_site = {"url_main": net_info.get("urlMain")}
# Record URL of main site
results_site["url_main"] = net_info.get("urlMain")
# A user agent is needed because some sites don't return the correct
# information since they think that we are bots (Which we actually are...)
@ -313,7 +310,7 @@ def sherlock(username, site_data, query_notify,
if unique_tor:
underlying_request.reset_identity()
# Add this site's results into final dictionary with all of the other results.
# Add this site's results into final dictionary with all the other results.
results_total[social_network] = results_site
# Open the file containing account links
@ -336,7 +333,7 @@ def sherlock(username, site_data, query_notify,
# Retrieve future and ensure it has finished
future = net_info["request_future"]
r, error_text, expection_text = get_response(request_future=future,
r, error_text, exception_text = get_response(request_future=future,
error_type=error_type,
social_network=social_network)
@ -369,7 +366,7 @@ def sherlock(username, site_data, query_notify,
errors = net_info.get("errorMsg")
# errors will hold the error message
# it can be string or list
# by insinstance method we can detect that
# by isinstance method we can detect that
# and handle the case for strings as normal procedure
# and if its list we can iterate the errors
if isinstance(errors, str):
@ -411,7 +408,6 @@ def sherlock(username, site_data, query_notify,
raise ValueError(f"Unknown Error Type '{error_type}' for "
f"site '{social_network}'")
# Notify caller about results of query.
result = QueryResult(username=username,
site_name=social_network,
@ -458,12 +454,12 @@ def timeout_check(value):
except:
raise ArgumentTypeError(f"Timeout '{value}' must be a number.")
if timeout <= 0:
raise ArgumentTypeError(f"Timeout '{value}' must be greater than 0.0s.")
raise ArgumentTypeError(
f"Timeout '{value}' must be greater than 0.0s.")
return timeout
def main():
version_string = f"%(prog)s {__version__}\n" + \
f"{requests.__description__}: {requests.__version__}\n" + \
f"Python: {platform.python_version()}"
@ -544,7 +540,8 @@ def main():
# Check for newer version of Sherlock. If it exists, let the user know about it
try:
r = requests.get("https://raw.githubusercontent.com/sherlock-project/sherlock/master/sherlock/sherlock.py")
r = requests.get(
"https://raw.githubusercontent.com/sherlock-project/sherlock/master/sherlock/sherlock.py")
remote_version = str(re.findall('__version__ = "(.*)"', r.text)[0])
local_version = __version__
@ -556,7 +553,6 @@ def main():
except Exception as error:
print(f"A problem occurred while checking for an update: {error}")
# Argument check
# TODO regex check on args.proxy
if args.tor and (args.proxy is not None):
@ -568,7 +564,8 @@ def main():
if args.tor or args.unique_tor:
print("Using Tor to make requests")
print("Warning: some websites might refuse connecting over Tor, so note that using this option might increase connection errors.")
print(
"Warning: some websites might refuse connecting over Tor, so note that using this option might increase connection errors.")
if args.no_color:
# Disable color output.
@ -587,11 +584,11 @@ def main():
print("You can only use --output with a single username")
sys.exit(1)
# Create object with all information about sites we are aware of.
try:
if args.local:
sites = SitesInformation(os.path.join(os.path.dirname(__file__), "resources/data.json"))
sites = SitesInformation(os.path.join(
os.path.dirname(__file__), "resources/data.json"))
else:
sites = SitesInformation(args.json_file)
except Exception as error:
@ -601,10 +598,7 @@ def main():
# Create original dictionary from SitesInformation() object.
# Eventually, the rest of the code will be updated to use the new object
# directly, but this will glue the two pieces together.
site_data_all = {}
for site in sites:
site_data_all[site.name] = site.information
site_data_all = {site.name: site.information for site in sites}
if args.site_list is None:
# Not desired to look at a sub-set of sites
site_data = site_data_all
@ -625,7 +619,8 @@ def main():
site_missing.append(f"'{site}'")
if site_missing:
print(f"Error: Desired sites not found: {', '.join(site_missing)}.")
print(
f"Error: Desired sites not found: {', '.join(site_missing)}.")
if not site_data:
sys.exit(1)
@ -662,7 +657,8 @@ def main():
if dictionary.get("status").status == QueryStatus.CLAIMED:
exists_counter += 1
file.write(dictionary["url_user"] + "\n")
file.write(f"Total Websites Username Detected On : {exists_counter}\n")
file.write(
f"Total Websites Username Detected On : {exists_counter}\n")
if args.csv:
result_file = f"{username}.csv"

@ -7,7 +7,7 @@ import json
import requests
class SiteInformation():
class SiteInformation:
def __init__(self, name, url_home, url_username_format, username_claimed,
username_unclaimed, information):
"""Create Site Information Object.
@ -69,7 +69,7 @@ class SiteInformation():
return f"{self.name} ({self.url_home})"
class SitesInformation():
class SitesInformation:
def __init__(self, data_file_path=None):
"""Create Sites Information Object.
@ -106,7 +106,7 @@ class SitesInformation():
if data_file_path is None:
# The default data file is the live data.json which is in the GitHub repo. The reason why we are using
# this instead of the local one is so that the user has the most up to date data. This prevents
# this instead of the local one is so that the user has the most up-to-date data. This prevents
# users from creating issue about false positives which has already been fixed or having outdated data
data_file_path = "https://raw.githubusercontent.com/sherlock-project/sherlock/master/sherlock/resources/data.json"
@ -119,21 +119,21 @@ class SitesInformation():
try:
response = requests.get(url=data_file_path)
except Exception as error:
raise FileNotFoundError(f"Problem while attempting to access "
f"data file URL '{data_file_path}': "
f"{str(error)}"
raise FileNotFoundError(
f"Problem while attempting to access data file URL '{data_file_path}': {error}"
)
if response.status_code != 200:
raise FileNotFoundError(f"Bad response while accessing "
f"data file URL '{data_file_path}'."
)
if response.status_code == 200:
try:
site_data = response.json()
except Exception as error:
raise ValueError(f"Problem parsing json contents at "
f"'{data_file_path}': {str(error)}."
)
else:
raise FileNotFoundError(f"Bad response while accessing "
f"data file URL '{data_file_path}'."
raise ValueError(
f"Problem parsing json contents at '{data_file_path}': {error}."
)
else:
# Reference is to a file.
try:
@ -141,17 +141,18 @@ class SitesInformation():
try:
site_data = json.load(file)
except Exception as error:
raise ValueError(f"Problem parsing json contents at "
f"'{data_file_path}': {str(error)}."
raise ValueError(
f"Problem parsing json contents at '{data_file_path}': {error}."
)
except FileNotFoundError as error:
except FileNotFoundError:
raise FileNotFoundError(f"Problem while attempting to access "
f"data file '{data_file_path}'."
)
self.sites = {}
# Add all of site information from the json file to internal site list.
# Add all site information from the json file to internal site list.
for site_name in site_data:
try:
@ -164,9 +165,8 @@ class SitesInformation():
site_data[site_name]
)
except KeyError as error:
raise ValueError(f"Problem parsing json contents at "
f"'{data_file_path}': "
f"Missing attribute {str(error)}."
raise ValueError(
f"Problem parsing json contents at '{data_file_path}': Missing attribute {error}."
)
return
@ -181,9 +181,7 @@ class SitesInformation():
List of strings containing names of sites.
"""
site_names = sorted([site.name for site in self], key=str.lower)
return site_names
return sorted([site.name for site in self], key=str.lower)
def __iter__(self):
"""Iterator For Object.

@ -3,9 +3,10 @@ This module generates the listing of supported sites
which can be found in sites.md
It also organizes all the sites in alphanumeric order
"""
import json
pool = list()
pool = []
with open("sherlock/resources/data.json", "r", encoding="utf-8") as data_file:
data = json.load(data_file)

@ -1,10 +1,11 @@
## List Of Supported Sites (323 Sites In Total!)
## List Of Supported Sites (368 Sites In Total!)
1. [2Dimensions](https://2Dimensions.com/)
1. [3dnews](http://forum.3dnews.ru/)
1. [7Cups](https://www.7cups.com/)
1. [9GAG](https://www.9gag.com/)
1. [About.me](https://about.me/)
1. [Academia.edu](https://www.academia.edu/)
1. [Airbit](https://airbit.com/)
1. [Airliners](https://www.airliners.net/)
1. [Alik.cz](https://www.alik.cz/)
1. [AllMyLinks](https://allmylinks.com/)
@ -19,13 +20,17 @@
1. [AskFM](https://ask.fm/)
1. [Atom Discussions](https://discuss.atom.io)
1. [Audiojungle](https://audiojungle.net/)
1. [Autofrage](https://www.autofrage.net/)
1. [Avizo](https://www.avizo.cz/)
1. [BLIP.fm](https://blip.fm/)
1. [BOOTH](https://booth.pm/)
1. [Bandcamp](https://www.bandcamp.com/)
1. [Bazar.cz](https://www.bazar.cz/)
1. [Behance](https://www.behance.net/)
1. [Bezuzyteczna](https://bezuzyteczna.pl)
1. [Bikemap](https://www.bikemap.net/)
1. [BinarySearch](https://binarysearch.io/)
1. [BioHacking](https://forum.dangerousthings.com/)
1. [BitBucket](https://bitbucket.org/)
1. [BitCoinForum](https://bitcoinforum.com)
1. [Bitwarden Forum](https://bitwarden.com/)
@ -45,8 +50,10 @@
1. [Chess](https://www.chess.com/)
1. [CloudflareCommunity](https://community.cloudflare.com/)
1. [Clozemaster](https://www.clozemaster.com)
1. [Clubhouse](https://www.clubhouse.com)
1. [Codecademy](https://www.codecademy.com/)
1. [Codechef](https://www.codechef.com/)
1. [Codeforces](https://www.codeforces.com/)
1. [Codepen](https://codepen.io/)
1. [Codewars](https://www.codewars.com)
1. [Coil](https://coil.com/)
@ -57,6 +64,7 @@
1. [Cracked](https://www.cracked.com/)
1. [Crevado](https://crevado.com/)
1. [Crowdin](https://crowdin.com/)
1. [Cryptomator Forum](https://community.cryptomator.org/)
1. [DEV Community](https://dev.to/)
1. [DailyMotion](https://www.dailymotion.com/)
1. [Designspiration](https://www.designspiration.net/)
@ -68,14 +76,16 @@
1. [Dribbble](https://dribbble.com/)
1. [Duolingo](https://duolingo.com/)
1. [Ello](https://ello.co/)
1. [Envato Forum](https://forums.envato.com/)
1. [Etsy](https://www.etsy.com/)
1. [Euw](https://euw.op.gg/)
1. [EyeEm](https://www.eyeem.com/)
1. [F3.cool](https://f3.cool/)
1. [Facebook](https://www.facebook.com/)
1. [Facenama](https://facenama.com/)
1. [Fameswap](https://fameswap.com/)
1. [FanCentro](https://fancentro.com/)
1. [Fandom](https://www.fandom.com/)
1. [Finanzfrage](https://www.finanzfrage.net/)
1. [Fiverr](https://www.fiverr.com/)
1. [Flickr](https://www.flickr.com/)
1. [Flightradar24](https://www.flightradar24.com/)
@ -86,22 +96,31 @@
1. [Freelance.habr](https://freelance.habr.com/)
1. [Freelancer](https://www.freelancer.com/)
1. [Freesound](https://freesound.org/)
1. [G2G](https://www.g2g.com/)
1. [GNOME VCS](https://gitlab.gnome.org/)
1. [Gab](https://gab.com)
1. [GaiaOnline](https://www.gaiaonline.com/)
1. [Gam1ng](https://gam1ng.com.br)
1. [Gamespot](https://www.gamespot.com/)
1. [Genius (Artists)](https://genius.com/)
1. [Genius (Users)](https://genius.com/)
1. [Gesundheitsfrage](https://www.gesundheitsfrage.net/)
1. [GetMyUni](https://getmyuni.com/)
1. [Ghost](https://ghost.org/)
1. [Giphy](https://giphy.com/)
1. [GitBook](https://gitbook.com/)
1. [GitHub](https://www.github.com/)
1. [GitHub Support Community](https://github.community)
1. [GitLab](https://gitlab.com/)
1. [Gitee](https://gitee.com/)
1. [GoodReads](https://www.goodreads.com/)
1. [Gradle](https://gradle.org/)
1. [Grailed](https://www.grailed.com/)
1. [Gravatar](http://en.gravatar.com/)
1. [Gumroad](https://www.gumroad.com/)
1. [GunsAndAmmo](https://gunsandammo.com/)
1. [GuruShots](https://gurushots.com/)
1. [Gutefrage](https://www.gutefrage.net/)
1. [HEXRPG](https://www.hexrpg.com/)
1. [HackTheBox](https://forum.hackthebox.eu/)
1. [Hackaday](https://hackaday.io/)
@ -118,11 +137,14 @@
1. [Imgur](https://imgur.com/)
1. [Instagram](https://www.instagram.com/)
1. [Instructables](https://www.instructables.com/)
1. [Ionic Forum](https://forum.ionicframework.com/)
1. [Issuu](https://issuu.com/)
1. [Itch.io](https://itch.io/)
1. [Itemfix](https://www.itemfix.com/)
1. [Jellyfin Weblate](https://translate.jellyfin.org/)
1. [Jimdo](https://jimdosite.com/)
1. [Joplin Forum](https://discourse.joplinapp.org/)
1. [KEAKR](https://www.keakr.com/)
1. [Kaggle](https://www.kaggle.com/)
1. [Keybase](https://keybase.io/)
1. [Kik](http://kik.me/)
@ -130,15 +152,21 @@
1. [LOR](https://linux.org.ru/)
1. [Launchpad](https://launchpad.net/)
1. [LeetCode](https://leetcode.com/)
1. [LessWrong](https://www.lesswrong.com/)
1. [Letterboxd](https://letterboxd.com/)
1. [Lichess](https://lichess.org)
1. [Linktree](https://linktr.ee/)
1. [Listed](https://listed.to/)
1. [LiveJournal](https://www.livejournal.com/)
1. [Lobsters](https://lobste.rs/)
1. [Lolchess](https://lolchess.gg/)
1. [LottieFiles](https://lottiefiles.com/)
1. [Mapify](https://mapify.travel/)
1. [Medium](https://medium.com/)
1. [Memrise](https://www.memrise.com/)
1. [Minecraft](https://minecraft.net/)
1. [MixCloud](https://www.mixcloud.com/)
1. [Motorradfrage](https://www.motorradfrage.net/)
1. [Munzee](https://www.munzee.com/)
1. [MyAnimeList](https://myanimelist.net/)
1. [MyMiniFactory](https://www.myminifactory.com/)
@ -147,12 +175,14 @@
1. [NationStates Nation](https://nationstates.net)
1. [NationStates Region](https://nationstates.net)
1. [Naver](https://naver.com)
1. [Needrom](https://www.needrom.com/)
1. [Newgrounds](https://newgrounds.com)
1. [Nextcloud Forum](https://nextcloud.com/)
1. [Nightbot](https://nightbot.tv/)
1. [Ninja Kiwi](https://ninjakiwi.com/)
1. [NotABug.org](https://notabug.org/)
1. [Nyaa.si](https://nyaa.si/)
1. [OGUsers](https://ogusers.com/)
1. [OK](https://ok.ru/)
1. [OnlyFans](https://onlyfans.com/)
1. [OpenStreetMap](https://www.openstreetmap.org/)
@ -173,6 +203,7 @@
1. [Pokemon Showdown](https://pokemonshowdown.com)
1. [Polarsteps](https://polarsteps.com/)
1. [Polygon](https://www.polygon.com/)
1. [Polymart](https://polymart.org/)
1. [Pornhub](https://pornhub.com/)
1. [ProductHunt](https://www.producthunt.com/)
1. [PromoDJ](http://promodj.com/)
@ -181,8 +212,10 @@
1. [Raidforums](https://raidforums.com/)
1. [Rajce.net](https://www.rajce.idnes.cz/)
1. [Rate Your Music](https://rateyourmusic.com/)
1. [Rclone Forum](https://forum.rclone.org/)
1. [Redbubble](https://www.redbubble.com/)
1. [Reddit](https://www.reddit.com/)
1. [Reisefrage](https://www.reisefrage.net/)
1. [Replit.com](https://replit.com/)
1. [ResearchGate](https://www.researchgate.net/)
1. [ReverbNation](https://www.reverbnation.com/)
@ -190,10 +223,12 @@
1. [RoyalCams](https://royalcams.com)
1. [RubyGems](https://rubygems.org/)
1. [RuneScape](https://www.runescape.com/)
1. [SWAPD](https://swapd.co/)
1. [Sbazar.cz](https://www.sbazar.cz/)
1. [Scratch](https://scratch.mit.edu/)
1. [Scribd](https://www.scribd.com/)
1. [ShitpostBot5000](https://www.shitpostbot.com/)
1. [Shpock](https://www.shpock.com/)
1. [Signal](https://community.signalusers.org)
1. [Slack](https://slack.com)
1. [Slant](https://www.slant.co/)
@ -206,8 +241,10 @@
1. [SourceForge](https://sourceforge.net/)
1. [SoylentNews](https://soylentnews.org)
1. [Speedrun.com](https://speedrun.com/)
1. [Splice](https://splice.com/)
1. [Splits.io](https://splits.io)
1. [Sporcle](https://www.sporcle.com/)
1. [Sportlerfrage](https://www.sportlerfrage.net/)
1. [SportsRU](https://www.sports.ru/)
1. [Spotify](https://open.spotify.com/)
1. [Star Citizen](https://robertsspaceindustries.com/)
@ -217,9 +254,11 @@
1. [SublimeForum](https://forum.sublimetext.com/)
1. [TETR.IO](https://tetr.io)
1. [TLDR Legal](https://tldrlegal.com/)
1. [TRAKTRAIN](https://traktrain.com/)
1. [Telegram](https://t.me/)
1. [Tellonym.me](https://tellonym.me/)
1. [Tenor](https://tenor.com/)
1. [ThemeForest](https://themeforest.net/)
1. [TikTok](https://tiktok.com/)
1. [Tinder](https://tinder.com/)
1. [TradingView](https://www.tradingview.com/)
@ -254,6 +293,7 @@
1. [WordPress](https://wordpress.com)
1. [WordPressOrg](https://wordpress.org/)
1. [Wordnik](https://www.wordnik.com/)
1. [Wykop](https://www.wykop.pl)
1. [Xbox Gamertag](https://xboxgamertag.com/)
1. [Xvideos](https://xvideos.com/)
1. [YouNow](https://www.younow.com/)
@ -272,6 +312,8 @@
1. [datingRU](http://dating.ru)
1. [devRant](https://devrant.com/)
1. [drive2](https://www.drive2.ru/)
1. [eBay.com](https://www.ebay.com/)
1. [eBay.de](https://www.ebay.de/)
1. [eGPU](https://egpu.io/)
1. [eintracht](https://eintracht.de)
1. [fixya](https://www.fixya.com)
@ -315,6 +357,7 @@
1. [prog.hu](https://prog.hu/)
1. [radio_echo_msk](https://echo.msk.ru/)
1. [satsisRU](https://satsis.info/)
1. [skyrock](https://skyrock.com/)
1. [social.tchncs.de](https://social.tchncs.de/)
1. [spletnik](https://spletnik.ru/)
1. [svidbook](https://www.svidbook.ru/)
@ -322,4 +365,5 @@
1. [uid](https://uid.me/)
1. [wiki.vg](https://wiki.vg/)
1. [xHamster](https://xhamster.com)
1. [znanylekarz.pl](https://znanylekarz.pl)
1. [zoomit](https://www.zoomit.ir)

Loading…
Cancel
Save