webscout 7.4__py3-none-any.whl → 7.6__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/AIauto.py +5 -53
- webscout/AIutel.py +8 -318
- webscout/DWEBS.py +460 -489
- webscout/Extra/YTToolkit/YTdownloader.py +14 -53
- webscout/Extra/YTToolkit/transcriber.py +12 -13
- webscout/Extra/YTToolkit/ytapi/video.py +0 -1
- webscout/Extra/__init__.py +0 -1
- webscout/Extra/autocoder/autocoder_utiles.py +0 -4
- webscout/Extra/autocoder/rawdog.py +13 -41
- webscout/Extra/gguf.py +652 -428
- webscout/Extra/weather.py +178 -156
- webscout/Extra/weather_ascii.py +70 -17
- webscout/Litlogger/core/logger.py +1 -2
- webscout/Litlogger/handlers/file.py +1 -1
- webscout/Litlogger/styles/formats.py +0 -2
- webscout/Litlogger/utils/detectors.py +0 -1
- webscout/Provider/AISEARCH/DeepFind.py +0 -1
- webscout/Provider/AISEARCH/ISou.py +1 -1
- webscout/Provider/AISEARCH/felo_search.py +0 -1
- webscout/Provider/AllenAI.py +24 -9
- webscout/Provider/C4ai.py +432 -0
- webscout/Provider/ChatGPTGratis.py +24 -56
- webscout/Provider/Cloudflare.py +18 -21
- webscout/Provider/DeepSeek.py +27 -48
- webscout/Provider/Deepinfra.py +129 -53
- webscout/Provider/Gemini.py +1 -1
- webscout/Provider/GithubChat.py +362 -0
- webscout/Provider/Glider.py +25 -8
- webscout/Provider/HF_space/qwen_qwen2.py +2 -2
- webscout/Provider/HeckAI.py +38 -5
- webscout/Provider/HuggingFaceChat.py +462 -0
- webscout/Provider/Jadve.py +20 -5
- webscout/Provider/Marcus.py +7 -50
- webscout/Provider/Netwrck.py +43 -67
- webscout/Provider/PI.py +4 -2
- webscout/Provider/Perplexitylabs.py +26 -6
- webscout/Provider/Phind.py +29 -3
- webscout/Provider/PizzaGPT.py +10 -51
- webscout/Provider/TTI/AiForce/async_aiforce.py +4 -37
- webscout/Provider/TTI/AiForce/sync_aiforce.py +41 -38
- webscout/Provider/TTI/FreeAIPlayground/__init__.py +9 -9
- webscout/Provider/TTI/FreeAIPlayground/async_freeaiplayground.py +206 -206
- webscout/Provider/TTI/FreeAIPlayground/sync_freeaiplayground.py +192 -192
- webscout/Provider/TTI/MagicStudio/__init__.py +2 -0
- webscout/Provider/TTI/MagicStudio/async_magicstudio.py +111 -0
- webscout/Provider/TTI/MagicStudio/sync_magicstudio.py +109 -0
- webscout/Provider/TTI/PollinationsAI/async_pollinations.py +5 -24
- webscout/Provider/TTI/PollinationsAI/sync_pollinations.py +2 -22
- webscout/Provider/TTI/__init__.py +2 -3
- webscout/Provider/TTI/aiarta/__init__.py +2 -0
- webscout/Provider/TTI/aiarta/async_aiarta.py +482 -0
- webscout/Provider/TTI/aiarta/sync_aiarta.py +440 -0
- webscout/Provider/TTI/fastflux/__init__.py +22 -0
- webscout/Provider/TTI/fastflux/async_fastflux.py +257 -0
- webscout/Provider/TTI/fastflux/sync_fastflux.py +247 -0
- webscout/Provider/TTS/__init__.py +2 -2
- webscout/Provider/TTS/deepgram.py +12 -39
- webscout/Provider/TTS/elevenlabs.py +14 -40
- webscout/Provider/TTS/gesserit.py +11 -35
- webscout/Provider/TTS/murfai.py +13 -39
- webscout/Provider/TTS/parler.py +17 -40
- webscout/Provider/TTS/speechma.py +180 -0
- webscout/Provider/TTS/streamElements.py +17 -44
- webscout/Provider/TextPollinationsAI.py +39 -59
- webscout/Provider/Venice.py +217 -200
- webscout/Provider/WiseCat.py +27 -5
- webscout/Provider/Youchat.py +63 -36
- webscout/Provider/__init__.py +13 -8
- webscout/Provider/akashgpt.py +28 -10
- webscout/Provider/copilot.py +416 -0
- webscout/Provider/flowith.py +196 -0
- webscout/Provider/freeaichat.py +32 -45
- webscout/Provider/granite.py +17 -53
- webscout/Provider/koala.py +20 -5
- webscout/Provider/llamatutor.py +7 -47
- webscout/Provider/llmchat.py +36 -53
- webscout/Provider/multichat.py +92 -98
- webscout/Provider/talkai.py +1 -0
- webscout/Provider/turboseek.py +3 -0
- webscout/Provider/tutorai.py +2 -0
- webscout/Provider/typegpt.py +154 -64
- webscout/Provider/x0gpt.py +3 -1
- webscout/Provider/yep.py +102 -20
- webscout/__init__.py +3 -0
- webscout/cli.py +4 -40
- webscout/conversation.py +1 -10
- webscout/exceptions.py +19 -9
- webscout/litagent/__init__.py +2 -2
- webscout/litagent/agent.py +351 -20
- webscout/litagent/constants.py +34 -5
- webscout/litprinter/__init__.py +0 -3
- webscout/models.py +181 -0
- webscout/optimizers.py +1 -1
- webscout/prompt_manager.py +2 -8
- webscout/scout/core/scout.py +1 -4
- webscout/scout/core/search_result.py +1 -1
- webscout/scout/core/text_utils.py +1 -1
- webscout/scout/core.py +2 -5
- webscout/scout/element.py +1 -1
- webscout/scout/parsers/html_parser.py +1 -1
- webscout/scout/utils.py +0 -1
- webscout/swiftcli/__init__.py +1 -3
- webscout/tempid.py +1 -1
- webscout/update_checker.py +55 -95
- webscout/version.py +1 -1
- webscout/webscout_search_async.py +1 -2
- webscout/yep_search.py +297 -297
- webscout-7.6.dist-info/LICENSE.md +146 -0
- {webscout-7.4.dist-info → webscout-7.6.dist-info}/METADATA +104 -514
- {webscout-7.4.dist-info → webscout-7.6.dist-info}/RECORD +113 -120
- webscout/Extra/autollama.py +0 -231
- webscout/Local/__init__.py +0 -10
- webscout/Local/_version.py +0 -3
- webscout/Local/formats.py +0 -747
- webscout/Local/model.py +0 -1368
- webscout/Local/samplers.py +0 -125
- webscout/Local/thread.py +0 -539
- webscout/Local/ui.py +0 -401
- webscout/Local/utils.py +0 -388
- webscout/Provider/Amigo.py +0 -274
- webscout/Provider/Bing.py +0 -243
- webscout/Provider/DiscordRocks.py +0 -253
- webscout/Provider/TTI/blackbox/__init__.py +0 -4
- webscout/Provider/TTI/blackbox/async_blackbox.py +0 -212
- webscout/Provider/TTI/blackbox/sync_blackbox.py +0 -199
- webscout/Provider/TTI/deepinfra/__init__.py +0 -4
- webscout/Provider/TTI/deepinfra/async_deepinfra.py +0 -227
- webscout/Provider/TTI/deepinfra/sync_deepinfra.py +0 -199
- webscout/Provider/TTI/imgninza/__init__.py +0 -4
- webscout/Provider/TTI/imgninza/async_ninza.py +0 -214
- webscout/Provider/TTI/imgninza/sync_ninza.py +0 -209
- webscout/Provider/TTS/voicepod.py +0 -117
- webscout/Provider/dgaf.py +0 -214
- webscout-7.4.dist-info/LICENSE.md +0 -211
- {webscout-7.4.dist-info → webscout-7.6.dist-info}/WHEEL +0 -0
- {webscout-7.4.dist-info → webscout-7.6.dist-info}/entry_points.txt +0 -0
- {webscout-7.4.dist-info → webscout-7.6.dist-info}/top_level.txt +0 -0
webscout/cli.py
CHANGED
|
@@ -1,34 +1,12 @@
|
|
|
1
|
-
import os
|
|
2
1
|
import sys
|
|
3
|
-
from
|
|
4
|
-
from datetime import datetime
|
|
5
|
-
from urllib.parse import unquote
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
from .swiftcli import CLI, option, argument, group
|
|
8
|
-
from curl_cffi import requests
|
|
9
|
-
import pyreqwest_impersonate as pri
|
|
2
|
+
from .swiftcli import CLI, option
|
|
10
3
|
from .webscout_search import WEBS
|
|
11
|
-
from .utils import json_dumps, json_loads
|
|
12
4
|
from .version import __version__
|
|
13
|
-
from .Litlogger import LitLogger, LogFormat, ColorScheme
|
|
14
5
|
from rich.console import Console
|
|
15
6
|
from rich.panel import Panel
|
|
16
|
-
from rich.markdown import Markdown
|
|
17
7
|
from rich.table import Table
|
|
18
|
-
from rich.style import Style
|
|
19
8
|
from rich.text import Text
|
|
20
|
-
from rich.align import Align
|
|
21
|
-
from rich.progress import track, Progress
|
|
22
|
-
from rich.prompt import Prompt, Confirm
|
|
23
|
-
from rich.columns import Columns
|
|
24
|
-
from pyfiglet import figlet_format
|
|
25
9
|
|
|
26
|
-
logger = LitLogger(
|
|
27
|
-
name="webscout",
|
|
28
|
-
format=LogFormat.MODERN_EMOJI,
|
|
29
|
-
color_scheme=ColorScheme.CYBERPUNK,
|
|
30
|
-
console_output=True
|
|
31
|
-
)
|
|
32
10
|
|
|
33
11
|
COLORS = {
|
|
34
12
|
0: "black",
|
|
@@ -89,7 +67,7 @@ def chat(proxy: str = None, model: str = "gpt-4o-mini"):
|
|
|
89
67
|
console = Console()
|
|
90
68
|
|
|
91
69
|
# Display header
|
|
92
|
-
console.print(f"[bold blue]{figlet_format('Webscout Chat')}[/]\n", justify="center")
|
|
70
|
+
# console.print(f"[bold blue]{figlet_format('Webscout Chat')}[/]\n", justify="center")
|
|
93
71
|
console.print(f"[bold green]Using model:[/] {model}\n")
|
|
94
72
|
console.print("[cyan]Type your message and press Enter. Press Ctrl+C or type 'exit' to quit.[/]\n")
|
|
95
73
|
|
|
@@ -97,23 +75,18 @@ def chat(proxy: str = None, model: str = "gpt-4o-mini"):
|
|
|
97
75
|
try:
|
|
98
76
|
while True:
|
|
99
77
|
try:
|
|
100
|
-
user_input = input("
|
|
78
|
+
user_input = input(">>> ").strip()
|
|
101
79
|
if not user_input or user_input.lower() in ['exit', 'quit']:
|
|
102
80
|
break
|
|
103
81
|
|
|
104
|
-
logger.info(f"Sending message to {model}")
|
|
105
82
|
response = webs.chat(keywords=user_input, model=model)
|
|
106
83
|
console.print(f"\nAI: {response}\n")
|
|
107
|
-
logger.success("Received response from AI")
|
|
108
84
|
|
|
109
85
|
except Exception as e:
|
|
110
|
-
logger.error(f"Error in chat: {str(e)}")
|
|
111
86
|
console.print(f"[bold red]Error:[/] {str(e)}\n")
|
|
112
87
|
|
|
113
88
|
except KeyboardInterrupt:
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
console.print("\n[cyan]Chat session ended. Goodbye![/]")
|
|
89
|
+
console.print("\n[bold red]Chat session interrupted. Exiting...[/]")
|
|
117
90
|
|
|
118
91
|
@app.command()
|
|
119
92
|
@option("--keywords", "-k", help="Search keywords", required=True)
|
|
@@ -130,7 +103,6 @@ def text(keywords: str, region: str, safesearch: str, timelimit: str, backend: s
|
|
|
130
103
|
results = webs.text(keywords, region, safesearch, timelimit, backend, max_results)
|
|
131
104
|
_print_data(results)
|
|
132
105
|
except Exception as e:
|
|
133
|
-
logger.error(f"Error in text search: {e}")
|
|
134
106
|
raise e
|
|
135
107
|
|
|
136
108
|
@app.command()
|
|
@@ -143,7 +115,6 @@ def answers(keywords: str, proxy: str = None):
|
|
|
143
115
|
results = webs.answers(keywords)
|
|
144
116
|
_print_data(results)
|
|
145
117
|
except Exception as e:
|
|
146
|
-
logger.error(f"Error in answers search: {e}")
|
|
147
118
|
raise e
|
|
148
119
|
|
|
149
120
|
@app.command()
|
|
@@ -177,7 +148,6 @@ def images(
|
|
|
177
148
|
results = webs.images(keywords, region, safesearch, timelimit, size, color, type, layout, license, max_results)
|
|
178
149
|
_print_data(results)
|
|
179
150
|
except Exception as e:
|
|
180
|
-
logger.error(f"Error in images search: {e}")
|
|
181
151
|
raise e
|
|
182
152
|
|
|
183
153
|
@app.command()
|
|
@@ -207,7 +177,6 @@ def videos(
|
|
|
207
177
|
results = webs.videos(keywords, region, safesearch, timelimit, resolution, duration, license, max_results)
|
|
208
178
|
_print_data(results)
|
|
209
179
|
except Exception as e:
|
|
210
|
-
logger.error(f"Error in videos search: {e}")
|
|
211
180
|
raise e
|
|
212
181
|
|
|
213
182
|
@app.command()
|
|
@@ -224,7 +193,6 @@ def news(keywords: str, region: str, safesearch: str, timelimit: str, max_result
|
|
|
224
193
|
results = webs.news(keywords, region, safesearch, timelimit, max_results)
|
|
225
194
|
_print_data(results)
|
|
226
195
|
except Exception as e:
|
|
227
|
-
logger.error(f"Error in news search: {e}")
|
|
228
196
|
raise e
|
|
229
197
|
|
|
230
198
|
@app.command()
|
|
@@ -275,7 +243,6 @@ def maps(
|
|
|
275
243
|
)
|
|
276
244
|
_print_data(results)
|
|
277
245
|
except Exception as e:
|
|
278
|
-
logger.error(f"Error in maps search: {e}")
|
|
279
246
|
raise e
|
|
280
247
|
|
|
281
248
|
@app.command()
|
|
@@ -290,7 +257,6 @@ def translate(keywords: str, from_: str, to: str, proxy: str = None):
|
|
|
290
257
|
results = webs.translate(keywords, from_, to)
|
|
291
258
|
_print_data(results)
|
|
292
259
|
except Exception as e:
|
|
293
|
-
logger.error(f"Error in translation: {e}")
|
|
294
260
|
raise e
|
|
295
261
|
|
|
296
262
|
@app.command()
|
|
@@ -304,7 +270,6 @@ def suggestions(keywords: str, region: str, proxy: str = None):
|
|
|
304
270
|
results = webs.suggestions(keywords, region)
|
|
305
271
|
_print_data(results)
|
|
306
272
|
except Exception as e:
|
|
307
|
-
logger.error(f"Error in suggestions search: {e}")
|
|
308
273
|
raise e
|
|
309
274
|
|
|
310
275
|
def main():
|
|
@@ -312,7 +277,6 @@ def main():
|
|
|
312
277
|
try:
|
|
313
278
|
app.run()
|
|
314
279
|
except Exception as e:
|
|
315
|
-
logger.error(f"Error: {e}")
|
|
316
280
|
sys.exit(1)
|
|
317
281
|
|
|
318
282
|
if __name__ == "__main__":
|
webscout/conversation.py
CHANGED
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
|
-
import logging
|
|
3
2
|
from typing import Optional
|
|
4
|
-
from .Litlogger import Logger, LogFormat
|
|
5
3
|
|
|
6
|
-
# Create a logger instance for this module
|
|
7
|
-
logger = Logger(
|
|
8
|
-
name="Conversation",
|
|
9
|
-
format=LogFormat.MODERN_EMOJI,
|
|
10
|
-
)
|
|
11
4
|
|
|
12
5
|
class Conversation:
|
|
13
6
|
"""Handles prompt generation based on history and maintains chat context.
|
|
@@ -79,11 +72,9 @@ class Conversation:
|
|
|
79
72
|
), f"File '{filepath}' does not exist"
|
|
80
73
|
|
|
81
74
|
if not os.path.isfile(filepath):
|
|
82
|
-
logging.debug(f"Creating new chat-history file - '{filepath}'")
|
|
83
75
|
with open(filepath, "w", encoding="utf-8") as fh:
|
|
84
76
|
fh.write(self.intro)
|
|
85
77
|
else:
|
|
86
|
-
logging.debug(f"Loading conversation from '{filepath}'")
|
|
87
78
|
with open(filepath, encoding="utf-8") as fh:
|
|
88
79
|
file_contents = fh.readlines()
|
|
89
80
|
if file_contents:
|
|
@@ -221,7 +212,7 @@ class Conversation:
|
|
|
221
212
|
if role in role_formats:
|
|
222
213
|
self.chat_history += f"\n{role_formats[role]} : {content}"
|
|
223
214
|
else:
|
|
224
|
-
|
|
215
|
+
raise ValueError(f"Invalid role: {role}. Must be one of {list(role_formats.keys())}")
|
|
225
216
|
|
|
226
217
|
# # Enhanced logging for message addition
|
|
227
218
|
# logger.info(f"Added message from {role}: {content}")
|
webscout/exceptions.py
CHANGED
|
@@ -11,7 +11,7 @@ class WebscoutE(Exception):
|
|
|
11
11
|
pass
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
class APIConnectionError(
|
|
14
|
+
class APIConnectionError(WebscoutE):
|
|
15
15
|
"""
|
|
16
16
|
Exception raised when there are issues connecting to an API.
|
|
17
17
|
|
|
@@ -21,7 +21,17 @@ class APIConnectionError(Exception):
|
|
|
21
21
|
pass
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
class
|
|
24
|
+
class AuthenticationError(WebscoutE):
|
|
25
|
+
"""
|
|
26
|
+
Exception raised when authentication to a service fails.
|
|
27
|
+
|
|
28
|
+
This exception is raised when the provided credentials are invalid or expired.
|
|
29
|
+
It indicates that the application cannot authenticate with the service.
|
|
30
|
+
"""
|
|
31
|
+
pass
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class RatelimitE(WebscoutE):
|
|
25
35
|
"""
|
|
26
36
|
Exception raised when an API rate limit is exceeded.
|
|
27
37
|
|
|
@@ -31,7 +41,7 @@ class RatelimitE(Exception):
|
|
|
31
41
|
pass
|
|
32
42
|
|
|
33
43
|
|
|
34
|
-
class ConversationLimitException(
|
|
44
|
+
class ConversationLimitException(WebscoutE):
|
|
35
45
|
"""
|
|
36
46
|
Exception raised when a conversation limit is exceeded.
|
|
37
47
|
|
|
@@ -41,7 +51,7 @@ class ConversationLimitException(Exception):
|
|
|
41
51
|
pass
|
|
42
52
|
|
|
43
53
|
|
|
44
|
-
class TimeoutE(
|
|
54
|
+
class TimeoutE(WebscoutE):
|
|
45
55
|
"""
|
|
46
56
|
Exception raised when a request to an API times out.
|
|
47
57
|
|
|
@@ -51,7 +61,7 @@ class TimeoutE(Exception):
|
|
|
51
61
|
pass
|
|
52
62
|
|
|
53
63
|
|
|
54
|
-
class FailedToGenerateResponseError(
|
|
64
|
+
class FailedToGenerateResponseError(WebscoutE):
|
|
55
65
|
"""
|
|
56
66
|
Exception raised when a provider fails to generate a response.
|
|
57
67
|
|
|
@@ -61,7 +71,7 @@ class FailedToGenerateResponseError(Exception):
|
|
|
61
71
|
pass
|
|
62
72
|
|
|
63
73
|
|
|
64
|
-
class AllProvidersFailure(
|
|
74
|
+
class AllProvidersFailure(WebscoutE):
|
|
65
75
|
"""
|
|
66
76
|
Exception raised when all providers fail to generate a response.
|
|
67
77
|
|
|
@@ -71,7 +81,7 @@ class AllProvidersFailure(Exception):
|
|
|
71
81
|
pass
|
|
72
82
|
|
|
73
83
|
|
|
74
|
-
class FacebookInvalidCredentialsException(
|
|
84
|
+
class FacebookInvalidCredentialsException(WebscoutE):
|
|
75
85
|
"""
|
|
76
86
|
Exception raised when Facebook credentials are invalid.
|
|
77
87
|
|
|
@@ -81,7 +91,7 @@ class FacebookInvalidCredentialsException(Exception):
|
|
|
81
91
|
pass
|
|
82
92
|
|
|
83
93
|
|
|
84
|
-
class FacebookRegionBlocked(
|
|
94
|
+
class FacebookRegionBlocked(WebscoutE):
|
|
85
95
|
"""
|
|
86
96
|
Exception raised when Facebook access is blocked due to region restrictions.
|
|
87
97
|
|
|
@@ -91,7 +101,7 @@ class FacebookRegionBlocked(Exception):
|
|
|
91
101
|
pass
|
|
92
102
|
|
|
93
103
|
|
|
94
|
-
class ModelUnloadedException(
|
|
104
|
+
class ModelUnloadedException(WebscoutE):
|
|
95
105
|
"""
|
|
96
106
|
Exception raised when a model is unloaded.
|
|
97
107
|
|
webscout/litagent/__init__.py
CHANGED
|
@@ -22,8 +22,8 @@ Examples:
|
|
|
22
22
|
"""
|
|
23
23
|
|
|
24
24
|
from .agent import LitAgent
|
|
25
|
-
from .constants import BROWSERS, OS_VERSIONS, DEVICES
|
|
25
|
+
from .constants import BROWSERS, OS_VERSIONS, DEVICES, FINGERPRINTS
|
|
26
26
|
|
|
27
27
|
agent = LitAgent()
|
|
28
28
|
|
|
29
|
-
__all__ = ['LitAgent', 'agent', 'BROWSERS', 'OS_VERSIONS', 'DEVICES']
|
|
29
|
+
__all__ = ['LitAgent', 'agent', 'BROWSERS', 'OS_VERSIONS', 'DEVICES', 'FINGERPRINTS']
|