user-scanner 1.0.0.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 (31) hide show
  1. user_scanner-1.0.0.0/LICENSE +21 -0
  2. user_scanner-1.0.0.0/PKG-INFO +14 -0
  3. user_scanner-1.0.0.0/README.md +1 -0
  4. user_scanner-1.0.0.0/pyproject.toml +26 -0
  5. user_scanner-1.0.0.0/user_scanner/__init__.py +0 -0
  6. user_scanner-1.0.0.0/user_scanner/__main__.py +18 -0
  7. user_scanner-1.0.0.0/user_scanner/community/__init__.py +0 -0
  8. user_scanner-1.0.0.0/user_scanner/core/__init__.py +0 -0
  9. user_scanner-1.0.0.0/user_scanner/core/orchestrator.py +62 -0
  10. user_scanner-1.0.0.0/user_scanner/creator/__init__.py +0 -0
  11. user_scanner-1.0.0.0/user_scanner/creator/devto.py +37 -0
  12. user_scanner-1.0.0.0/user_scanner/creator/hashnode.py +54 -0
  13. user_scanner-1.0.0.0/user_scanner/creator/kaggle.py +41 -0
  14. user_scanner-1.0.0.0/user_scanner/creator/medium.py +41 -0
  15. user_scanner-1.0.0.0/user_scanner/dev/__init__.py +1 -0
  16. user_scanner-1.0.0.0/user_scanner/dev/codeberg.py +37 -0
  17. user_scanner-1.0.0.0/user_scanner/dev/cratesio.py +39 -0
  18. user_scanner-1.0.0.0/user_scanner/dev/dockerhub.py +40 -0
  19. user_scanner-1.0.0.0/user_scanner/dev/github.py +46 -0
  20. user_scanner-1.0.0.0/user_scanner/dev/gitlab.py +51 -0
  21. user_scanner-1.0.0.0/user_scanner/dev/launchpad.py +39 -0
  22. user_scanner-1.0.0.0/user_scanner/dev/npmjs.py +40 -0
  23. user_scanner-1.0.0.0/user_scanner/dev/replit.py +37 -0
  24. user_scanner-1.0.0.0/user_scanner/social/__init__.py +1 -0
  25. user_scanner-1.0.0.0/user_scanner/social/instagram.py +48 -0
  26. user_scanner-1.0.0.0/user_scanner/social/pinterest.py +48 -0
  27. user_scanner-1.0.0.0/user_scanner/social/reddit.py +48 -0
  28. user_scanner-1.0.0.0/user_scanner/social/snapchat.py +54 -0
  29. user_scanner-1.0.0.0/user_scanner/social/threads.py +48 -0
  30. user_scanner-1.0.0.0/user_scanner/social/x.py +56 -0
  31. user_scanner-1.0.0.0/user_scanner/social/youtube.py +62 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Kaif
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,14 @@
1
+ Metadata-Version: 2.4
2
+ Name: user-scanner
3
+ Version: 1.0.0.0
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
@@ -0,0 +1 @@
1
+ # user-scanner
@@ -0,0 +1,26 @@
1
+ [build-system]
2
+ requires = ["flit_core >=3.2,<4"]
3
+ build-backend = "flit_core.buildapi"
4
+
5
+ [project]
6
+ name = "user-scanner"
7
+ version = "1.0.0.0"
8
+ description = "Check username availability across multiple popular platforms"
9
+ readme = "README.md"
10
+ license = {file = "LICENSE"}
11
+ authors = [
12
+ {name = "Kaif", email = "kafcodec@gmail.com"}
13
+ ]
14
+ dependencies = [
15
+ "httpx",
16
+ "colorama"
17
+ ]
18
+
19
+ requires-python = ">=3.7"
20
+ keywords = ["username", "checker", "availability", "social", "tech", "python", "user-scanner"]
21
+
22
+ [project.urls]
23
+ Homepage = "https://github.com/kaifcodec/user-scanner"
24
+
25
+ [project.scripts]
26
+ user-scanner = "user_scanner.__main__:main"
File without changes
@@ -0,0 +1,18 @@
1
+ import argparse
2
+ from user_scanner.core.orchestrator import run_checks
3
+
4
+ def main():
5
+ parser = argparse.ArgumentParser(
6
+ prog="user-scanner",
7
+ description="Scan a username across dev, social, creator, and community platforms."
8
+ )
9
+ parser.add_argument(
10
+ "-u", "--username",
11
+ required=True,
12
+ help="Username to scan across all supported platforms."
13
+ )
14
+ args = parser.parse_args()
15
+ run_checks(args.username)
16
+
17
+ if __name__ == "__main__":
18
+ main()
File without changes
@@ -0,0 +1,62 @@
1
+ import importlib
2
+ import pkgutil
3
+ from colorama import Fore, Style
4
+
5
+ def load_modules(package):
6
+
7
+ modules = []
8
+ for _, name, _ in pkgutil.iter_modules(package.__path__, package.__name__ + "."):
9
+ try:
10
+ module = importlib.import_module(name)
11
+ modules.append(module)
12
+ except Exception as e:
13
+ print(f"Failed to import {name}: {e}")
14
+ return modules
15
+
16
+
17
+ def run_checks(username):
18
+
19
+ from user_scanner import dev, social,creator, community
20
+
21
+ categories = [
22
+ ("DEV", dev),
23
+ ("SOCIAL", social),
24
+ ("CREATOR", creator),
25
+ ("COMMUNITY", community)
26
+ ]
27
+
28
+ print(f"\n{Fore.CYAN} Checking username: {username}{Style.RESET_ALL}\n")
29
+
30
+ for cat_name, package in categories:
31
+ try:
32
+ modules = load_modules(package)
33
+ except ModuleNotFoundError:
34
+ continue
35
+
36
+ print(f"{Fore.MAGENTA}== {cat_name} SITES =={Style.RESET_ALL}")
37
+
38
+ for module in modules:
39
+ # Find the first function starting with "validate_"
40
+ func = None
41
+ for f in dir(module):
42
+ if f.startswith("validate_") and callable(getattr(module, f)):
43
+ func = getattr(module, f)
44
+ break
45
+ if not func:
46
+ continue
47
+
48
+ site_name = module.__name__.split('.')[-1].capitalize()
49
+ if site_name == "X":
50
+ site_name = "X (Twitter)"
51
+ try:
52
+ result = func(username)
53
+ if result == 1:
54
+ print(f" {Fore.GREEN}[✔] {site_name}: Available{Style.RESET_ALL}")
55
+ elif result == 0:
56
+ print(f" {Fore.RED}[✘] {site_name}: Taken{Style.RESET_ALL}")
57
+ else:
58
+ print(f" {Fore.YELLOW}[!] {site_name}: Error{Style.RESET_ALL}")
59
+ except Exception as e:
60
+ print(f" {Fore.YELLOW}[!] {site_name}: Exception - {e}{Style.RESET_ALL}")
61
+
62
+ print()
File without changes
@@ -0,0 +1,37 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_devto(user):
5
+ url = f"https://dev.to/{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.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
+ }
11
+
12
+ try:
13
+ response = httpx.head(url, headers=headers, timeout=3.0, follow_redirects=True)
14
+ status = response.status_code
15
+
16
+ if status == 200:
17
+ return 0
18
+ elif status == 404:
19
+ return 1
20
+ else:
21
+ return 2
22
+
23
+ except (ConnectError, TimeoutException):
24
+ return 2
25
+ except Exception:
26
+ return 2
27
+
28
+ if __name__ == "__main__":
29
+ user = input ("Username?: ").strip()
30
+ result = validate_devto(user)
31
+
32
+ if result == 1:
33
+ print("Available!")
34
+ elif result == 0:
35
+ print("Unavailable!")
36
+ else:
37
+ print("Error occurred!")
@@ -0,0 +1,54 @@
1
+ import httpx
2
+ import json
3
+ from httpx import ConnectError, TimeoutException
4
+
5
+ def validate_hashnode(user):
6
+ url = "https://hashnode.com/utility/ajax/check-username"
7
+
8
+ payload = {
9
+ "username": user,
10
+ "name": "Dummy Dummy"
11
+ }
12
+
13
+ headers = {
14
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
15
+ 'Accept': "application/json",
16
+ 'Content-Type': "application/json",
17
+ 'Origin': "https://hashnode.com",
18
+ 'Referer': "https://hashnode.com/signup",
19
+ }
20
+
21
+ try:
22
+ response = httpx.post(url, json=payload, headers=headers, timeout=3.0)
23
+
24
+ if response.status_code == 200:
25
+ data = response.json()
26
+
27
+ if 'status' in data:
28
+ if data['status'] == 1:
29
+ return 1
30
+ elif data['status'] == 0:
31
+ return 0
32
+
33
+ return 2
34
+
35
+ else:
36
+ return 2
37
+
38
+ except (ConnectError, TimeoutException):
39
+ return 2
40
+ except json.JSONDecodeError:
41
+ return 2
42
+ except Exception:
43
+ return 2
44
+
45
+ if __name__ == "__main__":
46
+ user = input ("Username?: ").strip()
47
+ result = validate_hashnode(user)
48
+
49
+ if result == 1:
50
+ print("Available!")
51
+ elif result == 0:
52
+ print("Unavailable!")
53
+ else:
54
+ print("Error occurred!")
@@ -0,0 +1,41 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_kaggle(user):
5
+ url = f"https://www.kaggle.com/{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
9
+ 'Accept': "text/html",
10
+ }
11
+
12
+ try:
13
+ # Use GET request for maximum fidelity, though we only check status code
14
+ response = httpx.get(url, headers=headers, timeout=3.0, follow_redirects=True)
15
+ status = response.status_code
16
+
17
+ # If a profile exists (Taken) -> 200 OK
18
+ if status == 200:
19
+ return 0
20
+ # If no profile exists (Available) -> 404 Not Found
21
+ elif status == 404:
22
+ return 1
23
+ # Other status codes are errors
24
+ else:
25
+ return 2
26
+
27
+ except (ConnectError, TimeoutException):
28
+ return 2
29
+ except Exception:
30
+ return 2
31
+
32
+ if __name__ == "__main__":
33
+ user = input ("Username?: ").strip()
34
+ result = validate_kaggle(user)
35
+
36
+ if result == 1:
37
+ print("Available!")
38
+ elif result == 0:
39
+ print("Unavailable!")
40
+ else:
41
+ print("Error occurred!")
@@ -0,0 +1,41 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_medium(user):
5
+ url = f"https://medium.com/@{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
9
+ 'Accept': "text/html",
10
+ }
11
+
12
+ try:
13
+ response = httpx.get(url, headers=headers, timeout=3.0)
14
+
15
+ if response.status_code == 200:
16
+ html_text = response.text
17
+
18
+
19
+ username_tag = f'property="profile:username" content="{user}"'
20
+
21
+ if username_tag in html_text:
22
+ return 0
23
+ else:
24
+ return 1
25
+ return 2
26
+
27
+ except (ConnectError, TimeoutException):
28
+ return 2
29
+ except Exception:
30
+ return 2
31
+
32
+ if __name__ == "__main__":
33
+ user = input ("Username?: ").strip()
34
+ result = validate_medium(user)
35
+
36
+ if result == 1:
37
+ print("Available!")
38
+ elif result == 0:
39
+ print("Unavailable!")
40
+ else:
41
+ print("Error occurred!")
@@ -0,0 +1 @@
1
+ # tech
@@ -0,0 +1,37 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_codeberg(user):
5
+ url = f"https://codeberg.org/{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
9
+ 'Accept': "text/html",
10
+ }
11
+
12
+ try:
13
+ response = httpx.head(url, headers=headers, timeout=3.0, follow_redirects=True)
14
+ status = response.status_code
15
+
16
+ if status == 200:
17
+ return 0
18
+ elif status == 404:
19
+ return 1
20
+ else:
21
+ return 2
22
+
23
+ except (ConnectError, TimeoutException):
24
+ return 2
25
+ except Exception:
26
+ return 2
27
+
28
+ if __name__ == "__main__":
29
+ user = input ("Username?: ").strip()
30
+ result = validate_codeberg(user)
31
+
32
+ if result == 1:
33
+ print("Available!")
34
+ elif result == 0:
35
+ print("Unavailable!")
36
+ else:
37
+ print("Error occurred!")
@@ -0,0 +1,39 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_cratesio(user):
5
+ url = f"https://crates.io/api/v1/users/{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
9
+ 'Accept': "application/json",
10
+ 'Referer': "https://crates.io/",
11
+ 'sec-fetch-mode': "cors",
12
+ }
13
+
14
+ try:
15
+ response = httpx.head(url, headers=headers, timeout=5.0)
16
+ status = response.status_code
17
+
18
+ if status == 200:
19
+ return 0
20
+ elif status == 404:
21
+ return 1
22
+ else:
23
+ return 2
24
+
25
+ except (ConnectError, TimeoutException):
26
+ return 2
27
+ except Exception:
28
+ return 2
29
+
30
+ if __name__ == "__main__":
31
+ user = input ("Username?: ").strip()
32
+ result = validate_cratesio(user)
33
+
34
+ if result == 1:
35
+ print("Available!")
36
+ elif result == 0:
37
+ print("Unavailable!")
38
+ else:
39
+ print("Error occurred!")
@@ -0,0 +1,40 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_dockerhub(user):
5
+ url = f"https://hub.docker.com/v2/users/{user}/"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
9
+ 'Accept': "application/json",
10
+ }
11
+
12
+ try:
13
+ response = httpx.get(url, headers=headers, timeout=3.0)
14
+ status = response.status_code
15
+
16
+ # UNAVAILABLE (return 0) if the user API endpoint returns 200 OK
17
+ if status == 200:
18
+ return 0
19
+ # AVAILABLE (return 1) if the user API endpoint returns 404 Not Found
20
+ elif status == 404:
21
+ return 1
22
+ # Other status codes are errors
23
+ else:
24
+ return 2
25
+
26
+ except (ConnectError, TimeoutException):
27
+ return 2
28
+ except Exception:
29
+ return 2
30
+
31
+ if __name__ == "__main__":
32
+ user = input ("Username?: ").strip()
33
+ result = validate_dockerhub(user)
34
+
35
+ if result == 1:
36
+ print("Available!")
37
+ elif result == 0:
38
+ print("Unavailable!")
39
+ else:
40
+ print("Error occurred!")
@@ -0,0 +1,46 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_github(user):
5
+ url = f"https://github.com/signup_check/username?value={user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36",
9
+ 'Accept-Encoding': "gzip, deflate, br, zstd",
10
+ 'sec-ch-ua-platform': "\"Linux\"",
11
+ 'sec-ch-ua': "\"Chromium\";v=\"140\", \"Not=A?Brand\";v=\"24\", \"Google Chrome\";v=\"140\"",
12
+ 'sec-ch-ua-mobile': "?0",
13
+ 'sec-fetch-site': "same-origin",
14
+ 'sec-fetch-mode': "cors",
15
+ 'sec-fetch-dest': "empty",
16
+ 'referer': "https://github.com/signup?source=form-home-signup&user_email=",
17
+ 'accept-language': "en-US,en;q=0.9",
18
+ 'priority': "u=1, i"
19
+ }
20
+
21
+ try:
22
+ response = httpx.get(url, headers=headers, timeout = 3.0)
23
+ status = response.status_code
24
+
25
+ if status == 200:
26
+ return 1
27
+ elif status == 422:
28
+ return 0
29
+ else:
30
+ return 2
31
+
32
+ except (ConnectError, TimeoutException):
33
+ return 2
34
+ except Exception:
35
+ return 2
36
+
37
+ if __name__ == "__main__":
38
+ user = input ("Username?: ").strip()
39
+ result = validate_github(user)
40
+
41
+ if result == 1:
42
+ print("Available!")
43
+ elif result == 0:
44
+ print("Unavailable!")
45
+ else:
46
+ print("Error occured!")
@@ -0,0 +1,51 @@
1
+ import httpx
2
+ import json
3
+ from httpx import ConnectError, TimeoutException
4
+
5
+ def validate_gitlab(user):
6
+ url = f"https://gitlab.com/users/{user}/exists"
7
+
8
+ headers = {
9
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
10
+ 'Accept': "application/json, text/plain, */*",
11
+ 'X-Requested-With': "XMLHttpRequest",
12
+ 'Referer': "https://gitlab.com/users/sign_up",
13
+ }
14
+
15
+ try:
16
+ response = httpx.get(url, headers=headers, timeout=3.0)
17
+
18
+ if response.status_code == 200:
19
+ data = response.json()
20
+
21
+ if 'exists' in data:
22
+ # Corrected: Compare against Python boolean True/False
23
+ # AVAILABLE (return 1) if "exists": true
24
+ if data['exists'] is False:
25
+ return 1
26
+ # UNAVAILABLE (return 0) if "exists": false
27
+ elif data['exists'] is True:
28
+ return 0
29
+
30
+ return 2
31
+
32
+ else:
33
+ return 2
34
+
35
+ except (ConnectError, TimeoutException):
36
+ return 2
37
+ except json.JSONDecodeError:
38
+ return 2
39
+ except Exception:
40
+ return 2
41
+
42
+ if __name__ == "__main__":
43
+ user = input ("Username?: ").strip()
44
+ result = validate_gitlab(user)
45
+
46
+ if result == 1:
47
+ print("Available!")
48
+ elif result == 0:
49
+ print("Unavailable!")
50
+ else:
51
+ print("Error occurred!")
@@ -0,0 +1,39 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_launchpad(user):
5
+ url = f"https://launchpad.net/~{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
9
+ 'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9",
10
+ 'Accept-Encoding': "gzip, deflate, br, zstd",
11
+ 'Upgrade-Insecure-Requests': "1",
12
+ }
13
+
14
+ try:
15
+ response = httpx.head(url, headers=headers, timeout=5.0, follow_redirects=True)
16
+ status = response.status_code
17
+
18
+ if status == 200:
19
+ return 0
20
+ elif status == 404:
21
+ return 1
22
+ else:
23
+ return 2
24
+
25
+ except (ConnectError, TimeoutException):
26
+ return 2
27
+ except Exception:
28
+ return 2
29
+
30
+ if __name__ == "__main__":
31
+ user = input ("Username?: ").strip()
32
+ result = validate_launchpad(user)
33
+
34
+ if result == 1:
35
+ print("Available!")
36
+ elif result == 0:
37
+ print("Unavailable!")
38
+ else:
39
+ print("Error occurred!")
@@ -0,0 +1,40 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_npmjs(user):
5
+ url = f"https://www.npmjs.com/~{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.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, zstd",
11
+ 'accept-language': "en-US,en;q=0.9",
12
+ 'priority': "u=0, i"
13
+ }
14
+
15
+ try:
16
+ response = httpx.head(url, headers=headers, timeout=3.0, follow_redirects=True)
17
+ status = response.status_code
18
+
19
+ if status == 200:
20
+ return 0
21
+ elif status == 404:
22
+ return 1
23
+ else:
24
+ return 2
25
+
26
+ except (ConnectError, TimeoutException):
27
+ return 2
28
+ except Exception:
29
+ return 2
30
+
31
+ if __name__ == "__main__":
32
+ user = input ("Username?: ").strip()
33
+ result = validate_npmjs(user)
34
+
35
+ if result == 1:
36
+ print("Available!")
37
+ elif result == 0:
38
+ print("Unavailable!")
39
+ else:
40
+ print("Error occurred!")
@@ -0,0 +1,37 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_replit(user):
5
+ url = f"https://replit.com/@{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
9
+ 'Accept': "text/html",
10
+ }
11
+
12
+ try:
13
+ response = httpx.head(url, headers=headers, timeout=3.0, follow_redirects=True)
14
+ status = response.status_code
15
+
16
+ if status == 200:
17
+ return 0
18
+ elif status == 404:
19
+ return 1
20
+ else:
21
+ return 2
22
+
23
+ except (ConnectError, TimeoutException):
24
+ return 2
25
+ except Exception:
26
+ return 2
27
+
28
+ if __name__ == "__main__":
29
+ user = input ("Username?: ").strip()
30
+ result = validate_replit(user)
31
+
32
+ if result == 1:
33
+ print("Available!")
34
+ elif result == 0:
35
+ print("Unavailable!")
36
+ else:
37
+ print("Error occurred!")
@@ -0,0 +1 @@
1
+ # social
@@ -0,0 +1,48 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_instagram(user):
5
+ url = f"https://www.instagram.com/api/v1/users/web_profile_info/?username={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
+ 'X-IG-App-ID': "936619743392459",
10
+ 'Accept': "application/json, text/javascript, */*; q=0.01",
11
+ 'Accept-Encoding': "gzip, deflate, br",
12
+ 'Accept-Language': "en-US,en;q=0.9",
13
+ 'X-Requested-With': "XMLHttpRequest",
14
+ 'Referer': f"https://www.instagram.com/{user}/",
15
+ }
16
+
17
+ try:
18
+ response = httpx.get(url, headers=headers, timeout = 15.0)
19
+ status = response.status_code
20
+
21
+ if status == 200:
22
+ return 0
23
+ elif status == 404:
24
+ return 1
25
+ else:
26
+ return 2
27
+
28
+ except (ConnectError, TimeoutException):
29
+ return 2
30
+ except Exception:
31
+ return 2
32
+
33
+ if __name__ == "__main__":
34
+ try:
35
+ import httpx
36
+ except ImportError:
37
+ print("Error: 'httpx' library is not installed.")
38
+ exit()
39
+
40
+ user = input ("Username?: ").strip()
41
+ result = validate_instagram(user)
42
+
43
+ if result == 1:
44
+ print("Available!")
45
+ elif result == 0:
46
+ print("Unavailable!")
47
+ else:
48
+ print("Error occured!")
@@ -0,0 +1,48 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_pinterest(user):
5
+ url = f"https://www.pinterest.com/{user}/"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36",
9
+ 'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
10
+ 'Accept-Encoding': "gzip",
11
+ 'Accept-Language': "en-US,en;q=0.9",
12
+ 'sec-fetch-dest': "document",
13
+ }
14
+
15
+ NOT_FOUND_STRING = "User not found."
16
+
17
+ try:
18
+ response = httpx.get(url, headers=headers, follow_redirects=True, timeout = 3.0)
19
+
20
+ if response.status_code == 200:
21
+ if NOT_FOUND_STRING in response.text:
22
+ return 1
23
+ else:
24
+ return 0
25
+ else:
26
+ return 2
27
+
28
+ except (ConnectError, TimeoutException):
29
+ return 2
30
+ except Exception:
31
+ return 2
32
+
33
+ if __name__ == "__main__":
34
+ try:
35
+ import httpx
36
+ except ImportError:
37
+ print("Error: 'httpx' library is not installed.")
38
+ exit()
39
+
40
+ user = input ("Username?: ").strip()
41
+ result = validate_pinterest(user)
42
+
43
+ if result == 1:
44
+ print("Available!")
45
+ elif result == 0:
46
+ print("Unavailable!")
47
+ else:
48
+ print("Error occured!")
@@ -0,0 +1,48 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_reddit(user):
5
+ url = f"https://www.reddit.com/user/{user}/"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
9
+ 'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
10
+ 'Accept-Encoding': "gzip, deflate, br",
11
+ 'Accept-Language': "en-US,en;q=0.9",
12
+ 'sec-fetch-dest': "document",
13
+ }
14
+
15
+ NOT_FOUND_STRING = "Sorry, nobody on Reddit goes by that name."
16
+
17
+ try:
18
+ response = httpx.get(url, headers=headers, follow_redirects=True, timeout = 3.0)
19
+
20
+ if response.status_code == 200:
21
+ if NOT_FOUND_STRING in response.text:
22
+ return 1
23
+ else:
24
+ return 0
25
+ else:
26
+ return 2
27
+
28
+ except (ConnectError, TimeoutException):
29
+ return 2
30
+ except Exception:
31
+ return 2
32
+
33
+ if __name__ == "__main__":
34
+ try:
35
+ import httpx
36
+ except ImportError:
37
+ print("Error: 'httpx' library is not installed.")
38
+ exit()
39
+
40
+ user = input ("Username?: ").strip()
41
+ result = validate_reddit(user)
42
+
43
+ if result == 1:
44
+ print("Available!")
45
+ elif result == 0:
46
+ print("Unavailable!")
47
+ else:
48
+ print("Error occured!")
@@ -0,0 +1,54 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_snapchat(user):
5
+ url = f"https://www.snapchat.com/@{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile 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, zstd",
11
+ 'sec-ch-ua': "\"Google Chrome\";v=\"141\", \"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"141\"",
12
+ 'sec-ch-ua-mobile': "?1",
13
+ 'sec-ch-ua-platform': "\"Android\"",
14
+ 'upgrade-insecure-requests': "1",
15
+ 'sec-fetch-site': "none",
16
+ 'sec-fetch-mode': "navigate",
17
+ 'sec-fetch-user': "?1",
18
+ 'sec-fetch-dest': "document",
19
+ 'accept-language': "en-US,en;q=0.9",
20
+ 'priority': "u=0, i"
21
+ }
22
+
23
+ try:
24
+ response = httpx.get(url, headers=headers, follow_redirects=True, timeout = 3.0)
25
+ status = response.status_code
26
+
27
+ if status == 200:
28
+ return 0
29
+ elif status == 404:
30
+ return 1
31
+ else:
32
+ return 2
33
+
34
+ except (ConnectError, TimeoutException):
35
+ return 2
36
+ except Exception:
37
+ return 2
38
+
39
+ if __name__ == "__main__":
40
+ try:
41
+ import httpx
42
+ except ImportError:
43
+ print("Error: 'httpx' library is not installed.")
44
+ exit()
45
+
46
+ user = input ("Username?: ").strip()
47
+ result = validate_snapchat(user)
48
+
49
+ if result == 1:
50
+ print("Available!")
51
+ elif result == 0:
52
+ print("Unavailable!")
53
+ else:
54
+ print("Error occured!")
@@ -0,0 +1,48 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_instagram(user):
5
+ url = f"https://www.threads.com/api/v1/users/web_profile_info/?username={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
+ 'X-IG-App-ID': "936619743392459",
10
+ 'Accept': "application/json, text/javascript, */*; q=0.01",
11
+ 'Accept-Encoding': "gzip, deflate, br",
12
+ 'Accept-Language': "en-US,en;q=0.9",
13
+ 'X-Requested-With': "XMLHttpRequest",
14
+ 'Referer': f"https://www.instagram.com/{user}/",
15
+ }
16
+
17
+ try:
18
+ response = httpx.get(url, headers=headers, timeout = 3.0)
19
+ status = response.status_code
20
+
21
+ if status == 200:
22
+ return 0
23
+ elif status == 404:
24
+ return 1
25
+ else:
26
+ return 2
27
+
28
+ except (ConnectError, TimeoutException):
29
+ return 2
30
+ except Exception:
31
+ return 2
32
+
33
+ if __name__ == "__main__":
34
+ try:
35
+ import httpx
36
+ except ImportError:
37
+ print("Error: 'httpx' library is not installed.")
38
+ exit()
39
+
40
+ user = input ("Username?: ").strip()
41
+ result = validate_instagram(user)
42
+
43
+ if result == 1:
44
+ print("Available!")
45
+ elif result == 0:
46
+ print("Unavailable!")
47
+ else:
48
+ print("Error occured!")
@@ -0,0 +1,56 @@
1
+ import httpx
2
+ import json
3
+ from httpx import ConnectError, TimeoutException
4
+
5
+ def validate_x(user):
6
+ url = "https://api.twitter.com/i/users/username_available.json"
7
+
8
+ params = {
9
+ "username": user,
10
+ "full_name": "Test User",
11
+ "email": "test@example.com"
12
+ }
13
+
14
+ headers = {
15
+ "Authority": "api.twitter.com",
16
+ "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",
17
+ }
18
+
19
+ try:
20
+ response = httpx.get(url, params=params, headers=headers, timeout = 3.0)
21
+ status = response.status_code
22
+
23
+ if status in [401, 403, 429]:
24
+ return 2
25
+
26
+ elif status == 200:
27
+ data = response.json()
28
+
29
+ if data.get('valid') is True:
30
+ return 1
31
+ elif data.get('reason') == 'taken':
32
+ return 0
33
+ else:
34
+ return 2
35
+
36
+ except (ConnectError, TimeoutException, json.JSONDecodeError):
37
+ return 2
38
+ except Exception:
39
+ return 2
40
+
41
+ if __name__ == "__main__":
42
+ try:
43
+ import httpx
44
+ except ImportError:
45
+ print("Error: 'httpx' library is not installed.")
46
+ exit()
47
+
48
+ user = input ("Username?: ").strip()
49
+ result = validate_x(user)
50
+
51
+ if result == 1:
52
+ print("Available!")
53
+ elif result == 0:
54
+ print("Unavailable!")
55
+ else:
56
+ print("Error occured!")
@@ -0,0 +1,62 @@
1
+ import httpx
2
+ from httpx import ConnectError, TimeoutException
3
+
4
+ def validate_youtube(user):
5
+ url = f"https://m.youtube.com/@{user}"
6
+
7
+ headers = {
8
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile 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, zstd",
11
+ 'device-memory': "4",
12
+ 'sec-ch-ua': "\"Google Chrome\";v=\"141\", \"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"141\"",
13
+ 'sec-ch-ua-mobile': "?1",
14
+ 'sec-ch-ua-full-version': "\"141.0.7390.111\"",
15
+ 'sec-ch-ua-arch': "\"\"",
16
+ 'sec-ch-ua-platform': "\"Android\"",
17
+ 'sec-ch-ua-platform-version': "\"15.0.0\"",
18
+ 'sec-ch-ua-bitness': "\"\"",
19
+ 'sec-ch-ua-wow64': "?0",
20
+ 'sec-ch-ua-full-version-list': "\"Google Chrome\";v=\"141.0.7390.111\", \"Not?A_Brand\";v=\"8.0.0.0\", \"Chromium\";v=\"141.0.7390.111\"",
21
+ 'sec-ch-ua-form-factors': "\"Mobile\"",
22
+ 'upgrade-insecure-requests': "1",
23
+ 'sec-fetch-site': "none",
24
+ 'sec-fetch-mode': "navigate",
25
+ 'sec-fetch-user': "?1",
26
+ 'sec-fetch-dest': "document",
27
+ 'accept-language': "en-US,en;q=0.9",
28
+ 'priority': "u=0, i"
29
+ }
30
+
31
+ try:
32
+ response = httpx.get(url, headers=headers, follow_redirects=True, timeout = 3.0)
33
+ status = response.status_code
34
+
35
+ if status == 200:
36
+ return 0
37
+ elif status == 404:
38
+ return 1
39
+ else:
40
+ return 2
41
+
42
+ except (ConnectError, TimeoutException):
43
+ return 2
44
+ except Exception:
45
+ return 2
46
+
47
+ if __name__ == "__main__":
48
+ try:
49
+ import httpx
50
+ except ImportError:
51
+ print("Error: 'httpx' library is not installed.")
52
+ exit()
53
+
54
+ user = input ("Username?: ").strip()
55
+ result = validate_youtube(user)
56
+
57
+ if result == 1:
58
+ print("Available!")
59
+ elif result == 0:
60
+ print("Unavailable!")
61
+ else:
62
+ print("Error occured!")