user-scanner 1.0.3.1__tar.gz → 1.0.4.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.
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/PKG-INFO +2 -2
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/README.md +1 -1
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/pyproject.toml +4 -1
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/__main__.py +0 -1
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/core/orchestrator.py +1 -1
- user_scanner-1.0.4.0/user_scanner/creator/itch_io.py +45 -0
- user_scanner-1.0.4.0/user_scanner/gaming/steam.py +46 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/version.json +1 -1
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/LICENSE +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/__init__.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/cli/__init__.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/cli/banner.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/community/__init__.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/community/coderlegion.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/core/__init__.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/creator/__init__.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/creator/devto.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/creator/hashnode.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/creator/kaggle.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/creator/medium.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/creator/patreon.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/__init__.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/codeberg.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/cratesio.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/dockerhub.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/github.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/gitlab.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/launchpad.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/npmjs.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/dev/replit.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/gaming/__init__.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/gaming/chess_com.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/gaming/monkeytype.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/gaming/osu.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/gaming/roblox.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/__init__.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/bluesky.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/discord.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/instagram.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/mastodon.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/pinterest.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/reddit.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/snapchat.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/telegram.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/threads.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/x.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/social/youtube.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/utils/update.py +0 -0
- {user_scanner-1.0.3.1 → user_scanner-1.0.4.0}/user_scanner/utils/version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: user-scanner
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4.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
|

|
|
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.4.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" />
|
|
@@ -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.4.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" />
|
|
@@ -4,7 +4,7 @@ build-backend = "flit_core.buildapi"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "user-scanner"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.4.0"
|
|
8
8
|
description = "Check username availability across multiple popular platforms"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {file = "LICENSE"}
|
|
@@ -24,3 +24,6 @@ Homepage = "https://github.com/kaifcodec/user-scanner"
|
|
|
24
24
|
|
|
25
25
|
[project.scripts]
|
|
26
26
|
user-scanner = "user_scanner.__main__:main"
|
|
27
|
+
|
|
28
|
+
[tool.flit.sdist]
|
|
29
|
+
exclude = ["tests/", "docs/", ".github/", ".git", "rm_pycache", "che.py", ".gitignore"]
|
|
@@ -23,7 +23,7 @@ def worker_single(module, username, i):
|
|
|
23
23
|
|
|
24
24
|
func = next((getattr(module, f) for f in dir(module)
|
|
25
25
|
if f.startswith("validate_") and callable(getattr(module, f))), None)
|
|
26
|
-
site_name = module.__name__.split('.')[-1].capitalize()
|
|
26
|
+
site_name = module.__name__.split('.')[-1].capitalize().replace("_",".")
|
|
27
27
|
if site_name == "X":
|
|
28
28
|
site_name = "X (Twitter)"
|
|
29
29
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import httpx
|
|
2
|
+
from httpx import ConnectError, TimeoutException
|
|
3
|
+
|
|
4
|
+
def validate_itch_io(user):
|
|
5
|
+
"""
|
|
6
|
+
Checks if a itch.io username is available.
|
|
7
|
+
Returns: 1 -> available, 0 -> taken, 2 -> error
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
url = f"https://{user}.itch.io"
|
|
11
|
+
|
|
12
|
+
headers = {
|
|
13
|
+
'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
|
|
14
|
+
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
|
15
|
+
'Accept-Encoding': "gzip, deflate, br",
|
|
16
|
+
'Accept-Language': "en-US,en;q=0.9",
|
|
17
|
+
'sec-fetch-dest': "document",
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
response = httpx.get(url, headers = headers, timeout = 5, follow_redirects=True)
|
|
22
|
+
status = response.status_code
|
|
23
|
+
|
|
24
|
+
if status == 200:
|
|
25
|
+
return 0
|
|
26
|
+
elif status == 404:
|
|
27
|
+
return 1
|
|
28
|
+
else:
|
|
29
|
+
return 2
|
|
30
|
+
|
|
31
|
+
except (ConnectError, TimeoutException):
|
|
32
|
+
return 2
|
|
33
|
+
except Exception as e:
|
|
34
|
+
return 2
|
|
35
|
+
|
|
36
|
+
if __name__ == "__main__":
|
|
37
|
+
user = input ("Username?: ").strip()
|
|
38
|
+
result = validate_itch_io(user)
|
|
39
|
+
|
|
40
|
+
if result == 1:
|
|
41
|
+
print("Available!")
|
|
42
|
+
elif result == 0:
|
|
43
|
+
print("Unavailable!")
|
|
44
|
+
else:
|
|
45
|
+
print("Error occurred!")
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import httpx
|
|
2
|
+
from httpx import ConnectError, TimeoutException
|
|
3
|
+
|
|
4
|
+
def validate_steam(user):
|
|
5
|
+
"""
|
|
6
|
+
Checks if a steam username is available.
|
|
7
|
+
Returns: 1 -> available, 0 -> taken, 2 -> error
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
url = f"https://steamcommunity.com/id/{user}/"
|
|
11
|
+
|
|
12
|
+
headers = {
|
|
13
|
+
'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36",
|
|
14
|
+
'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
|
|
15
|
+
'Accept-Encoding': "gzip, deflate, br",
|
|
16
|
+
'Accept-Language': "en-US,en;q=0.9",
|
|
17
|
+
'sec-fetch-dest': "document",
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
try:
|
|
21
|
+
response = httpx.get(url, headers = headers, timeout = 5)
|
|
22
|
+
|
|
23
|
+
if response.status_code == 200:
|
|
24
|
+
|
|
25
|
+
if response.text.find("Error</title>") != -1:
|
|
26
|
+
return 1
|
|
27
|
+
else:
|
|
28
|
+
return 0
|
|
29
|
+
|
|
30
|
+
return 2
|
|
31
|
+
|
|
32
|
+
except (ConnectError, TimeoutException):
|
|
33
|
+
return 2
|
|
34
|
+
except Exception as e:
|
|
35
|
+
return 2
|
|
36
|
+
|
|
37
|
+
if __name__ == "__main__":
|
|
38
|
+
user = input ("Username?: ").strip()
|
|
39
|
+
result = validate_steam(user)
|
|
40
|
+
|
|
41
|
+
if result == 1:
|
|
42
|
+
print("Available!")
|
|
43
|
+
elif result == 0:
|
|
44
|
+
print("Unavailable!")
|
|
45
|
+
else:
|
|
46
|
+
print("Error occurred!")
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|