user-scanner 1.1.0.5__tar.gz → 1.1.0.7__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 (155) hide show
  1. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/PKG-INFO +2 -2
  2. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/README.md +1 -1
  3. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/pyproject.toml +18 -2
  4. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/core/orchestrator.py +1 -1
  5. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/bitbucket.py +1 -1
  6. user_scanner-1.1.0.7/user_scanner/email_scan/entertainment/appletv.py +51 -0
  7. user_scanner-1.1.0.7/user_scanner/email_scan/entertainment/justwatch.py +51 -0
  8. user_scanner-1.1.0.7/user_scanner/email_scan/entertainment/netflix.py +71 -0
  9. user_scanner-1.1.0.7/user_scanner/email_scan/entertainment/stremio.py +46 -0
  10. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/music/lastfm.py +8 -0
  11. user_scanner-1.1.0.7/user_scanner/email_scan/sports/espn.py +49 -0
  12. user_scanner-1.1.0.7/user_scanner/email_scan/sports/marca.py +40 -0
  13. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/community/coderlegion.py +1 -1
  14. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/patreon.py +1 -1
  15. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/github.py +1 -1
  16. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/gaming/chess_com.py +1 -1
  17. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/gaming/monkeytype.py +1 -1
  18. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/gaming/roblox.py +1 -1
  19. user_scanner-1.1.0.7/user_scanner/user_scan/shopping/__init__.py +0 -0
  20. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/bluesky.py +1 -1
  21. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/discord.py +1 -1
  22. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/instagram.py +1 -1
  23. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/pinterest.py +1 -1
  24. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/reddit.py +1 -1
  25. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/snapchat.py +1 -1
  26. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/soundcloud.py +1 -1
  27. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/telegram.py +1 -1
  28. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/threads.py +1 -1
  29. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/x.py +1 -1
  30. user_scanner-1.1.0.7/user_scanner/utils/__init__.py +0 -0
  31. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/version.json +1 -1
  32. user_scanner-1.1.0.5/user_scanner/.ruff_cache/.gitignore +0 -2
  33. user_scanner-1.1.0.5/user_scanner/.ruff_cache/0.14.10/12603567674167520802 +0 -0
  34. user_scanner-1.1.0.5/user_scanner/.ruff_cache/0.14.10/12688104075811904861 +0 -0
  35. user_scanner-1.1.0.5/user_scanner/.ruff_cache/0.14.10/15694509833576274574 +0 -0
  36. user_scanner-1.1.0.5/user_scanner/.ruff_cache/0.14.10/301008395129872757 +0 -0
  37. user_scanner-1.1.0.5/user_scanner/.ruff_cache/0.14.10/4908403194175060721 +0 -0
  38. user_scanner-1.1.0.5/user_scanner/.ruff_cache/0.14.10/572980360641624523 +0 -0
  39. user_scanner-1.1.0.5/user_scanner/.ruff_cache/0.14.10/5935143038219898089 +0 -0
  40. user_scanner-1.1.0.5/user_scanner/.ruff_cache/CACHEDIR.TAG +0 -1
  41. user_scanner-1.1.0.5/user_scanner/email_scan/community/.ruff_cache/.gitignore +0 -2
  42. user_scanner-1.1.0.5/user_scanner/email_scan/community/.ruff_cache/0.14.10/3933329632096143294 +0 -0
  43. user_scanner-1.1.0.5/user_scanner/email_scan/community/.ruff_cache/CACHEDIR.TAG +0 -1
  44. user_scanner-1.1.0.5/user_scanner/email_scan/dev/.ruff_cache/.gitignore +0 -2
  45. user_scanner-1.1.0.5/user_scanner/email_scan/dev/.ruff_cache/0.14.10/10328336453267387919 +0 -0
  46. user_scanner-1.1.0.5/user_scanner/email_scan/dev/.ruff_cache/CACHEDIR.TAG +0 -1
  47. user_scanner-1.1.0.5/user_scanner/email_scan/hosting/.ruff_cache/.gitignore +0 -2
  48. user_scanner-1.1.0.5/user_scanner/email_scan/hosting/.ruff_cache/0.14.10/6358275293999347997 +0 -0
  49. user_scanner-1.1.0.5/user_scanner/email_scan/hosting/.ruff_cache/CACHEDIR.TAG +0 -1
  50. user_scanner-1.1.0.5/user_scanner/email_scan/music/.ruff_cache/.gitignore +0 -2
  51. user_scanner-1.1.0.5/user_scanner/email_scan/music/.ruff_cache/0.14.10/14677874048998292530 +0 -0
  52. user_scanner-1.1.0.5/user_scanner/email_scan/music/.ruff_cache/0.14.10/7544735312652879689 +0 -0
  53. user_scanner-1.1.0.5/user_scanner/email_scan/music/.ruff_cache/CACHEDIR.TAG +0 -1
  54. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/LICENSE +0 -0
  55. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/__init__.py +0 -0
  56. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/__main__.py +0 -0
  57. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/cli/__init__.py +0 -0
  58. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/cli/banner.py +0 -0
  59. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/config.json +0 -0
  60. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/core/__init__.py +0 -0
  61. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/core/email_orchestrator.py +0 -0
  62. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/core/formatter.py +0 -0
  63. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/core/helpers.py +0 -0
  64. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/core/result.py +0 -0
  65. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/core/version.py +0 -0
  66. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/__init__.py +0 -0
  67. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/adult/__init__.py +0 -0
  68. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/adult/pornhub.py +0 -0
  69. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/adult/sexvid.py +0 -0
  70. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/adult/xnxx.py +0 -0
  71. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/adult/xvideos.py +0 -0
  72. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/community/__init__.py +0 -0
  73. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/community/quora.py +0 -0
  74. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/community/stackoverflow.py +0 -0
  75. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/creator/__init__.py +0 -0
  76. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/creator/gumroad.py +0 -0
  77. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/creator/patreon.py +0 -0
  78. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/__init__.py +0 -0
  79. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/codecademy.py +0 -0
  80. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/codepen.py +0 -0
  81. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/devrant.py +0 -0
  82. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/github.py +0 -0
  83. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/huggingface.py +0 -0
  84. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/leetcode.py +0 -0
  85. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/replit.py +0 -0
  86. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/dev/wordpress.py +0 -0
  87. {user_scanner-1.1.0.5/user_scanner/email_scan/gaming → user_scanner-1.1.0.7/user_scanner/email_scan/entertainment}/__init__.py +0 -0
  88. {user_scanner-1.1.0.5/user_scanner/email_scan/hosting → user_scanner-1.1.0.7/user_scanner/email_scan/gaming}/__init__.py +0 -0
  89. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/gaming/chess_com.py +0 -0
  90. {user_scanner-1.1.0.5/user_scanner/email_scan/learning → user_scanner-1.1.0.7/user_scanner/email_scan/hosting}/__init__.py +0 -0
  91. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/hosting/render.py +0 -0
  92. {user_scanner-1.1.0.5/user_scanner/email_scan/music → user_scanner-1.1.0.7/user_scanner/email_scan/learning}/__init__.py +0 -0
  93. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/learning/duolingo.py +0 -0
  94. {user_scanner-1.1.0.5/user_scanner/email_scan/other → user_scanner-1.1.0.7/user_scanner/email_scan/music}/__init__.py +0 -0
  95. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/music/spotify.py +0 -0
  96. {user_scanner-1.1.0.5/user_scanner/email_scan/pipeline → user_scanner-1.1.0.7/user_scanner/email_scan/other}/__init__.py +0 -0
  97. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/other/eventbrite.py +0 -0
  98. {user_scanner-1.1.0.5/user_scanner/email_scan/shopping → user_scanner-1.1.0.7/user_scanner/email_scan/pipeline}/__init__.py +0 -0
  99. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/pipeline/axonaut.py +0 -0
  100. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/pipeline/hubspot.py +0 -0
  101. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/pipeline/insightly.py +0 -0
  102. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/pipeline/zoho.py +0 -0
  103. {user_scanner-1.1.0.5/user_scanner/email_scan/social → user_scanner-1.1.0.7/user_scanner/email_scan/shopping}/__init__.py +0 -0
  104. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/shopping/envato.py +0 -0
  105. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/shopping/flipkart.py +0 -0
  106. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/shopping/naturabuy.py +0 -0
  107. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/shopping/vivino.py +0 -0
  108. {user_scanner-1.1.0.5/user_scanner/user_scan/creator → user_scanner-1.1.0.7/user_scanner/email_scan/social}/__init__.py +0 -0
  109. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/social/facebook.py +0 -0
  110. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/social/instagram.py +0 -0
  111. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/social/mastodon.py +0 -0
  112. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/email_scan/social/x.py +0 -0
  113. {user_scanner-1.1.0.5/user_scanner/user_scan/donation → user_scanner-1.1.0.7/user_scanner/email_scan/sports}/__init__.py +0 -0
  114. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/community/__init__.py +0 -0
  115. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/community/hackernews.py +0 -0
  116. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/community/lemmy.py +0 -0
  117. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/community/stackoverflow.py +0 -0
  118. {user_scanner-1.1.0.5/user_scanner/user_scan/gaming → user_scanner-1.1.0.7/user_scanner/user_scan/creator}/__init__.py +0 -0
  119. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/devto.py +0 -0
  120. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/gumroad.py +0 -0
  121. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/hashnode.py +0 -0
  122. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/itch_io.py +0 -0
  123. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/kaggle.py +0 -0
  124. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/medium.py +0 -0
  125. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/producthunt.py +0 -0
  126. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/substack.py +0 -0
  127. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/creator/twitch.py +0 -0
  128. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/__init__.py +0 -0
  129. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/bitbucket.py +0 -0
  130. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/codeberg.py +0 -0
  131. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/cratesio.py +0 -0
  132. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/dockerhub.py +0 -0
  133. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/gitlab.py +0 -0
  134. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/huggingface.py +0 -0
  135. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/launchpad.py +0 -0
  136. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/leetcode.py +0 -0
  137. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/npmjs.py +0 -0
  138. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/replit.py +0 -0
  139. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/dev/sourceforge.py +0 -0
  140. {user_scanner-1.1.0.5/user_scanner/user_scan/shopping → user_scanner-1.1.0.7/user_scanner/user_scan/donation}/__init__.py +0 -0
  141. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/donation/buymeacoffee.py +0 -0
  142. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/donation/liberapay.py +0 -0
  143. {user_scanner-1.1.0.5/user_scanner/utils → user_scanner-1.1.0.7/user_scanner/user_scan/gaming}/__init__.py +0 -0
  144. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/gaming/battlenet.py +0 -0
  145. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/gaming/lichess.py +0 -0
  146. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/gaming/minecraft.py +0 -0
  147. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/gaming/osu.py +0 -0
  148. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/gaming/steam.py +0 -0
  149. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/shopping/vinted.py +0 -0
  150. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/__init__.py +0 -0
  151. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/mastodon.py +0 -0
  152. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/tiktok.py +0 -0
  153. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/user_scan/social/youtube.py +0 -0
  154. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/user_scanner/utils/update.py +0 -0
  155. {user_scanner-1.1.0.5 → user_scanner-1.1.0.7}/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.1.0.5
3
+ Version: 1.1.0.7
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>
@@ -16,7 +16,7 @@ Project-URL: Homepage, https://github.com/kaifcodec/user-scanner
16
16
 
17
17
  ![User Scanner Logo](https://github.com/user-attachments/assets/49ec8d24-665b-4115-8525-01a8d0ca2ef4)
18
18
  <p align="center">
19
- <img src="https://img.shields.io/badge/Version-1.1.0.5-blueviolet?style=for-the-badge&logo=github" />
19
+ <img src="https://img.shields.io/badge/Version-1.1.0.7-blueviolet?style=for-the-badge&logo=github" />
20
20
  <img src="https://img.shields.io/github/issues/kaifcodec/user-scanner?style=for-the-badge&logo=github" />
21
21
  <img src="https://img.shields.io/badge/Tested%20on-Termux-black?style=for-the-badge&logo=termux" />
22
22
  <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.1.0.5-blueviolet?style=for-the-badge&logo=github" />
5
+ <img src="https://img.shields.io/badge/Version-1.1.0.7-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.1.0.5"
7
+ version = "1.1.0.7"
8
8
  description = "Check username availability across multiple popular platforms"
9
9
  readme = "README.md"
10
10
  license = {file = "LICENSE"}
@@ -27,8 +27,24 @@ Homepage = "https://github.com/kaifcodec/user-scanner"
27
27
  [project.scripts]
28
28
  user-scanner = "user_scanner.__main__:main"
29
29
 
30
+ [tool.flit.module]
31
+ name = "user_scanner"
32
+
30
33
  [tool.flit.sdist]
31
- exclude = ["tests/", "docs/", ".github/", ".git", "rm_pycache.py", "che.py", ".gitignore", ".ruff_cache/"]
34
+ exclude = [
35
+ "tests/",
36
+ "docs/",
37
+ ".github/",
38
+ ".git",
39
+ ".gitignore",
40
+ ".ruff_cache/",
41
+ "**/.ruff_cache/**",
42
+ "__pycache__/",
43
+ "**/__pycache__/**",
44
+ "*.pyc",
45
+ "rm_pycache.py",
46
+ "che.py"
47
+ ]
32
48
 
33
49
  [tool.pytest.ini_options]
34
50
  pythonpath = "."
@@ -108,7 +108,7 @@ def generic_validate(url: str, func: Callable[[httpx.Response], Result], **kwarg
108
108
  def status_validate(url: str, available: int | List[int], taken: int | List[int], **kwargs) -> Result:
109
109
  """
110
110
  Function that takes a **url** and **kwargs** for the request and
111
- checks if the request status matches the availabe or taken.
111
+ checks if the request status matches the available or taken.
112
112
  **Available** and **Taken** must either be whole numbers or lists of whole numbers.
113
113
  """
114
114
  def inner(response: httpx.Response):
@@ -26,7 +26,7 @@ async def _check(email: str) -> Result:
26
26
  elif is_reg is False:
27
27
  return Result.taken()
28
28
  else:
29
- return Result.error(f"Unexpected error occured [{response.status_code}]")
29
+ return Result.error(f"Unexpected error occurred [{response.status_code}]")
30
30
  except Exception as e:
31
31
  return Result.error(f"Unexpected exception:{e}")
32
32
 
@@ -0,0 +1,51 @@
1
+ import httpx
2
+ from user_scanner.core.result import Result
3
+
4
+
5
+ async def _check(email: str) -> Result:
6
+ url = "https://idmsa.apple.com/appleauth/auth/federate"
7
+ params = {'isRememberMeEnabled': "false"}
8
+ headers = {
9
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
10
+ 'Accept': "application/json, text/javascript, */*; q=0.01",
11
+ 'Content-Type': "application/json",
12
+ 'X-Apple-Domain-Id': "2",
13
+ 'X-Apple-Locale': "en_us",
14
+ 'X-Apple-Auth-Context': "tv",
15
+ 'X-Requested-With': "XMLHttpRequest",
16
+ 'Origin': "https://idmsa.apple.com",
17
+ 'Referer': "https://idmsa.apple.com/",
18
+ }
19
+ payload = {
20
+ "accountName": email,
21
+ "rememberMe": False
22
+ }
23
+
24
+ try:
25
+ async with httpx.AsyncClient(timeout=5.0) as client:
26
+ response = await client.post(
27
+ url,
28
+ params=params,
29
+ json=payload,
30
+ headers=headers
31
+ )
32
+
33
+ if response.status_code == 200:
34
+ data = response.json()
35
+ if "primaryAuthOptions" in data:
36
+ return Result.taken()
37
+ elif "primaryAuthOptions" not in data:
38
+ return Result.available()
39
+ else:
40
+ return Result.error("Unexpected response body, report it via GitHub issues")
41
+
42
+ return Result.error(f"HTTP {response.status_code}")
43
+
44
+ except httpx.TimeoutException:
45
+ return Result.error("Connection timed out")
46
+ except Exception as e:
47
+ return Result.error(f"Unexpected exception: {e}")
48
+
49
+
50
+ async def validate_appletv(email: str) -> Result:
51
+ return await _check(email)
@@ -0,0 +1,51 @@
1
+ import httpx
2
+ from user_scanner.core.result import Result
3
+
4
+
5
+ async def _check(email: str) -> Result:
6
+ url = "https://identitytoolkit.googleapis.com/v1/accounts:createAuthUri"
7
+ params = {
8
+ 'key': "AIzaSyDv6JIzdDvbTBS-JWdR4Kl22UvgWGAyuo8"
9
+ }
10
+ headers = {
11
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36",
12
+ 'Content-Type': "application/json",
13
+ 'x-client-version': "Chrome/JsCore/10.14.1/FirebaseCore-web",
14
+ 'origin': "https://www.justwatch.com",
15
+ 'referer': "https://www.justwatch.com/",
16
+ }
17
+ payload = {
18
+ "identifier": email,
19
+ "continueUri": "https://www.justwatch.com/"
20
+ }
21
+
22
+ try:
23
+ async with httpx.AsyncClient(timeout=5.0) as client:
24
+ response = await client.post(
25
+ url,
26
+ params=params,
27
+ json=payload,
28
+ headers=headers
29
+ )
30
+
31
+ if response.status_code == 200:
32
+ data = response.json()
33
+ registered = data.get("registered")
34
+
35
+ if registered is True:
36
+ return Result.taken()
37
+ elif registered is False:
38
+ return Result.available()
39
+
40
+ return Result.error("Unexpected response body, report it via GitHub issues")
41
+
42
+ return Result.error(f"HTTP {response.status_code}")
43
+
44
+ except httpx.TimeoutException:
45
+ return Result.error("Connection timed out")
46
+ except Exception as e:
47
+ return Result.error(f"Unexpected Exception: {e}")
48
+
49
+
50
+ async def validate_justwatch(email: str) -> Result:
51
+ return await _check(email)
@@ -0,0 +1,71 @@
1
+ import httpx
2
+ from user_scanner.core.result import Result
3
+
4
+
5
+ async def _check(email: str) -> Result:
6
+ headers = {
7
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.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",
9
+ 'Accept-Language': "en-US,en;q=0.9",
10
+ 'Origin': "https://www.netflix.com",
11
+ 'Referer': "https://www.netflix.com/",
12
+ }
13
+
14
+ try:
15
+ async with httpx.AsyncClient(timeout=5.0, follow_redirects=True) as client:
16
+ await client.get("https://www.netflix.com/in/", headers=headers)
17
+
18
+ flwssn = client.cookies.get("flwssn")
19
+ if not flwssn:
20
+ return Result.error("Session token not found")
21
+
22
+ url = "https://web.prod.cloud.netflix.com/graphql"
23
+
24
+ graphql_headers = headers.copy()
25
+ graphql_headers.update({
26
+ 'content-type': 'application/json',
27
+ 'x-netflix.context.operation-name': 'CLCSWebInitSignup',
28
+ 'x-netflix.request.clcs.bucket': 'high'
29
+ })
30
+
31
+ payload = {
32
+ "operationName": "CLCSWebInitSignup",
33
+ "variables": {
34
+ "inputUserJourneyNode": "WELCOME",
35
+ "locale": "en-IN",
36
+ "inputFields": [
37
+ {"name": "flwssn", "value": {"stringValue": flwssn}},
38
+ {"name": "email", "value": {"stringValue": email}}
39
+ ]
40
+ },
41
+ "extensions": {
42
+ "persistedQuery": {
43
+ "id": "f6e8ddc6-79fb-4ff2-8e55-893d707887a4",
44
+ "version": 102
45
+ }
46
+ }
47
+ }
48
+
49
+ response = await client.post(url, headers=graphql_headers, json=payload)
50
+
51
+ if response.status_code == 200:
52
+ resp_text = response.text
53
+
54
+ if "sign-up link to" in resp_text:
55
+ return Result.available()
56
+
57
+ elif "Welcome back!" in resp_text:
58
+ return Result.taken()
59
+ else:
60
+ return Result.error("Unexpected response body, report it via GitHub issues")
61
+
62
+ return Result.error(f"HTTP {response.status_code}")
63
+
64
+ except httpx.TimeoutException:
65
+ return Result.error("Connection timed out")
66
+ except Exception as e:
67
+ return Result.error(f"Unexpected exception: {e}")
68
+
69
+
70
+ async def validate_netflix(email: str) -> Result:
71
+ return await _check(email)
@@ -0,0 +1,46 @@
1
+ import httpx
2
+ from user_scanner.core.result import Result
3
+
4
+
5
+ async def _check(email: str) -> Result:
6
+ url = "https://api.strem.io/api/login"
7
+
8
+ headers = {
9
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36",
10
+ 'Content-Type': "application/json",
11
+ 'Origin': "https://www.stremio.com",
12
+ 'Referer': "https://www.stremio.com/",
13
+ 'Accept-Language': "en-US,en;q=0.9",
14
+ }
15
+
16
+ payload = {
17
+ "authKey": None,
18
+ "email": email,
19
+ "password": "wrongpassword123"
20
+ }
21
+
22
+ try:
23
+ async with httpx.AsyncClient(timeout=5.0) as client:
24
+ response = await client.post(url, json=payload, headers=headers)
25
+
26
+ if response.status_code == 200:
27
+ data = response.json()
28
+ error_data = data.get("error", {})
29
+
30
+ if error_data.get("wrongPass") is True:
31
+ return Result.taken()
32
+ elif error_data.get("wrongEmail") is True:
33
+ return Result.available()
34
+
35
+ return Result.error("Unexpected response body, report it via GitHub issues")
36
+
37
+ return Result.error(f"HTTP {response.status_code}")
38
+
39
+ except httpx.TimeoutException:
40
+ return Result.error("Connection timed out")
41
+ except Exception as e:
42
+ return Result.error(f"Unexpected Exception: {e}")
43
+
44
+
45
+ async def validate_stremio(email: str) -> Result:
46
+ return await _check(email)
@@ -58,3 +58,11 @@ async def _check(email: str) -> Result:
58
58
 
59
59
  async def validate_lastfm(email: str) -> Result:
60
60
  return await _check(email)
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
@@ -0,0 +1,49 @@
1
+ import httpx
2
+ from user_scanner.core.result import Result
3
+
4
+
5
+ async def _check(email: str) -> Result:
6
+ url = "https://registerdisney.go.com/jgc/v8/client/ESPN-ONESITE.WEB-PROD/guest-flow"
7
+ params = {
8
+ 'langPref': "en",
9
+ 'feature': "no-password-reuse"
10
+ }
11
+ headers = {
12
+ 'User-Agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36",
13
+ 'Content-Type': "application/json",
14
+ 'origin': "https://cdn.registerdisney.go.com",
15
+ 'referer': "https://cdn.registerdisney.go.com/",
16
+ 'accept-language': "en-US,en;q=0.9",
17
+ }
18
+ payload = {"email": email}
19
+
20
+ try:
21
+ async with httpx.AsyncClient(timeout=5.0) as client:
22
+ response = await client.post(
23
+ url,
24
+ params=params,
25
+ json=payload,
26
+ headers=headers
27
+ )
28
+
29
+ if response.status_code == 200:
30
+ data = response.json().get("data", {})
31
+ flow = data.get("guestFlow")
32
+
33
+ if flow == "LOGIN_FLOW":
34
+ return Result.taken()
35
+ elif flow == "REGISTRATION_FLOW":
36
+ return Result.available()
37
+
38
+ return Result.error("Unexpected response body, report it via GitHub issues")
39
+
40
+ return Result.error(f"HTTP {response.status_code}")
41
+
42
+ except httpx.TimeoutException:
43
+ return Result.error("Connection timed out")
44
+ except Exception as e:
45
+ return Result.error(f"Unexpected Exception: {e}")
46
+
47
+
48
+ async def validate_espn(email: str) -> Result:
49
+ return await _check(email)
@@ -0,0 +1,40 @@
1
+ import httpx
2
+ from user_scanner.core.result import Result
3
+
4
+
5
+ async def _check(email: str) -> Result:
6
+ url = f"https://seguro.marca.com/ueregistro/v2/usuarios/comprobacion/{email}/2"
7
+
8
+ headers = {
9
+ 'User-Agent': "Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Mobile Safari/537.36",
10
+ 'Accept': "application/json, text/plain, */*",
11
+ 'Origin': "https://www.marca.com",
12
+ 'Referer': "https://www.marca.com/",
13
+ 'Accept-Language': "en-US,en;q=0.9",
14
+ }
15
+
16
+ try:
17
+ async with httpx.AsyncClient(timeout=5.0) as client:
18
+ response = await client.get(url, headers=headers)
19
+
20
+ if response.status_code in [200, 404]:
21
+ data = response.json()
22
+ status = data.get("status")
23
+
24
+ if status == "OK":
25
+ return Result.taken()
26
+ elif status == "NOK":
27
+ return Result.available()
28
+
29
+ return Result.error("Unexpected response body, report it via GitHub issues")
30
+
31
+ return Result.error(f"HTTP {response.status_code}")
32
+
33
+ except httpx.TimeoutException:
34
+ return Result.error("Connection timed out")
35
+ except Exception as e:
36
+ return Result.error(f"Unexpected Exception: {e}")
37
+
38
+
39
+ async def validate_marca(email: str) -> Result:
40
+ return await _check(email)
@@ -16,4 +16,4 @@ if __name__ == "__main__":
16
16
  elif result == 0:
17
17
  print("Unavailable!")
18
18
  else:
19
- print("Error occured!")
19
+ print("Error occurred!")
@@ -16,4 +16,4 @@ if __name__ == "__main__":
16
16
  elif result == 0:
17
17
  print("Unavailable!")
18
18
  else:
19
- print("Error occured!")
19
+ print("Error occurred!")
@@ -47,4 +47,4 @@ if __name__ == "__main__":
47
47
  elif result == 0:
48
48
  print("Unavailable!")
49
49
  else:
50
- print("Error occured!")
50
+ print("Error occurred!")
@@ -35,4 +35,4 @@ if __name__ == "__main__":
35
35
  elif result == 0:
36
36
  print("Unavailable!")
37
37
  else:
38
- print("Error occured!")
38
+ print("Error occurred!")
@@ -53,4 +53,4 @@ if __name__ == "__main__":
53
53
  elif result == 0:
54
54
  print("Unavailable!")
55
55
  else:
56
- print("Error occured!")
56
+ print("Error occurred!")
@@ -13,7 +13,7 @@ def validate_roblox(user: str) -> Result:
13
13
  return Result.error("Too many requests")
14
14
 
15
15
  if response.status_code == 400:
16
- # Api states theres always an error
16
+ # Api states there's always an error
17
17
  error = search_results["errors"][0]
18
18
  if error["code"] == 6:
19
19
  return Result.error("Username is too short")
@@ -51,4 +51,4 @@ if __name__ == "__main__":
51
51
  elif result == 0:
52
52
  print("Unavailable!")
53
53
  else:
54
- print("Error occured!")
54
+ print("Error occurred!")
@@ -36,4 +36,4 @@ if __name__ == "__main__":
36
36
  elif result == 0:
37
37
  print("Unavailable!")
38
38
  else:
39
- print("Error occured!")
39
+ print("Error occurred!")
@@ -26,4 +26,4 @@ if __name__ == "__main__":
26
26
  elif result == 0:
27
27
  print("Unavailable!")
28
28
  else:
29
- print("Error occured!")
29
+ print("Error occurred!")
@@ -25,4 +25,4 @@ if __name__ == "__main__":
25
25
  elif result == 0:
26
26
  print("Unavailable!")
27
27
  else:
28
- print("Error occured!")
28
+ print("Error occurred!")
@@ -26,4 +26,4 @@ if __name__ == "__main__":
26
26
  elif result == 0:
27
27
  print("Unavailable!")
28
28
  else:
29
- print("Error occured!")
29
+ print("Error occurred!")
@@ -32,4 +32,4 @@ if __name__ == "__main__":
32
32
  elif result == 0:
33
33
  print("Unavailable!")
34
34
  else:
35
- print("Error occured!")
35
+ print("Error occurred!")
@@ -35,4 +35,4 @@ if __name__ == "__main__":
35
35
  elif result == 0:
36
36
  print("Unavailable!")
37
37
  else:
38
- print("Error occured!")
38
+ print("Error occurred!")
@@ -26,4 +26,4 @@ if __name__ == "__main__":
26
26
  elif result == 0:
27
27
  print("Unavailable!")
28
28
  else:
29
- print("Error occured!")
29
+ print("Error occurred!")
@@ -26,4 +26,4 @@ if __name__ == "__main__":
26
26
  elif result == 0:
27
27
  print("Unavailable!")
28
28
  else:
29
- print("Error occured!")
29
+ print("Error occurred!")
@@ -43,4 +43,4 @@ if __name__ == "__main__":
43
43
  elif result == 0:
44
44
  print("Unavailable!")
45
45
  else:
46
- print("Error occured!")
46
+ print("Error occurred!")
File without changes
@@ -1,4 +1,4 @@
1
1
  {
2
- "version": "1.1.0.5",
2
+ "version": "1.1.0.7",
3
3
  "version_type": "pypi"
4
4
  }
@@ -1,2 +0,0 @@
1
- # Automatically created by ruff.
2
- *
@@ -1 +0,0 @@
1
- Signature: 8a477f597d28d172789f06886806bc55
@@ -1,2 +0,0 @@
1
- # Automatically created by ruff.
2
- *
@@ -1 +0,0 @@
1
- Signature: 8a477f597d28d172789f06886806bc55
@@ -1,2 +0,0 @@
1
- # Automatically created by ruff.
2
- *
@@ -1 +0,0 @@
1
- Signature: 8a477f597d28d172789f06886806bc55
@@ -1,2 +0,0 @@
1
- # Automatically created by ruff.
2
- *
@@ -1 +0,0 @@
1
- Signature: 8a477f597d28d172789f06886806bc55
@@ -1,2 +0,0 @@
1
- # Automatically created by ruff.
2
- *
@@ -1 +0,0 @@
1
- Signature: 8a477f597d28d172789f06886806bc55
File without changes