diff --git a/README.md b/README.md
index c6fc11fa..57068d30 100644
--- a/README.md
+++ b/README.md
@@ -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.
diff --git a/removed_sites.json b/removed_sites.json
index 94953c07..1070391c 100644
--- a/removed_sites.json
+++ b/removed_sites.json
@@ -519,14 +519,6 @@
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
- "Ebay": {
- "errorMsg": "
eBay Profile - error",
- "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/{}",
@@ -651,5 +643,14 @@
"urlMain": "https://plug.dj/",
"username_claimed": "plug-dj-rock",
"username_unclaimed": "noonewouldeverusethis7"
+ },
+ "Facenama": {
+ "errorType": "response_url",
+ "errorUrl": "https://facenama.com/404.html",
+ "regexCheck": "^[-a-zA-Z0-9_]+$",
+ "url": "https://facenama.com/{}",
+ "urlMain": "https://facenama.com/",
+ "username_claimed": "blue",
+ "username_unclaimed": "noonewouldeverusethis77"
}
}
diff --git a/removed_sites.md b/removed_sites.md
index 49af1bce..20283dc1 100644
--- a/removed_sites.md
+++ b/removed_sites.md
@@ -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": "eBay Profile - error",
- "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.
@@ -1264,3 +1250,18 @@ As of 2021-12-02, plug.dj is returning false positives because the service is do
"username_unclaimed": "noonewouldeverusethis7"
}
```
+
+## Facenama
+
+As of 2022-02-6, Facenama seems to be down their rebuilding their site
+```
+ "Facenama": {
+ "errorType": "response_url",
+ "errorUrl": "https://facenama.com/404.html",
+ "regexCheck": "^[-a-zA-Z0-9_]+$",
+ "url": "https://facenama.com/{}",
+ "urlMain": "https://facenama.com/",
+ "username_claimed": "blue",
+ "username_unclaimed": "noonewouldeverusethis77"
+ },
+```
diff --git a/sherlock/__init__.py b/sherlock/__init__.py
index b0894c8b..219dcaec 100644
--- a/sherlock/__init__.py
+++ b/sherlock/__init__.py
@@ -1,5 +1,6 @@
-"""Sherlock Module
+""" Sherlock Module
This module contains the main logic to search for usernames at social
networks.
+
"""
diff --git a/sherlock/__main__.py b/sherlock/__main__.py
index 91140be5..c66a533e 100644
--- a/sherlock/__main__.py
+++ b/sherlock/__main__.py
@@ -20,7 +20,8 @@ if __name__ == "__main__":
major = sys.version_info[0]
minor = sys.version_info[1]
- python_version = str(sys.version_info[0])+"."+str(sys.version_info[1])+"."+str(sys.version_info[2])
+ python_version = str(
+ sys.version_info[0])+"."+str(sys.version_info[1])+"."+str(sys.version_info[2])
if major != 3 or major == 3 and minor < 6:
print("Sherlock requires Python 3.6+\nYou are using Python %s, which is not supported by Sherlock" % (python_version))
diff --git a/sherlock/notify.py b/sherlock/notify.py
index 79dc9b08..5c4f1b3b 100644
--- a/sherlock/notify.py
+++ b/sherlock/notify.py
@@ -4,7 +4,7 @@ This module defines the objects for notifying the caller about the
results of queries.
"""
from result import QueryStatus
-from colorama import Fore, Style, init
+from colorama import Fore, Style
class QueryNotify:
@@ -110,7 +110,7 @@ class QueryNotifyPrint(QueryNotify):
Query notify class that prints results.
"""
- def __init__(self, result=None, verbose=False, color=True, print_all=False):
+ def __init__(self, result=None, verbose=False, print_all=False):
"""Create Query Notify Print Object.
Contains information about a specific method of notifying the results
@@ -122,19 +122,14 @@ class QueryNotifyPrint(QueryNotify):
results for this query.
verbose -- Boolean indicating whether to give verbose output.
print_all -- Boolean indicating whether to only print all sites, including not found.
- color -- Boolean indicating whether to color terminal output
Return Value:
Nothing.
"""
- # Colorama module's initialization.
- init(autoreset=True)
-
super().__init__(result)
self.verbose = verbose
self.print_all = print_all
- self.color = color
return
@@ -153,14 +148,40 @@ class QueryNotifyPrint(QueryNotify):
"""
title = "Checking username"
- if self.color:
- print(Style.BRIGHT + Fore.GREEN + "[" +
- Fore.YELLOW + "*" +
- Fore.GREEN + f"] {title}" +
- Fore.WHITE + f" {message}" +
- Fore.GREEN + " on:")
- else:
- print(f"[*] {title} {message} on:")
+
+ 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
@@ -186,53 +207,41 @@ class QueryNotifyPrint(QueryNotify):
# Output to the terminal is desired.
if result.status == QueryStatus.CLAIMED:
- if self.color:
- print((Style.BRIGHT + Fore.WHITE + "[" +
- Fore.GREEN + "+" +
- Fore.WHITE + "]" +
- response_time_text +
- Fore.GREEN +
- f" {self.result.site_name}: " +
- Style.RESET_ALL +
- f"{self.result.site_url_user}"))
- else:
- print(f"[+]{response_time_text} {self.result.site_name}: {self.result.site_url_user}")
+ print(Style.BRIGHT + Fore.WHITE + "[" +
+ Fore.GREEN + "+" +
+ Fore.WHITE + "]" +
+ response_time_text +
+ Fore.GREEN +
+ f" {self.result.site_name}: " +
+ Style.RESET_ALL +
+ f"{self.result.site_url_user}")
elif result.status == QueryStatus.AVAILABLE:
if self.print_all:
- if self.color:
- print((Style.BRIGHT + Fore.WHITE + "[" +
- Fore.RED + "-" +
- Fore.WHITE + "]" +
- response_time_text +
- Fore.GREEN + f" {self.result.site_name}:" +
- Fore.YELLOW + " Not Found!"))
- else:
- print(f"[-]{response_time_text} {self.result.site_name}: Not Found!")
+ print(Style.BRIGHT + Fore.WHITE + "[" +
+ Fore.RED + "-" +
+ Fore.WHITE + "]" +
+ response_time_text +
+ Fore.GREEN + f" {self.result.site_name}:" +
+ Fore.YELLOW + " Not Found!")
elif result.status == QueryStatus.UNKNOWN:
if self.print_all:
- if self.color:
- print((Style.BRIGHT + Fore.WHITE + "[" +
- Fore.RED + "-" +
- Fore.WHITE + "]" +
- Fore.GREEN + f" {self.result.site_name}:" +
- Fore.RED + f" {self.result.context}" +
- Fore.YELLOW + ' '))
- else:
- print(f"[-] {self.result.site_name}: {self.result.context} ")
+ print(Style.BRIGHT + Fore.WHITE + "[" +
+ Fore.RED + "-" +
+ Fore.WHITE + "]" +
+ Fore.GREEN + f" {self.result.site_name}:" +
+ Fore.RED + f" {self.result.context}" +
+ Fore.YELLOW + f" ")
elif result.status == QueryStatus.ILLEGAL:
if self.print_all:
msg = "Illegal Username Format For This Site!"
- if self.color:
- print((Style.BRIGHT + Fore.WHITE + "[" +
- Fore.RED + "-" +
- Fore.WHITE + "]" +
- Fore.GREEN + f" {self.result.site_name}:" +
- Fore.YELLOW + f" {msg}"))
- else:
- print(f"[-] {self.result.site_name} {msg}")
+ print(Style.BRIGHT + Fore.WHITE + "[" +
+ Fore.RED + "-" +
+ Fore.WHITE + "]" +
+ Fore.GREEN + f" {self.result.site_name}:" +
+ Fore.YELLOW + f" {msg}")
else:
# It should be impossible to ever get here...
diff --git a/sherlock/resources/data.json b/sherlock/resources/data.json
index 763b1989..531cc3c6 100644
--- a/sherlock/resources/data.json
+++ b/sherlock/resources/data.json
@@ -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}$",
@@ -339,7 +374,7 @@
"username_unclaimed": "noonewouldeverusethis77777"
},
"Chess": {
- "errorMsg": "usernameSuggestions",
+ "errorMsg": "\"valid\": false",
"errorType": "message",
"regexCheck": "^[a-z1-9]{3,25}$",
"url": "https://www.chess.com/member/{}",
@@ -363,8 +398,16 @@
"username_claimed": "green",
"username_unclaimed": "noonewouldeverusethis7"
},
- "Codecademy": {
+ "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",
"url": "https://www.codecademy.com/profiles/{}",
"urlMain": "https://www.codecademy.com/",
"username_claimed": "blue",
@@ -378,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/{}",
@@ -462,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_-]*$",
@@ -547,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/{}",
@@ -585,14 +650,12 @@
"username_claimed": "hackerman",
"username_unclaimed": "noonewouldeverusethis7"
},
- "Facenama": {
- "errorType": "response_url",
- "errorUrl": "https://facenama.com/404.html",
- "regexCheck": "^[-a-zA-Z0-9_]+$",
- "url": "https://facenama.com/{}",
- "urlMain": "https://facenama.com/",
- "username_claimed": "blue",
- "username_unclaimed": "noonewouldeverusethis77"
+ "Fameswap": {
+ "errorType": "status_code",
+ "url": "https://fameswap.com/user/{}",
+ "urlMain": "https://fameswap.com/",
+ "username_claimed": "fameswap",
+ "username_unclaimed": "noonewouldeverusethis7"
},
"FanCentro": {
"errorMsg": "var environment",
@@ -609,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",
@@ -694,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/{}",
@@ -703,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",
@@ -725,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/{}",
@@ -732,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/{}",
@@ -739,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}$",
@@ -786,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": "^((?!\\.).)*$",
@@ -795,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/",
@@ -816,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",
@@ -942,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/{}",
@@ -980,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/{}",
@@ -1033,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",
@@ -1056,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_-]*$",
@@ -1080,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": "",
"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",
diff --git a/sherlock/sherlock.py b/sherlock/sherlock.py
index 57ca80c2..8ee9b325 100644
--- a/sherlock/sherlock.py
+++ b/sherlock/sherlock.py
@@ -23,6 +23,7 @@ from result import QueryStatus
from result import QueryResult
from notify import QueryNotifyPrint
from sites import SitesInformation
+from colorama import init
module_name = "Sherlock: Find Usernames Across Social Networks"
__version__ = "0.14.0"
@@ -328,6 +329,7 @@ def sherlock(username, site_data, query_notify,
# Get the expected error type
error_type = net_info["errorType"]
+ error_code = net_info.get("errorCode")
# Retrieve future and ensure it has finished
future = net_info["request_future"]
@@ -392,8 +394,15 @@ def sherlock(username, site_data, query_notify,
QueryStatus.AVAILABLE,
query_time=response_time)
elif error_type == "status_code":
+ # Checks if the Status Code is equal to the optional "errorCode" given in 'data.json'
+ if error_code == r.status_code:
+ result = QueryResult(username,
+ social_network,
+ url,
+ QueryStatus.AVAILABLE,
+ query_time=response_time)
# Checks if the status code of the response is 2XX
- if not r.status_code >= 300 or r.status_code < 200:
+ elif not r.status_code >= 300 or r.status_code < 200:
result = QueryResult(username,
social_network,
url,
@@ -468,7 +477,8 @@ 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
@@ -553,7 +563,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__
@@ -579,6 +590,13 @@ def main():
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.
+ init(strip=True, convert=False)
+ else:
+ # Enable color output.
+ init(autoreset=True)
+
# Check if both output methods are entered as input.
if args.output is not None and args.folderoutput is not None:
print("You can only use one of the output methods.")
@@ -592,7 +610,8 @@ def main():
# 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:
@@ -623,7 +642,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)
@@ -631,8 +651,7 @@ def main():
# Create notify object for query results.
query_notify = QueryNotifyPrint(result=None,
verbose=args.verbose,
- print_all=args.print_all,
- color=not args.no_color)
+ print_all=args.print_all)
# Run report on all specified users.
for username in args.username:
@@ -661,7 +680,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"
diff --git a/sherlock/sites.py b/sherlock/sites.py
index c706110d..431ac2f9 100644
--- a/sherlock/sites.py
+++ b/sherlock/sites.py
@@ -65,7 +65,7 @@ class SiteInformation:
Return Value:
Nicely formatted string to get information about this object.
"""
-
+
return f"{self.name} ({self.url_home})"
diff --git a/sites.md b/sites.md
index 47efb761..1ca8c061 100644
--- a/sites.md
+++ b/sites.md
@@ -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)