user-scanner 1.0.1.3__py3-none-any.whl → 1.0.1.5__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- user_scanner/gaming/chess_com.py +1 -1
- user_scanner/gaming/monkeytype.py +63 -0
- user_scanner/gaming/roblox.py +2 -1
- {user_scanner-1.0.1.3.dist-info → user_scanner-1.0.1.5.dist-info}/METADATA +67 -11
- {user_scanner-1.0.1.3.dist-info → user_scanner-1.0.1.5.dist-info}/RECORD +8 -7
- {user_scanner-1.0.1.3.dist-info → user_scanner-1.0.1.5.dist-info}/WHEEL +0 -0
- {user_scanner-1.0.1.3.dist-info → user_scanner-1.0.1.5.dist-info}/entry_points.txt +0 -0
- {user_scanner-1.0.1.3.dist-info → user_scanner-1.0.1.5.dist-info}/licenses/LICENSE +0 -0
user_scanner/gaming/chess_com.py
CHANGED
|
@@ -8,7 +8,7 @@ def validate_chess_com(user):
|
|
|
8
8
|
headers = {
|
|
9
9
|
'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
|
|
10
10
|
'Accept': "application/json, text/plain, */*",
|
|
11
|
-
'Accept-Encoding': "
|
|
11
|
+
'Accept-Encoding': "identity",
|
|
12
12
|
'Accept-Language': "en-US,en;q=0.9",
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import httpx
|
|
2
|
+
from httpx import ConnectError, TimeoutException
|
|
3
|
+
import json
|
|
4
|
+
|
|
5
|
+
def validate_monkeytype(user: str) -> int:
|
|
6
|
+
|
|
7
|
+
url = f"https://api.monkeytype.com/users/checkName/{user}"
|
|
8
|
+
|
|
9
|
+
headers = {
|
|
10
|
+
"User-Agent": (
|
|
11
|
+
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
|
|
12
|
+
"AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
13
|
+
"Chrome/128.0.0.0 Safari/537.36"
|
|
14
|
+
),
|
|
15
|
+
"Accept": "application/json, text/plain, */*",
|
|
16
|
+
"Accept-Encoding": "identity",
|
|
17
|
+
"Accept-Language": "en-US,en;q=0.9",
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
response = httpx.get(url, headers=headers, timeout=3.0)
|
|
22
|
+
status = response.status_code
|
|
23
|
+
|
|
24
|
+
if status == 200:
|
|
25
|
+
data = response.json()
|
|
26
|
+
# Expected shape:
|
|
27
|
+
# { "message": "string", "data": { "available": true/false } }
|
|
28
|
+
payload = data.get("data", {})
|
|
29
|
+
available = payload.get("available")
|
|
30
|
+
|
|
31
|
+
if available is True:
|
|
32
|
+
return 1
|
|
33
|
+
elif available is False:
|
|
34
|
+
return 0
|
|
35
|
+
else:
|
|
36
|
+
return 2
|
|
37
|
+
else:
|
|
38
|
+
return 2
|
|
39
|
+
|
|
40
|
+
except (ConnectError, TimeoutException):
|
|
41
|
+
return 2
|
|
42
|
+
except json.JSONDecodeError:
|
|
43
|
+
return 2
|
|
44
|
+
except Exception:
|
|
45
|
+
return 2
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
if __name__ == "__main__":
|
|
49
|
+
try:
|
|
50
|
+
import httpx # noqa: F401
|
|
51
|
+
except ImportError:
|
|
52
|
+
print("Error: 'httpx' library is not installed.")
|
|
53
|
+
raise SystemExit(1)
|
|
54
|
+
|
|
55
|
+
user = input("Username?: ").strip()
|
|
56
|
+
result = validate_monkeytype(user)
|
|
57
|
+
|
|
58
|
+
if result == 1:
|
|
59
|
+
print("Available!")
|
|
60
|
+
elif result == 0:
|
|
61
|
+
print("Unavailable!")
|
|
62
|
+
else:
|
|
63
|
+
print("Error occurred!")
|
user_scanner/gaming/roblox.py
CHANGED
|
@@ -26,7 +26,8 @@ def validate_roblox(user):
|
|
|
26
26
|
return 2
|
|
27
27
|
|
|
28
28
|
for entry in search_results["data"]: # iterates through the entries in the search results
|
|
29
|
-
|
|
29
|
+
# .lower() so casing from the API doesn't matter
|
|
30
|
+
if entry["name"].lower() == user.lower(): # if a username matches the user
|
|
30
31
|
return 0
|
|
31
32
|
return 1
|
|
32
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: user-scanner
|
|
3
|
-
Version: 1.0.1.
|
|
3
|
+
Version: 1.0.1.5
|
|
4
4
|
Summary: Check username availability across multiple popular platforms
|
|
5
5
|
Keywords: username,checker,availability,social,tech,python,user-scanner
|
|
6
6
|
Author-email: Kaif <kafcodec@gmail.com>
|
|
@@ -13,21 +13,32 @@ Project-URL: Homepage, https://github.com/kaifcodec/user-scanner
|
|
|
13
13
|
|
|
14
14
|
# User Scanner
|
|
15
15
|
|
|
16
|
+

|
|
17
|
+
<p align="center">
|
|
18
|
+
<img src="https://img.shields.io/badge/Version-1.0.1.6-blueviolet?style=for-the-badge&logo=github" />
|
|
19
|
+
<img src="https://img.shields.io/github/issues/kaifcodec/user-scanner?style=for-the-badge&logo=github" />
|
|
20
|
+
<img src="https://img.shields.io/badge/Tested%20on-Termux-black?style=for-the-badge&logo=termux" />
|
|
21
|
+
<img src="https://img.shields.io/badge/Tested%20on-Windows-cyan?style=for-the-badge&logo=Windows" />
|
|
22
|
+
<img src="https://img.shields.io/badge/Tested%20on-Linux-balck?style=for-the-badge&logo=Linux" />
|
|
23
|
+
<img src="https://img.shields.io/pepy/dt/user-scanner?style=for-the-badge" />
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
16
28
|
Scan a username across multiple social, developer, and creator platforms to see if it’s available.
|
|
17
29
|
Perfect for finding a **unique username** across GitHub, Twitter, Reddit, Instagram, and more, all in one command.
|
|
18
30
|
|
|
19
|
-
---
|
|
20
31
|
|
|
21
|
-
|
|
32
|
+
### Features
|
|
22
33
|
|
|
23
34
|
- ✅ Check usernames across **social networks**, **developer platforms**, and **creator communities**.
|
|
24
35
|
- ✅ Clear **Available / Taken / Error** output for each platform.
|
|
25
36
|
- ✅ Fully modular: add new platform modules easily.
|
|
26
37
|
- ✅ Command-line interface ready: works directly after `pip install`.
|
|
27
|
-
|
|
38
|
+
- ✅ Can be used as username OSINT tool.
|
|
28
39
|
---
|
|
29
40
|
|
|
30
|
-
|
|
41
|
+
### Installation
|
|
31
42
|
|
|
32
43
|
```bash
|
|
33
44
|
pip install user-scanner
|
|
@@ -35,7 +46,7 @@ pip install user-scanner
|
|
|
35
46
|
|
|
36
47
|
---
|
|
37
48
|
|
|
38
|
-
|
|
49
|
+
### Usage
|
|
39
50
|
|
|
40
51
|
Scan a username across all platforms:
|
|
41
52
|
|
|
@@ -51,8 +62,52 @@ user-scanner -u <username> -m github
|
|
|
51
62
|
|
|
52
63
|
```
|
|
53
64
|
---
|
|
54
|
-
|
|
55
|
-
|
|
65
|
+
### Example Output:
|
|
66
|
+
```bash
|
|
67
|
+
Checking username: johndoe078
|
|
68
|
+
|
|
69
|
+
== DEV SITES ==
|
|
70
|
+
[✔] Codeberg: Available
|
|
71
|
+
[✔] Cratesio: Available
|
|
72
|
+
[✔] Dockerhub: Available
|
|
73
|
+
[✘] Github: Taken
|
|
74
|
+
[✔] Gitlab: Available
|
|
75
|
+
[✔] Launchpad: Available
|
|
76
|
+
[✔] Npmjs: Available
|
|
77
|
+
[✔] Replit: Available
|
|
78
|
+
|
|
79
|
+
== SOCIAL SITES ==
|
|
80
|
+
[✔] Bluesky: Available
|
|
81
|
+
[✔] Discord: Available
|
|
82
|
+
[✘] Instagram: Taken
|
|
83
|
+
[✔] Mastodon: Available
|
|
84
|
+
[✔] Pinterest: Available
|
|
85
|
+
[✘] Reddit: Taken
|
|
86
|
+
[✔] Snapchat: Available
|
|
87
|
+
[✔] Telegram: Available
|
|
88
|
+
[✘] Threads: Taken
|
|
89
|
+
[✔] X (Twitter): Available
|
|
90
|
+
[✔] Youtube: Available
|
|
91
|
+
|
|
92
|
+
== CREATOR SITES ==
|
|
93
|
+
[✔] Devto: Available
|
|
94
|
+
[✔] Hashnode: Available
|
|
95
|
+
[✔] Kaggle: Available
|
|
96
|
+
[✔] Medium: Available
|
|
97
|
+
[✔] Patreon: Available
|
|
98
|
+
|
|
99
|
+
== COMMUNITY SITES ==
|
|
100
|
+
[✔] Coderlegion: Available
|
|
101
|
+
|
|
102
|
+
== GAMING SITES ==
|
|
103
|
+
[✔] Chess_com: Available
|
|
104
|
+
[✔] Osu: Available
|
|
105
|
+
[✔] Roblox: Available
|
|
106
|
+
...
|
|
107
|
+
...
|
|
108
|
+
...
|
|
109
|
+
```
|
|
110
|
+
### Contributing:
|
|
56
111
|
|
|
57
112
|
Modules are organized by category:
|
|
58
113
|
|
|
@@ -62,6 +117,7 @@ user_scanner/
|
|
|
62
117
|
├── social/ # Social platforms (Twitter/X, Reddit, Instagram, etc.)
|
|
63
118
|
├── creator/ # Creator platforms (Hashnode, Dev.to, Medium, etc.)
|
|
64
119
|
├── community/ # Community platforms (forums, niche sites)
|
|
120
|
+
├── gaming/ # Gaming sites (chess.com, and many more(upcoming))
|
|
65
121
|
```
|
|
66
122
|
|
|
67
123
|
**Module guidelines:**
|
|
@@ -76,15 +132,15 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for examples.
|
|
|
76
132
|
|
|
77
133
|
---
|
|
78
134
|
|
|
79
|
-
|
|
135
|
+
### Dependencies:
|
|
80
136
|
- [httpx](https://pypi.org/project/httpx/)
|
|
81
137
|
- [colorama](https://pypi.org/project/colorama/)
|
|
82
138
|
|
|
83
139
|
---
|
|
84
140
|
|
|
85
|
-
|
|
141
|
+
### License
|
|
86
142
|
|
|
87
143
|
This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
|
|
88
144
|
|
|
89
|
-
## ⚠️ `community/`
|
|
145
|
+
## ⚠️ `community/` and `gaming/` are small, looking for contributions
|
|
90
146
|
|
|
@@ -20,9 +20,10 @@ user_scanner/dev/launchpad.py,sha256=ank50BpTsN7m5_MuQNxAbLpfQOrwjnwS_olO9nhPwgk
|
|
|
20
20
|
user_scanner/dev/npmjs.py,sha256=Tv2YgCpuSxJKWEPdcTWwm9CCl2rmfKlGdQe2rnMnXM8,1141
|
|
21
21
|
user_scanner/dev/replit.py,sha256=GN1Q8PecTzBsd6TpOT-qRnMvKhFTh1P6uCa8CDlXkpw,925
|
|
22
22
|
user_scanner/gaming/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
-
user_scanner/gaming/chess_com.py,sha256=
|
|
23
|
+
user_scanner/gaming/chess_com.py,sha256=QDUdijyQQi7fwy6roYWzDyAQv6gbtV-Zh_uZyHXiaR4,1505
|
|
24
|
+
user_scanner/gaming/monkeytype.py,sha256=k4wgDR5lQTJBIcyeMRjPE_F5KC3kJfeAuS2eez43yAs,1665
|
|
24
25
|
user_scanner/gaming/osu.py,sha256=Jz_s6qNURC-L10-MSfTh6mEywoEqOh8Stvb_bWJR_0I,1239
|
|
25
|
-
user_scanner/gaming/roblox.py,sha256=
|
|
26
|
+
user_scanner/gaming/roblox.py,sha256=eCiAEiC8BaMwcd_6k3PE30FebtsjVCBkvUTZkaaJhHY,1605
|
|
26
27
|
user_scanner/social/__init__.py,sha256=jaCkFwX1uYtF0ENifVwF8OfHrYYUTm64B9wlBq9BBfQ,9
|
|
27
28
|
user_scanner/social/bluesky.py,sha256=r5UIFCStlwEM4UxE6cDTrDb5w_EqPCgJ2iYz27GpjA8,2157
|
|
28
29
|
user_scanner/social/discord.py,sha256=3TaYAzqK9sPKzL_GPzli4P-U22Dwe-mSmeH6kVHJXI4,1137
|
|
@@ -35,8 +36,8 @@ user_scanner/social/telegram.py,sha256=QxK2jD2QEvrYmnkxysl_yk7-G6CRWvkK5EnK6n5q3
|
|
|
35
36
|
user_scanner/social/threads.py,sha256=QRidTYquAMDHJSg68ySpWCbliRYdWJkbOqn8RfWzFQQ,1231
|
|
36
37
|
user_scanner/social/x.py,sha256=NetPGmPnWEKv6za9E_Ekah9bAeeFlEeY3qbTJQo7AqE,1560
|
|
37
38
|
user_scanner/social/youtube.py,sha256=zuyWCy5FtEilaIcUZ4dTCctRR9deFnwwWJkf-h_1K0E,1943
|
|
38
|
-
user_scanner-1.0.1.
|
|
39
|
-
user_scanner-1.0.1.
|
|
40
|
-
user_scanner-1.0.1.
|
|
41
|
-
user_scanner-1.0.1.
|
|
42
|
-
user_scanner-1.0.1.
|
|
39
|
+
user_scanner-1.0.1.5.dist-info/entry_points.txt,sha256=XqU3kssYZ0vXaPy5qYUOTCu4u-48Xie7QWFpBCYc7Nc,59
|
|
40
|
+
user_scanner-1.0.1.5.dist-info/licenses/LICENSE,sha256=XH1QyQG68zo1opDIZHTHcTAbe9XMzewvTaFTukcN9vc,1061
|
|
41
|
+
user_scanner-1.0.1.5.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
42
|
+
user_scanner-1.0.1.5.dist-info/METADATA,sha256=G5FcuQ-aGzISWtiVSNT7X3vD4B6ShPiOC1_gJsprzp8,4154
|
|
43
|
+
user_scanner-1.0.1.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|