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.
- {webscout-8.2.8/webscout.egg-info → webscout-8.2.9}/PKG-INFO +159 -35
- {webscout-8.2.8 → webscout-8.2.9}/README.md +156 -34
- {webscout-8.2.8 → webscout-8.2.9}/changelog.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/pyproject.toml +6 -7
- {webscout-8.2.8 → webscout-8.2.9}/webscout/AIauto.py +32 -14
- {webscout-8.2.8 → webscout-8.2.9}/webscout/AIbase.py +96 -37
- webscout-8.2.9/webscout/AIutel.py +703 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Bard.py +441 -323
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/__init__.py +10 -10
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/video.py +232 -232
- webscout-8.2.9/webscout/Litlogger/README.md +10 -0
- webscout-8.2.9/webscout/Litlogger/__init__.py +15 -0
- webscout-8.2.9/webscout/Litlogger/formats.py +4 -0
- webscout-8.2.9/webscout/Litlogger/handlers.py +103 -0
- webscout-8.2.9/webscout/Litlogger/levels.py +13 -0
- webscout-8.2.9/webscout/Litlogger/logger.py +92 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/Perplexity.py +332 -358
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/felo_search.py +9 -35
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/genspark_search.py +30 -56
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/hika_search.py +4 -16
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/iask_search.py +410 -436
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/monica_search.py +4 -30
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/scira_search.py +6 -32
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/webpilotai_search.py +38 -64
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Blackboxai.py +153 -35
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Deepinfra.py +339 -339
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ExaChat.py +358 -358
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Gemini.py +169 -169
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/GithubChat.py +1 -2
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Glider.py +3 -3
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/HeckAI.py +171 -81
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/BLACKBOXAI.py +766 -735
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/Cloudflare.py +7 -7
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/FreeGemini.py +6 -5
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/NEMOTRON.py +8 -20
- webscout-8.2.9/webscout/Provider/OPENAI/Qwen3.py +283 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/README.md +952 -1253
- webscout-8.2.9/webscout/Provider/OPENAI/TwoAI.py +357 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/__init__.py +5 -1
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/ai4chat.py +40 -40
- webscout-8.2.9/webscout/Provider/OPENAI/api.py +969 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/c4ai.py +3 -3
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/chatgpt.py +555 -555
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/chatgptclone.py +493 -487
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/chatsandbox.py +4 -3
- webscout-8.2.9/webscout/Provider/OPENAI/copilot.py +242 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/deepinfra.py +5 -2
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/e2b.py +63 -5
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/exaai.py +416 -410
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/exachat.py +444 -443
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/freeaichat.py +2 -2
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/glider.py +5 -2
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/groq.py +5 -2
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/heckai.py +308 -307
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/mcpcore.py +8 -2
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/multichat.py +4 -4
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/netwrck.py +6 -5
- webscout-8.2.9/webscout/Provider/OPENAI/oivscode.py +287 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/opkfc.py +496 -496
- webscout-8.2.9/webscout/Provider/OPENAI/pydantic_imports.py +172 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/scirachat.py +15 -9
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/sonus.py +304 -303
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/standardinput.py +433 -433
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/textpollinations.py +4 -4
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/toolbaz.py +413 -413
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/typefully.py +3 -3
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/typegpt.py +11 -5
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/uncovrAI.py +463 -462
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/utils.py +90 -79
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/venice.py +431 -425
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/wisecat.py +387 -381
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/writecream.py +3 -3
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/x0gpt.py +365 -378
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/yep.py +39 -13
- webscout-8.2.9/webscout/Provider/TTI/README.md +82 -0
- webscout-8.2.9/webscout/Provider/TTI/__init__.py +7 -0
- webscout-8.2.9/webscout/Provider/TTI/aiarta.py +365 -0
- webscout-8.2.9/webscout/Provider/TTI/artbit.py +0 -0
- webscout-8.2.9/webscout/Provider/TTI/base.py +64 -0
- webscout-8.2.9/webscout/Provider/TTI/fastflux.py +200 -0
- webscout-8.2.9/webscout/Provider/TTI/magicstudio.py +201 -0
- webscout-8.2.9/webscout/Provider/TTI/piclumen.py +203 -0
- webscout-8.2.9/webscout/Provider/TTI/pixelmuse.py +225 -0
- webscout-8.2.9/webscout/Provider/TTI/pollinations.py +221 -0
- webscout-8.2.9/webscout/Provider/TTI/utils.py +11 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/__init__.py +2 -1
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/base.py +159 -159
- webscout-8.2.9/webscout/Provider/TTS/openai_fm.py +129 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TextPollinationsAI.py +308 -308
- webscout-8.2.9/webscout/Provider/TwoAI.py +475 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/UNFINISHED/Youchat.py +330 -330
- webscout-8.2.9/webscout/Provider/UNFINISHED/puterjs.py +635 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/UNFINISHED/test_lmarena.py +119 -119
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Writecream.py +246 -246
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/__init__.py +2 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ai4chat.py +33 -8
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/koala.py +169 -169
- webscout-8.2.9/webscout/Provider/oivscode.py +309 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/samurai.py +3 -2
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/typegpt.py +3 -3
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/uncovr.py +368 -368
- webscout-8.2.9/webscout/client.py +70 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/litprinter/__init__.py +58 -58
- {webscout-8.2.8 → webscout-8.2.9}/webscout/optimizers.py +419 -419
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/README.md +3 -1
- webscout-8.2.9/webscout/scout/core/crawler.py +210 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/scout.py +148 -109
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/element.py +106 -88
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/Readme.md +323 -323
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/plugins/manager.py +9 -2
- webscout-8.2.9/webscout/version.py +2 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/__init__.py +134 -134
- {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/effects.py +100 -100
- {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/fonts.py +1238 -1238
- {webscout-8.2.8 → webscout-8.2.9/webscout.egg-info}/PKG-INFO +159 -35
- {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/SOURCES.txt +46 -136
- {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/entry_points.txt +1 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/requires.txt +2 -0
- webscout-8.2.8/webscout/AIutel.py +0 -299
- webscout-8.2.8/webscout/Litlogger/Readme.md +0 -175
- webscout-8.2.8/webscout/Litlogger/__init__.py +0 -67
- webscout-8.2.8/webscout/Litlogger/core/__init__.py +0 -6
- webscout-8.2.8/webscout/Litlogger/core/level.py +0 -23
- webscout-8.2.8/webscout/Litlogger/core/logger.py +0 -165
- webscout-8.2.8/webscout/Litlogger/handlers/__init__.py +0 -12
- webscout-8.2.8/webscout/Litlogger/handlers/console.py +0 -33
- webscout-8.2.8/webscout/Litlogger/handlers/file.py +0 -143
- webscout-8.2.8/webscout/Litlogger/handlers/network.py +0 -173
- webscout-8.2.8/webscout/Litlogger/styles/__init__.py +0 -7
- webscout-8.2.8/webscout/Litlogger/styles/colors.py +0 -249
- webscout-8.2.8/webscout/Litlogger/styles/formats.py +0 -458
- webscout-8.2.8/webscout/Litlogger/styles/text.py +0 -87
- webscout-8.2.8/webscout/Litlogger/utils/__init__.py +0 -6
- webscout-8.2.8/webscout/Litlogger/utils/detectors.py +0 -153
- webscout-8.2.8/webscout/Litlogger/utils/formatters.py +0 -200
- webscout-8.2.8/webscout/Provider/OPENAI/api.py +0 -810
- webscout-8.2.8/webscout/Provider/TTI/AiForce/README.md +0 -159
- webscout-8.2.8/webscout/Provider/TTI/AiForce/__init__.py +0 -22
- webscout-8.2.8/webscout/Provider/TTI/AiForce/async_aiforce.py +0 -224
- webscout-8.2.8/webscout/Provider/TTI/AiForce/sync_aiforce.py +0 -245
- webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/README.md +0 -99
- webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/__init__.py +0 -9
- webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +0 -181
- webscout-8.2.8/webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +0 -180
- webscout-8.2.8/webscout/Provider/TTI/ImgSys/README.md +0 -174
- webscout-8.2.8/webscout/Provider/TTI/ImgSys/__init__.py +0 -23
- webscout-8.2.8/webscout/Provider/TTI/ImgSys/async_imgsys.py +0 -202
- webscout-8.2.8/webscout/Provider/TTI/ImgSys/sync_imgsys.py +0 -195
- webscout-8.2.8/webscout/Provider/TTI/MagicStudio/README.md +0 -101
- webscout-8.2.8/webscout/Provider/TTI/MagicStudio/__init__.py +0 -2
- webscout-8.2.8/webscout/Provider/TTI/MagicStudio/async_magicstudio.py +0 -111
- webscout-8.2.8/webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +0 -109
- webscout-8.2.8/webscout/Provider/TTI/Nexra/README.md +0 -155
- webscout-8.2.8/webscout/Provider/TTI/Nexra/__init__.py +0 -22
- webscout-8.2.8/webscout/Provider/TTI/Nexra/async_nexra.py +0 -286
- webscout-8.2.8/webscout/Provider/TTI/Nexra/sync_nexra.py +0 -258
- webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/README.md +0 -146
- webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/__init__.py +0 -23
- webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/async_pollinations.py +0 -311
- webscout-8.2.8/webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +0 -265
- webscout-8.2.8/webscout/Provider/TTI/README.md +0 -128
- webscout-8.2.8/webscout/Provider/TTI/__init__.py +0 -12
- webscout-8.2.8/webscout/Provider/TTI/aiarta/README.md +0 -134
- webscout-8.2.8/webscout/Provider/TTI/aiarta/__init__.py +0 -2
- webscout-8.2.8/webscout/Provider/TTI/aiarta/async_aiarta.py +0 -482
- webscout-8.2.8/webscout/Provider/TTI/aiarta/sync_aiarta.py +0 -440
- webscout-8.2.8/webscout/Provider/TTI/artbit/README.md +0 -100
- webscout-8.2.8/webscout/Provider/TTI/artbit/__init__.py +0 -22
- webscout-8.2.8/webscout/Provider/TTI/artbit/async_artbit.py +0 -155
- webscout-8.2.8/webscout/Provider/TTI/artbit/sync_artbit.py +0 -148
- webscout-8.2.8/webscout/Provider/TTI/fastflux/README.md +0 -129
- webscout-8.2.8/webscout/Provider/TTI/fastflux/__init__.py +0 -22
- webscout-8.2.8/webscout/Provider/TTI/fastflux/async_fastflux.py +0 -261
- webscout-8.2.8/webscout/Provider/TTI/fastflux/sync_fastflux.py +0 -252
- webscout-8.2.8/webscout/Provider/TTI/huggingface/README.md +0 -114
- webscout-8.2.8/webscout/Provider/TTI/huggingface/__init__.py +0 -22
- webscout-8.2.8/webscout/Provider/TTI/huggingface/async_huggingface.py +0 -199
- webscout-8.2.8/webscout/Provider/TTI/huggingface/sync_huggingface.py +0 -195
- webscout-8.2.8/webscout/Provider/TTI/piclumen/README.md +0 -161
- webscout-8.2.8/webscout/Provider/TTI/piclumen/__init__.py +0 -23
- webscout-8.2.8/webscout/Provider/TTI/piclumen/async_piclumen.py +0 -268
- webscout-8.2.8/webscout/Provider/TTI/piclumen/sync_piclumen.py +0 -233
- webscout-8.2.8/webscout/Provider/TTI/pixelmuse/README.md +0 -79
- webscout-8.2.8/webscout/Provider/TTI/pixelmuse/__init__.py +0 -4
- webscout-8.2.8/webscout/Provider/TTI/pixelmuse/async_pixelmuse.py +0 -249
- webscout-8.2.8/webscout/Provider/TTI/pixelmuse/sync_pixelmuse.py +0 -182
- webscout-8.2.8/webscout/Provider/TTI/talkai/README.md +0 -139
- webscout-8.2.8/webscout/Provider/TTI/talkai/__init__.py +0 -4
- webscout-8.2.8/webscout/Provider/TTI/talkai/async_talkai.py +0 -229
- webscout-8.2.8/webscout/Provider/TTI/talkai/sync_talkai.py +0 -207
- webscout-8.2.8/webscout/Provider/TwoAI.py +0 -280
- webscout-8.2.8/webscout/Provider/UNFINISHED/oivscode.py +0 -351
- webscout-8.2.8/webscout/scout/core/crawler.py +0 -140
- webscout-8.2.8/webscout/version.py +0 -2
- {webscout-8.2.8 → webscout-8.2.9}/LEGAL_NOTICE.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/LICENSE.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/MANIFEST.in +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/setup.cfg +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/DWEBS.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/Act.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/README.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/repository.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/user.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/GitToolkit/gitapi/utils.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/README.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/YTdownloader.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/transcriber.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/README.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/channel.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/errors.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/extras.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/https.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/patterns.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/playlist.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/pool.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/query.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/stream.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/YTToolkit/ytapi/utils.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/autocoder/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/autocoder/autocoder.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/autocoder/autocoder_utiles.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/gguf.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/gguf.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/README.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/async_utils.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/base.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/cli.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/emailnator.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/mail_tm.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/tempmail/temp_mail_io.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/weather.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/weather.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Extra/weather_ascii.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AI21.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/DeepFind.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/README.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AISEARCH/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Aitopia.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/AllenAI.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Andi.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ChatGPTClone.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ChatGPTGratis.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ChatSandbox.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Cloudflare.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Cohere.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/ExaAI.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Flowith.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/FreeGemini.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/GizAI.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Groq.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/HF_space/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/HF_space/qwen_qwen2.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/HuggingFaceChat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Hunyuan.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Jadve.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Koboldai.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/LambdaChat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Llama3.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/MCPCore.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Marcus.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Nemotron.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Netwrck.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OLLAMA.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/base.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/flowith.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OPENAI/llmchatco.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/OpenGPT.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Openai.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/PI.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Perplexitylabs.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/QwenLM.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Reka.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/StandardInput.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/README.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/deepgram.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/elevenlabs.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/gesserit.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/murfai.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/parler.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/speechma.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/sthir.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/streamElements.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TTS/utils.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TeachAnything.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/TypliAI.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/UNFINISHED/ChatHub.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/UNFINISHED/liner_api_request.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/Venice.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/VercelAI.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/WiseCat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/WrDoChat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/WritingMate.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/akashgpt.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/asksteve.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/cerebras.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/chatglm.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/cleeai.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/copilot.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/elmo.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/freeaichat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/geminiapi.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/granite.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/hermes.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/julius.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/learnfastai.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/llama3mitril.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/llmchat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/llmchatco.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/lmarena.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/meta.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/multichat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/scira_chat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/scnet.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/searchchat.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/sonus.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/talkai.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/toolbaz.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/turboseek.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/typefully.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/x0gpt.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/Provider/yep.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/__main__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/cli.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/conversation.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/exceptions.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/litagent/Readme.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/litagent/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/litagent/agent.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/litagent/constants.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/models.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/prompt_manager.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/search_result.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/text_analyzer.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/text_utils.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/core/web_analyzer.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/parsers/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/parsers/html5lib_parser.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/parsers/html_parser.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/parsers/lxml_parser.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/scout/utils.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/core/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/core/cli.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/core/context.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/core/group.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/decorators/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/decorators/command.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/decorators/options.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/decorators/output.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/exceptions.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/plugins/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/plugins/base.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/utils/__init__.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/utils/formatting.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/swiftcli/utils/parsing.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/tempid.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/update_checker.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/utils.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/webscout_search.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/webscout_search_async.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/yep_search.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/README.md +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout/zeroart/base.py +0 -0
- {webscout-8.2.8 → webscout-8.2.9}/webscout.egg-info/dependency_links.txt +0 -0
- {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.
|
|
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/
|
|
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
|
-
|
|
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
|
|
314
|
+
<summary><b>🔍 Web Search Commands</b></summary>
|
|
213
315
|
<p>
|
|
214
316
|
|
|
215
|
-
| Command | Description |
|
|
216
|
-
|
|
217
|
-
| `
|
|
218
|
-
| `
|
|
219
|
-
| `
|
|
220
|
-
| `
|
|
221
|
-
| `
|
|
222
|
-
| `
|
|
223
|
-
| `
|
|
224
|
-
| `
|
|
225
|
-
| `
|
|
226
|
-
| `
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
|
230
|
-
|
|
231
|
-
| `
|
|
232
|
-
| `
|
|
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
|
-
|
|
397
|
+
webscout-server
|
|
287
398
|
|
|
288
399
|
# Start with custom port
|
|
289
|
-
|
|
400
|
+
webscout-server --port 8080
|
|
290
401
|
|
|
291
402
|
# Start with API key authentication
|
|
292
|
-
|
|
403
|
+
webscout-server --api-key "your-secret-key"
|
|
293
404
|
|
|
294
405
|
# Specify a default provider
|
|
295
|
-
|
|
406
|
+
webscout-server --default-provider "Claude"
|
|
296
407
|
|
|
297
408
|
# Run in debug mode
|
|
298
|
-
|
|
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.
|
|
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.
|
|
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/
|
|
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
|
-
|
|
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
|
|
240
|
+
<summary><b>🔍 Web Search Commands</b></summary>
|
|
141
241
|
<p>
|
|
142
242
|
|
|
143
|
-
| Command | Description |
|
|
144
|
-
|
|
145
|
-
| `
|
|
146
|
-
| `
|
|
147
|
-
| `
|
|
148
|
-
| `
|
|
149
|
-
| `
|
|
150
|
-
| `
|
|
151
|
-
| `
|
|
152
|
-
| `
|
|
153
|
-
| `
|
|
154
|
-
| `
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
|
158
|
-
|
|
159
|
-
| `
|
|
160
|
-
| `
|
|
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
|
-
|
|
323
|
+
webscout-server
|
|
215
324
|
|
|
216
325
|
# Start with custom port
|
|
217
|
-
|
|
326
|
+
webscout-server --port 8080
|
|
218
327
|
|
|
219
328
|
# Start with API key authentication
|
|
220
|
-
|
|
329
|
+
webscout-server --api-key "your-secret-key"
|
|
221
330
|
|
|
222
331
|
# Specify a default provider
|
|
223
|
-
|
|
332
|
+
webscout-server --default-provider "Claude"
|
|
224
333
|
|
|
225
334
|
# Run in debug mode
|
|
226
|
-
|
|
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.
|
|
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.
|
|
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
|
```
|
|
Binary file
|
|
@@ -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
|
-
|
|
20
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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,
|
|
126
|
-
|
|
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
|
|
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.
|