Merge branch 'master' into boingboing

pull/1589/head
Rhythm Bansal 2 years ago committed by GitHub
commit ff1686152b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: [3.6, 3.7, 3.8] python-version: [3.7, 3.8]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2

@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
python-version: [3.6] python-version: [3.8]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2

@ -133,9 +133,11 @@ Use the following command to access the saved results:
docker run --rm -t -v "$PWD/results:/opt/sherlock/results" mysherlock-image -o /opt/sherlock/results/text.txt user123 docker run --rm -t -v "$PWD/results:/opt/sherlock/results" mysherlock-image -o /opt/sherlock/results/text.txt user123
``` ```
The ```-v "$PWD/results:/opt/sherlock/results"``` options tell docker to create (or use) the folder `results` in the <!-- The ```-v "$PWD/results:/opt/sherlock/results"``` options tell docker to create (or use) the folder `results` in the
present working directory and to mount it at `/opt/sherlock/results` on the docker container. present working directory and to mount it at `/opt/sherlock/results` on the docker container.
The `-o /opt/sherlock/results/text.txt` option tells `sherlock` to output the result. The `-o /opt/sherlock/results/text.txt` option tells `sherlock` to output the result. -->
Docker is instructed to create (or use) the folder `results` in the current working directory and to mount it at `/opt/sherlock/results` on the docker container by using the ```-v "$PWD/results:/opt/sherlock/results"``` options. `Sherlock` is instructed to export the result using the `-o /opt/sherlock/results/text.txt` option.
Or you can use "Docker Hub" to run `sherlock`: Or you can use "Docker Hub" to run `sherlock`:
``` ```

@ -651,13 +651,6 @@
"username_claimed": "blue", "username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
"Spotify": {
"errorType": "status_code",
"url": "https://open.spotify.com/user/{}",
"urlMain": "https://open.spotify.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
"Steam": { "Steam": {
"errorMsg": "The specified profile could not be found", "errorMsg": "The specified profile could not be found",
"errorType": "message", "errorType": "message",
@ -777,5 +770,38 @@
"urlMain": "https://g.dev/", "urlMain": "https://g.dev/",
"username_claimed": "blue", "username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
},
"mastodon.technology": {
"errorType": "status_code",
"url": "https://mastodon.technology/@{}",
"urlMain": "https://mastodon.xyz/",
"username_claimed": "ashfurrow",
"username_unclaimed": "noonewouldeverusethis7"
},
"Arduino": {
"errorMsg":"<title>Arduino Cloud</title>",
"errorType": "message",
"regexCheck": "^(?![_-])[A-Za-z0-9_-]{3,}$",
"url": "https://projecthub.arduino.cc/{}",
"urlMain": "https://www.arduino.cc/",
"username_claimed": "blue",
"username_unclaimed": "noonewould"
},
"zoomit": {
"errorMsg": "\u0645\u062a\u0627\u0633\u0641\u0627\u0646\u0647 \u0635\u0641\u062d\u0647 \u06cc\u0627\u0641\u062a \u0646\u0634\u062f",
"errorType": "message",
"url": "https://www.zoomit.ir/user/{}",
"urlMain": "https://www.zoomit.ir",
"username_claimed": "kossher",
"username_unclaimed": "noonewouldeverusethis7"
},
"Facebook": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z0-9\\.]{3,49}(?<!\\.com|\\.org|\\.net)$",
"url": "https://www.facebook.com/{}",
"urlMain": "https://www.facebook.com/",
"urlProbe": "https://www.facebook.com/{}/videos/",
"username_claimed": "hackerman",
"username_unclaimed": "noonewouldeverusethis7"
} }
} }

@ -685,7 +685,7 @@ If an alternative way to check for usernames is found then it will added.
``` ```
## YandexCollection ## YandexCollection
As of 2020-08-11, YandexCollection presents us with a rechapta which prevents us from checking for usernames As of 2020-08-11, YandexCollection presents us with a recaptcha which prevents us from checking for usernames
```json ```json
"YandexCollection": { "YandexCollection": {
"errorType": "status_code", "errorType": "status_code",
@ -1009,7 +1009,7 @@ As of 2021-06-27, GDProfiles takes way too long to respond. Must be an issue on
## AllTrails ## AllTrails
As of 2021-06-27, AllTrails has a chapta which prevents us from checking for usernames on the site. As of 2021-06-27, AllTrails has a captcha which prevents us from checking for usernames on the site.
```json ```json
"AllTrails": { "AllTrails": {
"errorMsg": "class=\"home index\"", "errorMsg": "class=\"home index\"",
@ -1067,7 +1067,7 @@ As of 2021-06-27, Kali Community requires us to be logged in order to check if a
## NameMC ## NameMC
As of 2021-06-27, NameMC uses chapta through CloudFlare which prevents us from checking if usernames exists on the site. As of 2021-06-27, NameMC uses captcha through CloudFlare which prevents us from checking if usernames exists on the site.
```json ```json
"NameMC (Minecraft.net skins)": { "NameMC (Minecraft.net skins)": {
@ -1082,7 +1082,7 @@ As of 2021-06-27, NameMC uses chapta through CloudFlare which prevents us from c
## SteamID ## SteamID
As of 2021-06-27, Steam uses chapta through CloudFlare which prevents us from checking if usernames exists on the site. As of 2021-06-27, Steam uses captcha through CloudFlare which prevents us from checking if usernames exists on the site.
```json ```json
"Steamid": { "Steamid": {
"errorMsg": "<link rel=\"canonical\" href=\"https://steamid.uk\" />", "errorMsg": "<link rel=\"canonical\" href=\"https://steamid.uk\" />",
@ -1330,19 +1330,6 @@ As og 2022-05-01, Countable returns false positives
}, },
``` ```
## Spotify
As og 2022-05-01, Spotify returns false positives
```json
"Spotify": {
"errorType": "status_code",
"url": "https://open.spotify.com/user/{}",
"urlMain": "https://open.spotify.com/",
"username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7"
},
```
## Steam ## Steam
As og 2022-05-01, Steam returns false positives As og 2022-05-01, Steam returns false positives
@ -1550,3 +1537,60 @@ As of 09.10.2022, Google Developer returns false positives. The site is dynamic
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
``` ```
## mastodon.technology
As of 18.12.2022, mastodon.technology has no A/AAAA records and the [website was shut down by the owner](https://ashfurrow.com/blog/mastodon-technology-shutdown/).
```json
"mastodon.technology": {
"errorType": "status_code",
"url": "https://mastodon.technology/@{}",
"urlMain": "https://mastodon.xyz/",
"username_claimed": "ashfurrow",
"username_unclaimed": "noonewouldeverusethis7"
},
```
## Aruino
As of 04.02.2023, Arduino returns false positives. Finding a fix is doable but takes some time. Will be fixed later
```json
"Arduino": {
"errorMsg":"<title>Arduino Cloud</title>",
"errorType": "message",
"regexCheck": "^(?![_-])[A-Za-z0-9_-]{3,}$",
"url": "https://projecthub.arduino.cc/{}",
"urlMain": "https://www.arduino.cc/",
"username_claimed": "blue",
"username_unclaimed": "noonewould"
},
```
## Zoomit
As of 04.02.2023, Zoomit return false positves. An attempt at finding a fix was made but a lot of time was used without luck. Therefore, it wont be prioritized at the moment.
```json
"zoomit": {
"errorMsg": "\u0645\u062a\u0627\u0633\u0641\u0627\u0646\u0647 \u0635\u0641\u062d\u0647 \u06cc\u0627\u0641\u062a \u0646\u0634\u062f",
"errorType": "message",
"url": "https://www.zoomit.ir/user/{}",
"urlMain": "https://www.zoomit.ir",
"username_claimed": "kossher",
"username_unclaimed": "noonewouldeverusethis7"
},
```
## Facebook
As of 04.02.2023, Facebook returns false positives because we get prompted with the login screen to view the data
```json
"Facebook": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z0-9\\.]{3,49}(?<!\\.com|\\.org|\\.net)$",
"url": "https://www.facebook.com/{}",
"urlMain": "https://www.facebook.com/",
"urlProbe": "https://www.facebook.com/{}/videos/",
"username_claimed": "hackerman",
"username_unclaimed": "noonewouldeverusethis7"
},
```

@ -5,6 +5,7 @@ results of queries.
""" """
from result import QueryStatus from result import QueryStatus
from colorama import Fore, Style from colorama import Fore, Style
import webbrowser
globvar = 0 # global variable to count the number of results. globvar = 0 # global variable to count the number of results.
class QueryNotify: class QueryNotify:
@ -109,7 +110,7 @@ class QueryNotifyPrint(QueryNotify):
Query notify class that prints results. Query notify class that prints results.
""" """
def __init__(self, result=None, verbose=False, print_all=False): def __init__(self, result=None, verbose=False, print_all=False, browse=False):
"""Create Query Notify Print Object. """Create Query Notify Print Object.
Contains information about a specific method of notifying the results Contains information about a specific method of notifying the results
@ -121,6 +122,7 @@ class QueryNotifyPrint(QueryNotify):
results for this query. results for this query.
verbose -- Boolean indicating whether to give verbose output. verbose -- Boolean indicating whether to give verbose output.
print_all -- Boolean indicating whether to only print all sites, including not found. print_all -- Boolean indicating whether to only print all sites, including not found.
browse -- Boolean indicating whether to open found sites in a web browser.
Return Value: Return Value:
Nothing. Nothing.
@ -129,6 +131,7 @@ class QueryNotifyPrint(QueryNotify):
super().__init__(result) super().__init__(result)
self.verbose = verbose self.verbose = verbose
self.print_all = print_all self.print_all = print_all
self.browse = browse
return return
@ -227,7 +230,9 @@ class QueryNotifyPrint(QueryNotify):
Fore.GREEN + Fore.GREEN +
f" {self.result.site_name}: " + f" {self.result.site_name}: " +
Style.RESET_ALL + Style.RESET_ALL +
f"{self.result.site_url_user}") f"{self.result.site_url_user}")
if self.browse:
webbrowser.open(self.result.site_url_user,2)
elif result.status == QueryStatus.AVAILABLE: elif result.status == QueryStatus.AVAILABLE:
if self.print_all: if self.print_all:

@ -119,14 +119,6 @@
"username_claimed": "blue", "username_claimed": "blue",
"username_unclaimed": "noonewould" "username_unclaimed": "noonewould"
}, },
"Arduino": {
"errorType": "status_code",
"regexCheck": "^(?![_-])[A-Za-z0-9_-]{3,}$",
"url": "https://create.arduino.cc/projecthub/{}",
"urlMain": "https://www.arduino.cc/",
"username_claimed": "blue",
"username_unclaimed": "noonewould"
},
"ArtStation": { "ArtStation": {
"errorType": "status_code", "errorType": "status_code",
"url": "https://www.artstation.com/{}", "url": "https://www.artstation.com/{}",
@ -445,6 +437,14 @@
"username_claimed": "blue", "username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
"Codeforces": {
"errorType": "status_code",
"url": "https://codeforces.com/profile/{}",
"urlMain": "https://codeforces.com/",
"urlProbe": "https://codeforces.com/api/user.info?handles={}",
"username_claimed": "tourist",
"username_unclaimed": "noonewouldeverusethis7"
},
"Codepen": { "Codepen": {
"errorType": "status_code", "errorType": "status_code",
"url": "https://codepen.io/{}", "url": "https://codepen.io/{}",
@ -652,15 +652,6 @@
"username_claimed": "blue", "username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
"Facebook": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z0-9\\.]{3,49}(?<!\\.com|\\.org|\\.net)$",
"url": "https://www.facebook.com/{}",
"urlMain": "https://www.facebook.com/",
"urlProbe": "https://www.facebook.com/{}/videos/",
"username_claimed": "hackerman",
"username_unclaimed": "noonewouldeverusethis7"
},
"Fameswap": { "Fameswap": {
"errorType": "status_code", "errorType": "status_code",
"url": "https://fameswap.com/user/{}", "url": "https://fameswap.com/user/{}",
@ -1306,6 +1297,14 @@
"username_claimed": "jenny", "username_claimed": "jenny",
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
"Monkeytype": {
"errorType": "status_code",
"url": "https://monkeytype.com/profile/{}",
"urlMain": "https://monkeytype.com/",
"urlProbe": "https://api.monkeytype.com/users/{}/profile",
"username_claimed": "Lost_Arrow",
"username_unclaimed": "noonewouldeverusethis7"
},
"Motorradfrage": { "Motorradfrage": {
"errorType": "status_code", "errorType": "status_code",
"url": "https://www.motorradfrage.net/nutzer/{}", "url": "https://www.motorradfrage.net/nutzer/{}",
@ -1928,7 +1927,7 @@
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
"Strava": { "Strava": {
"errorMsg": "Strava | Run and Cycling Tracking on the Social Network for Athletes", "errorMsg": "Strava | Running, Cycling &amp; Hiking App - Train, Track &amp; Share",
"errorType": "message", "errorType": "message",
"url": "https://www.strava.com/athletes/{}", "url": "https://www.strava.com/athletes/{}",
"urlMain": "https://www.strava.com/", "urlMain": "https://www.strava.com/",
@ -2032,8 +2031,7 @@
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
"TrashboxRU": { "TrashboxRU": {
"errorMsg": "\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d", "errorType": "status_code",
"errorType": "message",
"regexCheck": "^[A-Za-z0-9_-]{3,16}$", "regexCheck": "^[A-Za-z0-9_-]{3,16}$",
"url": "https://trashbox.ru/users/{}", "url": "https://trashbox.ru/users/{}",
"urlMain": "https://trashbox.ru/", "urlMain": "https://trashbox.ru/",
@ -2418,9 +2416,11 @@
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
"dailykos": { "dailykos": {
"errorType": "status_code", "errorType": "message",
"errorMsg": "{\"result\":true,\"message\":null}",
"url": "https://www.dailykos.com/user/{}", "url": "https://www.dailykos.com/user/{}",
"urlMain": "https://www.dailykos.com", "urlMain": "https://www.dailykos.com",
"urlProbe": "https://www.dailykos.com/signup/check_nickname?nickname={}",
"username_claimed": "blue", "username_claimed": "blue",
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
@ -2605,11 +2605,10 @@
"username_unclaimed": "noonewouldeverusethis77777" "username_unclaimed": "noonewouldeverusethis77777"
}, },
"koo": { "koo": {
"errorMsg": "is available", "errorMsg": "This profile does not exist",
"errorType": "message", "errorType": "message",
"url": "https://www.kooapp.com/profile/{}", "url": "https://www.kooapp.com/profile/{}",
"urlMain": "https://www.kooapp.com", "urlMain": "https://www.kooapp.com",
"urlProbe": "https://www.kooapp.com/apiV1/users/handle/{}/valid",
"username_claimed": "john", "username_claimed": "john",
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
}, },
@ -2870,13 +2869,7 @@
"urlMain": "https://znanylekarz.pl", "urlMain": "https://znanylekarz.pl",
"username_claimed": "janusz-nowak", "username_claimed": "janusz-nowak",
"username_unclaimed": "kto-by-sie-tak-nazwal-69" "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",
"url": "https://www.zoomit.ir/user/{}",
"urlMain": "https://www.zoomit.ir",
"username_claimed": "kossher",
"username_unclaimed": "noonewouldeverusethis7" "username_unclaimed": "noonewouldeverusethis7"
} }
} }

@ -664,7 +664,8 @@ def main():
# Create notify object for query results. # Create notify object for query results.
query_notify = QueryNotifyPrint(result=None, query_notify = QueryNotifyPrint(result=None,
verbose=args.verbose, verbose=args.verbose,
print_all=args.print_all) print_all=args.print_all,
browse=args.browse)
# Run report on all specified users. # Run report on all specified users.

@ -40,6 +40,7 @@ class SiteInformation:
be needed by the detection method, be needed by the detection method,
but it is only recorded in this but it is only recorded in this
object for future use. object for future use.
is_nsfw -- Boolean indicating if site is Not Safe For Work.
Return Value: Return Value:
Nothing. Nothing.

@ -339,7 +339,6 @@
1. ![](https://www.google.com/s2/favicons?domain=https://www.livelib.ru/) [livelib](https://www.livelib.ru/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.livelib.ru/) [livelib](https://www.livelib.ru/)
1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.cloud/) [mastodon.cloud](https://mastodon.cloud/) 1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.cloud/) [mastodon.cloud](https://mastodon.cloud/)
1. ![](https://www.google.com/s2/favicons?domain=https://chaos.social/) [mastodon.social](https://chaos.social/) 1. ![](https://www.google.com/s2/favicons?domain=https://chaos.social/) [mastodon.social](https://chaos.social/)
1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.xyz/) [mastodon.technology](https://mastodon.xyz/)
1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.xyz/) [mastodon.xyz](https://mastodon.xyz/) 1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.xyz/) [mastodon.xyz](https://mastodon.xyz/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.mercadolivre.com.br) [mercadolivre](https://www.mercadolivre.com.br) 1. ![](https://www.google.com/s2/favicons?domain=https://www.mercadolivre.com.br) [mercadolivre](https://www.mercadolivre.com.br)
1. ![](https://www.google.com/s2/favicons?domain=https://www.metacritic.com/) [metacritic](https://www.metacritic.com/) 1. ![](https://www.google.com/s2/favicons?domain=https://www.metacritic.com/) [metacritic](https://www.metacritic.com/)

Loading…
Cancel
Save