webscout 8.2.8__tar.gz → 8.2.9__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.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (373) hide show
  1. {webscout-8.2.8/webscout.egg-info → webscout-8.2.9}/PKG-INFO +159 -35
  2. {webscout-8.2.8 → webscout-8.2.9}/README.md +156 -34
  3. {webscout-8.2.8 → webscout-8.2.9}/changelog.md +0 -0
  4. {webscout-8.2.8 → webscout-8.2.9}/pyproject.toml +6 -7
  5. {webscout-8.2.8 → webscout-8.2.9}/webscout/AIauto.py +32 -14
  6. {webscout-8.2.8 → webscout-8.2.9}/webscout/AIbase.py +96 -37
  7. webscout-8.2.9/webscout/AIutel.py +703 -0
  8. {webscout-8.2.8 → webscout-8.2.9}/webscout/Bard.py +441 -323
  9. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/__init__.py +10 -10
  10. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/video.py +232 -232
  11. webscout-8.2.9/webscout/Litlogger/README.md +10 -0
  12. webscout-8.2.9/webscout/Litlogger/__init__.py +15 -0
  13. webscout-8.2.9/webscout/Litlogger/formats.py +4 -0
  14. webscout-8.2.9/webscout/Litlogger/handlers.py +103 -0
  15. webscout-8.2.9/webscout/Litlogger/levels.py +13 -0
  16. webscout-8.2.9/webscout/Litlogger/logger.py +92 -0
  17. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/Perplexity.py +332 -358
  18. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/felo_search.py +9 -35
  19. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/genspark_search.py +30 -56
  20. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/hika_search.py +4 -16
  21. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/iask_search.py +410 -436
  22. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/monica_search.py +4 -30
  23. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/scira_search.py +6 -32
  24. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/webpilotai_search.py +38 -64
  25. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Blackboxai.py +153 -35
  26. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Deepinfra.py +339 -339
  27. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ExaChat.py +358 -358
  28. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Gemini.py +169 -169
  29. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/GithubChat.py +1 -2
  30. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Glider.py +3 -3
  31. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/HeckAI.py +171 -81
  32. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/BLACKBOXAI.py +766 -735
  33. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/Cloudflare.py +7 -7
  34. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/FreeGemini.py +6 -5
  35. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/NEMOTRON.py +8 -20
  36. webscout-8.2.9/webscout/Provider/OPENAI/Qwen3.py +283 -0
  37. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/README.md +952 -1253
  38. webscout-8.2.9/webscout/Provider/OPENAI/TwoAI.py +357 -0
  39. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/__init__.py +5 -1
  40. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/ai4chat.py +40 -40
  41. webscout-8.2.9/webscout/Provider/OPENAI/api.py +969 -0
  42. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/c4ai.py +3 -3
  43. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/chatgpt.py +555 -555
  44. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/chatgptclone.py +493 -487
  45. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/chatsandbox.py +4 -3
  46. webscout-8.2.9/webscout/Provider/OPENAI/copilot.py +242 -0
  47. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/deepinfra.py +5 -2
  48. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/e2b.py +63 -5
  49. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/exaai.py +416 -410
  50. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/exachat.py +444 -443
  51. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/freeaichat.py +2 -2
  52. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/glider.py +5 -2
  53. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/groq.py +5 -2
  54. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/heckai.py +308 -307
  55. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/mcpcore.py +8 -2
  56. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/multichat.py +4 -4
  57. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/netwrck.py +6 -5
  58. webscout-8.2.9/webscout/Provider/OPENAI/oivscode.py +287 -0
  59. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/opkfc.py +496 -496
  60. webscout-8.2.9/webscout/Provider/OPENAI/pydantic_imports.py +172 -0
  61. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/scirachat.py +15 -9
  62. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/sonus.py +304 -303
  63. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/standardinput.py +433 -433
  64. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/textpollinations.py +4 -4
  65. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/toolbaz.py +413 -413
  66. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/typefully.py +3 -3
  67. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/typegpt.py +11 -5
  68. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/uncovrAI.py +463 -462
  69. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/utils.py +90 -79
  70. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/venice.py +431 -425
  71. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/wisecat.py +387 -381
  72. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/writecream.py +3 -3
  73. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/x0gpt.py +365 -378
  74. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/yep.py +39 -13
  75. webscout-8.2.9/webscout/Provider/TTI/README.md +82 -0
  76. webscout-8.2.9/webscout/Provider/TTI/__init__.py +7 -0
  77. webscout-8.2.9/webscout/Provider/TTI/aiarta.py +365 -0
  78. webscout-8.2.9/webscout/Provider/TTI/artbit.py +0 -0
  79. webscout-8.2.9/webscout/Provider/TTI/base.py +64 -0
  80. webscout-8.2.9/webscout/Provider/TTI/fastflux.py +200 -0
  81. webscout-8.2.9/webscout/Provider/TTI/magicstudio.py +201 -0
  82. webscout-8.2.9/webscout/Provider/TTI/piclumen.py +203 -0
  83. webscout-8.2.9/webscout/Provider/TTI/pixelmuse.py +225 -0
  84. webscout-8.2.9/webscout/Provider/TTI/pollinations.py +221 -0
  85. webscout-8.2.9/webscout/Provider/TTI/utils.py +11 -0
  86. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/__init__.py +2 -1
  87. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/base.py +159 -159
  88. webscout-8.2.9/webscout/Provider/TTS/openai_fm.py +129 -0
  89. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TextPollinationsAI.py +308 -308
  90. webscout-8.2.9/webscout/Provider/TwoAI.py +475 -0
  91. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/UNFINISHED/Youchat.py +330 -330
  92. webscout-8.2.9/webscout/Provider/UNFINISHED/puterjs.py +635 -0
  93. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/UNFINISHED/test_lmarena.py +119 -119
  94. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Writecream.py +246 -246
  95. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/__init__.py +2 -0
  96. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ai4chat.py +33 -8
  97. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/koala.py +169 -169
  98. webscout-8.2.9/webscout/Provider/oivscode.py +309 -0
  99. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/samurai.py +3 -2
  100. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/typegpt.py +3 -3
  101. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/uncovr.py +368 -368
  102. webscout-8.2.9/webscout/client.py +70 -0
  103. {webscout-8.2.8 → webscout-8.2.9}/webscout/litprinter/__init__.py +58 -58
  104. {webscout-8.2.8 → webscout-8.2.9}/webscout/optimizers.py +419 -419
  105. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/README.md +3 -1
  106. webscout-8.2.9/webscout/scout/core/crawler.py +210 -0
  107. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/scout.py +148 -109
  108. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/element.py +106 -88
  109. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/Readme.md +323 -323
  110. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/plugins/manager.py +9 -2
  111. webscout-8.2.9/webscout/version.py +2 -0
  112. {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/__init__.py +134 -134
  113. {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/effects.py +100 -100
  114. {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/fonts.py +1238 -1238
  115. {webscout-8.2.8 → webscout-8.2.9/webscout.egg-info}/PKG-INFO +159 -35
  116. {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/SOURCES.txt +46 -136
  117. {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/entry_points.txt +1 -0
  118. {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/requires.txt +2 -0
  119. webscout-8.2.8/webscout/AIutel.py +0 -299
  120. webscout-8.2.8/webscout/Litlogger/Readme.md +0 -175
  121. webscout-8.2.8/webscout/Litlogger/__init__.py +0 -67
  122. webscout-8.2.8/webscout/Litlogger/core/__init__.py +0 -6
  123. webscout-8.2.8/webscout/Litlogger/core/level.py +0 -23
  124. webscout-8.2.8/webscout/Litlogger/core/logger.py +0 -165
  125. webscout-8.2.8/webscout/Litlogger/handlers/__init__.py +0 -12
  126. webscout-8.2.8/webscout/Litlogger/handlers/console.py +0 -33
  127. webscout-8.2.8/webscout/Litlogger/handlers/file.py +0 -143
  128. webscout-8.2.8/webscout/Litlogger/handlers/network.py +0 -173
  129. webscout-8.2.8/webscout/Litlogger/styles/__init__.py +0 -7
  130. webscout-8.2.8/webscout/Litlogger/styles/colors.py +0 -249
  131. webscout-8.2.8/webscout/Litlogger/styles/formats.py +0 -458
  132. webscout-8.2.8/webscout/Litlogger/styles/text.py +0 -87
  133. webscout-8.2.8/webscout/Litlogger/utils/__init__.py +0 -6
  134. webscout-8.2.8/webscout/Litlogger/utils/detectors.py +0 -153
  135. webscout-8.2.8/webscout/Litlogger/utils/formatters.py +0 -200
  136. webscout-8.2.8/webscout/Provider/OPENAI/api.py +0 -810
  137. webscout-8.2.8/webscout/Provider/TTI/AiForce/README.md +0 -159
  138. webscout-8.2.8/webscout/Provider/TTI/AiForce/__init__.py +0 -22
  139. webscout-8.2.8/webscout/Provider/TTI/AiForce/async_aiforce.py +0 -224
  140. webscout-8.2.8/webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -245
  141. webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/README.md +0 -99
  142. webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/__init__.py +0 -9
  143. webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +0 -181
  144. webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +0 -180
  145. webscout-8.2.8/webscout/Provider/TTI/ImgSys/README.md +0 -174
  146. webscout-8.2.8/webscout/Provider/TTI/ImgSys/__init__.py +0 -23
  147. webscout-8.2.8/webscout/Provider/TTI/ImgSys/async_imgsys.py +0 -202
  148. webscout-8.2.8/webscout/Provider/TTI/ImgSys/sync_imgsys.py +0 -195
  149. webscout-8.2.8/webscout/Provider/TTI/MagicStudio/README.md +0 -101
  150. webscout-8.2.8/webscout/Provider/TTI/MagicStudio/__init__.py +0 -2
  151. webscout-8.2.8/webscout/Provider/TTI/MagicStudio/async_magicstudio.py +0 -111
  152. webscout-8.2.8/webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +0 -109
  153. webscout-8.2.8/webscout/Provider/TTI/Nexra/README.md +0 -155
  154. webscout-8.2.8/webscout/Provider/TTI/Nexra/__init__.py +0 -22
  155. webscout-8.2.8/webscout/Provider/TTI/Nexra/async_nexra.py +0 -286
  156. webscout-8.2.8/webscout/Provider/TTI/Nexra/sync_nexra.py +0 -258
  157. webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/README.md +0 -146
  158. webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/__init__.py +0 -23
  159. webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -311
  160. webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -265
  161. webscout-8.2.8/webscout/Provider/TTI/README.md +0 -128
  162. webscout-8.2.8/webscout/Provider/TTI/__init__.py +0 -12
  163. webscout-8.2.8/webscout/Provider/TTI/aiarta/README.md +0 -134
  164. webscout-8.2.8/webscout/Provider/TTI/aiarta/__init__.py +0 -2
  165. webscout-8.2.8/webscout/Provider/TTI/aiarta/async_aiarta.py +0 -482
  166. webscout-8.2.8/webscout/Provider/TTI/aiarta/sync_aiarta.py +0 -440
  167. webscout-8.2.8/webscout/Provider/TTI/artbit/README.md +0 -100
  168. webscout-8.2.8/webscout/Provider/TTI/artbit/__init__.py +0 -22
  169. webscout-8.2.8/webscout/Provider/TTI/artbit/async_artbit.py +0 -155
  170. webscout-8.2.8/webscout/Provider/TTI/artbit/sync_artbit.py +0 -148
  171. webscout-8.2.8/webscout/Provider/TTI/fastflux/README.md +0 -129
  172. webscout-8.2.8/webscout/Provider/TTI/fastflux/__init__.py +0 -22
  173. webscout-8.2.8/webscout/Provider/TTI/fastflux/async_fastflux.py +0 -261
  174. webscout-8.2.8/webscout/Provider/TTI/fastflux/sync_fastflux.py +0 -252
  175. webscout-8.2.8/webscout/Provider/TTI/huggingface/README.md +0 -114
  176. webscout-8.2.8/webscout/Provider/TTI/huggingface/__init__.py +0 -22
  177. webscout-8.2.8/webscout/Provider/TTI/huggingface/async_huggingface.py +0 -199
  178. webscout-8.2.8/webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -195
  179. webscout-8.2.8/webscout/Provider/TTI/piclumen/README.md +0 -161
  180. webscout-8.2.8/webscout/Provider/TTI/piclumen/__init__.py +0 -23
  181. webscout-8.2.8/webscout/Provider/TTI/piclumen/async_piclumen.py +0 -268
  182. webscout-8.2.8/webscout/Provider/TTI/piclumen/sync_piclumen.py +0 -233
  183. webscout-8.2.8/webscout/Provider/TTI/pixelmuse/README.md +0 -79
  184. webscout-8.2.8/webscout/Provider/TTI/pixelmuse/__init__.py +0 -4
  185. webscout-8.2.8/webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +0 -249
  186. webscout-8.2.8/webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +0 -182
  187. webscout-8.2.8/webscout/Provider/TTI/talkai/README.md +0 -139
  188. webscout-8.2.8/webscout/Provider/TTI/talkai/__init__.py +0 -4
  189. webscout-8.2.8/webscout/Provider/TTI/talkai/async_talkai.py +0 -229
  190. webscout-8.2.8/webscout/Provider/TTI/talkai/sync_talkai.py +0 -207
  191. webscout-8.2.8/webscout/Provider/TwoAI.py +0 -280
  192. webscout-8.2.8/webscout/Provider/UNFINISHED/oivscode.py +0 -351
  193. webscout-8.2.8/webscout/scout/core/crawler.py +0 -140
  194. webscout-8.2.8/webscout/version.py +0 -2
  195. {webscout-8.2.8 → webscout-8.2.9}/LEGAL_NOTICE.md +0 -0
  196. {webscout-8.2.8 → webscout-8.2.9}/LICENSE.md +0 -0
  197. {webscout-8.2.8 → webscout-8.2.9}/MANIFEST.in +0 -0
  198. {webscout-8.2.8 → webscout-8.2.9}/setup.cfg +0 -0
  199. {webscout-8.2.8 → webscout-8.2.9}/webscout/DWEBS.py +0 -0
  200. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/Act.md +0 -0
  201. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/README.md +0 -0
  202. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/__init__.py +0 -0
  203. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/repository.py +0 -0
  204. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/user.py +0 -0
  205. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/utils.py +0 -0
  206. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/README.md +0 -0
  207. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
  208. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/__init__.py +0 -0
  209. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/transcriber.py +0 -0
  210. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/README.md +0 -0
  211. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
  212. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
  213. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
  214. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
  215. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
  216. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
  217. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
  218. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
  219. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
  220. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
  221. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
  222. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/__init__.py +0 -0
  223. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/autocoder/__init__.py +0 -0
  224. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/autocoder/autocoder.py +0 -0
  225. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/autocoder/autocoder_utiles.py +0 -0
  226. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/gguf.md +0 -0
  227. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/gguf.py +0 -0
  228. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/README.md +0 -0
  229. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/__init__.py +0 -0
  230. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/async_utils.py +0 -0
  231. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/base.py +0 -0
  232. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/cli.py +0 -0
  233. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/emailnator.py +0 -0
  234. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/mail_tm.py +0 -0
  235. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/temp_mail_io.py +0 -0
  236. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/weather.md +0 -0
  237. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/weather.py +0 -0
  238. {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/weather_ascii.py +0 -0
  239. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AI21.py +0 -0
  240. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/DeepFind.py +0 -0
  241. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/README.md +0 -0
  242. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/__init__.py +0 -0
  243. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Aitopia.py +0 -0
  244. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AllenAI.py +0 -0
  245. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Andi.py +0 -0
  246. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ChatGPTClone.py +0 -0
  247. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ChatGPTGratis.py +0 -0
  248. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ChatSandbox.py +0 -0
  249. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Cloudflare.py +0 -0
  250. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Cohere.py +0 -0
  251. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ExaAI.py +0 -0
  252. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Flowith.py +0 -0
  253. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/FreeGemini.py +0 -0
  254. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/GizAI.py +0 -0
  255. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Groq.py +0 -0
  256. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/HF_space/__init__.py +0 -0
  257. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/HF_space/qwen_qwen2.py +0 -0
  258. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/HuggingFaceChat.py +0 -0
  259. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Hunyuan.py +0 -0
  260. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Jadve.py +0 -0
  261. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Koboldai.py +0 -0
  262. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/LambdaChat.py +0 -0
  263. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Llama3.py +0 -0
  264. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/MCPCore.py +0 -0
  265. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Marcus.py +0 -0
  266. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Nemotron.py +0 -0
  267. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Netwrck.py +0 -0
  268. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OLLAMA.py +0 -0
  269. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/base.py +0 -0
  270. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/flowith.py +0 -0
  271. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/llmchatco.py +0 -0
  272. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OpenGPT.py +0 -0
  273. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Openai.py +0 -0
  274. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/PI.py +0 -0
  275. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Perplexitylabs.py +0 -0
  276. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/QwenLM.py +0 -0
  277. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Reka.py +0 -0
  278. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/StandardInput.py +0 -0
  279. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/README.md +0 -0
  280. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/deepgram.py +0 -0
  281. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/elevenlabs.py +0 -0
  282. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/gesserit.py +0 -0
  283. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/murfai.py +0 -0
  284. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/parler.py +0 -0
  285. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/speechma.py +0 -0
  286. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/sthir.py +0 -0
  287. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/streamElements.py +0 -0
  288. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/utils.py +0 -0
  289. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TeachAnything.py +0 -0
  290. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TypliAI.py +0 -0
  291. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/UNFINISHED/ChatHub.py +0 -0
  292. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/UNFINISHED/liner_api_request.py +0 -0
  293. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Venice.py +0 -0
  294. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/VercelAI.py +0 -0
  295. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/WiseCat.py +0 -0
  296. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/WrDoChat.py +0 -0
  297. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/WritingMate.py +0 -0
  298. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/akashgpt.py +0 -0
  299. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/asksteve.py +0 -0
  300. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/cerebras.py +0 -0
  301. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/chatglm.py +0 -0
  302. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/cleeai.py +0 -0
  303. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/copilot.py +0 -0
  304. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/elmo.py +0 -0
  305. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/freeaichat.py +0 -0
  306. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/geminiapi.py +0 -0
  307. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/granite.py +0 -0
  308. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/hermes.py +0 -0
  309. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/julius.py +0 -0
  310. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/learnfastai.py +0 -0
  311. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/llama3mitril.py +0 -0
  312. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/llmchat.py +0 -0
  313. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/llmchatco.py +0 -0
  314. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/lmarena.py +0 -0
  315. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/meta.py +0 -0
  316. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/multichat.py +0 -0
  317. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/scira_chat.py +0 -0
  318. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/scnet.py +0 -0
  319. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/searchchat.py +0 -0
  320. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/sonus.py +0 -0
  321. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/talkai.py +0 -0
  322. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/toolbaz.py +0 -0
  323. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/turboseek.py +0 -0
  324. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/typefully.py +0 -0
  325. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/x0gpt.py +0 -0
  326. {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/yep.py +0 -0
  327. {webscout-8.2.8 → webscout-8.2.9}/webscout/__init__.py +0 -0
  328. {webscout-8.2.8 → webscout-8.2.9}/webscout/__main__.py +0 -0
  329. {webscout-8.2.8 → webscout-8.2.9}/webscout/cli.py +0 -0
  330. {webscout-8.2.8 → webscout-8.2.9}/webscout/conversation.py +0 -0
  331. {webscout-8.2.8 → webscout-8.2.9}/webscout/exceptions.py +0 -0
  332. {webscout-8.2.8 → webscout-8.2.9}/webscout/litagent/Readme.md +0 -0
  333. {webscout-8.2.8 → webscout-8.2.9}/webscout/litagent/__init__.py +0 -0
  334. {webscout-8.2.8 → webscout-8.2.9}/webscout/litagent/agent.py +0 -0
  335. {webscout-8.2.8 → webscout-8.2.9}/webscout/litagent/constants.py +0 -0
  336. {webscout-8.2.8 → webscout-8.2.9}/webscout/models.py +0 -0
  337. {webscout-8.2.8 → webscout-8.2.9}/webscout/prompt_manager.py +0 -0
  338. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/__init__.py +0 -0
  339. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/__init__.py +0 -0
  340. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/search_result.py +0 -0
  341. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/text_analyzer.py +0 -0
  342. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/text_utils.py +0 -0
  343. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/web_analyzer.py +0 -0
  344. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/parsers/__init__.py +0 -0
  345. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/parsers/html5lib_parser.py +0 -0
  346. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/parsers/html_parser.py +0 -0
  347. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/parsers/lxml_parser.py +0 -0
  348. {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/utils.py +0 -0
  349. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/__init__.py +0 -0
  350. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/core/__init__.py +0 -0
  351. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/core/cli.py +0 -0
  352. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/core/context.py +0 -0
  353. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/core/group.py +0 -0
  354. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/decorators/__init__.py +0 -0
  355. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/decorators/command.py +0 -0
  356. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/decorators/options.py +0 -0
  357. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/decorators/output.py +0 -0
  358. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/exceptions.py +0 -0
  359. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/plugins/__init__.py +0 -0
  360. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/plugins/base.py +0 -0
  361. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/utils/__init__.py +0 -0
  362. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/utils/formatting.py +0 -0
  363. {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/utils/parsing.py +0 -0
  364. {webscout-8.2.8 → webscout-8.2.9}/webscout/tempid.py +0 -0
  365. {webscout-8.2.8 → webscout-8.2.9}/webscout/update_checker.py +0 -0
  366. {webscout-8.2.8 → webscout-8.2.9}/webscout/utils.py +0 -0
  367. {webscout-8.2.8 → webscout-8.2.9}/webscout/webscout_search.py +0 -0
  368. {webscout-8.2.8 → webscout-8.2.9}/webscout/webscout_search_async.py +0 -0
  369. {webscout-8.2.8 → webscout-8.2.9}/webscout/yep_search.py +0 -0
  370. {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/README.md +0 -0
  371. {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/base.py +0 -0
  372. {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/dependency_links.txt +0 -0
  373. {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webscout
3
- Version: 8.2.8
3
+ Version: 8.2.9
4
4
  Summary: Search for anything using Google, DuckDuckGo, phind.com, Contains AI models, can transcribe yt videos, temporary email and phone number generation, has TTS support, webai (terminal gpt and open interpreter) and offline LLMs and more
5
5
  Author-email: OEvortex <helpingai5@gmail.com>
6
6
  License: HelpingAI
@@ -60,6 +60,7 @@ Requires-Dist: openai
60
60
  Requires-Dist: gradio_client
61
61
  Requires-Dist: psutil
62
62
  Requires-Dist: aiohttp
63
+ Requires-Dist: zstandard
63
64
  Provides-Extra: dev
64
65
  Requires-Dist: ruff>=0.1.6; extra == "dev"
65
66
  Requires-Dist: pytest>=7.4.2; extra == "dev"
@@ -68,6 +69,7 @@ Requires-Dist: fastapi; extra == "api"
68
69
  Requires-Dist: uvicorn[standard]; extra == "api"
69
70
  Requires-Dist: pydantic; extra == "api"
70
71
  Requires-Dist: python-multipart; extra == "api"
72
+ Requires-Dist: tiktoken; extra == "api"
71
73
  Dynamic: license-file
72
74
 
73
75
  <div align="center">
@@ -170,7 +172,7 @@ Dynamic: license-file
170
172
  * **[GitAPI](webscout/Extra/GitToolkit/gitapi):** Powerful GitHub data extraction toolkit without authentication requirements for public data
171
173
  * **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework for beautiful command-line interfaces
172
174
  * **[LitPrinter](webscout/litprinter/Readme.md):** Styled console output with rich formatting and colors
173
- * **[LitLogger](webscout/litlogger/Readme.md):** Simplified logging with customizable formats and color schemes
175
+ * **[LitLogger](webscout/litlogger/README.md):** Simplified logging with customizable formats and color schemes
174
176
  * **[LitAgent](webscout/litagent/Readme.md):** Modern user agent generator that keeps your requests undetectable
175
177
  * **[Scout](webscout/scout/README.md):** Advanced web parsing and crawling library with intelligent HTML/XML parsing
176
178
  * **[Inferno](https://github.com/HelpingAI/inferno):** Run local LLMs with an OpenAI-compatible API and interactive CLI (now a standalone package: `pip install inferno-llm`)
@@ -191,45 +193,154 @@ Dynamic: license-file
191
193
 
192
194
  ## ⚙️ Installation
193
195
 
194
- Install Webscout using pip:
196
+ Webscout supports multiple installation methods to fit your workflow:
197
+
198
+ ### 📦 Standard Installation
195
199
 
196
200
  ```bash
201
+ # Install from PyPI
197
202
  pip install -U webscout
203
+
204
+ # Install with API server dependencies
205
+ pip install -U "webscout[api]"
206
+
207
+ # Install with development dependencies
208
+ pip install -U "webscout[dev]"
209
+ ```
210
+
211
+ ### ⚡ UV Package Manager (Recommended)
212
+
213
+ [UV](https://github.com/astral-sh/uv) is a fast Python package manager. Webscout has full UV support:
214
+
215
+ ```bash
216
+ # Install UV first (if not already installed)
217
+ pip install uv
218
+
219
+ # Install Webscout with UV
220
+ uv add webscout
221
+
222
+ # Install with API dependencies
223
+ uv add "webscout[api]"
224
+
225
+ # Run Webscout directly with UV (no installation needed)
226
+ uv run webscout --help
227
+
228
+ # Run with API dependencies
229
+ uv run --extra api webscout-server
230
+
231
+ # Install as a UV tool for global access
232
+ uv tool install webscout
233
+
234
+ # Use UV tool commands
235
+ webscout --help
236
+ webscout-server --help
237
+ ```
238
+
239
+ ### 🔧 Development Installation
240
+
241
+ ```bash
242
+ # Clone the repository
243
+ git clone https://github.com/OEvortex/Webscout.git
244
+ cd Webscout
245
+
246
+ # Install in development mode with UV
247
+ uv sync --extra dev --extra api
248
+
249
+ # Or with pip
250
+ pip install -e ".[dev,api]"
251
+ ```
252
+
253
+ ### 🐳 Docker Installation
254
+
255
+ ```bash
256
+ # Pull and run the Docker image
257
+ docker pull oevortex/webscout:latest
258
+ docker run -it oevortex/webscout:latest
259
+ ```
260
+
261
+ ### 📱 Quick Start Commands
262
+
263
+ After installation, you can immediately start using Webscout:
264
+
265
+ ```bash
266
+ # Check version
267
+ webscout version
268
+
269
+ # Search the web
270
+ webscout text -k "python programming"
271
+
272
+ # Start API server
273
+ webscout-server
274
+
275
+ # Get help
276
+ webscout --help
198
277
  ```
199
- </div>
200
278
 
201
279
  <hr/>
202
280
 
203
281
  ## 🖥️ Command Line Interface
204
282
 
205
- Webscout provides a powerful command-line interface for quick access to its features:
283
+ Webscout provides a powerful command-line interface for quick access to its features. You can use it in multiple ways:
284
+
285
+ ### 🚀 Direct Commands (Recommended)
286
+
287
+ After installing with `uv tool install webscout` or `pip install webscout`:
288
+
289
+ ```bash
290
+ # Get help
291
+ webscout --help
292
+
293
+ # Start API server
294
+ webscout-server
295
+ ```
296
+
297
+ ### 🔧 UV Run Commands (No Installation Required)
298
+
299
+ ```bash
300
+ # Run directly with UV (downloads and runs automatically)
301
+ uv run webscout --help
302
+ uv run --extra api webscout-server
303
+ ```
304
+
305
+ ### 📦 Python Module Commands
206
306
 
207
307
  ```bash
308
+ # Traditional Python module execution
208
309
  python -m webscout --help
310
+ python -m webscout.client # Start API server
209
311
  ```
210
312
 
211
313
  <details open>
212
- <summary><b>Web Search Commands</b></summary>
314
+ <summary><b>🔍 Web Search Commands</b></summary>
213
315
  <p>
214
316
 
215
- | Command | Description |
216
- |---------|-------------|
217
- | `python -m webscout answers -k "query"` | Perform an answers search |
218
- | `python -m webscout images -k "query"` | Search for images |
219
- | `python -m webscout maps -k "query"` | Perform a maps search |
220
- | `python -m webscout news -k "query"` | Search for news articles |
221
- | `python -m webscout suggestions -k "query"` | Get search suggestions |
222
- | `python -m webscout text -k "query"` | Perform a text search |
223
- | `python -m webscout translate -k "text"` | Translate text |
224
- | `python -m webscout version` | Display the current version |
225
- | `python -m webscout videos -k "query"` | Search for videos |
226
- | `python -m webscout weather -l "location"` | Get weather information |
227
- | `python -m webscout google_text -k "query"` | Perform a text search using Google |
228
- | `python -m webscout google_news -k "query"` | Search for news using Google |
229
- | `python -m webscout google_suggestions -q "query"` | Get search suggestions from Google |
230
- | `python -m webscout yep_text -k "query"` | Perform a text search using Yep |
231
- | `python -m webscout yep_images -k "query"` | Search for images using Yep |
232
- | `python -m webscout yep_suggestions -q "query"` | Get search suggestions from Yep |
317
+ | Command | Description | Example |
318
+ |---------|-------------|---------|
319
+ | `webscout text -k "query"` | Perform a text search | `webscout text -k "python programming"` |
320
+ | `webscout answers -k "query"` | Get instant answers | `webscout answers -k "what is AI"` |
321
+ | `webscout images -k "query"` | Search for images | `webscout images -k "nature photography"` |
322
+ | `webscout videos -k "query"` | Search for videos | `webscout videos -k "python tutorials"` |
323
+ | `webscout news -k "query"` | Search for news articles | `webscout news -k "technology trends"` |
324
+ | `webscout maps -k "query"` | Perform a maps search | `webscout maps -k "restaurants near me"` |
325
+ | `webscout translate -k "text"` | Translate text | `webscout translate -k "hello world"` |
326
+ | `webscout suggestions -k "query"` | Get search suggestions | `webscout suggestions -k "how to"` |
327
+ | `webscout weather -l "location"` | Get weather information | `webscout weather -l "New York"` |
328
+ | `webscout version` | Display the current version | `webscout version` |
329
+
330
+ **Google Search Commands:**
331
+ | Command | Description | Example |
332
+ |---------|-------------|---------|
333
+ | `webscout google_text -k "query"` | Google text search | `webscout google_text -k "machine learning"` |
334
+ | `webscout google_news -k "query"` | Google news search | `webscout google_news -k "AI breakthrough"` |
335
+ | `webscout google_suggestions -q "query"` | Google suggestions | `webscout google_suggestions -q "python"` |
336
+
337
+ **Yep Search Commands:**
338
+ | Command | Description | Example |
339
+ |---------|-------------|---------|
340
+ | `webscout yep_text -k "query"` | Yep text search | `webscout yep_text -k "web development"` |
341
+ | `webscout yep_images -k "query"` | Yep image search | `webscout yep_images -k "landscapes"` |
342
+ | `webscout yep_suggestions -q "query"` | Yep suggestions | `webscout yep_suggestions -q "javascript"` |
343
+
233
344
  </p>
234
345
  </details>
235
346
 
@@ -279,30 +390,46 @@ Webscout includes an OpenAI-compatible API server that allows you to use any sup
279
390
 
280
391
  ### Starting the API Server
281
392
 
282
- #### From Command Line
393
+ #### From Command Line (Recommended)
283
394
 
284
395
  ```bash
285
396
  # Start with default settings (port 8000)
286
- python -m webscout.Provider.OPENAI.api
397
+ webscout-server
287
398
 
288
399
  # Start with custom port
289
- python -m webscout.Provider.OPENAI.api --port 8080
400
+ webscout-server --port 8080
290
401
 
291
402
  # Start with API key authentication
292
- python -m webscout.Provider.OPENAI.api --api-key "your-secret-key"
403
+ webscout-server --api-key "your-secret-key"
293
404
 
294
405
  # Specify a default provider
295
- python -m webscout.Provider.OPENAI.api --default-provider "Claude"
406
+ webscout-server --default-provider "Claude"
296
407
 
297
408
  # Run in debug mode
298
- python -m webscout.Provider.OPENAI.api --debug
409
+ webscout-server --debug
410
+
411
+ # Get help for all options
412
+ webscout-server --help
413
+ ```
414
+
415
+ #### Alternative Methods
416
+
417
+ ```bash
418
+ # Using UV (no installation required)
419
+ uv run --extra api webscout-server
420
+
421
+ # Using Python module
422
+ python -m webscout.client
423
+
424
+ # Legacy method (still supported)
425
+ python -m webscout.Provider.OPENAI.api
299
426
  ```
300
427
 
301
428
  #### From Python Code
302
429
 
303
430
  ```python
304
431
  # Method 1: Using the helper function
305
- from webscout.Provider.OPENAI.api import start_server
432
+ from webscout.client import start_server # <--- Now recommended
306
433
 
307
434
  # Start with default settings
308
435
  start_server()
@@ -311,13 +438,10 @@ start_server()
311
438
  start_server(port=8080, api_key="your-secret-key", default_provider="Claude")
312
439
 
313
440
  # Method 2: Using the run_api function for more control
314
- from webscout.Provider.OPENAI.api import run_api
441
+ from webscout.client import run_api
315
442
 
316
443
  run_api(
317
444
  host="0.0.0.0",
318
- port=8080,
319
- api_key="your-secret-key",
320
- default_provider="Claude",
321
445
  debug=True
322
446
  )
323
447
  ```
@@ -98,7 +98,7 @@
98
98
  * **[GitAPI](webscout/Extra/GitToolkit/gitapi):** Powerful GitHub data extraction toolkit without authentication requirements for public data
99
99
  * **[SwiftCLI](webscout/swiftcli/Readme.md):** A powerful and elegant CLI framework for beautiful command-line interfaces
100
100
  * **[LitPrinter](webscout/litprinter/Readme.md):** Styled console output with rich formatting and colors
101
- * **[LitLogger](webscout/litlogger/Readme.md):** Simplified logging with customizable formats and color schemes
101
+ * **[LitLogger](webscout/litlogger/README.md):** Simplified logging with customizable formats and color schemes
102
102
  * **[LitAgent](webscout/litagent/Readme.md):** Modern user agent generator that keeps your requests undetectable
103
103
  * **[Scout](webscout/scout/README.md):** Advanced web parsing and crawling library with intelligent HTML/XML parsing
104
104
  * **[Inferno](https://github.com/HelpingAI/inferno):** Run local LLMs with an OpenAI-compatible API and interactive CLI (now a standalone package: `pip install inferno-llm`)
@@ -119,45 +119,154 @@
119
119
 
120
120
  ## ⚙️ Installation
121
121
 
122
- Install Webscout using pip:
122
+ Webscout supports multiple installation methods to fit your workflow:
123
+
124
+ ### 📦 Standard Installation
123
125
 
124
126
  ```bash
127
+ # Install from PyPI
125
128
  pip install -U webscout
129
+
130
+ # Install with API server dependencies
131
+ pip install -U "webscout[api]"
132
+
133
+ # Install with development dependencies
134
+ pip install -U "webscout[dev]"
135
+ ```
136
+
137
+ ### ⚡ UV Package Manager (Recommended)
138
+
139
+ [UV](https://github.com/astral-sh/uv) is a fast Python package manager. Webscout has full UV support:
140
+
141
+ ```bash
142
+ # Install UV first (if not already installed)
143
+ pip install uv
144
+
145
+ # Install Webscout with UV
146
+ uv add webscout
147
+
148
+ # Install with API dependencies
149
+ uv add "webscout[api]"
150
+
151
+ # Run Webscout directly with UV (no installation needed)
152
+ uv run webscout --help
153
+
154
+ # Run with API dependencies
155
+ uv run --extra api webscout-server
156
+
157
+ # Install as a UV tool for global access
158
+ uv tool install webscout
159
+
160
+ # Use UV tool commands
161
+ webscout --help
162
+ webscout-server --help
163
+ ```
164
+
165
+ ### 🔧 Development Installation
166
+
167
+ ```bash
168
+ # Clone the repository
169
+ git clone https://github.com/OEvortex/Webscout.git
170
+ cd Webscout
171
+
172
+ # Install in development mode with UV
173
+ uv sync --extra dev --extra api
174
+
175
+ # Or with pip
176
+ pip install -e ".[dev,api]"
177
+ ```
178
+
179
+ ### 🐳 Docker Installation
180
+
181
+ ```bash
182
+ # Pull and run the Docker image
183
+ docker pull oevortex/webscout:latest
184
+ docker run -it oevortex/webscout:latest
185
+ ```
186
+
187
+ ### 📱 Quick Start Commands
188
+
189
+ After installation, you can immediately start using Webscout:
190
+
191
+ ```bash
192
+ # Check version
193
+ webscout version
194
+
195
+ # Search the web
196
+ webscout text -k "python programming"
197
+
198
+ # Start API server
199
+ webscout-server
200
+
201
+ # Get help
202
+ webscout --help
126
203
  ```
127
- </div>
128
204
 
129
205
  <hr/>
130
206
 
131
207
  ## 🖥️ Command Line Interface
132
208
 
133
- Webscout provides a powerful command-line interface for quick access to its features:
209
+ Webscout provides a powerful command-line interface for quick access to its features. You can use it in multiple ways:
210
+
211
+ ### 🚀 Direct Commands (Recommended)
212
+
213
+ After installing with `uv tool install webscout` or `pip install webscout`:
214
+
215
+ ```bash
216
+ # Get help
217
+ webscout --help
218
+
219
+ # Start API server
220
+ webscout-server
221
+ ```
222
+
223
+ ### 🔧 UV Run Commands (No Installation Required)
224
+
225
+ ```bash
226
+ # Run directly with UV (downloads and runs automatically)
227
+ uv run webscout --help
228
+ uv run --extra api webscout-server
229
+ ```
230
+
231
+ ### 📦 Python Module Commands
134
232
 
135
233
  ```bash
234
+ # Traditional Python module execution
136
235
  python -m webscout --help
236
+ python -m webscout.client # Start API server
137
237
  ```
138
238
 
139
239
  <details open>
140
- <summary><b>Web Search Commands</b></summary>
240
+ <summary><b>🔍 Web Search Commands</b></summary>
141
241
  <p>
142
242
 
143
- | Command | Description |
144
- |---------|-------------|
145
- | `python -m webscout answers -k "query"` | Perform an answers search |
146
- | `python -m webscout images -k "query"` | Search for images |
147
- | `python -m webscout maps -k "query"` | Perform a maps search |
148
- | `python -m webscout news -k "query"` | Search for news articles |
149
- | `python -m webscout suggestions -k "query"` | Get search suggestions |
150
- | `python -m webscout text -k "query"` | Perform a text search |
151
- | `python -m webscout translate -k "text"` | Translate text |
152
- | `python -m webscout version` | Display the current version |
153
- | `python -m webscout videos -k "query"` | Search for videos |
154
- | `python -m webscout weather -l "location"` | Get weather information |
155
- | `python -m webscout google_text -k "query"` | Perform a text search using Google |
156
- | `python -m webscout google_news -k "query"` | Search for news using Google |
157
- | `python -m webscout google_suggestions -q "query"` | Get search suggestions from Google |
158
- | `python -m webscout yep_text -k "query"` | Perform a text search using Yep |
159
- | `python -m webscout yep_images -k "query"` | Search for images using Yep |
160
- | `python -m webscout yep_suggestions -q "query"` | Get search suggestions from Yep |
243
+ | Command | Description | Example |
244
+ |---------|-------------|---------|
245
+ | `webscout text -k "query"` | Perform a text search | `webscout text -k "python programming"` |
246
+ | `webscout answers -k "query"` | Get instant answers | `webscout answers -k "what is AI"` |
247
+ | `webscout images -k "query"` | Search for images | `webscout images -k "nature photography"` |
248
+ | `webscout videos -k "query"` | Search for videos | `webscout videos -k "python tutorials"` |
249
+ | `webscout news -k "query"` | Search for news articles | `webscout news -k "technology trends"` |
250
+ | `webscout maps -k "query"` | Perform a maps search | `webscout maps -k "restaurants near me"` |
251
+ | `webscout translate -k "text"` | Translate text | `webscout translate -k "hello world"` |
252
+ | `webscout suggestions -k "query"` | Get search suggestions | `webscout suggestions -k "how to"` |
253
+ | `webscout weather -l "location"` | Get weather information | `webscout weather -l "New York"` |
254
+ | `webscout version` | Display the current version | `webscout version` |
255
+
256
+ **Google Search Commands:**
257
+ | Command | Description | Example |
258
+ |---------|-------------|---------|
259
+ | `webscout google_text -k "query"` | Google text search | `webscout google_text -k "machine learning"` |
260
+ | `webscout google_news -k "query"` | Google news search | `webscout google_news -k "AI breakthrough"` |
261
+ | `webscout google_suggestions -q "query"` | Google suggestions | `webscout google_suggestions -q "python"` |
262
+
263
+ **Yep Search Commands:**
264
+ | Command | Description | Example |
265
+ |---------|-------------|---------|
266
+ | `webscout yep_text -k "query"` | Yep text search | `webscout yep_text -k "web development"` |
267
+ | `webscout yep_images -k "query"` | Yep image search | `webscout yep_images -k "landscapes"` |
268
+ | `webscout yep_suggestions -q "query"` | Yep suggestions | `webscout yep_suggestions -q "javascript"` |
269
+
161
270
  </p>
162
271
  </details>
163
272
 
@@ -207,30 +316,46 @@ Webscout includes an OpenAI-compatible API server that allows you to use any sup
207
316
 
208
317
  ### Starting the API Server
209
318
 
210
- #### From Command Line
319
+ #### From Command Line (Recommended)
211
320
 
212
321
  ```bash
213
322
  # Start with default settings (port 8000)
214
- python -m webscout.Provider.OPENAI.api
323
+ webscout-server
215
324
 
216
325
  # Start with custom port
217
- python -m webscout.Provider.OPENAI.api --port 8080
326
+ webscout-server --port 8080
218
327
 
219
328
  # Start with API key authentication
220
- python -m webscout.Provider.OPENAI.api --api-key "your-secret-key"
329
+ webscout-server --api-key "your-secret-key"
221
330
 
222
331
  # Specify a default provider
223
- python -m webscout.Provider.OPENAI.api --default-provider "Claude"
332
+ webscout-server --default-provider "Claude"
224
333
 
225
334
  # Run in debug mode
226
- python -m webscout.Provider.OPENAI.api --debug
335
+ webscout-server --debug
336
+
337
+ # Get help for all options
338
+ webscout-server --help
339
+ ```
340
+
341
+ #### Alternative Methods
342
+
343
+ ```bash
344
+ # Using UV (no installation required)
345
+ uv run --extra api webscout-server
346
+
347
+ # Using Python module
348
+ python -m webscout.client
349
+
350
+ # Legacy method (still supported)
351
+ python -m webscout.Provider.OPENAI.api
227
352
  ```
228
353
 
229
354
  #### From Python Code
230
355
 
231
356
  ```python
232
357
  # Method 1: Using the helper function
233
- from webscout.Provider.OPENAI.api import start_server
358
+ from webscout.client import start_server # <--- Now recommended
234
359
 
235
360
  # Start with default settings
236
361
  start_server()
@@ -239,13 +364,10 @@ start_server()
239
364
  start_server(port=8080, api_key="your-secret-key", default_provider="Claude")
240
365
 
241
366
  # Method 2: Using the run_api function for more control
242
- from webscout.Provider.OPENAI.api import run_api
367
+ from webscout.client import run_api
243
368
 
244
369
  run_api(
245
370
  host="0.0.0.0",
246
- port=8080,
247
- api_key="your-secret-key",
248
- default_provider="Claude",
249
371
  debug=True
250
372
  )
251
373
  ```
@@ -39,9 +39,9 @@ classifiers = [
39
39
  "Topic :: Utilities",
40
40
  ]
41
41
  keywords = [
42
- "search", "ai", "chatbot", "llm", "language-model", "gpt", "openai",
43
- "gemini", "claude", "llama", "search-engine", "text-to-speech", "tts",
44
- "text-to-image", "tti", "weather", "youtube", "toolkit", "utilities",
42
+ "search", "ai", "chatbot", "llm", "language-model", "gpt", "openai",
43
+ "gemini", "claude", "llama", "search-engine", "text-to-speech", "tts",
44
+ "text-to-image", "tti", "weather", "youtube", "toolkit", "utilities",
45
45
  "web-search", "duckduckgo", "google", "yep"
46
46
  ]
47
47
  dependencies = [
@@ -71,11 +71,13 @@ dependencies = [
71
71
  "gradio_client",
72
72
  "psutil",
73
73
  "aiohttp",
74
+ "zstandard",
74
75
  ]
75
76
 
76
77
  [project.scripts]
77
78
  WEBS = "webscout.cli:main"
78
79
  webscout = "webscout.cli:main"
80
+ webscout-server = "webscout.client:start_server" # Instantly start the OpenAI-compatible API server
79
81
 
80
82
  [project.urls]
81
83
  Source = "https://github.com/OE-LUCIFER/Webscout"
@@ -92,6 +94,7 @@ api = [
92
94
  "uvicorn[standard]",
93
95
  "pydantic",
94
96
  "python-multipart",
97
+ "tiktoken", # Added tiktoken for token counting support
95
98
  ]
96
99
 
97
100
  [tool.setuptools]
@@ -116,7 +119,3 @@ line-length = 100
116
119
  target-version = "py39"
117
120
  select = ["E", "F", "W", "I"]
118
121
  ignore = ["E501"]
119
-
120
- [tool.pytest]
121
- testpaths = ["tests"]
122
- python_files = "test_*.py"
@@ -14,13 +14,16 @@ import inspect
14
14
 
15
15
  def load_providers():
16
16
  """
17
- Dynamically loads all Provider classes from the webscout.Provider package.
18
-
19
- Identifies providers that require special authentication parameters like
20
- 'api_key', 'cookie_file', or 'cookie_path'.
21
-
17
+ Dynamically loads all Provider classes from the `webscout.Provider` package.
18
+
19
+ This function iterates through the modules in the `webscout.Provider` package,
20
+ imports each module, and inspects its attributes to identify classes that
21
+ inherit from the `Provider` base class. It also identifies providers that
22
+ require special authentication parameters like 'api_key', 'cookie_file', or
23
+ 'cookie_path'.
24
+
22
25
  Returns:
23
- tuple: A tuple containing:
26
+ tuple: A tuple containing two elements:
24
27
  - provider_map (dict): A dictionary mapping uppercase provider names to their classes.
25
28
  - api_key_providers (set): A set of uppercase provider names requiring special authentication.
26
29
  """
@@ -50,7 +53,10 @@ provider_map, api_key_providers = load_providers()
50
53
 
51
54
  class AUTO(Provider):
52
55
  """
53
- An automatic provider that cycles through available free providers
56
+ An automatic provider that intelligently selects and utilizes an available
57
+ LLM provider from the webscout library.
58
+
59
+ It cycles through available free providers
54
60
  until one successfully processes the request. Excludes providers
55
61
  requiring API keys or cookies by default.
56
62
  """
@@ -69,7 +75,10 @@ class AUTO(Provider):
69
75
  print_provider_info: bool = False,
70
76
  ):
71
77
  """
72
- Initializes the AUTO provider.
78
+ Initializes the AUTO provider, setting up the parameters for provider selection and request handling.
79
+
80
+ This constructor initializes the AUTO provider with various configuration options,
81
+ including conversation settings, request limits, and provider exclusions.
73
82
 
74
83
  Args:
75
84
  is_conversation (bool): Flag for conversational mode. Defaults to True.
@@ -102,14 +111,20 @@ class AUTO(Provider):
102
111
  @property
103
112
  def last_response(self) -> dict[str, Any]:
104
113
  """
105
- Returns the last response dictionary from the successful provider.
114
+ Retrieves the last response dictionary from the successfully used provider.
115
+
116
+ Returns:
117
+ dict[str, Any]: The last response dictionary, or an empty dictionary if no provider has been used yet.
106
118
  """
107
119
  return self.provider.last_response if self.provider else {}
108
120
 
109
121
  @property
110
122
  def conversation(self) -> object:
111
123
  """
112
- Returns the conversation object from the successful provider.
124
+ Retrieves the conversation object from the successfully used provider.
125
+
126
+ Returns:
127
+ object: The conversation object, or None if no provider has been used yet.
113
128
  """
114
129
  return self.provider.conversation if self.provider else None
115
130
 
@@ -122,8 +137,11 @@ class AUTO(Provider):
122
137
  conversationally: bool = False,
123
138
  ) -> Union[Dict, Generator]:
124
139
  """
125
- Sends the prompt to providers, trying each available free provider
126
- in a random order until one succeeds.
140
+ Sends the prompt to available providers, attempting to get a response from each until one succeeds.
141
+
142
+ This method iterates through a shuffled list of available providers (excluding those requiring API keys or
143
+ specified in the exclusion list) and attempts to send the prompt to each provider until a successful response
144
+ is received.
127
145
 
128
146
  Args:
129
147
  prompt (str): The user's prompt.
@@ -187,7 +205,7 @@ class AUTO(Provider):
187
205
  conversationally: bool = False,
188
206
  ) -> Union[str, Generator[str, None, None]]:
189
207
  """
190
- Provides a simplified chat interface, returning the message string(s).
208
+ Provides a simplified chat interface, returning the message string or a generator of message strings.
191
209
 
192
210
  Args:
193
211
  prompt (str): The user's prompt.
@@ -218,7 +236,7 @@ class AUTO(Provider):
218
236
  Extracts the message text from the provider's response dictionary.
219
237
 
220
238
  Args:
221
- response (dict): The response dictionary from the ask method.
239
+ response (dict): The response dictionary obtained from the `ask` method.
222
240
 
223
241
  Returns:
224
242
  str: The extracted message string.