webscout 7.9__py3-none-any.whl → 8.0__py3-none-any.whl

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 (38) hide show
  1. webscout/Extra/GitToolkit/__init__.py +10 -0
  2. webscout/Extra/GitToolkit/gitapi/__init__.py +12 -0
  3. webscout/Extra/GitToolkit/gitapi/repository.py +195 -0
  4. webscout/Extra/GitToolkit/gitapi/user.py +96 -0
  5. webscout/Extra/GitToolkit/gitapi/utils.py +62 -0
  6. webscout/Extra/YTToolkit/ytapi/video.py +232 -103
  7. webscout/Provider/AISEARCH/__init__.py +5 -1
  8. webscout/Provider/AISEARCH/hika_search.py +194 -0
  9. webscout/Provider/AISEARCH/monica_search.py +246 -0
  10. webscout/Provider/AISEARCH/scira_search.py +320 -0
  11. webscout/Provider/AISEARCH/webpilotai_search.py +281 -0
  12. webscout/Provider/AllenAI.py +255 -122
  13. webscout/Provider/DeepSeek.py +1 -2
  14. webscout/Provider/Deepinfra.py +17 -9
  15. webscout/Provider/ExaAI.py +261 -0
  16. webscout/Provider/ExaChat.py +8 -1
  17. webscout/Provider/GithubChat.py +2 -1
  18. webscout/Provider/Netwrck.py +3 -2
  19. webscout/Provider/OpenGPT.py +199 -0
  20. webscout/Provider/PI.py +39 -24
  21. webscout/Provider/Youchat.py +326 -296
  22. webscout/Provider/__init__.py +10 -0
  23. webscout/Provider/ai4chat.py +58 -56
  24. webscout/Provider/akashgpt.py +34 -22
  25. webscout/Provider/freeaichat.py +1 -1
  26. webscout/Provider/labyrinth.py +121 -20
  27. webscout/Provider/llmchatco.py +306 -0
  28. webscout/Provider/scira_chat.py +271 -0
  29. webscout/Provider/typefully.py +280 -0
  30. webscout/version.py +1 -1
  31. webscout/webscout_search.py +118 -54
  32. webscout/webscout_search_async.py +109 -45
  33. {webscout-7.9.dist-info → webscout-8.0.dist-info}/METADATA +2 -2
  34. {webscout-7.9.dist-info → webscout-8.0.dist-info}/RECORD +38 -24
  35. {webscout-7.9.dist-info → webscout-8.0.dist-info}/LICENSE.md +0 -0
  36. {webscout-7.9.dist-info → webscout-8.0.dist-info}/WHEEL +0 -0
  37. {webscout-7.9.dist-info → webscout-8.0.dist-info}/entry_points.txt +0 -0
  38. {webscout-7.9.dist-info → webscout-8.0.dist-info}/top_level.txt +0 -0
@@ -174,7 +174,7 @@ class AsyncWEBS:
174
174
  resp_content = (await self._get_url("GET", "https://duckduckgo.com", params={"q": keywords})).content
175
175
  return _extract_vqd(resp_content, keywords)
176
176
 
177
- async def achat_yield(self, keywords: str, model: str = "gpt-4o-mini", timeout: int = 30) -> AsyncIterator[str]:
177
+ async def achat_yield(self, keywords: str, model: str = "gpt-4o-mini", timeout: int = 30, max_retries: int = 3) -> AsyncIterator[str]:
178
178
  """Initiates an async chat session with webscout AI.
179
179
 
180
180
  Args:
@@ -182,10 +182,28 @@ class AsyncWEBS:
182
182
  model (str): The model to use: "gpt-4o-mini", "llama-3.3-70b", "claude-3-haiku",
183
183
  "o3-mini", "mistral-small-3". Defaults to "gpt-4o-mini".
184
184
  timeout (int): Timeout value for the HTTP client. Defaults to 30.
185
+ max_retries (int): Maximum number of retry attempts for rate limited requests. Defaults to 3.
185
186
 
186
187
  Yields:
187
188
  str: Chunks of the response from the AI.
188
189
  """
190
+ # Get Cloudflare Turnstile token
191
+ async def get_turnstile_token():
192
+ try:
193
+ # Visit the DuckDuckGo chat page to get the Turnstile token
194
+ resp_content = (await self._get_url(
195
+ method="GET",
196
+ url="https://duckduckgo.com/?q=DuckDuckGo+AI+Chat&ia=chat&duckai=1",
197
+ )).content
198
+
199
+ # Extract the Turnstile token if available
200
+ if b'cf-turnstile-response' in resp_content:
201
+ token = resp_content.split(b'cf-turnstile-response="', maxsplit=1)[1].split(b'"', maxsplit=1)[0].decode()
202
+ return token
203
+ return ""
204
+ except Exception:
205
+ return ""
206
+
189
207
  # x-fe-version
190
208
  if not self._chat_xfe:
191
209
  resp_content = (await self._get_url(
@@ -213,55 +231,100 @@ class AsyncWEBS:
213
231
  if model not in self._chat_models:
214
232
  warnings.warn(f"{model=} is unavailable. Using 'gpt-4o-mini'", stacklevel=1)
215
233
  model = "gpt-4o-mini"
234
+
235
+ # Get Cloudflare Turnstile token
236
+ turnstile_token = await get_turnstile_token()
237
+
216
238
  json_data = {
217
239
  "model": self._chat_models[model],
218
240
  "messages": self._chat_messages,
219
241
  }
220
- resp = await self._get_url(
221
- method="POST",
222
- url="https://duckduckgo.com/duckchat/v1/chat",
223
- headers={
224
- "x-fe-version": self._chat_xfe,
225
- "x-vqd-4": self._chat_vqd,
226
- "x-vqd-hash-1": "",
227
- },
228
- json=json_data,
229
- timeout=timeout,
230
- )
231
- self._chat_vqd = resp.headers.get("x-vqd-4", "")
232
- self._chat_vqd_hash = resp.headers.get("x-vqd-hash-1", "")
233
- chunks = []
234
- try:
235
- async for chunk in resp.aiter_bytes():
236
- lines = chunk.split(b"data:")
237
- for line in lines:
238
- if line := line.strip():
239
- if line == b"[DONE]":
240
- break
241
- if line == b"[DONE][LIMIT_CONVERSATION]":
242
- raise ConversationLimitException("ERR_CONVERSATION_LIMIT")
243
- x = json_loads(line)
244
- if isinstance(x, dict):
245
- if x.get("action") == "error":
246
- err_message = x.get("type", "")
247
- if x.get("status") == 429:
248
- raise (
249
- ConversationLimitException(err_message)
250
- if err_message == "ERR_CONVERSATION_LIMIT"
251
- else RatelimitE(err_message)
252
- )
253
- raise WebscoutE(err_message)
254
- elif message := x.get("message"):
255
- chunks.append(message)
256
- yield message
257
- except Exception as ex:
258
- raise WebscoutE(f"achat_yield() {type(ex).__name__}: {ex}") from ex
259
242
 
260
- result = "".join(chunks)
261
- self._chat_messages.append({"role": "assistant", "content": result})
262
- self._chat_tokens_count += len(result)
243
+ # Add Turnstile token if available
244
+ if turnstile_token:
245
+ json_data["cf-turnstile-response"] = turnstile_token
246
+
247
+ # Enhanced headers to better mimic a real browser
248
+ chat_headers = {
249
+ "x-fe-version": self._chat_xfe,
250
+ "x-vqd-4": self._chat_vqd,
251
+ "x-vqd-hash-1": "",
252
+ "Accept": "text/event-stream",
253
+ "Accept-Language": "en-US,en;q=0.9",
254
+ "Cache-Control": "no-cache",
255
+ "Content-Type": "application/json",
256
+ "DNT": "1",
257
+ "Origin": "https://duckduckgo.com",
258
+ "Referer": "https://duckduckgo.com/",
259
+ "Sec-Fetch-Dest": "empty",
260
+ "Sec-Fetch-Mode": "cors",
261
+ "Sec-Fetch-Site": "same-origin",
262
+ "User-Agent": self.client.headers.get("User-Agent", "")
263
+ }
264
+
265
+ # Retry logic for rate limited requests
266
+ retry_count = 0
267
+ while retry_count <= max_retries:
268
+ try:
269
+ resp = await self._get_url(
270
+ method="POST",
271
+ url="https://duckduckgo.com/duckchat/v1/chat",
272
+ headers=chat_headers,
273
+ json=json_data,
274
+ timeout=timeout,
275
+ )
276
+
277
+ self._chat_vqd = resp.headers.get("x-vqd-4", "")
278
+ self._chat_vqd_hash = resp.headers.get("x-vqd-hash-1", "")
279
+ chunks = []
280
+
281
+ async for chunk in resp.aiter_bytes():
282
+ lines = chunk.split(b"data:")
283
+ for line in lines:
284
+ if line := line.strip():
285
+ if line == b"[DONE]":
286
+ break
287
+ if line == b"[DONE][LIMIT_CONVERSATION]":
288
+ raise ConversationLimitException("ERR_CONVERSATION_LIMIT")
289
+ x = json_loads(line)
290
+ if isinstance(x, dict):
291
+ if x.get("action") == "error":
292
+ err_message = x.get("type", "")
293
+ if x.get("status") == 429:
294
+ raise (
295
+ ConversationLimitException(err_message)
296
+ if err_message == "ERR_CONVERSATION_LIMIT"
297
+ else RatelimitE(err_message)
298
+ )
299
+ raise WebscoutE(err_message)
300
+ elif message := x.get("message"):
301
+ chunks.append(message)
302
+ yield message
303
+
304
+ # If we get here, the request was successful
305
+ result = "".join(chunks)
306
+ self._chat_messages.append({"role": "assistant", "content": result})
307
+ self._chat_tokens_count += len(result)
308
+ return
309
+
310
+ except RatelimitE as ex:
311
+ retry_count += 1
312
+ if retry_count > max_retries:
313
+ raise WebscoutE(f"achat_yield() Rate limit exceeded after {max_retries} retries: {ex}") from ex
314
+
315
+ # Get a fresh Turnstile token for the retry
316
+ turnstile_token = await get_turnstile_token()
317
+ if turnstile_token:
318
+ json_data["cf-turnstile-response"] = turnstile_token
319
+
320
+ # Exponential backoff
321
+ sleep_time = 2 ** retry_count
322
+ await asyncio.sleep(sleep_time)
323
+
324
+ except Exception as ex:
325
+ raise WebscoutE(f"achat_yield() {type(ex).__name__}: {ex}") from ex
263
326
 
264
- async def achat(self, keywords: str, model: str = "gpt-4o-mini", timeout: int = 30) -> str:
327
+ async def achat(self, keywords: str, model: str = "gpt-4o-mini", timeout: int = 30, max_retries: int = 3) -> str:
265
328
  """Initiates an async chat session with webscout AI.
266
329
 
267
330
  Args:
@@ -269,12 +332,13 @@ class AsyncWEBS:
269
332
  model (str): The model to use: "gpt-4o-mini", "llama-3.3-70b", "claude-3-haiku",
270
333
  "o3-mini", "mistral-small-3". Defaults to "gpt-4o-mini".
271
334
  timeout (int): Timeout value for the HTTP client. Defaults to 30.
335
+ max_retries (int): Maximum number of retry attempts for rate limited requests. Defaults to 3.
272
336
 
273
337
  Returns:
274
338
  str: The response from the AI.
275
339
  """
276
340
  chunks = []
277
- async for chunk in self.achat_yield(keywords, model, timeout):
341
+ async for chunk in self.achat_yield(keywords, model, timeout, max_retries):
278
342
  chunks.append(chunk)
279
343
  return "".join(chunks)
280
344
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: webscout
3
- Version: 7.9
3
+ Version: 8.0
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: OEvortex
6
6
  Author-email: helpingai5@gmail.com
@@ -901,7 +901,7 @@ a = AndiSearch()
901
901
  print(a.chat("HelpingAI-9B"))
902
902
  ```
903
903
 
904
- ### `LLAMA`, `C4ai`, `Venice`, `Copilot`, `HuggingFaceChat`, `TwoAI`, `HeckAI`, `AllenAI`, `PerplexityLabs`, `AkashGPT`, `DeepSeek`, `WiseCat`, `IBMGranite`, `QwenLM`, `ChatGPTGratis`, `TextPollinationsAI`, `GliderAI`, `Cohere`, `REKA`, `GROQ`, `AsyncGROQ`, `OPENAI`, `AsyncOPENAI`, `KOBOLDAI`, `AsyncKOBOLDAI`, `BLACKBOXAI`, `PhindSearch`, `GEMINI`, `DeepInfra`, `AI4Chat`, `Phindv2`, `OLLAMA`, `AndiSearch`, `PIZZAGPT`, `Sambanova`, `KOALA`, `Meta`, `AskMyAI`, `PiAI`, `Julius`, `YouChat`, `YEPCHAT`, `Cloudflare`, `TurboSeek`, `TeachAnything`, `AI21`, `Chatify`, `X0GPT`, `Cerebras`, `Lepton`, `GEMINIAPI`, `Cleeai`, `Elmo`, `Free2GPT`, `GPTWeb`, `Netwrck`, `LlamaTutor`, `PromptRefine`, `TutorAI`, `ChatGPTES`, `Bagoodex`, `AIMathGPT`, `GaurishCerebras`, `GeminiPro`, `LLMChat`, `Talkai`, `Llama3Mitril`, `Marcus`, `TypeGPT`, `Netwrck`, `MultiChatAI`, `JadveOpenAI`, `ChatGLM`, `NousHermes`, `FreeAIChat`, `ElectronHub`, `GithubChat`, `Flowith`, `SonusAI`, `UncovrAI`, `LabyrinthAI`, `WebSim`, `LambdaChat`, `ChatGPTClone`, `VercelAI`, `ExaChat`, `AskSteve`, `Aitopia`, `SearchChatAI`
904
+ ### `LLAMA`, `C4ai`, `Venice`, `Copilot`, `HuggingFaceChat`, `TwoAI`, `HeckAI`, `AllenAI`, `PerplexityLabs`, `AkashGPT`, `DeepSeek`, `WiseCat`, `IBMGranite`, `QwenLM`, `ChatGPTGratis`, `TextPollinationsAI`, `GliderAI`, `Cohere`, `REKA`, `GROQ`, `AsyncGROQ`, `OPENAI`, `AsyncOPENAI`, `KOBOLDAI`, `AsyncKOBOLDAI`, `BLACKBOXAI`, `PhindSearch`, `GEMINI`, `DeepInfra`, `AI4Chat`, `Phindv2`, `OLLAMA`, `AndiSearch`, `PIZZAGPT`, `Sambanova`, `KOALA`, `Meta`, `AskMyAI`, `PiAI`, `Julius`, `YouChat`, `YEPCHAT`, `Cloudflare`, `TurboSeek`, `TeachAnything`, `AI21`, `Chatify`, `X0GPT`, `Cerebras`, `Lepton`, `GEMINIAPI`, `Cleeai`, `Elmo`, `Free2GPT`, `GPTWeb`, `Netwrck`, `LlamaTutor`, `PromptRefine`, `TutorAI`, `ChatGPTES`, `Bagoodex`, `AIMathGPT`, `GaurishCerebras`, `GeminiPro`, `LLMChat`, `Talkai`, `Llama3Mitril`, `Marcus`, `TypeGPT`, `Netwrck`, `MultiChatAI`, `JadveOpenAI`, `ChatGLM`, `NousHermes`, `FreeAIChat`, `ElectronHub`, `GithubChat`, `Flowith`, `SonusAI`, `UncovrAI`, `LabyrinthAI`, `WebSim`, `LambdaChat`, `ChatGPTClone`, `VercelAI`, `ExaChat`, `AskSteve`, `Aitopia`, `SearchChatAI`, `LLMChatCo`, `TypefullyAI`, `ExaAI`, `OpenGPT`, `SciraAI`
905
905
 
906
906
  Code is similar to other providers.
907
907
 
@@ -15,14 +15,19 @@ webscout/prompt_manager.py,sha256=F42AiUIqYIcB-8HNE6VznFwfddAw6DBtfQnGqlDtkMQ,96
15
15
  webscout/tempid.py,sha256=lqTTOjVSwDMmC0UoThdyshFyIAxTikVaN613-6K3g_s,4968
16
16
  webscout/update_checker.py,sha256=5FCr6p1zLVASXcXkxKEgR7bFvICbpzJdgRTr3teKFCs,4217
17
17
  webscout/utils.py,sha256=o2hU3qaVPk25sog3e4cyVZO3l8xwaZpYRziZPotEzNo,3075
18
- webscout/version.py,sha256=FD01AZbLTdTygE25Ve3lLKXlM7JzsKUOp887qfipnC8,44
19
- webscout/webscout_search.py,sha256=OlKFDiAX8175gzOP-GbQ8pRaokJGeKMazMKhPeAxYGE,52895
20
- webscout/webscout_search_async.py,sha256=suBEYwrh24Rqc_1l2OvzqSpnTwfDWiFAfRQ4I_tfzuY,32796
18
+ webscout/version.py,sha256=KvGXoGG6jrzbUov_tC_VLoK4WigD9MM5LDFtVtgAdvQ,44
19
+ webscout/webscout_search.py,sha256=rTqQO1e8S8i9okFO5y_2lznyh4BQ4AEzTTcM-70TWTc,55674
20
+ webscout/webscout_search_async.py,sha256=fKQ01dBCJoHmB47QJoAoTz5mns9lb0V_jgbHY2NpVnk,35680
21
21
  webscout/yep_search.py,sha256=4jIn9KKXD6zJMdg302o4rzHQwFAy4haWoIagFn1XjLM,10429
22
22
  webscout/Extra/__init__.py,sha256=KvJRsRBRO-fZp2jSCl6KQnPppi93hriA6O_U1O1s31c,177
23
23
  webscout/Extra/gguf.py,sha256=KpkKIIQf2wtCrWuAdqThLQjQGPziPsGzgcSVuNhObfk,29220
24
24
  webscout/Extra/weather.py,sha256=Xfxzt43U5m7qpK3h4pzQ55Zh9JVu5HS6XUeLJccASkE,7841
25
25
  webscout/Extra/weather_ascii.py,sha256=k6U0F9w5xXPvYK-Wq3pjUh7W0gGJG4e_YhxeUI65Vpk,2612
26
+ webscout/Extra/GitToolkit/__init__.py,sha256=S8clC97xkihcsxfbAO9QOmSO2ljLOiQFoUh_klhp2zw,146
27
+ webscout/Extra/GitToolkit/gitapi/__init__.py,sha256=e3Vu2X8qwOEpNBIbVONhJhhFtu1_3c3ylFAxi1VO_2g,265
28
+ webscout/Extra/GitToolkit/gitapi/repository.py,sha256=nbagmnp9fiEfGnseelCpSGc0xS5k3TguhkRB1y0O0Xg,7319
29
+ webscout/Extra/GitToolkit/gitapi/user.py,sha256=Hto5xZojqDfphWR62yXVYwqeDZqLJEFTfbRqaPg6_kk,3630
30
+ webscout/Extra/GitToolkit/gitapi/utils.py,sha256=Qku8PVk5aRQXLc4GJhnDgoPnMNVgR00hxgWizZVDoM8,1896
26
31
  webscout/Extra/YTToolkit/YTdownloader.py,sha256=xnGPCBmMwjjb-x7cTOiR01scufNq4I8gnAct4qKUpoI,33051
27
32
  webscout/Extra/YTToolkit/__init__.py,sha256=xuEyGmDWvtI62R7EtChdphavQzLn_2AknVUVWlY0ssY,77
28
33
  webscout/Extra/YTToolkit/transcriber.py,sha256=Nta6hVqQr4fIkJwcq6y3fQiE0jeOOZG1w6NSkrf_KLQ,19050
@@ -37,7 +42,7 @@ webscout/Extra/YTToolkit/ytapi/pool.py,sha256=7sM_ncFqmkcPzqMY8O9dAeJsxO1eYU49HU
37
42
  webscout/Extra/YTToolkit/ytapi/query.py,sha256=A5WJv3ZCz-s_92PFjJwRnmYFv6T7N39daZysdiKavGU,1545
38
43
  webscout/Extra/YTToolkit/ytapi/stream.py,sha256=yjIrAFgSNN0Ba8JxwN3M85EgrAMnknZp631w_udAiJ8,2101
39
44
  webscout/Extra/YTToolkit/ytapi/utils.py,sha256=mmmUCDMXy3TKauPj6T7PWfEYBAcQ8WiR13xspmlT_SM,2028
40
- webscout/Extra/YTToolkit/ytapi/video.py,sha256=8KBUDgC4bTpFCANSdexGqbTJOzT95wmaqg5cLortR-c,4050
45
+ webscout/Extra/YTToolkit/ytapi/video.py,sha256=rP4dGzi6QkdB7oHaQU_HGb_auKW8NnuMq2diaBCkSzE,8912
41
46
  webscout/Extra/autocoder/__init__.py,sha256=Py5-Lq6xLwzp4odeJdGVJ91EgKpPLRMcNyX6jAZpOvQ,230
42
47
  webscout/Extra/autocoder/autocoder.py,sha256=ifyaG0uf5ahOZ-2jBpsj19yf55xiEvU6SXKsnJD1N7I,33332
43
48
  webscout/Extra/autocoder/autocoder_utiles.py,sha256=JNdeuoo6SmfH5KOOOvklb1jdfNNTmJ8tTyQhRnEtHdM,20574
@@ -64,7 +69,7 @@ webscout/Litlogger/utils/detectors.py,sha256=VvpiL1baVrxN6XwksoKG1Z0hiuISwCpwQ8Y
64
69
  webscout/Litlogger/utils/formatters.py,sha256=MdgaCavaF7OKIo3b3c8BCyyvvskcNKhFQygnhoEY3R4,6100
65
70
  webscout/Provider/AI21.py,sha256=kyr07xbalGQuR-wP9L5W7c_ri5-PEEvyj42jLV56XaE,6225
66
71
  webscout/Provider/Aitopia.py,sha256=Gu0NvNVAHFHajSu1Ox4WxE8mhS_5eMOPyK5NqgRWpbk,12024
67
- webscout/Provider/AllenAI.py,sha256=nnCquJugsqKcj3rbQf8mkowYzQzRFwK1Ld2knfteLE0,10813
72
+ webscout/Provider/AllenAI.py,sha256=-vVnEPxEc1SV_RBgMgwdoWQFmNYsefNVLBYh3onI6fM,15886
68
73
  webscout/Provider/Andi.py,sha256=-Pf3ptSL7PMpVzj2WawopKNFKCC5ZhhH0e5kUFNiIb4,8778
69
74
  webscout/Provider/Blackboxai.py,sha256=al72E9hK1bpIYx7zLTkLMMRBw3CeE7GPvUZ8hh9oLVk,8130
70
75
  webscout/Provider/C4ai.py,sha256=dUcURjgCYkZ65Zc6cAom-7PRbL2H8dzX0N6SRhLzH4g,18109
@@ -74,14 +79,15 @@ webscout/Provider/ChatGPTGratis.py,sha256=HgqvYSfSvbfqG-nh3vpBWj9TweWn-yrOzoV3MN
74
79
  webscout/Provider/Chatify.py,sha256=_NoYKkz4kBZNx6n0UZ6_DouYJ1TAbUHPbug0_nAjeJg,6300
75
80
  webscout/Provider/Cloudflare.py,sha256=6pUZjdO6c63CLR9NG55Y7lJN8aWnGavsdWv4I9eQzsw,11497
76
81
  webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8264
77
- webscout/Provider/DeepSeek.py,sha256=8NmP3QaD1sjoyWCejd5PcYTdqI7SL79Fa4Icc4DUPjw,7540
78
- webscout/Provider/Deepinfra.py,sha256=2hYjF048hEXmc6tpgH6dctFklCJUdajP7LTQfa9kgnU,12512
82
+ webscout/Provider/DeepSeek.py,sha256=Hdy47w_K9YBH5s2EgU_XrLxYET7L2pr35fCCb9JxYeM,7475
83
+ webscout/Provider/Deepinfra.py,sha256=-U994bHrHTiiUkZWHTxYQ88-hOIArP5eW9oaeKsAc5E,12739
79
84
  webscout/Provider/ElectronHub.py,sha256=nKfLw9HwYd6K9p-sDEl_dud4mPnqzOD9VKSJ3gXIXQI,24372
80
- webscout/Provider/ExaChat.py,sha256=PRgmqh8mqBOiAyKf2Lvb6-26xRW_0Bb3_JUKeGA9wUs,11277
85
+ webscout/Provider/ExaAI.py,sha256=fkMw4CFCY_mLhzLK4_cygk3ah9amoV4LvsgOXw8IK1k,9738
86
+ webscout/Provider/ExaChat.py,sha256=javk0MaTYPFQouviZSC2MuA9Wiu_8-fsJkQMsnf-t1U,11549
81
87
  webscout/Provider/Free2GPT.py,sha256=FJLn2Ho5oC1bJ2syDfIVvMpMwyFJu32S0ls1rAyr-R0,9213
82
88
  webscout/Provider/GPTWeb.py,sha256=xh_mnBko6RDyz2v3KhMux-yIipipkZfVVVoUJWkbzcQ,7466
83
89
  webscout/Provider/Gemini.py,sha256=8RQPrxJ58mpSEpbo9mCn5tlo6z7krH8igqSNmHxhkbs,6558
84
- webscout/Provider/GithubChat.py,sha256=jHwLPR7o8iRaL5KsRIS5suBnTtjx6wVvg1RjJtFBaX4,13856
90
+ webscout/Provider/GithubChat.py,sha256=y5xp4d125_6hp4qnoSCiiuy4eJCVSR-dLfqHihoU8ko,13883
85
91
  webscout/Provider/Glider.py,sha256=q2c6uFNMyKT6qsovZt0KHehXL7LJ1CSrplIGckEFTUA,8475
86
92
  webscout/Provider/Groq.py,sha256=jlhbTsx32OAb1fiyxN6ypJYLYTvOpJsRPSOrvqruVYo,29563
87
93
  webscout/Provider/HeckAI.py,sha256=yihna7seFQ6vMqL6t28KNha3Wz1K0BnmZ4BzN57i_Nw,8869
@@ -93,10 +99,11 @@ webscout/Provider/LambdaChat.py,sha256=Eg_lJ6ywC8cUohTNxR70S1idn60uN-O0xRS7Ces1q
93
99
  webscout/Provider/Llama.py,sha256=ySwmr3drK58bekE8nxMma7U5kViYW7_WrbqXhOpn5TM,7718
94
100
  webscout/Provider/Llama3.py,sha256=aaW0jT403a4KJw07Dogp1jDMuWcDEbsSEA3qdikk2Aw,7671
95
101
  webscout/Provider/Marcus.py,sha256=Zhbu8JX-Q8-WmQ8CyBMeX3R7tpZ-BUyGsEEeQiVfhBc,5285
96
- webscout/Provider/Netwrck.py,sha256=o5FkTdqJ7CXFBdB9euMHGwuCiG_KrHgv5vpaM84opao,8612
102
+ webscout/Provider/Netwrck.py,sha256=Ef7urR4k7tEUtib-5jmEpRrS2qjtGR-bpZ011hSvrYE,8636
97
103
  webscout/Provider/OLLAMA.py,sha256=k8EbK_EqH02xiTtqubViKsHebyJFLUwug5zeP1HkDa4,15155
104
+ webscout/Provider/OpenGPT.py,sha256=gFL_FPBobLeiNAUgOBSowm1crVByHPS9neB4_XzCE1I,7595
98
105
  webscout/Provider/Openai.py,sha256=TC4BkezoLqimaqOwzX-nYC9w7hXbDCajm-bzkdyl-gA,20433
99
- webscout/Provider/PI.py,sha256=5jQ-au7VLU1iG48rDmLD-pqKnhZl42aBm0SZmNvkW-E,12156
106
+ webscout/Provider/PI.py,sha256=W-hjyJo6JykUyssisqsx5azZqdhhAPsyl6MfBWkGYSo,12608
100
107
  webscout/Provider/Perplexitylabs.py,sha256=e0k7tuh99dedBTkQxytvfwPS6x6hlaFVpZyrpvy4_Xs,16621
101
108
  webscout/Provider/Phind.py,sha256=IQGKGpPC_ODP0P2UnUZFKl1gIhAFUWc7ZB_MHdpd00c,20196
102
109
  webscout/Provider/PizzaGPT.py,sha256=8iSPQgFpev4JEtoIREs2A5L5xATTUS-hWKVMmm75mW0,7192
@@ -109,11 +116,11 @@ webscout/Provider/Venice.py,sha256=64qSUwlz-zdw6sSizaZF-5Rg-lPT592P3M2oFjLS0FA,8
109
116
  webscout/Provider/VercelAI.py,sha256=Gqn_TLBwSIgWEHqz612NSy1Dm8PdzMWCgwANR33K7OY,8462
110
117
  webscout/Provider/WebSim.py,sha256=8Ea1rKV-LCOL6H6ffgNeS2Vr70rslQUd0yVVtKRjUHA,8819
111
118
  webscout/Provider/WiseCat.py,sha256=qYffSfSbgSbERYzkQ4W8YqREMY0AFhh6h8dxT54XPIg,6997
112
- webscout/Provider/Youchat.py,sha256=PllEeJrUnj9O--ZmZNkaY5zZxhH1P0FrDjh_2pwh9dU,11501
113
- webscout/Provider/__init__.py,sha256=t4bEny045eaECzoTZyx5zld5yieRjYrWaLBRxuMhdRo,3865
114
- webscout/Provider/ai4chat.py,sha256=mcVr9Q6rni4DPfD7m6poibGhnyOnL3i_4ilxfyVf3fU,8147
119
+ webscout/Provider/Youchat.py,sha256=tVgyUK7cXAsQX3JBCJikxmxsH1QBm-B076pRCjsyHfM,12664
120
+ webscout/Provider/__init__.py,sha256=Vne743v4Dr2fMepbN6orgmwEgrJtorixFKoyNntmQCA,4123
121
+ webscout/Provider/ai4chat.py,sha256=S6DfY1bfZuFT2OBt2o9dDUF8clyzMlOEzNTzt6aMbro,8436
115
122
  webscout/Provider/aimathgpt.py,sha256=X1dPGdJ-Jc-6nQOnm-Bivzlo0B_n_j2A5cQK1bNrDlA,7176
116
- webscout/Provider/akashgpt.py,sha256=3FUT3Fj0mK0JdYFWKDMMVIAjNR_OB0FrL1prOXFsry4,12425
123
+ webscout/Provider/akashgpt.py,sha256=fswzQktBU2dnD0b-kZjlB_yygFxk3xSIWnrSk_8Nino,13087
117
124
  webscout/Provider/askmyai.py,sha256=b300MrPkjRebccZimZe3C0FttySwbMf6rVjTqlJQEy8,5920
118
125
  webscout/Provider/asksteve.py,sha256=_HYSNxs6A5S6QwwHl10Iq5E1xHZ1NXiQeuwRYUzZi-w,7736
119
126
  webscout/Provider/bagoodex.py,sha256=XOmIvOn_P7dpNBgylCveaCIXpAU6awGkvEphZZHrYCM,5063
@@ -123,7 +130,7 @@ webscout/Provider/cleeai.py,sha256=lgIBs5JpNaY-gfwUBorZdSeA_Q7tawfTvkWWTg7EfuI,7
123
130
  webscout/Provider/copilot.py,sha256=Au04Xw0VW5LJB6ODuO7qt097qr7jxG9C4UpoVyfTlNI,19006
124
131
  webscout/Provider/elmo.py,sha256=5myTgfEuZTtFHw5C2NT7iY2BjPUwEEkdLlo1m3Nhygc,9317
125
132
  webscout/Provider/flowith.py,sha256=o5V7DCeS7ysZ-Ttm9OtmmvYm9_3V-kUFPChga0Of6DE,7719
126
- webscout/Provider/freeaichat.py,sha256=5dWWTtzzO_u4cpefwG1yJl7UFEaS0rTmnOrqNlUdM0g,9744
133
+ webscout/Provider/freeaichat.py,sha256=waRu1GiRTUDJFmpsesknqU8Fk7omUIIiNh_QS3KlLGY,9744
127
134
  webscout/Provider/gaurish.py,sha256=-OVX6STSjt0pYn6lH5RiJZ5YPsYtWEorjBgENEsvsAQ,9998
128
135
  webscout/Provider/geminiapi.py,sha256=-_QbDBF_IiYyOJ0_uAIcE-gfzIs8H86nA5VWX52SRoY,8505
129
136
  webscout/Provider/geminiprorealtime.py,sha256=2ThViylzCGgKl7UfdFQoPdcsYJKIvf4t4wU0cXXQ43I,5775
@@ -131,29 +138,36 @@ webscout/Provider/granite.py,sha256=FuRO4msa5WRd5Wpy1zNvLJtHmBkG-IV9cLBSdZwI3iM,
131
138
  webscout/Provider/hermes.py,sha256=QYvzwhdOPYykGyWl4NVLnV5bxrqYTb19lu0OFN2dADE,8404
132
139
  webscout/Provider/julius.py,sha256=ra20kGPafLDgV8gd2Z-Yce5eKlgSjFl4CpyHtEmHIlg,8583
133
140
  webscout/Provider/koala.py,sha256=C1Mxj2hawrUfo_CYC_hjzZPH6ruQSl1Vbg3B93SR-v8,11045
134
- webscout/Provider/labyrinth.py,sha256=fREg50o1UUJhkR0AYsELyqu4g3jTCb9NJz46GTM73Qc,11135
141
+ webscout/Provider/labyrinth.py,sha256=jX7w-ueTxZv3J0Vhes8vnPZEsGUPP_RwrdGE3GIG36E,14912
135
142
  webscout/Provider/learnfastai.py,sha256=luHIgnzYrdwI3ZhTTR4-B1XQDFTgxHO2CnZ3w97Fp3M,10377
136
143
  webscout/Provider/lepton.py,sha256=Q-hbKwaDbRCvSFbDWqUPxir0dkiufx6eQt6hFeLaWVU,7522
137
144
  webscout/Provider/llama3mitril.py,sha256=0sTD6mtVT1SwTPPyhTdPg592Wf39DHum20vThinP5Eg,6641
138
145
  webscout/Provider/llamatutor.py,sha256=94LSHZI8GrColyum_diVZTolFUB27gqh-EsSlz8qsqI,6791
139
146
  webscout/Provider/llmchat.py,sha256=lel0r3OZKSm1HPDBvwkjUI_pEU36gYC-vGWzr-6xhPY,7831
147
+ webscout/Provider/llmchatco.py,sha256=Mqe2SG3yGZVOFhOFXu3XkE7-ATAmzzB_s9hPJQrCbRs,11848
140
148
  webscout/Provider/meta.py,sha256=qWpVmSACYkEKsW8wRpm-rnlFJoOyku-WkfPGgGjUUYY,30717
141
149
  webscout/Provider/multichat.py,sha256=tsEudoeTFk30l9m8CRS0QVnK0jdceS1BPktcxmIqwdo,12419
142
150
  webscout/Provider/promptrefine.py,sha256=et8bNFf74Bn06SG0-3o8XNE5cJC_mRr5tTI3dqZAbE8,7731
151
+ webscout/Provider/scira_chat.py,sha256=x4GZdIOGlPbWvd2zrqT7SSzecEQbXdOFSCVIb2DTr6U,10638
143
152
  webscout/Provider/searchchat.py,sha256=0heQnkBBsqRSnKurblPOXZ0hEPILs91VtXUG-QbsYik,11933
144
153
  webscout/Provider/sonus.py,sha256=d2UUuD1ooxoQYXiJUsEctU2sBKZpWveIvxixgKlsP3M,8394
145
154
  webscout/Provider/talkai.py,sha256=18EB9FPx2rOWdnuqMtBZc_QbLWKNFj06n1Xdtm6npwg,7613
146
155
  webscout/Provider/turboseek.py,sha256=R2vbYHU7vJyhjRKHpPYfVl7P6V23_WuZSL5vlxuKnFA,8563
147
156
  webscout/Provider/tutorai.py,sha256=d__8jPhXtJKeOGlqwlxqW3f5meRDi2e3vNWVrOhEMrs,11278
157
+ webscout/Provider/typefully.py,sha256=loOxnRPRv920yoHYKn1RgY61teEvA9_zhchvuLNiWLU,10766
148
158
  webscout/Provider/typegpt.py,sha256=ET-tUh3p-72sY6F39aMwVi5k1PGwjBjhanlXhhMGdxY,17369
149
159
  webscout/Provider/uncovr.py,sha256=0-OlppjOjKO5_ozzYtzUtut2CbReAlv3bXG4GpuVdH0,13393
150
160
  webscout/Provider/x0gpt.py,sha256=5THMLSDxTOzIXh4ZJFnBTxp1uU-6ospTo_u9vrThJ1Y,9459
151
161
  webscout/Provider/yep.py,sha256=Hul4EtWM9kqx_mYaLdoVdyYqGydta4tNrJUffY0fgKU,16957
152
162
  webscout/Provider/AISEARCH/DeepFind.py,sha256=WF9y92ep-1Vlxd0TRlOOqrUK7-0ACmpJLV65PjYDG7s,10315
153
163
  webscout/Provider/AISEARCH/ISou.py,sha256=CWKq0YE0Qt0e5J2MPjlCNgll7k_-5GrK1UI0r-kZZ_M,9982
154
- webscout/Provider/AISEARCH/__init__.py,sha256=mO1mvCXUK7pAkjD7LAg3CFqqr0TbiX_B72e7P7niGIo,104
164
+ webscout/Provider/AISEARCH/__init__.py,sha256=dDtbVv97VPHOddXTIc1umcb2LqqkKH9xyb0fNyV2IWI,225
155
165
  webscout/Provider/AISEARCH/felo_search.py,sha256=qIk6SarmfTtohU4ouCOgO31zngK3DeYJzDpv7cvhFxE,8959
156
166
  webscout/Provider/AISEARCH/genspark_search.py,sha256=tr8C5OtI_Z6_sU41vSqSP2buIY4BOlacS2gNaR7o-C8,8154
167
+ webscout/Provider/AISEARCH/hika_search.py,sha256=zvNZKqL5JVn5wcplK03_1mdGo-If1_GdSzOaYp9qXAc,6756
168
+ webscout/Provider/AISEARCH/monica_search.py,sha256=G8buO5HfKTt_Yj5CQ6RGzhCtifYF17ocK7_PcdbFD-c,9217
169
+ webscout/Provider/AISEARCH/scira_search.py,sha256=fTCaRvH24KtSkcrHj-t0NbMgKkRfvHIU1O_oM40t6ZI,11283
170
+ webscout/Provider/AISEARCH/webpilotai_search.py,sha256=SV9jkKQf5HorQiI_UH_XXaHipqLa1IOuPztsmtVtT_A,11895
157
171
  webscout/Provider/HF_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
172
  webscout/Provider/HF_space/qwen_qwen2.py,sha256=IulE7bAMSbR530pFTanWzMFb4UJ9qF_NKoGiHkXxcjc,7612
159
173
  webscout/Provider/TTI/__init__.py,sha256=K6J27GHg3Fv9xB13dGwgLWIow_EbZY1yKEAxohaoaKU,309
@@ -240,9 +254,9 @@ webstoken/sentiment.py,sha256=yHtaHXJNS_sH1UTHZsOIgyhdijr8oi1pMlg_QE2wtxw,8202
240
254
  webstoken/stemmer.py,sha256=VXWkBpPaH328WEQxw9e9ff-p2e27xDdbpVSy0nTnXYE,2624
241
255
  webstoken/tagger.py,sha256=p4ScFnxn5sShYDVRoHK5pn_mzaDTsEtx3EHRvuvOlfE,2306
242
256
  webstoken/tokenizer.py,sha256=XJ-d1MFRp0Trw6gtOtZ8_wAcaSQidnSCHLNpV1-OFJc,6016
243
- webscout-7.9.dist-info/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
244
- webscout-7.9.dist-info/METADATA,sha256=iW8b4jnDr3wZfwkgQkBBoChPjdn8U5xxh-7CHhjdmnM,32697
245
- webscout-7.9.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
246
- webscout-7.9.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
247
- webscout-7.9.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
248
- webscout-7.9.dist-info/RECORD,,
257
+ webscout-8.0.dist-info/LICENSE.md,sha256=hyfFlVn7pWcrvuvs-piB8k4J8DlXdOsYje9RyPxc6Ik,7543
258
+ webscout-8.0.dist-info/METADATA,sha256=eo0NKxybz5lX7tGn7PLvgQR53MyjfjhRQkHrFMLn_xY,32756
259
+ webscout-8.0.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
260
+ webscout-8.0.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
261
+ webscout-8.0.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
262
+ webscout-8.0.dist-info/RECORD,,
File without changes