webscout 2025.10.14.1__tar.gz → 2025.10.15__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 (346) hide show
  1. {webscout-2025.10.14.1/webscout.egg-info → webscout-2025.10.15}/PKG-INFO +6 -281
  2. {webscout-2025.10.14.1 → webscout-2025.10.15}/README.md +5 -280
  3. {webscout-2025.10.14.1 → webscout-2025.10.15}/changelog.md +0 -0
  4. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/__init__.py +1 -1
  5. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/routes.py +8 -22
  6. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/cli.py +0 -147
  7. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/__init__.py +2 -4
  8. webscout-2025.10.15/webscout/search/bing_main.py +42 -0
  9. webscout-2025.10.15/webscout/search/engines/bing/__init__.py +1 -0
  10. webscout-2025.10.15/webscout/search/engines/bing/base.py +33 -0
  11. webscout-2025.10.15/webscout/search/engines/bing/images.py +105 -0
  12. webscout-2025.10.15/webscout/search/engines/bing/news.py +89 -0
  13. webscout-2025.10.15/webscout/search/engines/bing/suggestions.py +34 -0
  14. webscout-2025.10.15/webscout/search/engines/bing/text.py +103 -0
  15. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/maps.py +13 -0
  16. webscout-2025.10.15/webscout/version.py +2 -0
  17. webscout-2025.10.15/webscout/version.py.bak +2 -0
  18. {webscout-2025.10.14.1 → webscout-2025.10.15/webscout.egg-info}/PKG-INFO +6 -281
  19. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout.egg-info/SOURCES.txt +14 -8
  20. webscout-2025.10.14.1/webscout/Bing_search.py +0 -417
  21. webscout-2025.10.14.1/webscout/DWEBS.py +0 -529
  22. webscout-2025.10.14.1/webscout/search/engines/bing.py +0 -84
  23. webscout-2025.10.14.1/webscout/search/engines/bing_news.py +0 -52
  24. webscout-2025.10.14.1/webscout/version.py +0 -2
  25. webscout-2025.10.14.1/webscout/version.py.bak +0 -2
  26. {webscout-2025.10.14.1 → webscout-2025.10.15}/LEGAL_NOTICE.md +0 -0
  27. {webscout-2025.10.14.1 → webscout-2025.10.15}/LICENSE.md +0 -0
  28. {webscout-2025.10.14.1 → webscout-2025.10.15}/MANIFEST.in +0 -0
  29. {webscout-2025.10.14.1 → webscout-2025.10.15}/pyproject.toml +0 -0
  30. {webscout-2025.10.14.1 → webscout-2025.10.15}/setup.cfg +0 -0
  31. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/AIauto.py +0 -0
  32. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/AIbase.py +0 -0
  33. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/AIutel.py +0 -0
  34. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Bard.py +0 -0
  35. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/Act.md +0 -0
  36. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/GitToolkit/__init__.py +0 -0
  37. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/GitToolkit/gitapi/README.md +0 -0
  38. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/GitToolkit/gitapi/__init__.py +0 -0
  39. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/GitToolkit/gitapi/repository.py +0 -0
  40. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/GitToolkit/gitapi/user.py +0 -0
  41. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/GitToolkit/gitapi/utils.py +0 -0
  42. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/README.md +0 -0
  43. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
  44. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/__init__.py +0 -0
  45. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/transcriber.py +0 -0
  46. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/README.md +0 -0
  47. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
  48. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
  49. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
  50. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
  51. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
  52. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
  53. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
  54. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
  55. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
  56. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
  57. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
  58. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/YTToolkit/ytapi/video.py +0 -0
  59. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/__init__.py +0 -0
  60. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/autocoder/__init__.py +0 -0
  61. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/autocoder/autocoder.py +0 -0
  62. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/autocoder/autocoder_utiles.py +0 -0
  63. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/gguf.md +0 -0
  64. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/gguf.py +0 -0
  65. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/tempmail/README.md +0 -0
  66. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/tempmail/__init__.py +0 -0
  67. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/tempmail/async_utils.py +0 -0
  68. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/tempmail/base.py +0 -0
  69. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/tempmail/cli.py +0 -0
  70. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/tempmail/emailnator.py +0 -0
  71. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/tempmail/mail_tm.py +0 -0
  72. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/tempmail/temp_mail_io.py +0 -0
  73. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/weather.md +0 -0
  74. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/weather.py +0 -0
  75. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Extra/weather_ascii.py +0 -0
  76. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Litlogger/README.md +0 -0
  77. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Litlogger/__init__.py +0 -0
  78. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Litlogger/formats.py +0 -0
  79. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Litlogger/handlers.py +0 -0
  80. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Litlogger/levels.py +0 -0
  81. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Litlogger/logger.py +0 -0
  82. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/PERPLEXED_search.py +0 -0
  83. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/Perplexity.py +0 -0
  84. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/README.md +0 -0
  85. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/__init__.py +0 -0
  86. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/felo_search.py +0 -0
  87. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/genspark_search.py +0 -0
  88. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/hika_search.py +0 -0
  89. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/iask_search.py +0 -0
  90. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/monica_search.py +0 -0
  91. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/scira_search.py +0 -0
  92. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/stellar_search.py +0 -0
  93. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/AISEARCH/webpilotai_search.py +0 -0
  94. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Aitopia.py +0 -0
  95. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Andi.py +0 -0
  96. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Apriel.py +0 -0
  97. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/ChatGPTClone.py +0 -0
  98. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/ChatSandbox.py +0 -0
  99. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Cloudflare.py +0 -0
  100. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Cohere.py +0 -0
  101. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Deepinfra.py +0 -0
  102. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/ExaAI.py +0 -0
  103. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/ExaChat.py +0 -0
  104. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Flowith.py +0 -0
  105. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/GMI.py +0 -0
  106. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Gemini.py +0 -0
  107. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/GeminiProxy.py +0 -0
  108. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/GithubChat.py +0 -0
  109. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Groq.py +0 -0
  110. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/HeckAI.py +0 -0
  111. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Jadve.py +0 -0
  112. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/K2Think.py +0 -0
  113. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Koboldai.py +0 -0
  114. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/LambdaChat.py +0 -0
  115. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Nemotron.py +0 -0
  116. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Netwrck.py +0 -0
  117. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OLLAMA.py +0 -0
  118. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/Cloudflare.py +0 -0
  119. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/FalconH1.py +0 -0
  120. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/FreeGemini.py +0 -0
  121. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/GeminiProxy.py +0 -0
  122. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/K2Think.py +0 -0
  123. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/NEMOTRON.py +0 -0
  124. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/PI.py +0 -0
  125. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/README.md +0 -0
  126. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/TogetherAI.py +0 -0
  127. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/TwoAI.py +0 -0
  128. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/__init__.py +0 -0
  129. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/ai4chat.py +0 -0
  130. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/base.py +0 -0
  131. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/chatglm.py +0 -0
  132. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/chatgpt.py +0 -0
  133. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/chatgptclone.py +0 -0
  134. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/chatsandbox.py +0 -0
  135. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/deepinfra.py +0 -0
  136. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/e2b.py +0 -0
  137. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/exaai.py +0 -0
  138. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/exachat.py +0 -0
  139. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/flowith.py +0 -0
  140. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/friendli.py +0 -0
  141. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/generate_api_key.py +0 -0
  142. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/gmi.py +0 -0
  143. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/groq.py +0 -0
  144. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/heckai.py +0 -0
  145. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/llmchatco.py +0 -0
  146. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/netwrck.py +0 -0
  147. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/oivscode.py +0 -0
  148. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/opkfc.py +0 -0
  149. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/pydantic_imports.py +0 -0
  150. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/scirachat.py +0 -0
  151. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/sonus.py +0 -0
  152. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/standardinput.py +0 -0
  153. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/textpollinations.py +0 -0
  154. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/toolbaz.py +0 -0
  155. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/typefully.py +0 -0
  156. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/utils.py +0 -0
  157. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/venice.py +0 -0
  158. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/wisecat.py +0 -0
  159. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/writecream.py +0 -0
  160. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/x0gpt.py +0 -0
  161. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OPENAI/yep.py +0 -0
  162. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/OpenGPT.py +0 -0
  163. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Openai.py +0 -0
  164. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/PI.py +0 -0
  165. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Perplexitylabs.py +0 -0
  166. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/QwenLM.py +0 -0
  167. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/STT/__init__.py +0 -0
  168. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/STT/base.py +0 -0
  169. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/STT/elevenlabs.py +0 -0
  170. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Sambanova.py +0 -0
  171. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/StandardInput.py +0 -0
  172. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/README.md +0 -0
  173. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/__init__.py +0 -0
  174. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/aiarta.py +0 -0
  175. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/base.py +0 -0
  176. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/bing.py +0 -0
  177. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/gpt1image.py +0 -0
  178. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/imagen.py +0 -0
  179. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/infip.py +0 -0
  180. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/magicstudio.py +0 -0
  181. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/monochat.py +0 -0
  182. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/piclumen.py +0 -0
  183. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/pixelmuse.py +0 -0
  184. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/pollinations.py +0 -0
  185. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/together.py +0 -0
  186. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/utils.py +0 -0
  187. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTI/venice.py +0 -0
  188. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/README.md +0 -0
  189. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/__init__.py +0 -0
  190. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/base.py +0 -0
  191. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/deepgram.py +0 -0
  192. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/elevenlabs.py +0 -0
  193. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/freetts.py +0 -0
  194. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/gesserit.py +0 -0
  195. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/murfai.py +0 -0
  196. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/openai_fm.py +0 -0
  197. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/parler.py +0 -0
  198. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/speechma.py +0 -0
  199. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/streamElements.py +0 -0
  200. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TTS/utils.py +0 -0
  201. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TeachAnything.py +0 -0
  202. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TextPollinationsAI.py +0 -0
  203. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TogetherAI.py +0 -0
  204. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TwoAI.py +0 -0
  205. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/TypliAI.py +0 -0
  206. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/ChatHub.py +0 -0
  207. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/ChutesAI.py +0 -0
  208. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/GizAI.py +0 -0
  209. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/Marcus.py +0 -0
  210. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/Qodo.py +0 -0
  211. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/VercelAIGateway.py +0 -0
  212. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/XenAI.py +0 -0
  213. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/Youchat.py +0 -0
  214. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/liner.py +0 -0
  215. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/liner_api_request.py +0 -0
  216. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/puterjs.py +0 -0
  217. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/samurai.py +0 -0
  218. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/UNFINISHED/test_lmarena.py +0 -0
  219. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/Venice.py +0 -0
  220. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/VercelAI.py +0 -0
  221. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/WiseCat.py +0 -0
  222. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/WrDoChat.py +0 -0
  223. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/__init__.py +0 -0
  224. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/ai4chat.py +0 -0
  225. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/akashgpt.py +0 -0
  226. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/cerebras.py +0 -0
  227. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/chatglm.py +0 -0
  228. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/cleeai.py +0 -0
  229. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/deepseek_assistant.py +0 -0
  230. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/elmo.py +0 -0
  231. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/geminiapi.py +0 -0
  232. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/granite.py +0 -0
  233. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/hermes.py +0 -0
  234. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/julius.py +0 -0
  235. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/learnfastai.py +0 -0
  236. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/llama3mitril.py +0 -0
  237. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/llmchat.py +0 -0
  238. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/llmchatco.py +0 -0
  239. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/meta.py +0 -0
  240. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/oivscode.py +0 -0
  241. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/scira_chat.py +0 -0
  242. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/searchchat.py +0 -0
  243. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/sonus.py +0 -0
  244. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/toolbaz.py +0 -0
  245. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/turboseek.py +0 -0
  246. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/typefully.py +0 -0
  247. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/x0gpt.py +0 -0
  248. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/Provider/yep.py +0 -0
  249. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/__main__.py +0 -0
  250. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/__init__.py +0 -0
  251. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/api_key_manager.py +0 -0
  252. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/auth_system.py +0 -0
  253. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/config.py +0 -0
  254. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/database.py +0 -0
  255. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/exceptions.py +0 -0
  256. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/middleware.py +0 -0
  257. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/models.py +0 -0
  258. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/providers.py +0 -0
  259. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/rate_limiter.py +0 -0
  260. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/request_models.py +0 -0
  261. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/request_processing.py +0 -0
  262. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/schemas.py +0 -0
  263. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/server.py +0 -0
  264. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/auth/simple_logger.py +0 -0
  265. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/client.py +0 -0
  266. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/conversation.py +0 -0
  267. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/exceptions.py +0 -0
  268. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/litagent/Readme.md +0 -0
  269. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/litagent/__init__.py +0 -0
  270. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/litagent/agent.py +0 -0
  271. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/litagent/constants.py +0 -0
  272. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/litprinter/__init__.py +0 -0
  273. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/models.py +0 -0
  274. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/optimizers.py +0 -0
  275. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/prompt_manager.py +0 -0
  276. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/sanitize.py +0 -0
  277. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/README.md +0 -0
  278. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/__init__.py +0 -0
  279. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/core/__init__.py +0 -0
  280. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/core/crawler.py +0 -0
  281. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/core/scout.py +0 -0
  282. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/core/search_result.py +0 -0
  283. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/core/text_analyzer.py +0 -0
  284. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/core/text_utils.py +0 -0
  285. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/core/web_analyzer.py +0 -0
  286. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/element.py +0 -0
  287. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/parsers/__init__.py +0 -0
  288. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/parsers/html5lib_parser.py +0 -0
  289. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/parsers/html_parser.py +0 -0
  290. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/parsers/lxml_parser.py +0 -0
  291. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/scout/utils.py +0 -0
  292. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/base.py +0 -0
  293. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/duckduckgo_main.py +0 -0
  294. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/__init__.py +0 -0
  295. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/brave.py +0 -0
  296. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/__init__.py +0 -0
  297. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/answers.py +0 -0
  298. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/base.py +0 -0
  299. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/images.py +0 -0
  300. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/news.py +0 -0
  301. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/suggestions.py +0 -0
  302. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/text.py +0 -0
  303. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/translate.py +0 -0
  304. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/videos.py +0 -0
  305. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/duckduckgo/weather.py +0 -0
  306. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/mojeek.py +0 -0
  307. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/wikipedia.py +0 -0
  308. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/yahoo.py +0 -0
  309. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/yahoo_news.py +0 -0
  310. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/yandex.py +0 -0
  311. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/yep/__init__.py +0 -0
  312. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/yep/base.py +0 -0
  313. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/yep/images.py +0 -0
  314. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/yep/suggestions.py +0 -0
  315. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/engines/yep/text.py +0 -0
  316. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/http_client.py +0 -0
  317. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/results.py +0 -0
  318. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/search/yep_main.py +0 -0
  319. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/Readme.md +0 -0
  320. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/__init__.py +0 -0
  321. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/core/__init__.py +0 -0
  322. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/core/cli.py +0 -0
  323. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/core/context.py +0 -0
  324. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/core/group.py +0 -0
  325. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/decorators/__init__.py +0 -0
  326. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/decorators/command.py +0 -0
  327. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/decorators/options.py +0 -0
  328. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/decorators/output.py +0 -0
  329. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/exceptions.py +0 -0
  330. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/plugins/__init__.py +0 -0
  331. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/plugins/base.py +0 -0
  332. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/plugins/manager.py +0 -0
  333. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/utils/__init__.py +0 -0
  334. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/utils/formatting.py +0 -0
  335. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/swiftcli/utils/parsing.py +0 -0
  336. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/update_checker.py +0 -0
  337. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/utils.py +0 -0
  338. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/zeroart/README.md +0 -0
  339. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/zeroart/__init__.py +0 -0
  340. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/zeroart/base.py +0 -0
  341. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/zeroart/effects.py +0 -0
  342. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout/zeroart/fonts.py +0 -0
  343. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout.egg-info/dependency_links.txt +0 -0
  344. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout.egg-info/entry_points.txt +0 -0
  345. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout.egg-info/requires.txt +0 -0
  346. {webscout-2025.10.14.1 → webscout-2025.10.15}/webscout.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: webscout
3
- Version: 2025.10.14.1
3
+ Version: 2025.10.15
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
@@ -108,9 +108,6 @@ Dynamic: license-file
108
108
  - [⚙️ Installation](#️-installation)
109
109
  - [🖥️ Command Line Interface](#️-command-line-interface)
110
110
  - [🔄 OpenAI-Compatible API Server](docs/openai-api-server.md)
111
- - [🔍 Search Engines](#-search-engines)
112
- - [🦆 DuckDuckGo Search](#-duckduckgo-search-with-webs-and-asyncwebs)
113
- - [💻 WEBS API Reference](#-webs-api-reference)
114
111
  - [🤖 AI Models and Voices](#-ai-models-and-voices)
115
112
  - [💬 AI Chat Providers](#-ai-chat-providers)
116
113
  - [👨‍💻 Advanced AI Interfaces](#-advanced-ai-interfaces)
@@ -151,7 +148,7 @@ Dynamic: license-file
151
148
  <summary><b>Search & AI</b></summary>
152
149
  <p>
153
150
 
154
- - **Comprehensive Search:** Leverage Google, DuckDuckGo, and Yep for diverse search results
151
+ - **Comprehensive Search:** Access multiple search engines including DuckDuckGo, Yep, Bing, Brave, Yahoo, Yandex, Mojeek, and Wikipedia for diverse search results ([Search Documentation](docs/search.md))
155
152
  - **AI Powerhouse:** Access and interact with various AI models through three compatibility options:
156
153
  - **Native API:** Use Webscout's native interfaces for providers like OpenAI, Cohere, Gemini, and many more
157
154
  - **[OpenAI-Compatible Providers](webscout/Provider/OPENAI/README.md):** Seamlessly integrate with various AI providers using standardized OpenAI-compatible interfaces
@@ -325,32 +322,7 @@ python -m webscout-server
325
322
  <summary><b>🔍 Web Search Commands</b></summary>
326
323
  <p>
327
324
 
328
- | Command | Description | Example |
329
- | --------------------------------- | --------------------------- | ----------------------------------------- |
330
- | `webscout text -k "query"` | Perform a text search | `webscout text -k "python programming"` |
331
- | `webscout answers -k "query"` | Get instant answers | `webscout answers -k "what is AI"` |
332
- | `webscout images -k "query"` | Search for images | `webscout images -k "nature photography"` |
333
- | `webscout videos -k "query"` | Search for videos | `webscout videos -k "python tutorials"` |
334
- | `webscout news -k "query"` | Search for news articles | `webscout news -k "technology trends"` |
335
- | `webscout maps -k "query"` | Perform a maps search | `webscout maps -k "restaurants near me"` |
336
- | `webscout translate -k "text"` | Translate text | `webscout translate -k "hello world"` |
337
- | `webscout suggestions -k "query"` | Get search suggestions | `webscout suggestions -k "how to"` |
338
- | `webscout weather -l "location"` | Get weather information | `webscout weather -l "New York"` |
339
- | `webscout version` | Display the current version | `webscout version` |
340
-
341
- **Google Search Commands:**
342
- | Command | Description | Example |
343
- |---------|-------------|---------|
344
- | `webscout google_text -k "query"` | Google text search | `webscout google_text -k "machine learning"` |
345
- | `webscout google_news -k "query"` | Google news search | `webscout google_news -k "AI breakthrough"` |
346
- | `webscout google_suggestions -q "query"` | Google suggestions | `webscout google_suggestions -q "python"` |
347
-
348
- **Yep Search Commands:**
349
- | Command | Description | Example |
350
- |---------|-------------|---------|
351
- | `webscout yep_text -k "query"` | Yep text search | `webscout yep_text -k "web development"` |
352
- | `webscout yep_images -k "query"` | Yep image search | `webscout yep_images -k "landscapes"` |
353
- | `webscout yep_suggestions -q "query"` | Yep suggestions | `webscout yep_suggestions -q "javascript"` |
325
+ Webscout provides comprehensive CLI commands for all search engines. See the [Search Documentation](docs/search.md#command-line-interface) for detailed command reference.
354
326
 
355
327
  </p>
356
328
  </details>
@@ -399,254 +371,6 @@ For detailed information about the OpenAI-compatible API server, including setup
399
371
 
400
372
  <hr/>
401
373
 
402
- ## 🔍 Search Engines
403
-
404
- Webscout provides multiple search engine interfaces for diverse search capabilities.
405
-
406
- ### YepSearch - Yep.com Interface
407
-
408
- ```python
409
- from webscout import YepSearch
410
-
411
- # Initialize YepSearch
412
- yep = YepSearch(
413
- timeout=20, # Optional: Set custom timeout
414
- proxies=None, # Optional: Use proxies
415
- verify=True # Optional: SSL verification
416
- )
417
-
418
- # Text Search
419
- text_results = yep.text(
420
- keywords="artificial intelligence",
421
- region="all", # Optional: Region for results
422
- safesearch="moderate", # Optional: "on", "moderate", "off"
423
- max_results=10 # Optional: Limit number of results
424
- )
425
-
426
- # Image Search
427
- image_results = yep.images(
428
- keywords="nature photography",
429
- region="all",
430
- safesearch="moderate",
431
- max_results=10
432
- )
433
-
434
- # Get search suggestions
435
- suggestions = yep.suggestions("hist")
436
- ```
437
-
438
- ### GoogleSearch - Google Interface
439
-
440
- ```python
441
- from webscout import GoogleSearch
442
-
443
- # Initialize GoogleSearch
444
- google = GoogleSearch(
445
- timeout=10, # Optional: Set custom timeout
446
- proxies=None, # Optional: Use proxies
447
- verify=True # Optional: SSL verification
448
- )
449
-
450
- # Text Search
451
- text_results = google.text(
452
- keywords="artificial intelligence",
453
- region="us", # Optional: Region for results
454
- safesearch="moderate", # Optional: "on", "moderate", "off"
455
- max_results=10 # Optional: Limit number of results
456
- )
457
- for result in text_results:
458
- print(f"Title: {result.title}")
459
- print(f"URL: {result.url}")
460
- print(f"Description: {result.description}")
461
-
462
- # News Search
463
- news_results = google.news(
464
- keywords="technology trends",
465
- region="us",
466
- safesearch="moderate",
467
- max_results=5
468
- )
469
-
470
- # Get search suggestions
471
- suggestions = google.suggestions("how to")
472
-
473
- # Legacy usage is still supported
474
- from webscout import search
475
- results = search("Python programming", num_results=5)
476
- ```
477
-
478
- <hr/>
479
-
480
- ## 🦆 DuckDuckGo Search with WEBS
481
-
482
- Webscout provides powerful interfaces to DuckDuckGo's search capabilities through the `WEBS` and `AsyncWEBS` classes.
483
-
484
- <details open>
485
- <summary><b>Synchronous Usage with WEBS</b></summary>
486
- <p>
487
-
488
- ```python
489
- from webscout import WEBS
490
-
491
- # Use as a context manager for proper resource management
492
- with WEBS() as webs:
493
- # Simple text search
494
- results = webs.text("python programming", max_results=5)
495
- for result in results:
496
- print(f"Title: {result['title']}\nURL: {result['url']}")
497
- ```
498
-
499
- </p>
500
- </details>
501
-
502
- <details open>
503
- <summary><b>Asynchronous Usage with AsyncWEBS</b></summary>
504
- <p>
505
-
506
- ```python
507
- import asyncio
508
- from webscout import AsyncWEBS
509
-
510
- async def search_multiple_terms(search_terms):
511
- async with AsyncWEBS() as webs:
512
- # Create tasks for each search term
513
- tasks = [webs.text(term, max_results=5) for term in search_terms]
514
- # Run all searches concurrently
515
- results = await asyncio.gather(*tasks)
516
- return results
517
-
518
- async def main():
519
- terms = ["python", "javascript", "machine learning"]
520
- all_results = await search_multiple_terms(terms)
521
-
522
- # Process results
523
- for i, term_results in enumerate(all_results):
524
- print(f"Results for '{terms[i]}':\n")
525
- for result in term_results:
526
- print(f"- {result['title']}")
527
- print("\n")
528
-
529
- # Run the async function
530
- asyncio.run(main())
531
- ```
532
-
533
- </p>
534
- </details>
535
-
536
- > [!TIP]
537
- > Always use these classes with a context manager (`with` statement) to ensure proper resource management and cleanup.
538
-
539
- <hr/>
540
-
541
- ## 💻 WEBS API Reference
542
-
543
- The WEBS class provides comprehensive access to DuckDuckGo's search capabilities through a clean, intuitive API.
544
-
545
- ### Available Search Methods
546
-
547
- | Method | Description | Example |
548
- | --------------- | ------------------- | -------------------------------------------- |
549
- | `text()` | General web search | `webs.text('python programming')` |
550
- | `answers()` | Instant answers | `webs.answers('population of france')` |
551
- | `images()` | Image search | `webs.images('nature photography')` |
552
- | `videos()` | Video search | `webs.videos('documentary')` |
553
- | `news()` | News articles | `webs.news('technology')` |
554
- | `maps()` | Location search | `webs.maps('restaurants', place='new york')` |
555
- | `translate()` | Text translation | `webs.translate('hello', to='es')` |
556
- | `suggestions()` | Search suggestions | `webs.suggestions('how to')` |
557
- | `weather()` | Weather information | `webs.weather('london')` |
558
-
559
- <details>
560
- <summary><b>Example: Text Search</b></summary>
561
- <p>
562
-
563
- ```python
564
- from webscout import WEBS
565
-
566
- with WEBS() as webs:
567
- results = webs.text(
568
- 'artificial intelligence',
569
- region='wt-wt', # Optional: Region for results
570
- safesearch='off', # Optional: 'on', 'moderate', 'off'
571
- timelimit='y', # Optional: Time limit ('d'=day, 'w'=week, 'm'=month, 'y'=year)
572
- max_results=10 # Optional: Limit number of results
573
- )
574
-
575
- for result in results:
576
- print(f"Title: {result['title']}")
577
- print(f"URL: {result['url']}")
578
- print(f"Description: {result['body']}\n")
579
- ```
580
-
581
- </p>
582
- </details>
583
-
584
- <details>
585
- <summary><b>Example: News Search with Formatting</b></summary>
586
- <p>
587
-
588
- ```python
589
- from webscout.search import DuckDuckGoSearch
590
-
591
- def fetch_formatted_news(keywords, timelimit='d', max_results=20):
592
- """Fetch and format news articles"""
593
- with WEBS() as webs:
594
- # Get news results
595
- news_results = webs.news(
596
- keywords,
597
- region="wt-wt",
598
- safesearch="off",
599
- timelimit=timelimit, # 'd'=day, 'w'=week, 'm'=month
600
- max_results=max_results
601
- )
602
-
603
- # Format the results
604
- formatted_news = []
605
- for i, item in enumerate(news_results, 1):
606
- # Format the date
607
- date = datetime.datetime.fromisoformat(item['date']).strftime('%B %d, %Y')
608
-
609
- # Create formatted entry
610
- entry = f"{i}. {item['title']}\n"
611
- entry += f" Published: {date}\n"
612
- entry += f" {item['body']}\n"
613
- entry += f" URL: {item['url']}\n"
614
-
615
- formatted_news.append(entry)
616
-
617
- return formatted_news
618
-
619
- # Example usage
620
- news = fetch_formatted_news('artificial intelligence', timelimit='w', max_results=5)
621
- print('\n'.join(news))
622
- ```
623
-
624
- </p>
625
- </details>
626
-
627
- <details>
628
- <summary><b>Example: Weather Information</b></summary>
629
- <p>
630
-
631
- ```python
632
- from webscout import WEBS
633
-
634
- with WEBS() as webs:
635
- # Get weather for a location
636
- weather = webs.weather("New York")
637
-
638
- # Access weather data
639
- if weather:
640
- print(f"Location: {weather.get('location', 'Unknown')}")
641
- print(f"Temperature: {weather.get('temperature', 'N/A')}")
642
- print(f"Conditions: {weather.get('condition', 'N/A')}")
643
- ```
644
-
645
- </p>
646
- </details>
647
-
648
- <hr/>
649
-
650
374
  ## 🤖 AI Models and Voices
651
375
 
652
376
  Webscout provides easy access to a wide range of AI models and voice options.
@@ -781,7 +505,7 @@ for media in response.get("media", []):
781
505
  <p>
782
506
 
783
507
  ```python
784
- from webscout import GROQ, WEBS
508
+ from webscout import GROQ, DuckDuckGoSearch
785
509
  import json
786
510
 
787
511
  # Initialize GROQ client
@@ -799,7 +523,8 @@ def calculate(expression):
799
523
  def search(query):
800
524
  """Perform a web search"""
801
525
  try:
802
- results = WEBS().text(query, max_results=3)
526
+ ddg = DuckDuckGoSearch()
527
+ results = ddg.text(query, max_results=3)
803
528
  return json.dumps({"results": results})
804
529
  except Exception as e:
805
530
  return json.dumps({"error": str(e)})
@@ -29,9 +29,6 @@
29
29
  - [⚙️ Installation](#️-installation)
30
30
  - [🖥️ Command Line Interface](#️-command-line-interface)
31
31
  - [🔄 OpenAI-Compatible API Server](docs/openai-api-server.md)
32
- - [🔍 Search Engines](#-search-engines)
33
- - [🦆 DuckDuckGo Search](#-duckduckgo-search-with-webs-and-asyncwebs)
34
- - [💻 WEBS API Reference](#-webs-api-reference)
35
32
  - [🤖 AI Models and Voices](#-ai-models-and-voices)
36
33
  - [💬 AI Chat Providers](#-ai-chat-providers)
37
34
  - [👨‍💻 Advanced AI Interfaces](#-advanced-ai-interfaces)
@@ -72,7 +69,7 @@
72
69
  <summary><b>Search & AI</b></summary>
73
70
  <p>
74
71
 
75
- - **Comprehensive Search:** Leverage Google, DuckDuckGo, and Yep for diverse search results
72
+ - **Comprehensive Search:** Access multiple search engines including DuckDuckGo, Yep, Bing, Brave, Yahoo, Yandex, Mojeek, and Wikipedia for diverse search results ([Search Documentation](docs/search.md))
76
73
  - **AI Powerhouse:** Access and interact with various AI models through three compatibility options:
77
74
  - **Native API:** Use Webscout's native interfaces for providers like OpenAI, Cohere, Gemini, and many more
78
75
  - **[OpenAI-Compatible Providers](webscout/Provider/OPENAI/README.md):** Seamlessly integrate with various AI providers using standardized OpenAI-compatible interfaces
@@ -246,32 +243,7 @@ python -m webscout-server
246
243
  <summary><b>🔍 Web Search Commands</b></summary>
247
244
  <p>
248
245
 
249
- | Command | Description | Example |
250
- | --------------------------------- | --------------------------- | ----------------------------------------- |
251
- | `webscout text -k "query"` | Perform a text search | `webscout text -k "python programming"` |
252
- | `webscout answers -k "query"` | Get instant answers | `webscout answers -k "what is AI"` |
253
- | `webscout images -k "query"` | Search for images | `webscout images -k "nature photography"` |
254
- | `webscout videos -k "query"` | Search for videos | `webscout videos -k "python tutorials"` |
255
- | `webscout news -k "query"` | Search for news articles | `webscout news -k "technology trends"` |
256
- | `webscout maps -k "query"` | Perform a maps search | `webscout maps -k "restaurants near me"` |
257
- | `webscout translate -k "text"` | Translate text | `webscout translate -k "hello world"` |
258
- | `webscout suggestions -k "query"` | Get search suggestions | `webscout suggestions -k "how to"` |
259
- | `webscout weather -l "location"` | Get weather information | `webscout weather -l "New York"` |
260
- | `webscout version` | Display the current version | `webscout version` |
261
-
262
- **Google Search Commands:**
263
- | Command | Description | Example |
264
- |---------|-------------|---------|
265
- | `webscout google_text -k "query"` | Google text search | `webscout google_text -k "machine learning"` |
266
- | `webscout google_news -k "query"` | Google news search | `webscout google_news -k "AI breakthrough"` |
267
- | `webscout google_suggestions -q "query"` | Google suggestions | `webscout google_suggestions -q "python"` |
268
-
269
- **Yep Search Commands:**
270
- | Command | Description | Example |
271
- |---------|-------------|---------|
272
- | `webscout yep_text -k "query"` | Yep text search | `webscout yep_text -k "web development"` |
273
- | `webscout yep_images -k "query"` | Yep image search | `webscout yep_images -k "landscapes"` |
274
- | `webscout yep_suggestions -q "query"` | Yep suggestions | `webscout yep_suggestions -q "javascript"` |
246
+ Webscout provides comprehensive CLI commands for all search engines. See the [Search Documentation](docs/search.md#command-line-interface) for detailed command reference.
275
247
 
276
248
  </p>
277
249
  </details>
@@ -320,254 +292,6 @@ For detailed information about the OpenAI-compatible API server, including setup
320
292
 
321
293
  <hr/>
322
294
 
323
- ## 🔍 Search Engines
324
-
325
- Webscout provides multiple search engine interfaces for diverse search capabilities.
326
-
327
- ### YepSearch - Yep.com Interface
328
-
329
- ```python
330
- from webscout import YepSearch
331
-
332
- # Initialize YepSearch
333
- yep = YepSearch(
334
- timeout=20, # Optional: Set custom timeout
335
- proxies=None, # Optional: Use proxies
336
- verify=True # Optional: SSL verification
337
- )
338
-
339
- # Text Search
340
- text_results = yep.text(
341
- keywords="artificial intelligence",
342
- region="all", # Optional: Region for results
343
- safesearch="moderate", # Optional: "on", "moderate", "off"
344
- max_results=10 # Optional: Limit number of results
345
- )
346
-
347
- # Image Search
348
- image_results = yep.images(
349
- keywords="nature photography",
350
- region="all",
351
- safesearch="moderate",
352
- max_results=10
353
- )
354
-
355
- # Get search suggestions
356
- suggestions = yep.suggestions("hist")
357
- ```
358
-
359
- ### GoogleSearch - Google Interface
360
-
361
- ```python
362
- from webscout import GoogleSearch
363
-
364
- # Initialize GoogleSearch
365
- google = GoogleSearch(
366
- timeout=10, # Optional: Set custom timeout
367
- proxies=None, # Optional: Use proxies
368
- verify=True # Optional: SSL verification
369
- )
370
-
371
- # Text Search
372
- text_results = google.text(
373
- keywords="artificial intelligence",
374
- region="us", # Optional: Region for results
375
- safesearch="moderate", # Optional: "on", "moderate", "off"
376
- max_results=10 # Optional: Limit number of results
377
- )
378
- for result in text_results:
379
- print(f"Title: {result.title}")
380
- print(f"URL: {result.url}")
381
- print(f"Description: {result.description}")
382
-
383
- # News Search
384
- news_results = google.news(
385
- keywords="technology trends",
386
- region="us",
387
- safesearch="moderate",
388
- max_results=5
389
- )
390
-
391
- # Get search suggestions
392
- suggestions = google.suggestions("how to")
393
-
394
- # Legacy usage is still supported
395
- from webscout import search
396
- results = search("Python programming", num_results=5)
397
- ```
398
-
399
- <hr/>
400
-
401
- ## 🦆 DuckDuckGo Search with WEBS
402
-
403
- Webscout provides powerful interfaces to DuckDuckGo's search capabilities through the `WEBS` and `AsyncWEBS` classes.
404
-
405
- <details open>
406
- <summary><b>Synchronous Usage with WEBS</b></summary>
407
- <p>
408
-
409
- ```python
410
- from webscout import WEBS
411
-
412
- # Use as a context manager for proper resource management
413
- with WEBS() as webs:
414
- # Simple text search
415
- results = webs.text("python programming", max_results=5)
416
- for result in results:
417
- print(f"Title: {result['title']}\nURL: {result['url']}")
418
- ```
419
-
420
- </p>
421
- </details>
422
-
423
- <details open>
424
- <summary><b>Asynchronous Usage with AsyncWEBS</b></summary>
425
- <p>
426
-
427
- ```python
428
- import asyncio
429
- from webscout import AsyncWEBS
430
-
431
- async def search_multiple_terms(search_terms):
432
- async with AsyncWEBS() as webs:
433
- # Create tasks for each search term
434
- tasks = [webs.text(term, max_results=5) for term in search_terms]
435
- # Run all searches concurrently
436
- results = await asyncio.gather(*tasks)
437
- return results
438
-
439
- async def main():
440
- terms = ["python", "javascript", "machine learning"]
441
- all_results = await search_multiple_terms(terms)
442
-
443
- # Process results
444
- for i, term_results in enumerate(all_results):
445
- print(f"Results for '{terms[i]}':\n")
446
- for result in term_results:
447
- print(f"- {result['title']}")
448
- print("\n")
449
-
450
- # Run the async function
451
- asyncio.run(main())
452
- ```
453
-
454
- </p>
455
- </details>
456
-
457
- > [!TIP]
458
- > Always use these classes with a context manager (`with` statement) to ensure proper resource management and cleanup.
459
-
460
- <hr/>
461
-
462
- ## 💻 WEBS API Reference
463
-
464
- The WEBS class provides comprehensive access to DuckDuckGo's search capabilities through a clean, intuitive API.
465
-
466
- ### Available Search Methods
467
-
468
- | Method | Description | Example |
469
- | --------------- | ------------------- | -------------------------------------------- |
470
- | `text()` | General web search | `webs.text('python programming')` |
471
- | `answers()` | Instant answers | `webs.answers('population of france')` |
472
- | `images()` | Image search | `webs.images('nature photography')` |
473
- | `videos()` | Video search | `webs.videos('documentary')` |
474
- | `news()` | News articles | `webs.news('technology')` |
475
- | `maps()` | Location search | `webs.maps('restaurants', place='new york')` |
476
- | `translate()` | Text translation | `webs.translate('hello', to='es')` |
477
- | `suggestions()` | Search suggestions | `webs.suggestions('how to')` |
478
- | `weather()` | Weather information | `webs.weather('london')` |
479
-
480
- <details>
481
- <summary><b>Example: Text Search</b></summary>
482
- <p>
483
-
484
- ```python
485
- from webscout import WEBS
486
-
487
- with WEBS() as webs:
488
- results = webs.text(
489
- 'artificial intelligence',
490
- region='wt-wt', # Optional: Region for results
491
- safesearch='off', # Optional: 'on', 'moderate', 'off'
492
- timelimit='y', # Optional: Time limit ('d'=day, 'w'=week, 'm'=month, 'y'=year)
493
- max_results=10 # Optional: Limit number of results
494
- )
495
-
496
- for result in results:
497
- print(f"Title: {result['title']}")
498
- print(f"URL: {result['url']}")
499
- print(f"Description: {result['body']}\n")
500
- ```
501
-
502
- </p>
503
- </details>
504
-
505
- <details>
506
- <summary><b>Example: News Search with Formatting</b></summary>
507
- <p>
508
-
509
- ```python
510
- from webscout.search import DuckDuckGoSearch
511
-
512
- def fetch_formatted_news(keywords, timelimit='d', max_results=20):
513
- """Fetch and format news articles"""
514
- with WEBS() as webs:
515
- # Get news results
516
- news_results = webs.news(
517
- keywords,
518
- region="wt-wt",
519
- safesearch="off",
520
- timelimit=timelimit, # 'd'=day, 'w'=week, 'm'=month
521
- max_results=max_results
522
- )
523
-
524
- # Format the results
525
- formatted_news = []
526
- for i, item in enumerate(news_results, 1):
527
- # Format the date
528
- date = datetime.datetime.fromisoformat(item['date']).strftime('%B %d, %Y')
529
-
530
- # Create formatted entry
531
- entry = f"{i}. {item['title']}\n"
532
- entry += f" Published: {date}\n"
533
- entry += f" {item['body']}\n"
534
- entry += f" URL: {item['url']}\n"
535
-
536
- formatted_news.append(entry)
537
-
538
- return formatted_news
539
-
540
- # Example usage
541
- news = fetch_formatted_news('artificial intelligence', timelimit='w', max_results=5)
542
- print('\n'.join(news))
543
- ```
544
-
545
- </p>
546
- </details>
547
-
548
- <details>
549
- <summary><b>Example: Weather Information</b></summary>
550
- <p>
551
-
552
- ```python
553
- from webscout import WEBS
554
-
555
- with WEBS() as webs:
556
- # Get weather for a location
557
- weather = webs.weather("New York")
558
-
559
- # Access weather data
560
- if weather:
561
- print(f"Location: {weather.get('location', 'Unknown')}")
562
- print(f"Temperature: {weather.get('temperature', 'N/A')}")
563
- print(f"Conditions: {weather.get('condition', 'N/A')}")
564
- ```
565
-
566
- </p>
567
- </details>
568
-
569
- <hr/>
570
-
571
295
  ## 🤖 AI Models and Voices
572
296
 
573
297
  Webscout provides easy access to a wide range of AI models and voice options.
@@ -702,7 +426,7 @@ for media in response.get("media", []):
702
426
  <p>
703
427
 
704
428
  ```python
705
- from webscout import GROQ, WEBS
429
+ from webscout import GROQ, DuckDuckGoSearch
706
430
  import json
707
431
 
708
432
  # Initialize GROQ client
@@ -720,7 +444,8 @@ def calculate(expression):
720
444
  def search(query):
721
445
  """Perform a web search"""
722
446
  try:
723
- results = WEBS().text(query, max_results=3)
447
+ ddg = DuckDuckGoSearch()
448
+ results = ddg.text(query, max_results=3)
724
449
  return json.dumps({"results": results})
725
450
  except Exception as e:
726
451
  return json.dumps({"error": str(e)})
@@ -1,6 +1,6 @@
1
1
  # webscout/__init__.py
2
2
 
3
- from .search import DuckDuckGoSearch, YepSearch
3
+ from .search import DuckDuckGoSearch, YepSearch, BingSearch
4
4
  from .version import __version__
5
5
  from .Provider import *
6
6
  from .Provider.TTI import *