diff --git a/docs/README.md b/docs/README.md
index 7f8b02829..a0ef09510 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -23,17 +23,17 @@
> [!WARNING]
> Packages for ParrotOS and Ubuntu 24.04, maintained by a third party, appear to be __broken__.
-> Users of these systems should defer to pipx/pip or Docker.
+> Users of these systems should defer to [`uv`](https://docs.astral.sh/uv/)/`pipx`/`pip` or Docker.
| Method | Notes |
| - | - |
-| `pipx install sherlock-project` | `pip` may be used in place of `pipx` |
+| `pipx install sherlock-project` | `pip` or [`uv`](https://docs.astral.sh/uv/) may be used in place of `pipx` |
| `docker run -it --rm sherlock/sherlock` |
| `dnf install sherlock-project` | |
Community-maintained packages are available for Debian (>= 13), Ubuntu (>= 22.10), Homebrew, Kali, and BlackArch. These packages are not directly supported or maintained by the Sherlock Project.
-See all alternative installation methods [here](https://sherlockproject.xyz/installation)
+See all alternative installation methods [here](https://sherlockproject.xyz/installation).
## General usage
@@ -51,70 +51,42 @@ Accounts found will be stored in an individual text file with the corresponding
```console
$ sherlock --help
-usage: sherlock [-h] [--version] [--verbose] [--folderoutput FOLDEROUTPUT]
- [--output OUTPUT] [--tor] [--unique-tor] [--csv] [--xlsx]
- [--site SITE_NAME] [--proxy PROXY_URL] [--json JSON_FILE]
- [--timeout TIMEOUT] [--print-all] [--print-found] [--no-color]
- [--browse] [--local] [--nsfw]
+usage: sherlock [-h] [--version] [--verbose] [--folderoutput FOLDEROUTPUT] [--output OUTPUT] [--csv] [--xlsx] [--site SITE_NAME] [--proxy PROXY_URL] [--dump-response]
+ [--json JSON_FILE] [--timeout TIMEOUT] [--print-all] [--print-found] [--no-color] [--browse] [--local] [--nsfw] [--txt] [--ignore-exclusions]
USERNAMES [USERNAMES ...]
-Sherlock: Find Usernames Across Social Networks (Version 0.14.3)
+Sherlock: Find Usernames Across Social Networks (Version 0.16.0)
positional arguments:
- USERNAMES One or more usernames to check with social networks.
- Check similar usernames using {?} (replace to '_', '-', '.').
+ USERNAMES One or more usernames to check with social networks. Check similar usernames using {?} (replace to '_', '-', '.').
-optional arguments:
+options:
-h, --help show this help message and exit
--version Display version information and dependencies.
--verbose, -v, -d, --debug
Display extra debugging information and metrics.
--folderoutput FOLDEROUTPUT, -fo FOLDEROUTPUT
- If using multiple usernames, the output of the results will be
- saved to this folder.
+ If using multiple usernames, the output of the results will be saved to this folder.
--output OUTPUT, -o OUTPUT
- If using single username, the output of the result will be saved
- to this file.
- --tor, -t Make requests over Tor; increases runtime; requires Tor to be
- installed and in system path.
- --unique-tor, -u Make requests over Tor with new Tor circuit after each request;
- increases runtime; requires Tor to be installed and in system
- path.
+ If using single username, the output of the result will be saved to this file.
--csv Create Comma-Separated Values (CSV) File.
- --xlsx Create the standard file for the modern Microsoft Excel
- spreadsheet (xlsx).
- --site SITE_NAME Limit analysis to just the listed sites. Add multiple options to
- specify more than one site.
+ --xlsx Create the standard file for the modern Microsoft Excel spreadsheet (xlsx).
+ --site SITE_NAME Limit analysis to just the listed sites. Add multiple options to specify more than one site.
--proxy PROXY_URL, -p PROXY_URL
Make requests over a proxy. e.g. socks5://127.0.0.1:1080
+ --dump-response Dump the HTTP response to stdout for targeted debugging.
--json JSON_FILE, -j JSON_FILE
- Load data from a JSON file or an online, valid, JSON file.
+ Load data from a JSON file or an online, valid, JSON file. Upstream PR numbers also accepted.
--timeout TIMEOUT Time (in seconds) to wait for response to requests (Default: 60)
--print-all Output sites where the username was not found.
- --print-found Output sites where the username was found.
+ --print-found Output sites where the username was found (also if exported as file).
--no-color Don't color terminal output
--browse, -b Browse to all results on default browser.
--local, -l Force the use of the local data.json file.
--nsfw Include checking of NSFW sites from default list.
+ --txt Enable creation of a txt file
+ --ignore-exclusions Ignore upstream exclusions (may return more false positives)
```
-## Apify Actor Usage [](https://apify.com/netmilk/sherlock?fpr=sherlock)
-
-
-
-You can run Sherlock in the cloud without installation using the [Sherlock Actor](https://apify.com/netmilk/sherlock?fpr=sherlock) on [Apify](https://apify.com?fpr=sherlock) free of charge.
-
-``` bash
-$ echo '{"usernames":["user123"]}' | apify call -so netmilk/sherlock
-[{
- "username": "user123",
- "links": [
- "https://www.1337x.to/user/user123/",
- ...
- ]
-}]
-```
-
-Read more about the [Sherlock Actor](../.actor/README.md), including how to use it programmatically via the Apify [API](https://apify.com/netmilk/sherlock/api?fpr=sherlock), [CLI](https://docs.apify.com/cli/?fpr=sherlock) and [JS/TS and Python SDKs](https://docs.apify.com/sdk?fpr=sherlock).
## Credits
@@ -135,7 +107,7 @@ Thank you to everyone who has contributed to Sherlock! ❤️
## License
MIT © Sherlock Project
-Original Creator - [Siddharth Dushantha](https://github.com/sdushantha)
+Creator - [Siddharth Dushantha](https://github.com/sdushantha)
diff --git a/sherlock_project/notify.py b/sherlock_project/notify.py
index f6c785d63..ab6f5a386 100644
--- a/sherlock_project/notify.py
+++ b/sherlock_project/notify.py
@@ -37,7 +37,6 @@ def __init__(self, result=None):
self.result = result
- # return
def start(self, message=None):
"""Notify Start.
@@ -56,7 +55,6 @@ def start(self, message=None):
Nothing.
"""
- # return
def update(self, result):
"""Notify Update.
@@ -75,7 +73,6 @@ def update(self, result):
self.result = result
- # return
def finish(self, message=None):
"""Notify Finish.
@@ -94,7 +91,6 @@ def finish(self, message=None):
Nothing.
"""
- # return
def __str__(self):
"""Convert Object To String.
@@ -137,7 +133,6 @@ def __init__(self, result=None, verbose=False, print_all=False, browse=False):
self.print_all = print_all
self.browse = browse
- return
def start(self, message):
"""Notify Start.
@@ -163,7 +158,6 @@ def start(self, message):
# An empty line between first line and the result(more clear output)
print('\r')
- return
def countResults(self):
"""This function counts the number of results. Every time the function is called,
@@ -238,7 +232,7 @@ def update(self, result):
Fore.WHITE + "]" +
Fore.GREEN + f" {self.result.site_name}:" +
Fore.YELLOW + f" {msg}")
-
+
elif result.status == QueryStatus.WAF:
if self.print_all:
print(Style.BRIGHT + Fore.WHITE + "[" +
@@ -254,10 +248,9 @@ def update(self, result):
f"Unknown Query Status '{result.status}' for site '{self.result.site_name}'"
)
- return
def finish(self, message="The processing has been finished."):
- """Notify Start.
+ """Notify Finish.
Will print the last line to the standard output.
Keyword Arguments:
self -- This object.
diff --git a/sherlock_project/sherlock.py b/sherlock_project/sherlock.py
index f78d4b8ca..a284f47ad 100644
--- a/sherlock_project/sherlock.py
+++ b/sherlock_project/sherlock.py
@@ -675,16 +675,6 @@ def main():
help="Include checking of NSFW sites from default list.",
)
- # TODO deprecated in favor of --txt, retained for workflow compatibility, to be removed
- # in future release
- parser.add_argument(
- "--no-txt",
- action="store_true",
- dest="no_txt",
- default=False,
- help="Disable creation of a txt file - WILL BE DEPRECATED",
- )
-
parser.add_argument(
"--txt",
action="store_true",
diff --git a/sherlock_project/sites.py b/sherlock_project/sites.py
index b7aaf4c58..c42554bac 100644
--- a/sherlock_project/sites.py
+++ b/sherlock_project/sites.py
@@ -8,7 +8,7 @@
import secrets
-MANIFEST_URL = "https://raw.githubusercontent.com/sherlock-project/sherlock/master/sherlock_project/resources/data.json"
+MANIFEST_URL = "https://data.sherlockproject.xyz"
EXCLUSIONS_URL = "https://raw.githubusercontent.com/sherlock-project/sherlock/refs/heads/exclusions/false_positive_exclusions.txt"
class SiteInformation:
@@ -121,11 +121,6 @@ def __init__(
# users from creating issue about false positives which has already been fixed or having outdated data
data_file_path = MANIFEST_URL
- # Ensure that specified data file has correct extension.
- if not data_file_path.lower().endswith(".json"):
- raise FileNotFoundError(f"Incorrect JSON file extension for data file '{data_file_path}'.")
-
- # if "http://" == data_file_path[:7].lower() or "https://" == data_file_path[:8].lower():
if data_file_path.lower().startswith("http"):
# Reference is to a URL.
try: