user-scanner 1.0.10.2__tar.gz → 1.0.10.3__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 (71) hide show
  1. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/PKG-INFO +2 -2
  2. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/README.md +1 -1
  3. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/pyproject.toml +1 -1
  4. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/producthunt.py +13 -4
  5. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/version.json +1 -1
  6. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/LICENSE +0 -0
  7. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/__init__.py +0 -0
  8. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/__main__.py +0 -0
  9. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/cli/__init__.py +0 -0
  10. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/cli/banner.py +0 -0
  11. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/cli/printer.py +0 -0
  12. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/community/__init__.py +0 -0
  13. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/community/coderlegion.py +0 -0
  14. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/community/hackernews.py +0 -0
  15. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/community/stackoverflow.py +0 -0
  16. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/config.json +0 -0
  17. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/core/__init__.py +0 -0
  18. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/core/helpers.py +0 -0
  19. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/core/orchestrator.py +0 -0
  20. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/core/result.py +0 -0
  21. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/core/version.py +0 -0
  22. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/__init__.py +0 -0
  23. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/devto.py +0 -0
  24. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/hashnode.py +0 -0
  25. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/itch_io.py +0 -0
  26. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/kaggle.py +0 -0
  27. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/medium.py +0 -0
  28. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/patreon.py +0 -0
  29. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/substack.py +0 -0
  30. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/creator/twitch.py +0 -0
  31. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/__init__.py +0 -0
  32. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/bitbucket.py +0 -0
  33. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/codeberg.py +0 -0
  34. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/cratesio.py +0 -0
  35. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/dockerhub.py +0 -0
  36. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/github.py +0 -0
  37. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/gitlab.py +0 -0
  38. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/huggingface.py +0 -0
  39. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/launchpad.py +0 -0
  40. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/leetcode.py +0 -0
  41. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/npmjs.py +0 -0
  42. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/replit.py +0 -0
  43. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/dev/sourceforge.py +0 -0
  44. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/donation/__init__.py +0 -0
  45. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/donation/buymeacoffee.py +0 -0
  46. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/donation/liberapay.py +0 -0
  47. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/gaming/__init__.py +0 -0
  48. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/gaming/chess_com.py +0 -0
  49. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/gaming/lichess.py +0 -0
  50. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/gaming/minecraft.py +0 -0
  51. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/gaming/monkeytype.py +0 -0
  52. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/gaming/osu.py +0 -0
  53. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/gaming/roblox.py +0 -0
  54. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/gaming/steam.py +0 -0
  55. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/__init__.py +0 -0
  56. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/bluesky.py +0 -0
  57. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/discord.py +0 -0
  58. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/instagram.py +0 -0
  59. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/mastodon.py +0 -0
  60. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/pinterest.py +0 -0
  61. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/reddit.py +0 -0
  62. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/snapchat.py +0 -0
  63. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/soundcloud.py +0 -0
  64. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/telegram.py +0 -0
  65. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/threads.py +0 -0
  66. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/tiktok.py +0 -0
  67. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/x.py +0 -0
  68. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/social/youtube.py +0 -0
  69. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/utils/__init__.py +0 -0
  70. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/utils/update.py +0 -0
  71. {user_scanner-1.0.10.2 → user_scanner-1.0.10.3}/user_scanner/utils/updater_logic.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: user-scanner
3
- Version: 1.0.10.2
3
+ Version: 1.0.10.3
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
  ![User Scanner Logo](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.10.2-blueviolet?style=for-the-badge&logo=github" />
18
+ <img src="https://img.shields.io/badge/Version-1.0.10.3-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
  ![User Scanner Logo](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.10.2-blueviolet?style=for-the-badge&logo=github" />
5
+ <img src="https://img.shields.io/badge/Version-1.0.10.3-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.10.2"
7
+ version = "1.0.10.3"
8
8
  description = "Check username availability across multiple popular platforms"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
@@ -1,7 +1,15 @@
1
- from user_scanner.core.orchestrator import status_validate
1
+ import re
2
+ from user_scanner.core.orchestrator import status_validate, Result
2
3
 
3
4
 
4
- def validate_producthunt(user):
5
+ def validate_producthunt(user: str) -> Result:
6
+ if not (2 <= len(user) <= 32):
7
+ return Result.error("Length must be 2-32 characters.")
8
+
9
+ # Rules: Letters, numbers, and underscores only.
10
+ if not re.match(r'^[a-zA-Z0-9_]+$', user):
11
+ return Result.error("Only use letters, numbers, and underscores.")
12
+
5
13
  url = f"https://www.producthunt.com/@{user}"
6
14
 
7
15
  headers = {
@@ -11,7 +19,8 @@ def validate_producthunt(user):
11
19
  'Accept-Language': "en-US,en;q=0.9",
12
20
  }
13
21
 
14
- status_validate(url, 404, 200, headers=headers, follow_redirects=True)
22
+ return status_validate(url, 404, 200, headers=headers, follow_redirects=True)
23
+
15
24
 
16
25
  if __name__ == "__main__":
17
26
  user = input("Username?: ").strip()
@@ -22,4 +31,4 @@ if __name__ == "__main__":
22
31
  elif result == 0:
23
32
  print("Unavailable!")
24
33
  else:
25
- print("Error occured!")
34
+ print(f"Error occurred! Reason: {result.get_reason()}")
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "1.0.10.2",
2
+ "version": "1.0.10.3",
3
3
  "version_type": "pypi"
4
4
  }
File without changes