user-scanner 1.0.1.6__tar.gz → 1.0.2.0__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.
Files changed (47) hide show
  1. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/PKG-INFO +22 -3
  2. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/README.md +21 -2
  3. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/pyproject.toml +1 -1
  4. user_scanner-1.0.2.0/user_scanner/__init__.py +1 -0
  5. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/__main__.py +9 -5
  6. user_scanner-1.0.2.0/user_scanner/cli/banner.py +39 -0
  7. user_scanner-1.0.2.0/user_scanner/utils/update.py +0 -0
  8. user_scanner-1.0.2.0/user_scanner/utils/version.py +20 -0
  9. user_scanner-1.0.2.0/user_scanner/version.json +4 -0
  10. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/LICENSE +0 -0
  11. {user_scanner-1.0.1.6/user_scanner → user_scanner-1.0.2.0/user_scanner/cli}/__init__.py +0 -0
  12. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/community/__init__.py +0 -0
  13. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/community/coderlegion.py +0 -0
  14. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/core/__init__.py +0 -0
  15. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/core/orchestrator.py +0 -0
  16. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/creator/__init__.py +0 -0
  17. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/creator/devto.py +0 -0
  18. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/creator/hashnode.py +0 -0
  19. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/creator/kaggle.py +0 -0
  20. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/creator/medium.py +0 -0
  21. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/creator/patreon.py +0 -0
  22. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/__init__.py +0 -0
  23. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/codeberg.py +0 -0
  24. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/cratesio.py +0 -0
  25. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/dockerhub.py +0 -0
  26. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/github.py +0 -0
  27. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/gitlab.py +0 -0
  28. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/launchpad.py +0 -0
  29. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/npmjs.py +0 -0
  30. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/dev/replit.py +0 -0
  31. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/gaming/__init__.py +0 -0
  32. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/gaming/chess_com.py +0 -0
  33. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/gaming/monkeytype.py +0 -0
  34. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/gaming/osu.py +0 -0
  35. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/gaming/roblox.py +0 -0
  36. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/__init__.py +0 -0
  37. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/bluesky.py +0 -0
  38. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/discord.py +0 -0
  39. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/instagram.py +0 -0
  40. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/mastodon.py +0 -0
  41. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/pinterest.py +0 -0
  42. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/reddit.py +0 -0
  43. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/snapchat.py +0 -0
  44. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/telegram.py +0 -0
  45. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/threads.py +0 -0
  46. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/user_scanner/social/x.py +0 -0
  47. {user_scanner-1.0.1.6 → user_scanner-1.0.2.0}/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.6
3
+ Version: 1.0.2.0
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
  ![1000136215](https://github.com/user-attachments/assets/49ec8d24-665b-4115-8525-01a8d0ca2ef4)
17
17
  <p align="center">
18
- <img src="https://img.shields.io/badge/Version-1.0.1.6-blueviolet?style=for-the-badge&logo=github" />
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, and many more(upcoming))
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
  ![1000136215](https://github.com/user-attachments/assets/49ec8d24-665b-4115-8525-01a8d0ca2ef4)
4
4
  <p align="center">
5
- <img src="https://img.shields.io/badge/Version-1.0.1.6-blueviolet?style=for-the-badge&logo=github" />
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, and many more(upcoming))
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
@@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi"
4
4
 
5
5
  [project]
6
6
  name = "user-scanner"
7
- version = "1.0.1.6"
7
+ version = "1.0.2.0"
8
8
  description = "Check username availability across multiple popular platforms"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
@@ -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", help="Username to scan across platforms"
43
+ "-u", "--username", required = True, 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,10 @@ 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
+ pass
75
+ else:
76
+ print_banner()
73
77
 
74
78
 
75
79
  from user_scanner import dev, social, creator, community, gaming
@@ -98,4 +102,4 @@ def main():
98
102
  run_checks(args.username)
99
103
 
100
104
  if __name__ == "__main__":
101
- main()
105
+ 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}")
@@ -0,0 +1,4 @@
1
+ {
2
+ "version": "1.0.2.0",
3
+ "version_type": "pypi"
4
+ }
File without changes