user-scanner 1.0.1.6__tar.gz → 1.0.2.1__tar.gz
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-1.0.1.6 → user_scanner-1.0.2.1}/PKG-INFO +22 -3
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/README.md +21 -2
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/pyproject.toml +1 -1
- user_scanner-1.0.2.1/user_scanner/__init__.py +1 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/__main__.py +10 -5
- user_scanner-1.0.2.1/user_scanner/cli/banner.py +39 -0
- user_scanner-1.0.2.1/user_scanner/utils/update.py +0 -0
- user_scanner-1.0.2.1/user_scanner/utils/version.py +20 -0
- user_scanner-1.0.2.1/user_scanner/version.json +4 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/LICENSE +0 -0
- {user_scanner-1.0.1.6/user_scanner → user_scanner-1.0.2.1/user_scanner/cli}/__init__.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/community/__init__.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/community/coderlegion.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/core/__init__.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/core/orchestrator.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/creator/__init__.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/creator/devto.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/creator/hashnode.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/creator/kaggle.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/creator/medium.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/creator/patreon.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/__init__.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/codeberg.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/cratesio.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/dockerhub.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/github.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/gitlab.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/launchpad.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/npmjs.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/dev/replit.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/gaming/__init__.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/gaming/chess_com.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/gaming/monkeytype.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/gaming/osu.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/gaming/roblox.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/__init__.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/bluesky.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/discord.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/instagram.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/mastodon.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/pinterest.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/reddit.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/snapchat.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/telegram.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/threads.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/x.py +0 -0
- {user_scanner-1.0.1.6 → user_scanner-1.0.2.1}/user_scanner/social/youtube.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: user-scanner
|
|
3
|
-
Version: 1.0.1
|
|
3
|
+
Version: 1.0.2.1
|
|
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>
|
|
@@ -15,7 +15,7 @@ Project-URL: Homepage, https://github.com/kaifcodec/user-scanner
|
|
|
15
15
|
|
|
16
16
|

|
|
17
17
|
<p align="center">
|
|
18
|
-
<img src="https://img.shields.io/badge/Version-1.0.
|
|
18
|
+
<img src="https://img.shields.io/badge/Version-1.0.2.0-blueviolet?style=for-the-badge&logo=github" />
|
|
19
19
|
<img src="https://img.shields.io/github/issues/kaifcodec/user-scanner?style=for-the-badge&logo=github" />
|
|
20
20
|
<img src="https://img.shields.io/badge/Tested%20on-Termux-black?style=for-the-badge&logo=termux" />
|
|
21
21
|
<img src="https://img.shields.io/badge/Tested%20on-Windows-cyan?style=for-the-badge&logo=Windows" />
|
|
@@ -36,6 +36,7 @@ Perfect for finding a **unique username** across GitHub, Twitter, Reddit, Instag
|
|
|
36
36
|
- ✅ Fully modular: add new platform modules easily.
|
|
37
37
|
- ✅ Command-line interface ready: works directly after `pip install`.
|
|
38
38
|
- ✅ Can be used as username OSINT tool.
|
|
39
|
+
- ✅ Very low and lightweight dependencies, can be run on any machine.
|
|
39
40
|
---
|
|
40
41
|
|
|
41
42
|
### Installation
|
|
@@ -63,6 +64,8 @@ user-scanner -u <username> -m github
|
|
|
63
64
|
```
|
|
64
65
|
---
|
|
65
66
|
### Example Output:
|
|
67
|
+
|
|
68
|
+
- Note*: New modules are constantly getting added so this might have only limited, outdated output:
|
|
66
69
|
```bash
|
|
67
70
|
Checking username: johndoe078
|
|
68
71
|
|
|
@@ -117,7 +120,7 @@ user_scanner/
|
|
|
117
120
|
├── social/ # Social platforms (Twitter/X, Reddit, Instagram, etc.)
|
|
118
121
|
├── creator/ # Creator platforms (Hashnode, Dev.to, Medium, etc.)
|
|
119
122
|
├── community/ # Community platforms (forums, niche sites)
|
|
120
|
-
├── gaming/ # Gaming sites (chess.com,
|
|
123
|
+
├── gaming/ # Gaming sites (chess.com, roblox, monkeytype etc.)
|
|
121
124
|
```
|
|
122
125
|
|
|
123
126
|
**Module guidelines:**
|
|
@@ -130,6 +133,9 @@ user_scanner/
|
|
|
130
133
|
|
|
131
134
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for examples.
|
|
132
135
|
|
|
136
|
+
### 📧 Contact:
|
|
137
|
+
- [Email](kaifcodec@gmail.com)
|
|
138
|
+
|
|
133
139
|
---
|
|
134
140
|
|
|
135
141
|
### Dependencies:
|
|
@@ -142,5 +148,18 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for examples.
|
|
|
142
148
|
|
|
143
149
|
This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
|
|
144
150
|
|
|
151
|
+
|
|
152
|
+
<!---
|
|
153
|
+
## 🌟 Stars:
|
|
154
|
+
|
|
155
|
+
<a href="https://www.star-history.com/#kaifcodec/user-scanner&type=date&legend=top-left">
|
|
156
|
+
<picture>
|
|
157
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kaifcodec/user-scanner&type=date&theme=dark&legend=top-left" />
|
|
158
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kaifcodec/user-scanner&type=date&legend=top-left" />
|
|
159
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kaifcodec/user-scanner&type=date&legend=top-left" />
|
|
160
|
+
</picture>
|
|
161
|
+
</a>
|
|
162
|
+
--->
|
|
163
|
+
---
|
|
145
164
|
## ⚠️ `community/` and `gaming/` are small, looking for contributions
|
|
146
165
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|
<p align="center">
|
|
5
|
-
<img src="https://img.shields.io/badge/Version-1.0.
|
|
5
|
+
<img src="https://img.shields.io/badge/Version-1.0.2.0-blueviolet?style=for-the-badge&logo=github" />
|
|
6
6
|
<img src="https://img.shields.io/github/issues/kaifcodec/user-scanner?style=for-the-badge&logo=github" />
|
|
7
7
|
<img src="https://img.shields.io/badge/Tested%20on-Termux-black?style=for-the-badge&logo=termux" />
|
|
8
8
|
<img src="https://img.shields.io/badge/Tested%20on-Windows-cyan?style=for-the-badge&logo=Windows" />
|
|
@@ -23,6 +23,7 @@ Perfect for finding a **unique username** across GitHub, Twitter, Reddit, Instag
|
|
|
23
23
|
- ✅ Fully modular: add new platform modules easily.
|
|
24
24
|
- ✅ Command-line interface ready: works directly after `pip install`.
|
|
25
25
|
- ✅ Can be used as username OSINT tool.
|
|
26
|
+
- ✅ Very low and lightweight dependencies, can be run on any machine.
|
|
26
27
|
---
|
|
27
28
|
|
|
28
29
|
### Installation
|
|
@@ -50,6 +51,8 @@ user-scanner -u <username> -m github
|
|
|
50
51
|
```
|
|
51
52
|
---
|
|
52
53
|
### Example Output:
|
|
54
|
+
|
|
55
|
+
- Note*: New modules are constantly getting added so this might have only limited, outdated output:
|
|
53
56
|
```bash
|
|
54
57
|
Checking username: johndoe078
|
|
55
58
|
|
|
@@ -104,7 +107,7 @@ user_scanner/
|
|
|
104
107
|
├── social/ # Social platforms (Twitter/X, Reddit, Instagram, etc.)
|
|
105
108
|
├── creator/ # Creator platforms (Hashnode, Dev.to, Medium, etc.)
|
|
106
109
|
├── community/ # Community platforms (forums, niche sites)
|
|
107
|
-
├── gaming/ # Gaming sites (chess.com,
|
|
110
|
+
├── gaming/ # Gaming sites (chess.com, roblox, monkeytype etc.)
|
|
108
111
|
```
|
|
109
112
|
|
|
110
113
|
**Module guidelines:**
|
|
@@ -117,6 +120,9 @@ user_scanner/
|
|
|
117
120
|
|
|
118
121
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for examples.
|
|
119
122
|
|
|
123
|
+
### 📧 Contact:
|
|
124
|
+
- [Email](kaifcodec@gmail.com)
|
|
125
|
+
|
|
120
126
|
---
|
|
121
127
|
|
|
122
128
|
### Dependencies:
|
|
@@ -129,4 +135,17 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for examples.
|
|
|
129
135
|
|
|
130
136
|
This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
|
|
131
137
|
|
|
138
|
+
|
|
139
|
+
<!---
|
|
140
|
+
## 🌟 Stars:
|
|
141
|
+
|
|
142
|
+
<a href="https://www.star-history.com/#kaifcodec/user-scanner&type=date&legend=top-left">
|
|
143
|
+
<picture>
|
|
144
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=kaifcodec/user-scanner&type=date&theme=dark&legend=top-left" />
|
|
145
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=kaifcodec/user-scanner&type=date&legend=top-left" />
|
|
146
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kaifcodec/user-scanner&type=date&legend=top-left" />
|
|
147
|
+
</picture>
|
|
148
|
+
</a>
|
|
149
|
+
--->
|
|
150
|
+
---
|
|
132
151
|
## ⚠️ `community/` and `gaming/` are small, looking for contributions
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -2,6 +2,9 @@ import argparse
|
|
|
2
2
|
import re
|
|
3
3
|
from user_scanner.core.orchestrator import run_checks, load_modules
|
|
4
4
|
from colorama import Fore, Style
|
|
5
|
+
from .cli import banner
|
|
6
|
+
from .cli.banner import print_banner
|
|
7
|
+
|
|
5
8
|
|
|
6
9
|
CATEGORY_MAPPING = {
|
|
7
10
|
"dev": "dev",
|
|
@@ -37,7 +40,7 @@ def main():
|
|
|
37
40
|
description="Scan usernames across multiple platforms."
|
|
38
41
|
)
|
|
39
42
|
parser.add_argument(
|
|
40
|
-
"-u", "--username",
|
|
43
|
+
"-u", "--username", help="Username to scan across platforms"
|
|
41
44
|
)
|
|
42
45
|
parser.add_argument(
|
|
43
46
|
"-c", "--category", choices=CATEGORY_MAPPING.keys(),
|
|
@@ -59,9 +62,6 @@ def main():
|
|
|
59
62
|
list_modules(args.category)
|
|
60
63
|
return
|
|
61
64
|
|
|
62
|
-
if not args.username:
|
|
63
|
-
print(Fore.RED + "[!] Please provide a username with -u or --username." + Style.RESET_ALL)
|
|
64
|
-
return
|
|
65
65
|
|
|
66
66
|
# Special username checks before run
|
|
67
67
|
if (args.module == "x" or args.category == "social"):
|
|
@@ -70,6 +70,11 @@ def main():
|
|
|
70
70
|
if (args.module == "bluesky" or args.category == "social"):
|
|
71
71
|
if re.search(r"[^a-zA-Z0-9\.-]", args.username):
|
|
72
72
|
print(Fore.RED + f"[!] Username '{args.username}' contains unsupported special characters. Bluesky will throw error. (Supported: only hyphens and digits)" + Style.RESET_ALL +"\n")
|
|
73
|
+
if not args.username:
|
|
74
|
+
parser.print_help()
|
|
75
|
+
return
|
|
76
|
+
else:
|
|
77
|
+
print_banner()
|
|
73
78
|
|
|
74
79
|
|
|
75
80
|
from user_scanner import dev, social, creator, community, gaming
|
|
@@ -98,4 +103,4 @@ def main():
|
|
|
98
103
|
run_checks(args.username)
|
|
99
104
|
|
|
100
105
|
if __name__ == "__main__":
|
|
101
|
-
main()
|
|
106
|
+
main()
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from colorama import Fore, Style, init
|
|
3
|
+
from ..utils.version import load_local_version
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
version, version_type = load_local_version()
|
|
7
|
+
init(autoreset=True)
|
|
8
|
+
C_RED = Fore.RED + Style.BRIGHT
|
|
9
|
+
C_CYAN = Fore.CYAN + Style.BRIGHT
|
|
10
|
+
C_GREEN = Fore.GREEN + Style.BRIGHT
|
|
11
|
+
C_WHITE = Fore.WHITE + Style.BRIGHT
|
|
12
|
+
C_MAGENTA = Fore.MAGENTA + Style.BRIGHT
|
|
13
|
+
BANNER_ASCII = fr"""{C_CYAN} _ _ ___ ___ _ __ ___ ___ __ _ _ __ _ __ ___ _ __
|
|
14
|
+
| | | / __|/ _ \ '__|____/ __|/ __/ _` | '_ \| '_ \ / _ \ '__|
|
|
15
|
+
| |_| \__ \ __/ | |_____\__ \ (_| (_| | | | | | | | __/ |
|
|
16
|
+
\__,_|___/\___|_| |___/\___\__,_|_| |_|_| |_|\___|_| Version: {version}
|
|
17
|
+
{Style.RESET_ALL}""".strip()
|
|
18
|
+
|
|
19
|
+
INFO_BOX = f"""{C_MAGENTA} ╔════════════════════════════════════════╗
|
|
20
|
+
║ {C_RED}♚ {C_GREEN}Project Name{C_WHITE} : UserScanner {C_MAGENTA}║
|
|
21
|
+
║ {C_RED}♚ {C_GREEN}Author{C_WHITE} : Kaif {C_MAGENTA}║
|
|
22
|
+
║ {C_RED}♚ {C_GREEN}Github{C_WHITE} : github.com/kaifcodec {C_MAGENTA}║
|
|
23
|
+
║ {C_RED}♚ {C_GREEN}Email{C_WHITE} : kaifcodec@gmail.com {C_MAGENTA}║
|
|
24
|
+
══════════════════════════════════════════{Style.RESET_ALL}""".strip()
|
|
25
|
+
|
|
26
|
+
def print_banner():
|
|
27
|
+
print(BANNER_ASCII)
|
|
28
|
+
print(INFO_BOX)
|
|
29
|
+
print(" ")
|
|
30
|
+
if __name__ == "__main__":
|
|
31
|
+
print_banner()
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import json
|
|
2
|
+
from pathlib import Path
|
|
3
|
+
|
|
4
|
+
_SCRIPT_DIR = Path(__file__).resolve().parent
|
|
5
|
+
VERSION_FILE = _SCRIPT_DIR.parent / "version.json"
|
|
6
|
+
|
|
7
|
+
def load_local_version():
|
|
8
|
+
try:
|
|
9
|
+
data = json.loads(VERSION_FILE.read_text())
|
|
10
|
+
return data.get("version", "0.0.0"), data.get("version_type", "local")
|
|
11
|
+
except FileNotFoundError:
|
|
12
|
+
return "N/A", "file_missing"
|
|
13
|
+
except json.JSONDecodeError:
|
|
14
|
+
return "N/A", "json_error"
|
|
15
|
+
except Exception:
|
|
16
|
+
return "N/A", "error"
|
|
17
|
+
|
|
18
|
+
if __name__ == "__main__":
|
|
19
|
+
version, version_type = load_local_version()
|
|
20
|
+
print(f"Version: {version}, Type: {version_type}")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|