webscout 7.2__py3-none-any.whl → 7.3__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.
- webscout/Bard.py +2 -2
- webscout/Litlogger/core/level.py +3 -0
- webscout/Litlogger/core/logger.py +101 -58
- webscout/Litlogger/handlers/console.py +14 -31
- webscout/Litlogger/handlers/network.py +16 -17
- webscout/Litlogger/styles/colors.py +81 -63
- webscout/Litlogger/styles/formats.py +163 -80
- webscout/Provider/AISEARCH/ISou.py +277 -0
- webscout/Provider/AISEARCH/__init__.py +2 -1
- webscout/Provider/Deepinfra.py +40 -24
- webscout/Provider/TTI/FreeAIPlayground/__init__.py +9 -0
- webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +206 -0
- webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +192 -0
- webscout/Provider/TTI/__init__.py +2 -1
- webscout/Provider/TextPollinationsAI.py +26 -5
- webscout/Provider/__init__.py +2 -0
- webscout/Provider/freeaichat.py +221 -0
- webscout/Provider/yep.py +1 -1
- webscout/__init__.py +1 -0
- webscout/version.py +1 -1
- webscout/webscout_search.py +82 -2
- webscout/webscout_search_async.py +58 -1
- webscout/yep_search.py +297 -0
- {webscout-7.2.dist-info → webscout-7.3.dist-info}/METADATA +59 -20
- {webscout-7.2.dist-info → webscout-7.3.dist-info}/RECORD +29 -23
- {webscout-7.2.dist-info → webscout-7.3.dist-info}/WHEEL +1 -1
- {webscout-7.2.dist-info → webscout-7.3.dist-info}/LICENSE.md +0 -0
- {webscout-7.2.dist-info → webscout-7.3.dist-info}/entry_points.txt +0 -0
- {webscout-7.2.dist-info → webscout-7.3.dist-info}/top_level.txt +0 -0
webscout/yep_search.py
ADDED
|
@@ -0,0 +1,297 @@
|
|
|
1
|
+
import cloudscraper
|
|
2
|
+
from urllib.parse import urlencode
|
|
3
|
+
from webscout.litagent import LitAgent
|
|
4
|
+
from typing import List, Dict, Optional, Tuple
|
|
5
|
+
from concurrent.futures import ThreadPoolExecutor
|
|
6
|
+
import json
|
|
7
|
+
class YepSearch:
|
|
8
|
+
"""Yep.com search class to get search results."""
|
|
9
|
+
|
|
10
|
+
_executor: ThreadPoolExecutor = ThreadPoolExecutor()
|
|
11
|
+
|
|
12
|
+
def __init__(
|
|
13
|
+
self,
|
|
14
|
+
timeout: int = 20,
|
|
15
|
+
proxies: Dict[str, str] | None = None,
|
|
16
|
+
verify: bool = True,
|
|
17
|
+
):
|
|
18
|
+
"""Initialize YepSearch.
|
|
19
|
+
|
|
20
|
+
Args:
|
|
21
|
+
timeout: Timeout value for the HTTP client. Defaults to 20.
|
|
22
|
+
proxies: Proxy configuration for requests. Defaults to None.
|
|
23
|
+
verify: Verify SSL certificates. Defaults to True.
|
|
24
|
+
"""
|
|
25
|
+
self.base_url = "https://api.yep.com/fs/2/search"
|
|
26
|
+
self.timeout = timeout
|
|
27
|
+
self.session = cloudscraper.create_scraper()
|
|
28
|
+
self.session.headers.update({
|
|
29
|
+
"Accept": "*/*",
|
|
30
|
+
"Accept-Language": "en-US,en;q=0.9,en-IN;q=0.8",
|
|
31
|
+
"DNT": "1",
|
|
32
|
+
"Origin": "https://yep.com",
|
|
33
|
+
"Referer": "https://yep.com/",
|
|
34
|
+
"Sec-Ch-Ua": '"Not(A:Brand";v="99", "Microsoft Edge";v="133", "Chromium";v="133"',
|
|
35
|
+
"Sec-Ch-Ua-Mobile": "?0",
|
|
36
|
+
"Sec-Ch-Ua-Platform": '"Windows"',
|
|
37
|
+
"Sec-Fetch-Dest": "empty",
|
|
38
|
+
"Sec-Fetch-Mode": "cors",
|
|
39
|
+
"Sec-Fetch-Site": "same-site",
|
|
40
|
+
"User-Agent": LitAgent().random()
|
|
41
|
+
})
|
|
42
|
+
if proxies:
|
|
43
|
+
self.session.proxies.update(proxies)
|
|
44
|
+
self.session.verify = verify
|
|
45
|
+
|
|
46
|
+
def _remove_html_tags(self, text: str) -> str:
|
|
47
|
+
"""Remove HTML tags from text using simple string manipulation.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
text: String containing HTML tags
|
|
51
|
+
|
|
52
|
+
Returns:
|
|
53
|
+
Clean text without HTML tags
|
|
54
|
+
"""
|
|
55
|
+
result = ""
|
|
56
|
+
in_tag = False
|
|
57
|
+
|
|
58
|
+
for char in text:
|
|
59
|
+
if char == '<':
|
|
60
|
+
in_tag = True
|
|
61
|
+
elif char == '>':
|
|
62
|
+
in_tag = False
|
|
63
|
+
elif not in_tag:
|
|
64
|
+
result += char
|
|
65
|
+
|
|
66
|
+
# Replace common HTML entities
|
|
67
|
+
replacements = {
|
|
68
|
+
' ': ' ',
|
|
69
|
+
'&': '&',
|
|
70
|
+
'<': '<',
|
|
71
|
+
'>': '>',
|
|
72
|
+
'"': '"',
|
|
73
|
+
''': "'",
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
for entity, replacement in replacements.items():
|
|
77
|
+
result = result.replace(entity, replacement)
|
|
78
|
+
|
|
79
|
+
return result.strip()
|
|
80
|
+
|
|
81
|
+
def format_results(self, raw_results: dict) -> List[Dict]:
|
|
82
|
+
"""Format raw API results into a consistent structure."""
|
|
83
|
+
formatted_results = []
|
|
84
|
+
|
|
85
|
+
if not raw_results or len(raw_results) < 2:
|
|
86
|
+
return formatted_results
|
|
87
|
+
|
|
88
|
+
results = raw_results[1].get('results', [])
|
|
89
|
+
|
|
90
|
+
for result in results:
|
|
91
|
+
formatted_result = {
|
|
92
|
+
"title": self._remove_html_tags(result.get("title", "")),
|
|
93
|
+
"href": result.get("url", ""),
|
|
94
|
+
"body": self._remove_html_tags(result.get("snippet", "")),
|
|
95
|
+
"source": result.get("visual_url", ""),
|
|
96
|
+
"position": len(formatted_results) + 1,
|
|
97
|
+
"type": result.get("type", "organic"),
|
|
98
|
+
"first_seen": result.get("first_seen", None)
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
# Add sitelinks if they exist
|
|
102
|
+
if "sitelinks" in result:
|
|
103
|
+
sitelinks = []
|
|
104
|
+
if "full" in result["sitelinks"]:
|
|
105
|
+
sitelinks.extend(result["sitelinks"]["full"])
|
|
106
|
+
if "short" in result["sitelinks"]:
|
|
107
|
+
sitelinks.extend(result["sitelinks"]["short"])
|
|
108
|
+
|
|
109
|
+
if sitelinks:
|
|
110
|
+
formatted_result["sitelinks"] = [
|
|
111
|
+
{
|
|
112
|
+
"title": self._remove_html_tags(link.get("title", "")),
|
|
113
|
+
"href": link.get("url", "")
|
|
114
|
+
}
|
|
115
|
+
for link in sitelinks
|
|
116
|
+
]
|
|
117
|
+
|
|
118
|
+
formatted_results.append(formatted_result)
|
|
119
|
+
|
|
120
|
+
return formatted_results
|
|
121
|
+
|
|
122
|
+
def text(
|
|
123
|
+
self,
|
|
124
|
+
keywords: str,
|
|
125
|
+
region: str = "all",
|
|
126
|
+
safesearch: str = "moderate",
|
|
127
|
+
max_results: Optional[int] = None,
|
|
128
|
+
) -> List[Dict[str, str]]:
|
|
129
|
+
"""Yep.com text search.
|
|
130
|
+
|
|
131
|
+
Args:
|
|
132
|
+
keywords: Search query string.
|
|
133
|
+
region: Region for search results. Defaults to "all".
|
|
134
|
+
safesearch: SafeSearch setting ("on", "moderate", "off"). Defaults to "moderate".
|
|
135
|
+
max_results: Maximum number of results to return. Defaults to None.
|
|
136
|
+
|
|
137
|
+
Returns:
|
|
138
|
+
List of dictionaries containing search results.
|
|
139
|
+
"""
|
|
140
|
+
# Convert safesearch parameter
|
|
141
|
+
safe_search_map = {
|
|
142
|
+
"on": "on",
|
|
143
|
+
"moderate": "moderate",
|
|
144
|
+
"off": "off"
|
|
145
|
+
}
|
|
146
|
+
safe_setting = safe_search_map.get(safesearch.lower(), "moderate")
|
|
147
|
+
|
|
148
|
+
params = {
|
|
149
|
+
"client": "web",
|
|
150
|
+
"gl": region,
|
|
151
|
+
"limit": str(max_results) if max_results else "10",
|
|
152
|
+
"no_correct": "false",
|
|
153
|
+
"q": keywords,
|
|
154
|
+
"safeSearch": safe_setting,
|
|
155
|
+
"type": "web"
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
url = f"{self.base_url}?{urlencode(params)}"
|
|
159
|
+
try:
|
|
160
|
+
response = self.session.get(url, timeout=self.timeout)
|
|
161
|
+
response.raise_for_status()
|
|
162
|
+
raw_results = response.json()
|
|
163
|
+
|
|
164
|
+
formatted_results = self.format_results(raw_results)
|
|
165
|
+
|
|
166
|
+
if max_results:
|
|
167
|
+
return formatted_results[:max_results]
|
|
168
|
+
return formatted_results
|
|
169
|
+
except Exception as e:
|
|
170
|
+
raise Exception(f"Yep search failed: {str(e)}")
|
|
171
|
+
|
|
172
|
+
def images(
|
|
173
|
+
self,
|
|
174
|
+
keywords: str,
|
|
175
|
+
region: str = "all",
|
|
176
|
+
safesearch: str = "moderate",
|
|
177
|
+
max_results: Optional[int] = None,
|
|
178
|
+
) -> List[Dict[str, str]]:
|
|
179
|
+
"""Yep.com image search.
|
|
180
|
+
|
|
181
|
+
Args:
|
|
182
|
+
keywords: Search query string.
|
|
183
|
+
region: Region for search results. Defaults to "all".
|
|
184
|
+
safesearch: SafeSearch setting ("on", "moderate", "off"). Defaults to "moderate".
|
|
185
|
+
max_results: Maximum number of results to return. Defaults to None.
|
|
186
|
+
|
|
187
|
+
Returns:
|
|
188
|
+
List of dictionaries containing image search results with keys:
|
|
189
|
+
- title: Image title
|
|
190
|
+
- image: Full resolution image URL
|
|
191
|
+
- thumbnail: Thumbnail image URL
|
|
192
|
+
- url: Source page URL
|
|
193
|
+
- height: Image height
|
|
194
|
+
- width: Image width
|
|
195
|
+
- source: Source website domain
|
|
196
|
+
"""
|
|
197
|
+
safe_search_map = {
|
|
198
|
+
"on": "on",
|
|
199
|
+
"moderate": "moderate",
|
|
200
|
+
"off": "off"
|
|
201
|
+
}
|
|
202
|
+
safe_setting = safe_search_map.get(safesearch.lower(), "moderate")
|
|
203
|
+
|
|
204
|
+
params = {
|
|
205
|
+
"client": "web",
|
|
206
|
+
"gl": region,
|
|
207
|
+
"limit": str(max_results) if max_results else "10",
|
|
208
|
+
"no_correct": "false",
|
|
209
|
+
"q": keywords,
|
|
210
|
+
"safeSearch": safe_setting,
|
|
211
|
+
"type": "images"
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
url = f"{self.base_url}?{urlencode(params)}"
|
|
215
|
+
try:
|
|
216
|
+
response = self.session.get(url, timeout=self.timeout)
|
|
217
|
+
response.raise_for_status()
|
|
218
|
+
raw_results = response.json()
|
|
219
|
+
|
|
220
|
+
if not raw_results or len(raw_results) < 2:
|
|
221
|
+
return []
|
|
222
|
+
|
|
223
|
+
formatted_results = []
|
|
224
|
+
results = raw_results[1].get('results', [])
|
|
225
|
+
|
|
226
|
+
for result in results:
|
|
227
|
+
if result.get("type") != "Image":
|
|
228
|
+
continue
|
|
229
|
+
|
|
230
|
+
formatted_result = {
|
|
231
|
+
"title": self._remove_html_tags(result.get("title", "")),
|
|
232
|
+
"image": result.get("image_id", ""),
|
|
233
|
+
"thumbnail": result.get("src", ""),
|
|
234
|
+
"url": result.get("host_page", ""),
|
|
235
|
+
"height": result.get("height", 0),
|
|
236
|
+
"width": result.get("width", 0),
|
|
237
|
+
"source": result.get("visual_url", "")
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
# Add high-res thumbnail if available
|
|
241
|
+
if "srcset" in result:
|
|
242
|
+
formatted_result["thumbnail_hd"] = result["srcset"].split(",")[1].strip().split(" ")[0]
|
|
243
|
+
|
|
244
|
+
formatted_results.append(formatted_result)
|
|
245
|
+
|
|
246
|
+
if max_results:
|
|
247
|
+
return formatted_results[:max_results]
|
|
248
|
+
return formatted_results
|
|
249
|
+
|
|
250
|
+
except Exception as e:
|
|
251
|
+
raise Exception(f"Yep image search failed: {str(e)}")
|
|
252
|
+
|
|
253
|
+
def suggestions(
|
|
254
|
+
self,
|
|
255
|
+
query: str,
|
|
256
|
+
region: str = "all",
|
|
257
|
+
) -> List[str]:
|
|
258
|
+
"""Get search suggestions from Yep.com autocomplete API.
|
|
259
|
+
|
|
260
|
+
Args:
|
|
261
|
+
query: Search query string to get suggestions for.
|
|
262
|
+
region: Region for suggestions. Defaults to "all".
|
|
263
|
+
|
|
264
|
+
Returns:
|
|
265
|
+
List of suggestion strings.
|
|
266
|
+
|
|
267
|
+
Example:
|
|
268
|
+
>>> yep = YepSearch()
|
|
269
|
+
>>> suggestions = yep.suggestions("ca")
|
|
270
|
+
>>> print(suggestions)
|
|
271
|
+
['capital one', 'car wash', 'carmax', 'cafe', ...]
|
|
272
|
+
"""
|
|
273
|
+
params = {
|
|
274
|
+
"query": query,
|
|
275
|
+
"type": "web",
|
|
276
|
+
"gl": region
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
url = f"https://api.yep.com/ac/?{urlencode(params)}"
|
|
280
|
+
|
|
281
|
+
try:
|
|
282
|
+
response = self.session.get(url, timeout=self.timeout)
|
|
283
|
+
response.raise_for_status()
|
|
284
|
+
data = response.json()
|
|
285
|
+
# Return suggestions list if response format is valid
|
|
286
|
+
if isinstance(data, list) and len(data) > 1 and isinstance(data[1], list):
|
|
287
|
+
return data[1]
|
|
288
|
+
return []
|
|
289
|
+
|
|
290
|
+
except Exception as e:
|
|
291
|
+
raise Exception(f"Yep suggestions failed: {str(e)}")
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
if __name__ == "__main__":
|
|
295
|
+
yep = YepSearch()
|
|
296
|
+
r = yep.suggestions("hi", region="all")
|
|
297
|
+
print(r)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: webscout
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.3
|
|
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
|
|
@@ -29,7 +29,7 @@ Requires-Dist: wheel
|
|
|
29
29
|
Requires-Dist: pip
|
|
30
30
|
Requires-Dist: mistune
|
|
31
31
|
Requires-Dist: tenacity
|
|
32
|
-
Requires-Dist:
|
|
32
|
+
Requires-Dist: curl-cffi
|
|
33
33
|
Requires-Dist: nest-asyncio
|
|
34
34
|
Requires-Dist: rich
|
|
35
35
|
Requires-Dist: markdownify
|
|
@@ -39,7 +39,7 @@ Requires-Dist: lxml>=5.2.2
|
|
|
39
39
|
Requires-Dist: termcolor
|
|
40
40
|
Requires-Dist: orjson
|
|
41
41
|
Requires-Dist: PyYAML
|
|
42
|
-
Requires-Dist:
|
|
42
|
+
Requires-Dist: tls-client
|
|
43
43
|
Requires-Dist: clipman
|
|
44
44
|
Requires-Dist: playsound==1.2.2
|
|
45
45
|
Requires-Dist: ollama
|
|
@@ -52,8 +52,8 @@ Requires-Dist: emoji
|
|
|
52
52
|
Requires-Dist: openai
|
|
53
53
|
Requires-Dist: prompt-toolkit
|
|
54
54
|
Requires-Dist: primp
|
|
55
|
-
Requires-Dist:
|
|
56
|
-
Requires-Dist:
|
|
55
|
+
Requires-Dist: pyreqwest-impersonate
|
|
56
|
+
Requires-Dist: gradio-client
|
|
57
57
|
Requires-Dist: psutil
|
|
58
58
|
Requires-Dist: pygetwindow
|
|
59
59
|
Requires-Dist: aiohttp
|
|
@@ -64,19 +64,8 @@ Provides-Extra: local
|
|
|
64
64
|
Requires-Dist: llama-cpp-python; extra == "local"
|
|
65
65
|
Requires-Dist: colorama; extra == "local"
|
|
66
66
|
Requires-Dist: numpy; extra == "local"
|
|
67
|
-
Requires-Dist:
|
|
67
|
+
Requires-Dist: huggingface-hub[cli]; extra == "local"
|
|
68
68
|
Requires-Dist: unicorn; extra == "local"
|
|
69
|
-
Dynamic: author
|
|
70
|
-
Dynamic: author-email
|
|
71
|
-
Dynamic: classifier
|
|
72
|
-
Dynamic: description
|
|
73
|
-
Dynamic: description-content-type
|
|
74
|
-
Dynamic: license
|
|
75
|
-
Dynamic: project-url
|
|
76
|
-
Dynamic: provides-extra
|
|
77
|
-
Dynamic: requires-dist
|
|
78
|
-
Dynamic: requires-python
|
|
79
|
-
Dynamic: summary
|
|
80
69
|
|
|
81
70
|
|
|
82
71
|
[](https://t.me/official_helpingai)
|
|
@@ -96,7 +85,7 @@ Dynamic: summary
|
|
|
96
85
|
<p align="center">
|
|
97
86
|
<strong>Webscout</strong> is the all-in-one search and AI toolkit you need.
|
|
98
87
|
<br>
|
|
99
|
-
Discover insights with
|
|
88
|
+
Discover insights with Yep.com, DuckDuckGo, and Phind; access cutting-edge AI models; transcribe YouTube videos; generate temporary emails and phone numbers; perform text-to-speech conversions; run offline language models; and much more!
|
|
100
89
|
</p>
|
|
101
90
|
|
|
102
91
|
<div align="center">
|
|
@@ -285,7 +274,43 @@ if __name__ == "__main__":
|
|
|
285
274
|
asyncio.run(main())
|
|
286
275
|
```
|
|
287
276
|
|
|
277
|
+
...
|
|
288
278
|
|
|
279
|
+
### 🔍 `YepSearch` - Search using Yep.com
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
from webscout import YepSearch
|
|
283
|
+
|
|
284
|
+
# Initialize YepSearch
|
|
285
|
+
yep = YepSearch(
|
|
286
|
+
timeout=20, # Optional: Set custom timeout
|
|
287
|
+
proxies=None, # Optional: Use proxies
|
|
288
|
+
verify=True # Optional: SSL verification
|
|
289
|
+
)
|
|
290
|
+
|
|
291
|
+
# Text Search
|
|
292
|
+
text_results = yep.text(
|
|
293
|
+
keywords="artificial intelligence",
|
|
294
|
+
region="all", # Optional: Region for results
|
|
295
|
+
safesearch="moderate", # Optional: "on", "moderate", "off"
|
|
296
|
+
max_results=10 # Optional: Limit number of results
|
|
297
|
+
)
|
|
298
|
+
print(text_results)
|
|
299
|
+
|
|
300
|
+
# Image Search
|
|
301
|
+
image_results = yep.images(
|
|
302
|
+
keywords="nature photography",
|
|
303
|
+
region="all",
|
|
304
|
+
safesearch="moderate",
|
|
305
|
+
max_results=10
|
|
306
|
+
)
|
|
307
|
+
print(image_results)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
# Suggestions
|
|
311
|
+
suggestions = yep.suggestions("hist")
|
|
312
|
+
print(suggestions)
|
|
313
|
+
```
|
|
289
314
|
|
|
290
315
|
## 🔍 GoogleS (formerly DWEBS)
|
|
291
316
|
|
|
@@ -517,8 +542,21 @@ with WEBS() as WEBS:
|
|
|
517
542
|
print(r)
|
|
518
543
|
```
|
|
519
544
|
|
|
545
|
+
### 9. `weather()` - Weather Information by DuckDuckGo.com
|
|
520
546
|
|
|
521
|
-
|
|
547
|
+
```python
|
|
548
|
+
from webscout import WEBS
|
|
549
|
+
|
|
550
|
+
# Get weather information for a location using DuckDuckGo.com
|
|
551
|
+
with WEBS() as webs:
|
|
552
|
+
weather_data = webs.weather("New York")
|
|
553
|
+
print(weather_data)
|
|
554
|
+
|
|
555
|
+
```
|
|
556
|
+
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
## ALL Acts
|
|
522
560
|
|
|
523
561
|
<details>
|
|
524
562
|
<summary>Expand</summary>
|
|
@@ -1332,3 +1370,4 @@ Contributions are welcome! If you'd like to contribute to Webscout, please follo
|
|
|
1332
1370
|
|
|
1333
1371
|
* All the amazing developers who have contributed to the project!
|
|
1334
1372
|
* The open-source community for their support and inspiration.
|
|
1373
|
+
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
webscout/AIauto.py,sha256=h8bz7FeYMbSXlNvIynn4e2aqydVcFjrONPckaJ3j_b4,7185
|
|
2
2
|
webscout/AIbase.py,sha256=gksLU3cxp_GnbUqD4mX58tlr4-e6_rqdwVhTUXmJncM,3762
|
|
3
3
|
webscout/AIutel.py,sha256=0AP3yGTVc04QqqfZSm50jgL87_ot9i44XCe9j9DaHLY,12460
|
|
4
|
-
webscout/Bard.py,sha256=
|
|
4
|
+
webscout/Bard.py,sha256=uQHFd9ryRTXTyT_1OrVmW4jDMxEmHGIwJflLwjcSFPI,21132
|
|
5
5
|
webscout/DWEBS.py,sha256=AG3_nATzHRDjYZclYuk0jdUNHlOwNkH9jMqEiWaxR3s,19674
|
|
6
6
|
webscout/LLM.py,sha256=p8Zq5P8lCcg98R1b6YQeUIzmf0b6pJDX_QDjwOXl870,16788
|
|
7
|
-
webscout/__init__.py,sha256=
|
|
7
|
+
webscout/__init__.py,sha256=XQR6yIGHMTyoBtvRRYXfzngzVCNFYl9DCF6cp__7_Xk,867
|
|
8
8
|
webscout/__main__.py,sha256=qtkMZK5jzQ79ZkFAuZBxMgayuhmw3aRDj1F8Pt06NW4,108
|
|
9
9
|
webscout/cli.py,sha256=VBGdH1ns8WjLDwppZ9b6I2rGtaIWG6oORW-4K-syEWI,12313
|
|
10
10
|
webscout/conversation.py,sha256=hj-T6ja2EtaB69KTXyCB5srmA9ym6ejeyI5qntvfR6I,8946
|
|
@@ -14,9 +14,10 @@ webscout/prompt_manager.py,sha256=Jc0demWN6M6QcwRp14aHZR05r_PVPOaG8PnQkO7pDZ4,98
|
|
|
14
14
|
webscout/tempid.py,sha256=hxzPVBjxAa5GLBQ9fE6ob5ixJpQeU-mgdfTzh33EHvE,4926
|
|
15
15
|
webscout/update_checker.py,sha256=DuibA_i2if47V40luhPBY0AeVEo8RjkDFzPElRISQn4,4867
|
|
16
16
|
webscout/utils.py,sha256=LVW7U0XcGYqigqxV6D5YXeGMrc_mt7PnNG_YnKf9bBM,3059
|
|
17
|
-
webscout/version.py,sha256=
|
|
18
|
-
webscout/webscout_search.py,sha256=
|
|
19
|
-
webscout/webscout_search_async.py,sha256=
|
|
17
|
+
webscout/version.py,sha256=kKKm_FMq1BEUlhgB9Hiu2knTjWKWohNgyXQpzMzIeAA,44
|
|
18
|
+
webscout/webscout_search.py,sha256=Kl2gDj03xZeg4g-szln7R_f8oAbZ4_tjKtrXVgBfG1U,49854
|
|
19
|
+
webscout/webscout_search_async.py,sha256=wlLv4vn8UP54R76vsTwvnUgpP0a6nPAPDdX2Cz8F_Dg,27310
|
|
20
|
+
webscout/yep_search.py,sha256=IuuhtTN6_H__EwtMpXs_o_0SEeujV68hfAS2teAgoZc,10132
|
|
20
21
|
webscout/Extra/__init__.py,sha256=FbDnwI3zZdoQFosA5Q2bIYpJlHUKFWiFmFKvnk9xWKY,153
|
|
21
22
|
webscout/Extra/autollama.py,sha256=Y8ruE8KI6gr49PLU30yvDcmgfYBBJSN5yOjJLts_UwM,7795
|
|
22
23
|
webscout/Extra/gguf.py,sha256=YmqDA8ljxM6VIRDi6YX7Gea26RXXv7vdiry6lVz6eps,15512
|
|
@@ -42,15 +43,15 @@ webscout/Extra/autocoder/autocoder_utiles.py,sha256=I7pugVx5BjLjbNj59-0m880Er0TL
|
|
|
42
43
|
webscout/Extra/autocoder/rawdog.py,sha256=VA5DpdiLd5Eqc_7Is_QoPpfLh_658rV4D1tKDmysTaw,25617
|
|
43
44
|
webscout/Litlogger/__init__.py,sha256=0lHzxdl5CpGBAABvW4YqVb1-FOibEvTe4SOx8ORHmzs,1568
|
|
44
45
|
webscout/Litlogger/core/__init__.py,sha256=zgZvP-lBrspukBu8LhQb7SUkSIh9HdsVbzpoZyaq110,130
|
|
45
|
-
webscout/Litlogger/core/level.py,sha256=
|
|
46
|
-
webscout/Litlogger/core/logger.py,sha256=
|
|
46
|
+
webscout/Litlogger/core/level.py,sha256=fe0Lz5G-gMpsKAzoLgTUJ53IaFaa5ruXiw4q1ritGI4,584
|
|
47
|
+
webscout/Litlogger/core/logger.py,sha256=WwN3ot9_bnhPRKhC8EKwCjL8r8Tyq6ii-H7CTDmLC3s,6196
|
|
47
48
|
webscout/Litlogger/handlers/__init__.py,sha256=a6ZQUE6IZud9gUNnubPwUPJGOGcL648Tl_w3FT85wTQ,294
|
|
48
|
-
webscout/Litlogger/handlers/console.py,sha256=
|
|
49
|
+
webscout/Litlogger/handlers/console.py,sha256=iM1O8j6h2Z78volyOdFzOnysoYfePnYeyEeYU299qnE,1287
|
|
49
50
|
webscout/Litlogger/handlers/file.py,sha256=FTHyxOOSFNl7Oamq1ASenJSEq1yDB5k1eokCMxfnjXE,5077
|
|
50
|
-
webscout/Litlogger/handlers/network.py,sha256=
|
|
51
|
+
webscout/Litlogger/handlers/network.py,sha256=27jJvM5hzhk994jcUO_o7r409Tukr5CwEgRy32-9Aa0,6235
|
|
51
52
|
webscout/Litlogger/styles/__init__.py,sha256=Cla8fPBziCs0JcJgMVAd9CJl5eMEUDUT6JQ6R_u_T_w,188
|
|
52
|
-
webscout/Litlogger/styles/colors.py,sha256=
|
|
53
|
-
webscout/Litlogger/styles/formats.py,sha256=
|
|
53
|
+
webscout/Litlogger/styles/colors.py,sha256=PtcJXfvAZUx4vt2nneHDEaehUOrO4citSr65DZUdm3E,9321
|
|
54
|
+
webscout/Litlogger/styles/formats.py,sha256=IV8ahZRE8yDmhvCT4voe-ZI-5dTS4YI7_h1Hw69i4H8,13272
|
|
54
55
|
webscout/Litlogger/styles/text.py,sha256=JLz1oUve9cHCxiHA8mj1cnvFKvQkvvPZgawHBYPWaiU,3135
|
|
55
56
|
webscout/Litlogger/utils/__init__.py,sha256=G9WTxWGbDMt07Sh6OyLf4rrjjFKiaWTfZBKM8QZGtuI,206
|
|
56
57
|
webscout/Litlogger/utils/detectors.py,sha256=nOogjO2eu22PpIAq20qyoBQFNXdiJc2lI7l-XqVDltY,4785
|
|
@@ -75,7 +76,7 @@ webscout/Provider/Cloudflare.py,sha256=DgIYvYMZpuolh6JTFWiJEKL-WRWF6fBdmpMg0LmkY
|
|
|
75
76
|
webscout/Provider/Cohere.py,sha256=oL9kAv--RSkEQxwkPTq1Wi57Wkgg0WNvL82CpTj22YY,8264
|
|
76
77
|
webscout/Provider/DARKAI.py,sha256=kVElPYVh_VchfGylR4YzC3orrPJPyPoOpSolc62b5eY,8944
|
|
77
78
|
webscout/Provider/DeepSeek.py,sha256=xa_ct5ux6K7GGoaruKWUdykNpMQQvnkMWAl5BhWvj1A,8435
|
|
78
|
-
webscout/Provider/Deepinfra.py,sha256=
|
|
79
|
+
webscout/Provider/Deepinfra.py,sha256=EjnRLeQCogC6DUVFSaYRVHAOeOvgQkOloScheRbSo7Q,8871
|
|
79
80
|
webscout/Provider/DiscordRocks.py,sha256=fRkVBCyDMZf0SoaNPK7KXAsh8mQj0JWDb7ifYpL9PQQ,11372
|
|
80
81
|
webscout/Provider/EDITEE.py,sha256=9rq7c84XoIoRBqd0qgW-Ebu3lyffhicSOtUvMtAjO0s,7742
|
|
81
82
|
webscout/Provider/Free2GPT.py,sha256=3c1tLsYhYCBdjBStLfQvUII3Vojw9-DZpgjyK_T13a4,9197
|
|
@@ -97,10 +98,10 @@ webscout/Provider/PizzaGPT.py,sha256=sYijGNHFKry1Uai4CPcsaBl2UQ_rB3lksIdAvpqW6FA
|
|
|
97
98
|
webscout/Provider/QwenLM.py,sha256=_iV84_jCIhnoqFwjLtSFBCRL_JNZeEKCNCgkO-LE5eY,13056
|
|
98
99
|
webscout/Provider/Reka.py,sha256=dWw4vX91nJhAn-X1SXK72gttRaTqWNGUBFaeRJobTJg,8519
|
|
99
100
|
webscout/Provider/TeachAnything.py,sha256=6scp1tzcc5z_TKUALArQ4APCNElHJ7SzsJoiB71o0V0,7169
|
|
100
|
-
webscout/Provider/TextPollinationsAI.py,sha256=
|
|
101
|
+
webscout/Provider/TextPollinationsAI.py,sha256=xsq4ZMyfN3zaiDfZO9_dey5U9QM0Dxzb5K3HB6w-NFE,9774
|
|
101
102
|
webscout/Provider/WiseCat.py,sha256=lZeOCd_eyhzXlEYIkLc3vqSO0SuCdCqhXd2rJ5iCaj8,6598
|
|
102
103
|
webscout/Provider/Youchat.py,sha256=LmPskUWaOJlJSYsGeHsu5riD1X6Rp6pFmdApZh_t98I,10205
|
|
103
|
-
webscout/Provider/__init__.py,sha256=
|
|
104
|
+
webscout/Provider/__init__.py,sha256=X1aL5SbXjfKArLKTll79_N74paSgINYiM0WDhwFLB0c,3119
|
|
104
105
|
webscout/Provider/ai4chat.py,sha256=av96iS4QPt9IzhcswowmDY2F8IUSLl1YVHZ4bAbfO-s,8140
|
|
105
106
|
webscout/Provider/aimathgpt.py,sha256=BdXNxEHQP11p6m0wl2Q-uben46A6lMKOg89utV1S7aI,7320
|
|
106
107
|
webscout/Provider/askmyai.py,sha256=MX3883xxpMe5GUahyQOwR4ZR_Oa_zAg4N7ksZ4zhB9s,5904
|
|
@@ -110,6 +111,7 @@ webscout/Provider/chatglm.py,sha256=Ls-HFp7tcWYJwwniyu6yw75DarqD97DMTA9ND5skCts,
|
|
|
110
111
|
webscout/Provider/cleeai.py,sha256=ZIPm2dT8H8BxGSLHsgp6aDWn3DVOxAOcFfkMNH1UK0I,7979
|
|
111
112
|
webscout/Provider/dgaf.py,sha256=KMzeAnKR12cGWcqQGZi56VoN6JChIrryCBOYSB0aQOE,8881
|
|
112
113
|
webscout/Provider/elmo.py,sha256=I7qq2YvKht28Z2KFTxj3wNyekJM6gAJCExilB-_UkzQ,9308
|
|
114
|
+
webscout/Provider/freeaichat.py,sha256=tMkJne0aOIrdgqwvHRPtrzNMRoFuQ0jzrpBbyMhhgZY,8266
|
|
113
115
|
webscout/Provider/gaurish.py,sha256=-eZapN28Fsp9SPwF2KpakaB8mPChQDsEWHYMKwPovEc,10079
|
|
114
116
|
webscout/Provider/geminiapi.py,sha256=-_QbDBF_IiYyOJ0_uAIcE-gfzIs8H86nA5VWX52SRoY,8505
|
|
115
117
|
webscout/Provider/geminiprorealtime.py,sha256=DQdChZRryg9bvXiKpos7wFlu0Q6QNq9lYkbb-FJubWk,5766
|
|
@@ -130,16 +132,20 @@ webscout/Provider/turboseek.py,sha256=uEoL5eJFvnpDCymTufrC8O9Ni3i8acb0GBy4JweFeI
|
|
|
130
132
|
webscout/Provider/tutorai.py,sha256=hgjYrI1zqNRhHEoi8t1OU8m9i80EQCay5UtmKqbNS9w,11205
|
|
131
133
|
webscout/Provider/typegpt.py,sha256=UYczMtQD3iJa4681O3aIt_oZ-8tjws69CFx_65mMC0E,13630
|
|
132
134
|
webscout/Provider/x0gpt.py,sha256=eKDEbUIkY1Cc8mCad-CFA4ZgBXOmR7T7rKf89lh16-8,9383
|
|
133
|
-
webscout/Provider/yep.py,sha256=
|
|
135
|
+
webscout/Provider/yep.py,sha256=DdI6SmXOo07eBRIB_0hMVZbbm_pEO6GP9iT2G81yibg,9929
|
|
134
136
|
webscout/Provider/AISEARCH/DeepFind.py,sha256=u7jendlE27jY3H_PRB5I5ne_z2oZCeEVBTbXkQ7Msn0,10293
|
|
135
|
-
webscout/Provider/AISEARCH/
|
|
137
|
+
webscout/Provider/AISEARCH/ISou.py,sha256=Gpud30sMwoLGngkIvi6YH0rXcWiAAFTemZnIW4Zdtbc,10720
|
|
138
|
+
webscout/Provider/AISEARCH/__init__.py,sha256=Tsq-ahinnpRfn9IeVzij5Akk4NC_MJh8ldnyfNrqPtc,85
|
|
136
139
|
webscout/Provider/AISEARCH/felo_search.py,sha256=uR89JwDXH5HB_EHdVwHC6CMpPeLvHFYmi6PO-YQmAyw,8879
|
|
137
140
|
webscout/Provider/HF_space/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
138
141
|
webscout/Provider/HF_space/qwen_qwen2.py,sha256=KP7KiPa_OavNh_dF4B2qAv6sX5O6LgD6FeEep5wRNM4,7627
|
|
139
|
-
webscout/Provider/TTI/__init__.py,sha256=
|
|
142
|
+
webscout/Provider/TTI/__init__.py,sha256=M66QrPySUL8kCeu7eA6LWkUN5xLT68VYDum6ottlvak,260
|
|
140
143
|
webscout/Provider/TTI/AiForce/__init__.py,sha256=R8r6XYBUoGB_26jSyjGwHpw8GtZ0wbnkBoHxu26T_QU,685
|
|
141
144
|
webscout/Provider/TTI/AiForce/async_aiforce.py,sha256=Soq-h0BK20nVU1IcRrg4Sb8a4XAJ7_DDQMdFYP5_4Tg,9847
|
|
142
145
|
webscout/Provider/TTI/AiForce/sync_aiforce.py,sha256=eGAveKtkp-h5kSZ-bQo4b2LlNSGpFyGklPm80ECwsto,8859
|
|
146
|
+
webscout/Provider/TTI/FreeAIPlayground/__init__.py,sha256=MmjKj2U1glmn0HDfMkCE64WKA4fsMbqphK5v-E3Sphs,277
|
|
147
|
+
webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py,sha256=1j_0SRBnvqK78rS9QQeQDj6bejWa2-7h4P8ctYooOjk,7808
|
|
148
|
+
webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py,sha256=7iQX8QxMHRV5_IfRIdtMiqWb_SsxKvRc6SrK0ChbINk,6706
|
|
143
149
|
webscout/Provider/TTI/Nexra/__init__.py,sha256=0mO8r6eLnilf3tZchmdyN13OaNoUt-fg5rCNXgWdt5Q,663
|
|
144
150
|
webscout/Provider/TTI/Nexra/async_nexra.py,sha256=fDY-5rRyzauTXE78yglTnE2yWfBfYGUQhBxr-xmK5Sk,11240
|
|
145
151
|
webscout/Provider/TTI/Nexra/sync_nexra.py,sha256=VjzetIdyl8Tmcoyii1fvNJNvfEAQQBrycm6IBmlUjfI,9570
|
|
@@ -209,9 +215,9 @@ webstoken/sentiment.py,sha256=yHtaHXJNS_sH1UTHZsOIgyhdijr8oi1pMlg_QE2wtxw,8202
|
|
|
209
215
|
webstoken/stemmer.py,sha256=VXWkBpPaH328WEQxw9e9ff-p2e27xDdbpVSy0nTnXYE,2624
|
|
210
216
|
webstoken/tagger.py,sha256=p4ScFnxn5sShYDVRoHK5pn_mzaDTsEtx3EHRvuvOlfE,2306
|
|
211
217
|
webstoken/tokenizer.py,sha256=XJ-d1MFRp0Trw6gtOtZ8_wAcaSQidnSCHLNpV1-OFJc,6016
|
|
212
|
-
webscout-7.
|
|
213
|
-
webscout-7.
|
|
214
|
-
webscout-7.
|
|
215
|
-
webscout-7.
|
|
216
|
-
webscout-7.
|
|
217
|
-
webscout-7.
|
|
218
|
+
webscout-7.3.dist-info/LICENSE.md,sha256=5mkWS6cgjGxJClmN7n--h0beF3uFAOV_Ngr1YTK33Tk,9203
|
|
219
|
+
webscout-7.3.dist-info/METADATA,sha256=6ou5WJQmz1eIXHdvajeNGRJ-u5dUxg5YEOfJY7Xc8Tc,40951
|
|
220
|
+
webscout-7.3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
221
|
+
webscout-7.3.dist-info/entry_points.txt,sha256=7thMsVUoHiXGoIH1NeoocKpxlszWflNsNyrnDqGzvO0,70
|
|
222
|
+
webscout-7.3.dist-info/top_level.txt,sha256=KQtbgkA3gxcsADB0hIIx-heydmEYXpAY7xn3LjwDx0E,19
|
|
223
|
+
webscout-7.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|