user-scanner 1.0.0.3__py3-none-any.whl → 1.0.0.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.
@@ -0,0 +1,39 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_coderlegion(user):
5
+ url = f"https://coderlegion.com/user/{user}"
6
+
7
+ headers = {
8
+ '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",
9
+ 'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
10
+ 'Accept-Encoding': "gzip, deflate, br",
11
+ 'Accept-Language': "en-US,en;q=0.9",
12
+ }
13
+ try:
14
+ response = httpx.get(url, headers=headers, timeout = 15.0)
15
+ status = response.status_code
16
+
17
+ if status == 200:
18
+ return 0
19
+ elif status == 404:
20
+ return 1
21
+ else:
22
+ return 2
23
+
24
+ except (ConnectError, TimeoutException):
25
+ return 2
26
+ except Exception:
27
+ return 2
28
+
29
+ if __name__ == "__main__":
30
+ user = input ("Username?: ").strip()
31
+ result = validate_coderlegion(user)
32
+
33
+ if result == 1:
34
+ print("Available!")
35
+ elif result == 0:
36
+ print("Unavailable!")
37
+ else:
38
+ print("Error occured!")
39
+
@@ -10,17 +10,13 @@ def validate_kaggle(user):
10
10
  }
11
11
 
12
12
  try:
13
- # Use GET request for maximum fidelity, though we only check status code
14
13
  response = httpx.get(url, headers=headers, timeout=3.0, follow_redirects=True)
15
14
  status = response.status_code
16
15
 
17
- # If a profile exists (Taken) -> 200 OK
18
16
  if status == 200:
19
17
  return 0
20
- # If no profile exists (Available) -> 404 Not Found
21
18
  elif status == 404:
22
19
  return 1
23
- # Other status codes are errors
24
20
  else:
25
21
  return 2
26
22
 
@@ -31,12 +31,6 @@ def validate_instagram(user):
31
31
  return 2
32
32
 
33
33
  if __name__ == "__main__":
34
- try:
35
- import httpx
36
- except ImportError:
37
- print("Error: 'httpx' library is not installed.")
38
- exit()
39
-
40
34
  user = input ("Username?: ").strip()
41
35
  result = validate_instagram(user)
42
36
 
@@ -31,12 +31,6 @@ def validate_pinterest(user):
31
31
  return 2
32
32
 
33
33
  if __name__ == "__main__":
34
- try:
35
- import httpx
36
- except ImportError:
37
- print("Error: 'httpx' library is not installed.")
38
- exit()
39
-
40
34
  user = input ("Username?: ").strip()
41
35
  result = validate_pinterest(user)
42
36
 
@@ -31,12 +31,6 @@ def validate_reddit(user):
31
31
  return 2
32
32
 
33
33
  if __name__ == "__main__":
34
- try:
35
- import httpx
36
- except ImportError:
37
- print("Error: 'httpx' library is not installed.")
38
- exit()
39
-
40
34
  user = input ("Username?: ").strip()
41
35
  result = validate_reddit(user)
42
36
 
@@ -37,12 +37,6 @@ def validate_snapchat(user):
37
37
  return 2
38
38
 
39
39
  if __name__ == "__main__":
40
- try:
41
- import httpx
42
- except ImportError:
43
- print("Error: 'httpx' library is not installed.")
44
- exit()
45
-
46
40
  user = input ("Username?: ").strip()
47
41
  result = validate_snapchat(user)
48
42
 
@@ -31,12 +31,6 @@ def validate_instagram(user):
31
31
  return 2
32
32
 
33
33
  if __name__ == "__main__":
34
- try:
35
- import httpx
36
- except ImportError:
37
- print("Error: 'httpx' library is not installed.")
38
- exit()
39
-
40
34
  user = input ("Username?: ").strip()
41
35
  result = validate_instagram(user)
42
36
 
user_scanner/social/x.py CHANGED
@@ -41,12 +41,6 @@ def validate_x(user):
41
41
  return 2
42
42
 
43
43
  if __name__ == "__main__":
44
- try:
45
- import httpx
46
- except ImportError:
47
- print("Error: 'httpx' library is not installed.")
48
- exit()
49
-
50
44
  user = input ("Username?: ").strip()
51
45
  result = validate_x(user)
52
46
 
@@ -45,12 +45,6 @@ def validate_youtube(user):
45
45
  return 2
46
46
 
47
47
  if __name__ == "__main__":
48
- try:
49
- import httpx
50
- except ImportError:
51
- print("Error: 'httpx' library is not installed.")
52
- exit()
53
-
54
48
  user = input ("Username?: ").strip()
55
49
  result = validate_youtube(user)
56
50
 
@@ -0,0 +1,90 @@
1
+ Metadata-Version: 2.4
2
+ Name: user-scanner
3
+ Version: 1.0.0.5
4
+ Summary: Check username availability across multiple popular platforms
5
+ Keywords: username,checker,availability,social,tech,python,user-scanner
6
+ Author-email: Kaif <kafcodec@gmail.com>
7
+ Requires-Python: >=3.7
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ Requires-Dist: httpx
11
+ Requires-Dist: colorama
12
+ Project-URL: Homepage, https://github.com/kaifcodec/user-scanner
13
+
14
+ # User Scanner
15
+
16
+ Scan a username across multiple social, developer, and creator platforms to see if it’s available.
17
+ Perfect for finding a **unique username** across GitHub, Twitter, Reddit, Instagram, and more, all in one command.
18
+
19
+ ---
20
+
21
+ ## Features
22
+
23
+ - ✅ Check usernames across **social networks**, **developer platforms**, and **creator communities**.
24
+ - ✅ Clear **Available / Taken / Error** output for each platform.
25
+ - ✅ Fully modular: add new platform modules easily.
26
+ - ✅ Command-line interface ready: works directly after `pip install`.
27
+
28
+ ---
29
+
30
+ ## Installation
31
+
32
+ ```bash
33
+ pip install user-scanner
34
+ ```
35
+
36
+ ---
37
+
38
+ ## Usage
39
+
40
+ Scan a username across all platforms:
41
+
42
+ ```bash
43
+ user-scanner -u <username>
44
+ ```
45
+ Optionally, scan a specific category or single module:
46
+
47
+ ```bash
48
+ user-scanner -u <username> -c dev
49
+ user-scanner -l # Lists all available modules
50
+ user-scanner -u <username> -m github
51
+
52
+ ```
53
+ ---
54
+
55
+ ## Contributing
56
+
57
+ Modules are organized by category:
58
+
59
+ ```
60
+ user_scanner/
61
+ ├── dev/ # Developer platforms (GitHub, GitLab, etc.)
62
+ ├── social/ # Social platforms (Twitter/X, Reddit, Instagram, etc.)
63
+ ├── creator/ # Creator platforms (Hashnode, Dev.to, Medium, etc.)
64
+ ├── community/ # Community platforms (forums, niche sites)
65
+ ```
66
+
67
+ **Module guidelines:**
68
+ - Each module must define a `validate_<site>()` function that takes a `username` and returns:
69
+ - `1` → Available
70
+ - `0` → Taken
71
+ - `2` → Error / Could not check
72
+ - Use `httpx` for requests, `colorama` for colored output.
73
+ - Optional: modules can define a CLI parser if they support custom arguments.
74
+
75
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for examples.
76
+
77
+ ---
78
+
79
+ ## Dependencies
80
+ - [httpx](https://pypi.org/project/httpx/)
81
+ - [colorama](https://pypi.org/project/colorama/)
82
+
83
+ ---
84
+
85
+ ## License
86
+
87
+ This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
88
+
89
+ ## ⚠️ `community/` is small looking for contributions
90
+
@@ -1,12 +1,13 @@
1
1
  user_scanner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  user_scanner/__main__.py,sha256=gTuNDvGcxJxnJgbviOARUN42bhpEZ3j5oUgZBFIYa4U,3164
3
3
  user_scanner/community/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ user_scanner/community/coderlegion.py,sha256=wva0seSkd4h7kSjIprW0wM7JC0zspFjXGnDHkeIJ3YI,1141
4
5
  user_scanner/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
5
6
  user_scanner/core/orchestrator.py,sha256=5HgT9tP5r6pX8eUOaHOwXeCz0wDTfifyGW_WtNnz6kQ,3194
6
7
  user_scanner/creator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
8
  user_scanner/creator/devto.py,sha256=K9jXlwSlhJxwZomGJB7m8u_22kTejLPJ_-AvwFZahsY,1034
8
9
  user_scanner/creator/hashnode.py,sha256=2Q-K9Yuy-6qOoJJPMq3UD0JHP4d9XeO9OGpBeHuMims,1351
9
- user_scanner/creator/kaggle.py,sha256=t5mTBz0eWZMNdy4YD1_O1wBAqHXjhmcOD0uAPzijS38,1156
10
+ user_scanner/creator/kaggle.py,sha256=pCq7QQ62wxunEmBIWNjKyWIH2ENXK76BM3zt4HWi0zM,927
10
11
  user_scanner/creator/medium.py,sha256=dWNialp0QTo4GRq64afA00G3PDXVOLZM3mnO3WnmR8c,1008
11
12
  user_scanner/dev/__init__.py,sha256=qUR0eLwN-gO6oKk-1cmCVT4G_AxUHHMgpV3wJ7URXi4,7
12
13
  user_scanner/dev/codeberg.py,sha256=WuGisrD2-OVolXB1T_5Dn-J8Nx5BTX_Fh2MTsK-F7os,930
@@ -18,15 +19,15 @@ user_scanner/dev/launchpad.py,sha256=ank50BpTsN7m5_MuQNxAbLpfQOrwjnwS_olO9nhPwgk
18
19
  user_scanner/dev/npmjs.py,sha256=Tv2YgCpuSxJKWEPdcTWwm9CCl2rmfKlGdQe2rnMnXM8,1141
19
20
  user_scanner/dev/replit.py,sha256=GN1Q8PecTzBsd6TpOT-qRnMvKhFTh1P6uCa8CDlXkpw,925
20
21
  user_scanner/social/__init__.py,sha256=jaCkFwX1uYtF0ENifVwF8OfHrYYUTm64B9wlBq9BBfQ,9
21
- user_scanner/social/instagram.py,sha256=6m2TJYWSzD5cWXXBlgFRtGRY0KlqGdHFh7_mBaOQ2bg,1357
22
- user_scanner/social/pinterest.py,sha256=5cDmvtAXPtvpsO2vdAd30_Gx11i8L90mYrAU2OgNMQE,1291
23
- user_scanner/social/reddit.py,sha256=GkbQ6fPQVDygcOsnpuOkmIpATW5YlbEnKtC8lF2U5w0,1317
24
- user_scanner/social/snapchat.py,sha256=Qik4Jfaz3Glo_Wer5NrB7IVTBcP2D8AL_mVRnPXAKkc,1650
25
- user_scanner/social/threads.py,sha256=_8pUvLtJ6NT0LA9cEQn2IqIiA0IIn3LKZFaVtbhSMQk,1354
26
- user_scanner/social/x.py,sha256=8SfCq61ky012s1FtqQ9mcpexs3Y8z7dynmp6YgpK2gQ,1522
27
- user_scanner/social/youtube.py,sha256=pYBVeYpo1fFdcMAQ22ruka9TFkNpQr1h3YuatM_s0rU,2066
28
- user_scanner-1.0.0.3.dist-info/entry_points.txt,sha256=XqU3kssYZ0vXaPy5qYUOTCu4u-48Xie7QWFpBCYc7Nc,59
29
- user_scanner-1.0.0.3.dist-info/licenses/LICENSE,sha256=XH1QyQG68zo1opDIZHTHcTAbe9XMzewvTaFTukcN9vc,1061
30
- user_scanner-1.0.0.3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
31
- user_scanner-1.0.0.3.dist-info/METADATA,sha256=Smt9GME2bnRFIMnbAbs34NrbttkJtU8KHqjJI28ccj8,452
32
- user_scanner-1.0.0.3.dist-info/RECORD,,
22
+ user_scanner/social/instagram.py,sha256=pM0KRsYB_M8FkG0YpQt2LN5P-6A20lVUmZdiDBJpgjA,1234
23
+ user_scanner/social/pinterest.py,sha256=LHCiTmPALPLYXDClz09EBKRREhs5u3CajeFiQg5Vvlg,1168
24
+ user_scanner/social/reddit.py,sha256=DQYWedJeeyUuk-6EARU_52rPQHNkjfSbahOl5AHENa0,1194
25
+ user_scanner/social/snapchat.py,sha256=ZG-SIv6RopT45dudfOm5sRxmV_ihWG1Vh1Z766fm8XE,1527
26
+ user_scanner/social/threads.py,sha256=QRidTYquAMDHJSg68ySpWCbliRYdWJkbOqn8RfWzFQQ,1231
27
+ user_scanner/social/x.py,sha256=tKQYG0UM2RQ8U_xVKSoSmb-dA7guEKoBxMC8C3O9NPc,1399
28
+ user_scanner/social/youtube.py,sha256=zuyWCy5FtEilaIcUZ4dTCctRR9deFnwwWJkf-h_1K0E,1943
29
+ user_scanner-1.0.0.5.dist-info/entry_points.txt,sha256=XqU3kssYZ0vXaPy5qYUOTCu4u-48Xie7QWFpBCYc7Nc,59
30
+ user_scanner-1.0.0.5.dist-info/licenses/LICENSE,sha256=XH1QyQG68zo1opDIZHTHcTAbe9XMzewvTaFTukcN9vc,1061
31
+ user_scanner-1.0.0.5.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
32
+ user_scanner-1.0.0.5.dist-info/METADATA,sha256=-9YGwPma_NG46zSofVjnCQxzLO55QjHnhCAJ2T2r-Xw,2363
33
+ user_scanner-1.0.0.5.dist-info/RECORD,,
@@ -1,14 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: user-scanner
3
- Version: 1.0.0.3
4
- Summary: Check username availability across multiple popular platforms
5
- Keywords: username,checker,availability,social,tech,python,user-scanner
6
- Author-email: Kaif <kafcodec@gmail.com>
7
- Requires-Python: >=3.7
8
- Description-Content-Type: text/markdown
9
- License-File: LICENSE
10
- Requires-Dist: httpx
11
- Requires-Dist: colorama
12
- Project-URL: Homepage, https://github.com/kaifcodec/user-scanner
13
-
14
- # user-scanner