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 [![Sherlock Actor](https://apify.com/actor-badge?actor=netmilk/sherlock)](https://apify.com/netmilk/sherlock?fpr=sherlock) - -Run Sherlock Actor on Apify - -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: