user-scanner 1.0.5.0__py3-none-any.whl → 1.0.9.0__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.
- user_scanner/__init__.py +0 -1
- user_scanner/__main__.py +113 -64
- user_scanner/cli/banner.py +2 -0
- user_scanner/cli/printer.py +117 -0
- user_scanner/community/__init__.py +1 -0
- user_scanner/community/coderlegion.py +15 -14
- user_scanner/community/stackoverflow.py +35 -0
- user_scanner/core/orchestrator.py +167 -95
- user_scanner/core/result.py +128 -0
- user_scanner/core/utils.py +9 -0
- user_scanner/creator/devto.py +13 -11
- user_scanner/creator/hashnode.py +25 -28
- user_scanner/creator/itch_io.py +12 -15
- user_scanner/creator/kaggle.py +12 -11
- user_scanner/creator/medium.py +18 -22
- user_scanner/creator/patreon.py +12 -16
- user_scanner/creator/producthunt.py +38 -31
- user_scanner/dev/codeberg.py +13 -11
- user_scanner/dev/cratesio.py +19 -17
- user_scanner/dev/dockerhub.py +17 -15
- user_scanner/dev/github.py +46 -27
- user_scanner/dev/gitlab.py +18 -15
- user_scanner/dev/huggingface.py +19 -0
- user_scanner/dev/launchpad.py +19 -17
- user_scanner/dev/npmjs.py +21 -34
- user_scanner/dev/replit.py +13 -11
- user_scanner/donation/buymeacoffee.py +10 -12
- user_scanner/donation/liberapay.py +36 -0
- user_scanner/gaming/chess_com.py +17 -20
- user_scanner/gaming/minecraft.py +19 -0
- user_scanner/gaming/monkeytype.py +7 -12
- user_scanner/gaming/osu.py +13 -16
- user_scanner/gaming/roblox.py +35 -26
- user_scanner/gaming/steam.py +18 -19
- user_scanner/social/bluesky.py +20 -24
- user_scanner/social/discord.py +17 -21
- user_scanner/social/instagram.py +22 -20
- user_scanner/social/mastodon.py +12 -16
- user_scanner/social/pinterest.py +15 -13
- user_scanner/social/reddit.py +16 -13
- user_scanner/social/snapchat.py +28 -26
- user_scanner/social/soundcloud.py +43 -0
- user_scanner/social/telegram.py +19 -17
- user_scanner/social/threads.py +23 -21
- user_scanner/social/x.py +20 -28
- user_scanner/social/youtube.py +41 -47
- user_scanner/utils/update.py +0 -0
- user_scanner/utils/version.py +2 -0
- user_scanner/version.json +1 -1
- {user_scanner-1.0.5.0.dist-info → user_scanner-1.0.9.0.dist-info}/METADATA +58 -23
- user_scanner-1.0.9.0.dist-info/RECORD +61 -0
- user_scanner-1.0.5.0.dist-info/RECORD +0 -52
- {user_scanner-1.0.5.0.dist-info → user_scanner-1.0.9.0.dist-info}/WHEEL +0 -0
- {user_scanner-1.0.5.0.dist-info → user_scanner-1.0.9.0.dist-info}/entry_points.txt +0 -0
- {user_scanner-1.0.5.0.dist-info → user_scanner-1.0.9.0.dist-info}/licenses/LICENSE +0 -0
user_scanner/social/threads.py
CHANGED
|
@@ -1,27 +1,29 @@
|
|
|
1
|
-
from
|
|
1
|
+
from user_scanner.core.orchestrator import status_validate
|
|
2
|
+
|
|
2
3
|
|
|
3
4
|
def validate_instagram(user):
|
|
4
|
-
|
|
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
|
+
return status_validate(url, 404, 200, headers=headers)
|
|
5
18
|
|
|
6
|
-
headers = {
|
|
7
|
-
'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",
|
|
8
|
-
'X-IG-App-ID': "936619743392459",
|
|
9
|
-
'Accept': "application/json, text/javascript, */*; q=0.01",
|
|
10
|
-
'Accept-Encoding': "gzip, deflate, br",
|
|
11
|
-
'Accept-Language': "en-US,en;q=0.9",
|
|
12
|
-
'X-Requested-With': "XMLHttpRequest",
|
|
13
|
-
'Referer': f"https://www.instagram.com/{user}/",
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
return status_validate(url, 404, 200, headers = headers)
|
|
17
19
|
|
|
18
20
|
if __name__ == "__main__":
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
user = input("Username?: ").strip()
|
|
22
|
+
result = validate_instagram(user)
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
if result == 1:
|
|
25
|
+
print("Available!")
|
|
26
|
+
elif result == 0:
|
|
27
|
+
print("Unavailable!")
|
|
28
|
+
else:
|
|
29
|
+
print("Error occured!")
|
user_scanner/social/x.py
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
from colorama import Fore, Style
|
|
4
|
-
from httpx import ConnectError, TimeoutException
|
|
1
|
+
from user_scanner.core.result import Result
|
|
2
|
+
from user_scanner.core.orchestrator import generic_validate
|
|
5
3
|
|
|
6
4
|
def validate_x(user):
|
|
7
5
|
url = "https://api.twitter.com/i/users/username_available.json"
|
|
@@ -17,38 +15,32 @@ def validate_x(user):
|
|
|
17
15
|
"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",
|
|
18
16
|
}
|
|
19
17
|
|
|
20
|
-
|
|
21
|
-
response = httpx.get(url, params=params, headers=headers, timeout = 3.0)
|
|
18
|
+
def process(response):
|
|
22
19
|
status = response.status_code
|
|
23
|
-
# print(response.text)
|
|
24
|
-
if status in [401, 403, 429]:
|
|
25
|
-
return 2
|
|
26
20
|
|
|
21
|
+
if status in [401, 403, 429]:
|
|
22
|
+
return Result.error()
|
|
27
23
|
|
|
28
24
|
elif status == 200:
|
|
29
25
|
data = response.json()
|
|
30
26
|
if data.get('valid') is True:
|
|
31
|
-
return
|
|
27
|
+
return Result.available()
|
|
32
28
|
elif data.get('reason') == 'taken':
|
|
33
|
-
return
|
|
29
|
+
return Result.taken()
|
|
34
30
|
elif (data.get('reason') == "improper_format" or data.get('reason') == "invalid_username"):
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
return 2
|
|
31
|
+
return Result.error(f"X says: {data.get('desc')}")
|
|
32
|
+
|
|
33
|
+
return Result.error()
|
|
39
34
|
|
|
40
|
-
|
|
41
|
-
return 2
|
|
42
|
-
except Exception:
|
|
43
|
-
return 2
|
|
35
|
+
return generic_validate(url, process, params=params, headers=headers)
|
|
44
36
|
|
|
45
37
|
if __name__ == "__main__":
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
38
|
+
user = input("Username?: ").strip()
|
|
39
|
+
result = validate_x(user)
|
|
40
|
+
|
|
41
|
+
if result == 1:
|
|
42
|
+
print("Available!")
|
|
43
|
+
elif result == 0:
|
|
44
|
+
print("Unavailable!")
|
|
45
|
+
else:
|
|
46
|
+
print("Error occured!")
|
user_scanner/social/youtube.py
CHANGED
|
@@ -1,56 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
from httpx import ConnectError, TimeoutException
|
|
1
|
+
from user_scanner.core.orchestrator import status_validate, Result
|
|
3
2
|
|
|
4
|
-
def validate_youtube(user):
|
|
5
|
-
url = f"https://m.youtube.com/@{user}"
|
|
6
3
|
|
|
4
|
+
def validate_youtube(user) -> Result:
|
|
5
|
+
url = f"https://m.youtube.com/@{user}"
|
|
7
6
|
headers = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
7
|
+
'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Mobile Safari/537.36",
|
|
8
|
+
'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",
|
|
9
|
+
'Accept-Encoding': "identity",
|
|
10
|
+
'sec-ch-dpr': "2.75",
|
|
11
|
+
'sec-ch-viewport-width': "980",
|
|
12
|
+
'sec-ch-ua': "\"Google Chrome\";v=\"143\", \"Chromium\";v=\"143\", \"Not A(Brand\";v=\"24\"",
|
|
13
|
+
'sec-ch-ua-mobile': "?1",
|
|
14
|
+
'sec-ch-ua-full-version': "\"143.0.7499.52\"",
|
|
15
|
+
'sec-ch-ua-arch': "\"\"",
|
|
16
|
+
'sec-ch-ua-platform': "\"Android\"",
|
|
17
|
+
'sec-ch-ua-platform-version': "\"15.0.0\"",
|
|
18
|
+
'sec-ch-ua-model': "\"I2404\"",
|
|
19
|
+
'sec-ch-ua-bitness': "\"\"",
|
|
20
|
+
'sec-ch-ua-wow64': "?0",
|
|
21
|
+
'sec-ch-ua-full-version-list': "\"Google Chrome\";v=\"143.0.7499.52\", \"Chromium\";v=\"143.0.7499.52\", \"Not A(Brand\";v=\"24.0.0.0\"",
|
|
22
|
+
'sec-ch-ua-form-factors': "\"Mobile\"",
|
|
23
|
+
'upgrade-insecure-requests': "1",
|
|
24
|
+
'x-browser-channel': "stable",
|
|
25
|
+
'x-browser-year': "2025",
|
|
26
|
+
'x-browser-copyright': "Copyright 2025 Google LLC. All Rights reserved.",
|
|
27
|
+
'sec-fetch-site': "none",
|
|
28
|
+
'sec-fetch-mode': "navigate",
|
|
29
|
+
'sec-fetch-user': "?1",
|
|
30
|
+
'sec-fetch-dest': "document",
|
|
31
|
+
'accept-language': "en-US,en;q=0.9",
|
|
32
|
+
'priority': "u=0, i"
|
|
29
33
|
}
|
|
30
34
|
|
|
31
|
-
try:
|
|
32
|
-
response = httpx.get(url, headers=headers, follow_redirects=True, timeout = 3.0)
|
|
33
|
-
status = response.status_code
|
|
34
35
|
|
|
35
|
-
|
|
36
|
-
return 0
|
|
37
|
-
elif status == 404:
|
|
38
|
-
return 1
|
|
39
|
-
else:
|
|
40
|
-
return 2
|
|
36
|
+
return status_validate(url, 404, 200, headers=headers)
|
|
41
37
|
|
|
42
|
-
except (ConnectError, TimeoutException):
|
|
43
|
-
return 2
|
|
44
|
-
except Exception:
|
|
45
|
-
return 2
|
|
46
38
|
|
|
47
39
|
if __name__ == "__main__":
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
40
|
+
user = input("Username?: ").strip()
|
|
41
|
+
result = validate_youtube(user)
|
|
42
|
+
|
|
43
|
+
if result == 1:
|
|
44
|
+
print("Available!")
|
|
45
|
+
elif result == 0:
|
|
46
|
+
print("Unavailable!")
|
|
47
|
+
else:
|
|
48
|
+
reason = result.get_reason()
|
|
49
|
+
print(f"Error occurred! Reason: {reason}")
|
|
50
|
+
|
|
File without changes
|
user_scanner/utils/version.py
CHANGED
|
@@ -4,6 +4,7 @@ from pathlib import Path
|
|
|
4
4
|
_SCRIPT_DIR = Path(__file__).resolve().parent
|
|
5
5
|
VERSION_FILE = _SCRIPT_DIR.parent / "version.json"
|
|
6
6
|
|
|
7
|
+
|
|
7
8
|
def load_local_version():
|
|
8
9
|
try:
|
|
9
10
|
data = json.loads(VERSION_FILE.read_text())
|
|
@@ -15,6 +16,7 @@ def load_local_version():
|
|
|
15
16
|
except Exception:
|
|
16
17
|
return "N/A", "error"
|
|
17
18
|
|
|
19
|
+
|
|
18
20
|
if __name__ == "__main__":
|
|
19
21
|
version, version_type = load_local_version()
|
|
20
22
|
print(f"Version: {version}, Type: {version_type}")
|
user_scanner/version.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: user-scanner
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.9.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.9.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" />
|
|
@@ -31,12 +31,16 @@ Perfect for finding a **unique username** across GitHub, Twitter, Reddit, Instag
|
|
|
31
31
|
|
|
32
32
|
### Features
|
|
33
33
|
|
|
34
|
-
- ✅ Check usernames across **social networks**, **developer platforms**, and **creator communities
|
|
35
|
-
- ✅ Clear **Available / Taken / Error** output for each platform
|
|
36
|
-
- ✅
|
|
37
|
-
- ✅
|
|
38
|
-
- ✅
|
|
39
|
-
- ✅
|
|
34
|
+
- ✅ Check usernames across **social networks**, **developer platforms**, and **creator communities**
|
|
35
|
+
- ✅ Clear **Available / Taken / Error** output for each platform
|
|
36
|
+
- ✅ Robust error handling: It prints the exact reason (e.g. Cannot use underscores, hyphens at the start/end)
|
|
37
|
+
- ✅ Fully modular: add new platform modules easily
|
|
38
|
+
- ✅ Wildcard-based username permutations for automatic variation generation using provided suffix
|
|
39
|
+
- ✅ Selection of results format (e.g. json, csv, console (default))
|
|
40
|
+
- ✅ Get the scanning results in preferred format (json/csv) in specified output file (suitable for power users)
|
|
41
|
+
- ✅ Command-line interface ready: works directly after `pip install`
|
|
42
|
+
- ✅ Can be used as username OSINT tool
|
|
43
|
+
- ✅ Very low and lightweight dependencies, can be run on any machine
|
|
40
44
|
---
|
|
41
45
|
|
|
42
46
|
### Installation
|
|
@@ -60,14 +64,47 @@ Optionally, scan a specific category or single module:
|
|
|
60
64
|
user-scanner -u <username> -c dev
|
|
61
65
|
user-scanner -l # Lists all available modules
|
|
62
66
|
user-scanner -u <username> -m github
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Also, the output file and format can be specified: <br>
|
|
70
|
+
\* Errors and warnings will only appear when the format is set to "console"
|
|
71
|
+
```bash
|
|
72
|
+
user-scanner -u <username> -f console #Default format
|
|
73
|
+
user-scanner -u <username> -f csv
|
|
74
|
+
user-scanner -u <username> -f json
|
|
75
|
+
user-scanner -u <username> -f <format> -o <output-file>
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Generate multiple username variations by appending a suffix:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
user-scanner -u <username> -p <suffix>
|
|
82
|
+
```
|
|
83
|
+
Optionally, scan a specific category or single module with limit:
|
|
63
84
|
|
|
85
|
+
```bash
|
|
86
|
+
user-scanner -u <username> -p <suffix> -c dev
|
|
87
|
+
user-scanner -u <username> -p <suffix> -m github
|
|
88
|
+
user-scanner -u <username> -p <suffix> -s <number> # limit generation of usernames
|
|
89
|
+
user-scanner -u <username> -p <suffix> -d <seconds> # delay to avoid rate-limits (can be 0s-1s)
|
|
64
90
|
```
|
|
91
|
+
|
|
65
92
|
---
|
|
66
93
|
### Screenshot:
|
|
67
94
|
|
|
68
95
|
- Note*: New modules are constantly getting added so this might have only limited, outdated output:
|
|
69
96
|
|
|
70
|
-
|
|
97
|
+
|
|
98
|
+
<img width="1080" height="770" alt="1000140392" src="https://github.com/user-attachments/assets/4638c8f6-40c6-46f8-ae17-ac65cd199d81" />
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
<img width="1080" height="352" alt="1000140393" src="https://github.com/user-attachments/assets/578b248c-2a05-4917-aab3-6372a7c28045" />
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
<img width="992" height="556" alt="1000141265" src="https://github.com/user-attachments/assets/9babb19f-bc87-4e7b-abe5-c52b8b1b672c" />
|
|
71
108
|
|
|
72
109
|
|
|
73
110
|
### Contributing:
|
|
@@ -81,21 +118,21 @@ user_scanner/
|
|
|
81
118
|
├── creator/ # Creator platforms (Hashnode, Dev.to, Medium, etc.)
|
|
82
119
|
├── community/ # Community platforms (forums, niche sites)
|
|
83
120
|
├── gaming/ # Gaming sites (chess.com, roblox, monkeytype etc.)
|
|
121
|
+
├── donation/ # Donation taking sites (buymeacoffe.com, similar...)
|
|
84
122
|
```
|
|
85
123
|
|
|
86
124
|
**Module guidelines:**
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
125
|
+
This project contains small "validator" modules that check whether a username exists on a given platform. Each validator is a single function that returns a Result object (see `core/orchestrator.py`).
|
|
126
|
+
|
|
127
|
+
Result semantics:
|
|
128
|
+
- Result.available() → `available`
|
|
129
|
+
- Result.taken() → `taken`
|
|
130
|
+
- Result.error(message: Optional[str]) → `error`, blocked, unknown, or request failure (include short diagnostic message when helpful)
|
|
131
|
+
|
|
132
|
+
Follow this document when adding or updating validators.
|
|
93
133
|
|
|
94
134
|
See [CONTRIBUTING.md](CONTRIBUTING.md) for examples.
|
|
95
135
|
|
|
96
|
-
### 📧 Contact:
|
|
97
|
-
- [Email](kaifcodec@gmail.com)
|
|
98
|
-
|
|
99
136
|
---
|
|
100
137
|
|
|
101
138
|
### Dependencies:
|
|
@@ -109,8 +146,9 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for examples.
|
|
|
109
146
|
This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for details.
|
|
110
147
|
|
|
111
148
|
|
|
112
|
-
|
|
113
|
-
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
### Star History
|
|
114
152
|
|
|
115
153
|
<a href="https://www.star-history.com/#kaifcodec/user-scanner&type=date&legend=top-left">
|
|
116
154
|
<picture>
|
|
@@ -119,7 +157,4 @@ This project is licensed under the **MIT License**. See [LICENSE](LICENSE) for d
|
|
|
119
157
|
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=kaifcodec/user-scanner&type=date&legend=top-left" />
|
|
120
158
|
</picture>
|
|
121
159
|
</a>
|
|
122
|
-
--->
|
|
123
|
-
---
|
|
124
|
-
## ⚠️ `community/` and `gaming/` are small, looking for contributions
|
|
125
160
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
user_scanner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
user_scanner/__main__.py,sha256=jmfWuPNToix9UtLNh7IYrm-M22QBdSPtmMHv4ZY66Bc,5253
|
|
3
|
+
user_scanner/version.json,sha256=dW2NfpLg6HpcgobM6wbpzkahpV6O6N2jXxTNSwuDsU4,49
|
|
4
|
+
user_scanner/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
user_scanner/cli/banner.py,sha256=3t6owaDArERlvpcszA1Yi3dtksvh8a9tLyrxRowTC40,1499
|
|
6
|
+
user_scanner/cli/printer.py,sha256=H8rNw0ewG3G0JquKnMLW8PbHmFcALaEZZNUAsAUScHg,4027
|
|
7
|
+
user_scanner/community/__init__.py,sha256=5EzlM991pJqvqIRc05_QV5BureJZ7wiCRm1AyEY6pms,12
|
|
8
|
+
user_scanner/community/coderlegion.py,sha256=W_bdjzdFPRgUrNFFlylvToSJ4AzaFCtTsUy_MRVDdSo,451
|
|
9
|
+
user_scanner/community/stackoverflow.py,sha256=MTL8O0TLHkjVbugBh1pLxELJLU3hkX_YEHjGjaKTJi4,1007
|
|
10
|
+
user_scanner/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
user_scanner/core/orchestrator.py,sha256=BZ3IibDyT5itSdXmsTtS8SHHPT1bGwxjTwSk4xp86TU,7005
|
|
12
|
+
user_scanner/core/result.py,sha256=8qrIXO5jg6OjWkLtEq25lx_b1hLgtDFugdDyrJX4vcU,3300
|
|
13
|
+
user_scanner/core/utils.py,sha256=v3XLUXmknf9zl_JBOmnss3280SrEWBdPcz-zq3S8lak,249
|
|
14
|
+
user_scanner/creator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
user_scanner/creator/devto.py,sha256=mIACmG1a4eoctywxb5p04sI0YVi3dsjCRw9YVOFBEKQ,435
|
|
16
|
+
user_scanner/creator/hashnode.py,sha256=vlXsJfIG_5ShEK2xPLDl2bi6X-d08iTeoqfKeQLaB1g,1363
|
|
17
|
+
user_scanner/creator/itch_io.py,sha256=JsFkFzBfJI18DeuSYJIOPGEV_9v7t-jtwmBYCA9W2P8,440
|
|
18
|
+
user_scanner/creator/kaggle.py,sha256=QaXIG02OGxvQZEvwHm50RKNd7joxGOq0Ht3cFfrYEiU,445
|
|
19
|
+
user_scanner/creator/medium.py,sha256=NIOYnk8_ASD0kYfKqs8t6uZZTV4D-5-ZxyHMzOMMOuI,1015
|
|
20
|
+
user_scanner/creator/patreon.py,sha256=g-r85pxirf0ihK3STyGYPIzp59MB7JH64Opb4wq1fyU,461
|
|
21
|
+
user_scanner/creator/producthunt.py,sha256=p0HoIIVhmv9bBkelhfzRYudUFoyk_qeT66-hPpHEFqk,1938
|
|
22
|
+
user_scanner/dev/__init__.py,sha256=qUR0eLwN-gO6oKk-1cmCVT4G_AxUHHMgpV3wJ7URXi4,7
|
|
23
|
+
user_scanner/dev/codeberg.py,sha256=Z6nV0_8xZhMiCcNn9Hn79VVh6y0ar9fqL7KS2b7IaDo,447
|
|
24
|
+
user_scanner/dev/cratesio.py,sha256=mJnlLJoMLlQ7f_95QD7LgH1xCj-e6FooOFkpYypBfG4,724
|
|
25
|
+
user_scanner/dev/dockerhub.py,sha256=sPEnomGiPM2mKv2HsA-9WxaXHjzz21A6ox3IXK1etLc,643
|
|
26
|
+
user_scanner/dev/github.py,sha256=km0RMd4cS5sY8IUKDKoNC1oQeCj57ld4HAjOlo1w4ms,1689
|
|
27
|
+
user_scanner/dev/gitlab.py,sha256=kMDSd74XbofmJocfS4Fd9DxPryIHBMek3N_5c7Z_AJQ,1351
|
|
28
|
+
user_scanner/dev/huggingface.py,sha256=hDanOZ45LeUg3hrN0CYrBnBnLqHCYtOWS0_HCvAbmDw,454
|
|
29
|
+
user_scanner/dev/launchpad.py,sha256=N58ioX_dEHq2uwyyGrWnDKWwbqK9_RiuBQ1uWR5cDfg,799
|
|
30
|
+
user_scanner/dev/npmjs.py,sha256=k-DhFqGJWDoQ79EzR8hmVrJk07AfJfPUWnIYuKc2G6w,713
|
|
31
|
+
user_scanner/dev/replit.py,sha256=SI_i2l4w9tm2kBX4-cONBAT8dSynXoGEP4zcU8ngnh0,442
|
|
32
|
+
user_scanner/donation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
33
|
+
user_scanner/donation/buymeacoffee.py,sha256=86LGyChv_UKQFp2D7nIoK1B-FCAAbbfabS8NA9yLp5k,459
|
|
34
|
+
user_scanner/donation/liberapay.py,sha256=njClxpbRLZQ_L2-lUYCY6QFnF4IcwfCJPCIg1iEqo7M,1120
|
|
35
|
+
user_scanner/gaming/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
36
|
+
user_scanner/gaming/chess_com.py,sha256=74tMgukSUXwdmD9G7Jij_gudRlSfs46Xho5KNMVeyt4,1262
|
|
37
|
+
user_scanner/gaming/minecraft.py,sha256=7a9H9ebLlRzGB0SjxLmzqLiDPDBZAuuNq3KKe2DZAvo,481
|
|
38
|
+
user_scanner/gaming/monkeytype.py,sha256=n9KMBChs0ej7MgZqLGUDVz5CED70sQ3ksDF5pO0G05A,1380
|
|
39
|
+
user_scanner/gaming/osu.py,sha256=2Xs1iM0CJ-3dNHu4tyF50_s0Ei_1mA5Zd6D6M5RmiVg,448
|
|
40
|
+
user_scanner/gaming/roblox.py,sha256=Qs51jLgKh-Ehqlco_j8CFtJ4CLVoZeBwPugDvAyLw3Q,1464
|
|
41
|
+
user_scanner/gaming/steam.py,sha256=l8xk_p9aiYQWCPoogQnO1iwkfojPhg6yd76OZHhKN50,740
|
|
42
|
+
user_scanner/social/__init__.py,sha256=jaCkFwX1uYtF0ENifVwF8OfHrYYUTm64B9wlBq9BBfQ,9
|
|
43
|
+
user_scanner/social/bluesky.py,sha256=11Y_vRj3txEDQqoD0iANgSWVSB8L87OotPQZquhneR0,1994
|
|
44
|
+
user_scanner/social/discord.py,sha256=z-oIqT416ydnZUkq481rz6NTq5yc_BYu-P_Z79uR-Jw,1150
|
|
45
|
+
user_scanner/social/instagram.py,sha256=GgmKGvi3meKdZ_nQJbJSBZDJTEKSoE6Cn4_VARmo62I,953
|
|
46
|
+
user_scanner/social/mastodon.py,sha256=qISx-gUsddC8lFMcmERA4N0YAnXyS1Jq2Xgg7XE4sL4,450
|
|
47
|
+
user_scanner/social/pinterest.py,sha256=JIJ-HPtMoGvxW7NQzm02lChFKMmE6k6GxFoUZ6OvCec,784
|
|
48
|
+
user_scanner/social/reddit.py,sha256=PJ46v8WpcUY1nNSbPhbiY6B9ynB9bcakcDjopXTX2ME,787
|
|
49
|
+
user_scanner/social/snapchat.py,sha256=XEW_W4jEBX4AiHREcfHGstt97Ez3GI-3bKSzhtMyn28,1277
|
|
50
|
+
user_scanner/social/soundcloud.py,sha256=e2yU1w2fnH1EhzYed0kxgcqgWz0YoCQQFf6yKqhRPjM,1246
|
|
51
|
+
user_scanner/social/telegram.py,sha256=9IS-0pghMifNRmj62NcxCOvn23Hvg0AJJcuhCa_aXD4,765
|
|
52
|
+
user_scanner/social/threads.py,sha256=rK8Gm_riDdr0djo23tk38fNVVEBuC6nj2iTXvWrqXeE,951
|
|
53
|
+
user_scanner/social/x.py,sha256=sAnboHHZN2DWyKeds46GLZHxGG-G_bjzfVNIkblSHx8,1406
|
|
54
|
+
user_scanner/social/youtube.py,sha256=UPu584teg75P7FT05RFG3nobbHgPmzjr-ZwyN2sw6gw,1980
|
|
55
|
+
user_scanner/utils/update.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
+
user_scanner/utils/version.py,sha256=mPh24EwITyXgD3AMgbflRL180pS0JfrvuJdnoErOU34,623
|
|
57
|
+
user_scanner-1.0.9.0.dist-info/entry_points.txt,sha256=XqU3kssYZ0vXaPy5qYUOTCu4u-48Xie7QWFpBCYc7Nc,59
|
|
58
|
+
user_scanner-1.0.9.0.dist-info/licenses/LICENSE,sha256=XH1QyQG68zo1opDIZHTHcTAbe9XMzewvTaFTukcN9vc,1061
|
|
59
|
+
user_scanner-1.0.9.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
60
|
+
user_scanner-1.0.9.0.dist-info/METADATA,sha256=IeQ-358gvD2bIm2_HgkE7SR3AIS1JQ2XgvotvzEaqpA,5772
|
|
61
|
+
user_scanner-1.0.9.0.dist-info/RECORD,,
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
user_scanner/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
2
|
-
user_scanner/__main__.py,sha256=kb9df1u6z-7P9fSqx8IjQ9ev8sdOIE-PKnIasEFEeAM,3858
|
|
3
|
-
user_scanner/version.json,sha256=bkIa1xvyVZMemYh2YmYKhEIUB84-Q5MqROhOBjyhyt8,49
|
|
4
|
-
user_scanner/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
user_scanner/cli/banner.py,sha256=A3uMAwkyf-WHQH3ki3XlslAxAEMPQYZiIGeawnctZEA,1497
|
|
6
|
-
user_scanner/community/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
user_scanner/community/coderlegion.py,sha256=k8Ax0QA7WvNYGHv9PYiMpauzsIA9QeuEPAc7EVUyPIU,433
|
|
8
|
-
user_scanner/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
9
|
-
user_scanner/core/orchestrator.py,sha256=TPDe5Lp-7Lkiznw9dlnVM7GkJD1Oa8lLtaFPlgx4wWE,4586
|
|
10
|
-
user_scanner/creator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
user_scanner/creator/devto.py,sha256=vN5q9qwVqXvWV8IGEFYBvw3agtvp8_mkUC3vIzvmlO0,412
|
|
12
|
-
user_scanner/creator/hashnode.py,sha256=2Q-K9Yuy-6qOoJJPMq3UD0JHP4d9XeO9OGpBeHuMims,1351
|
|
13
|
-
user_scanner/creator/itch_io.py,sha256=gJRRv135mijvqNcVfN8Z0HcW1dr8fYDveN6FgBBFXgw,536
|
|
14
|
-
user_scanner/creator/kaggle.py,sha256=bgmDtSHL7DVozF9b_Y2fP1Z5UnK1RirC_X7WvTzAhYA,421
|
|
15
|
-
user_scanner/creator/medium.py,sha256=dWNialp0QTo4GRq64afA00G3PDXVOLZM3mnO3WnmR8c,1008
|
|
16
|
-
user_scanner/creator/patreon.py,sha256=Z6RIdGPyZW0J6ZCzNeNOse9-oDYoLUKGj_dMNuqVm9g,563
|
|
17
|
-
user_scanner/creator/producthunt.py,sha256=b9ZbOIfcFhBk34TCSoDEW5_4XLF4yGpJL7Vcg_zA54U,1164
|
|
18
|
-
user_scanner/dev/__init__.py,sha256=qUR0eLwN-gO6oKk-1cmCVT4G_AxUHHMgpV3wJ7URXi4,7
|
|
19
|
-
user_scanner/dev/codeberg.py,sha256=vpVb3Z-5Wm9UYihUWT5cdBN0OE7IgeDxjJs-oRlURiw,424
|
|
20
|
-
user_scanner/dev/cratesio.py,sha256=lQQZ6olJCf2PUSI89SC8Eg4GhKSu7SJ0ABMZXKIssF8,691
|
|
21
|
-
user_scanner/dev/dockerhub.py,sha256=SLqPrFJsjVqRY-LfTmbXCXmo2MhPIn9_8OmtOZMiEk0,614
|
|
22
|
-
user_scanner/dev/github.py,sha256=GXn7NiggcAaYkgGJbKUs4zPwGZsF4gLkbvyKxy8CaLM,1066
|
|
23
|
-
user_scanner/dev/gitlab.py,sha256=oiAIcPNVHet6feUHsP1TzCZwU6S5HYostDscE6DrQNo,1226
|
|
24
|
-
user_scanner/dev/launchpad.py,sha256=dz5--8AFjLcDLe54DiJAAKM4Qcm5b-nKxHHTwKJatIg,766
|
|
25
|
-
user_scanner/dev/npmjs.py,sha256=Tv2YgCpuSxJKWEPdcTWwm9CCl2rmfKlGdQe2rnMnXM8,1141
|
|
26
|
-
user_scanner/dev/replit.py,sha256=vpvp32dBfOtd-GjpeG5PnL2gb1HgTa_pkghQ_hZEIGY,419
|
|
27
|
-
user_scanner/donation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
28
|
-
user_scanner/donation/buymeacoffee.py,sha256=zleXL6fREZc5E3D8URCoxVs1mlFW9_KDoRPdLUPWYQU,502
|
|
29
|
-
user_scanner/gaming/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
-
user_scanner/gaming/chess_com.py,sha256=rO2ki4fpfF5YuSXZ1a63AEkeHFaZ-92U9nEJwy03wXE,1257
|
|
31
|
-
user_scanner/gaming/monkeytype.py,sha256=_aVGqah48yGmNyDWLDR98gtUCKrLzhPO0FpqIWjlrkE,1422
|
|
32
|
-
user_scanner/gaming/osu.py,sha256=CCz1RGGXgDvOltiygoOgBZ5-9-Ip2lb2pcrk9FdpHu0,547
|
|
33
|
-
user_scanner/gaming/roblox.py,sha256=Jkqg1UiISqPavabitWPgDOFt6z8nBJ57KsEeu55gD6g,1074
|
|
34
|
-
user_scanner/gaming/steam.py,sha256=z8EKfeb3bzb0mc1Uio5J_vyh8tIQYleCsGtxVHQwl6M,731
|
|
35
|
-
user_scanner/social/__init__.py,sha256=jaCkFwX1uYtF0ENifVwF8OfHrYYUTm64B9wlBq9BBfQ,9
|
|
36
|
-
user_scanner/social/bluesky.py,sha256=XDDkDH5hVFDgnIwXR6v-vXxpi6Vhys2THq8mS68TNd0,1929
|
|
37
|
-
user_scanner/social/discord.py,sha256=3TaYAzqK9sPKzL_GPzli4P-U22Dwe-mSmeH6kVHJXI4,1137
|
|
38
|
-
user_scanner/social/instagram.py,sha256=7tT7_78U_rAUiFQWIWQeDEAkhHXYrP_SqLVTRTltTu8,914
|
|
39
|
-
user_scanner/social/mastodon.py,sha256=PlVcpXslLXjkyCRq_Gc2sWF9jGvsgoq7OzUyLzZeK2o,552
|
|
40
|
-
user_scanner/social/pinterest.py,sha256=dXoGdFgEnZCBqLUx7Fciv2NhYacd_qs0uSRxx_1NDRY,655
|
|
41
|
-
user_scanner/social/reddit.py,sha256=LHIQEJ1FUbgRG0PptlzLJfjulBqqCcLDe2jCNQl66KI,678
|
|
42
|
-
user_scanner/social/snapchat.py,sha256=fT5rvUPMvAxYe0c_C_RQyRw9tgHcBg0Q85k6kq-N1Nc,1228
|
|
43
|
-
user_scanner/social/telegram.py,sha256=eDusAA9ub3LSu-CZmDp19t0N7QmTZ_dwYuK5sDKmH5o,723
|
|
44
|
-
user_scanner/social/threads.py,sha256=hRXO5EWF8Oh9sEYUyN-Zy5x7OkHlSnX2nHfyuk9GnOk,915
|
|
45
|
-
user_scanner/social/x.py,sha256=NetPGmPnWEKv6za9E_Ekah9bAeeFlEeY3qbTJQo7AqE,1560
|
|
46
|
-
user_scanner/social/youtube.py,sha256=zuyWCy5FtEilaIcUZ4dTCctRR9deFnwwWJkf-h_1K0E,1943
|
|
47
|
-
user_scanner/utils/version.py,sha256=ou6CF7ndVwEYvSpO4Se-B-71AvVezZcaZJpYFgDQsqM,621
|
|
48
|
-
user_scanner-1.0.5.0.dist-info/entry_points.txt,sha256=XqU3kssYZ0vXaPy5qYUOTCu4u-48Xie7QWFpBCYc7Nc,59
|
|
49
|
-
user_scanner-1.0.5.0.dist-info/licenses/LICENSE,sha256=XH1QyQG68zo1opDIZHTHcTAbe9XMzewvTaFTukcN9vc,1061
|
|
50
|
-
user_scanner-1.0.5.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
51
|
-
user_scanner-1.0.5.0.dist-info/METADATA,sha256=W8c8gL9t5kyJtn46gVB2DtDxBwbPSDwg2wQpmRGx8YY,4193
|
|
52
|
-
user_scanner-1.0.5.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|