webscout 1.2.8__tar.gz → 1.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of webscout might be problematic. Click here for more details.

Files changed (41) hide show
  1. {webscout-1.2.8 → webscout-1.3.0}/PKG-INFO +29 -11
  2. {webscout-1.2.8 → webscout-1.3.0}/README.md +28 -10
  3. {webscout-1.2.8 → webscout-1.3.0}/setup.py +1 -1
  4. {webscout-1.2.8 → webscout-1.3.0}/webscout/__init__.py +1 -1
  5. {webscout-1.2.8 → webscout-1.3.0}/webscout/transcriber.py +496 -496
  6. webscout-1.3.0/webscout/version.py +2 -0
  7. webscout-1.3.0/webscout/voice.py +27 -0
  8. {webscout-1.2.8 → webscout-1.3.0}/webscout.egg-info/PKG-INFO +29 -11
  9. {webscout-1.2.8 → webscout-1.3.0}/webscout.egg-info/SOURCES.txt +1 -0
  10. webscout-1.2.8/webscout/version.py +0 -2
  11. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/__init__.py +0 -0
  12. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/documents/__init__.py +0 -0
  13. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/documents/query_results_extractor.py +0 -0
  14. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/documents/webpage_content_extractor.py +0 -0
  15. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/networks/__init__.py +0 -0
  16. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/networks/filepath_converter.py +0 -0
  17. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/networks/google_searcher.py +0 -0
  18. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/networks/network_configs.py +0 -0
  19. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/networks/webpage_fetcher.py +0 -0
  20. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/utilsdw/__init__.py +0 -0
  21. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/utilsdw/enver.py +0 -0
  22. {webscout-1.2.8 → webscout-1.3.0}/DeepWEBS/utilsdw/logger.py +0 -0
  23. {webscout-1.2.8 → webscout-1.3.0}/LICENSE.md +0 -0
  24. {webscout-1.2.8 → webscout-1.3.0}/setup.cfg +0 -0
  25. {webscout-1.2.8 → webscout-1.3.0}/webscout/AI.py +0 -0
  26. {webscout-1.2.8 → webscout-1.3.0}/webscout/AIbase.py +0 -0
  27. {webscout-1.2.8 → webscout-1.3.0}/webscout/AIutel.py +0 -0
  28. {webscout-1.2.8 → webscout-1.3.0}/webscout/DWEBS.py +0 -0
  29. {webscout-1.2.8 → webscout-1.3.0}/webscout/HelpingAI.py +0 -0
  30. {webscout-1.2.8 → webscout-1.3.0}/webscout/LLM.py +0 -0
  31. {webscout-1.2.8 → webscout-1.3.0}/webscout/__main__.py +0 -0
  32. {webscout-1.2.8 → webscout-1.3.0}/webscout/cli.py +0 -0
  33. {webscout-1.2.8 → webscout-1.3.0}/webscout/exceptions.py +0 -0
  34. {webscout-1.2.8 → webscout-1.3.0}/webscout/models.py +0 -0
  35. {webscout-1.2.8 → webscout-1.3.0}/webscout/utils.py +0 -0
  36. {webscout-1.2.8 → webscout-1.3.0}/webscout/webscout_search.py +0 -0
  37. {webscout-1.2.8 → webscout-1.3.0}/webscout/webscout_search_async.py +0 -0
  38. {webscout-1.2.8 → webscout-1.3.0}/webscout.egg-info/dependency_links.txt +0 -0
  39. {webscout-1.2.8 → webscout-1.3.0}/webscout.egg-info/entry_points.txt +0 -0
  40. {webscout-1.2.8 → webscout-1.3.0}/webscout.egg-info/requires.txt +0 -0
  41. {webscout-1.2.8 → webscout-1.3.0}/webscout.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: webscout
3
- Version: 1.2.8
3
+ Version: 1.3.0
4
4
  Summary: Search for words, documents, images, videos, news, maps and text translation using the Google, DuckDuckGo.com, yep.com, phind.com, you.com, etc Also containes AI models and now can transcribe yt videos
5
5
  Author: OEvortex
6
6
  Author-email: helpingai5@gmail.com
@@ -72,6 +72,9 @@ Search for words, documents, images, videos, news, maps and text translation usi
72
72
  - [Activating DeepWEBS](#activating-deepwebs)
73
73
  - [Point to remember before using `DeepWEBS`](#point-to-remember-before-using-deepwebs)
74
74
  - [Usage Example](#usage-example)
75
+ - [Text-to-Speech:](#text-to-speech)
76
+ - [Available TTS Voices:](#available-tts-voices)
77
+ - [ALL voices:](#all-voices)
75
78
  - [WEBS and AsyncWEBS classes](#webs-and-asyncwebs-classes)
76
79
  - [Exceptions](#exceptions)
77
80
  - [usage of webscout](#usage-of-webscout)
@@ -337,6 +340,23 @@ if __name__ == "__main__":
337
340
  main()
338
341
 
339
342
  ```
343
+ ## Text-to-Speech:
344
+ ```python
345
+ from webscout import play_audio
346
+
347
+ message = "This is an example of text-to-speech."
348
+ audio_content = play_audio(message, voice="Brian")
349
+
350
+ # Save the audio to a file
351
+ with open("output.mp3", "wb") as f:
352
+ f.write(audio_content)
353
+ ```
354
+ ### Available TTS Voices:
355
+ You can choose from a wide range of voices, including:
356
+ - Filiz, Astrid, Tatyana, Maxim, Carmen, Ines, Cristiano, Vitoria, Ricardo, Maja, Jan, Jacek, Ewa, Ruben, Lotte, Liv, Seoyeon, Takumi, Mizuki, Giorgio, Carla, Bianca, Karl, Dora, Mathieu, Celine, Chantal, Penelope, Miguel, Mia, Enrique, Conchita, Geraint, Salli, Matthew, Kimberly, Kendra, Justin, Joey, Joanna, Ivy, Raveena, Aditi, Emma, Brian, Amy, Russell, Nicole, Vicki, Marlene, Hans, Naja, Mads, Gwyneth, Zhiyu
357
+ - Standard and WaveNet voices for various languages (e.g., en-US, es-ES, ja-JP, etc.)
358
+ ### ALL voices:
359
+ [Filiz, Astrid, Tatyana, Maxim, Carmen, Ines, Cristiano, Vitoria, Ricardo, Maja, Jan, Jacek, Ewa, Ruben, Lotte, Liv, Seoyeon, Takumi, Mizuki, Giorgio, Carla, Bianca, Karl, Dora, Mathieu, Celine, Chantal, Penelope, Miguel, Mia, Enrique, Conchita, Geraint, Salli, Matthew, Kimberly, Kendra, Justin, Joey, Joanna, Ivy, Raveena, Aditi, Emma, Brian, Amy, Russell, Nicole, Vicki, Marlene, Hans, Naja, Mads, Gwyneth, Zhiyu, es-ES-Standard-A, it-IT-Standard-A, it-IT-Wavenet-A, ja-JP-Standard-A, ja-JP-Wavenet-A, ko-KR-Standard-A, ko-KR-Wavenet-A, pt-BR-Standard-A, tr-TR-Standard-A, sv-SE-Standard-A, nl-NL-Standard-A, nl-NL-Wavenet-A, en-US-Wavenet-A, en-US-Wavenet-B, en-US-Wavenet-C, en-US-Wavenet-D, en-US-Wavenet-E, en-US-Wavenet-F, en-GB-Standard-A, en-GB-Standard-B, en-GB-Standard-C, en-GB-Standard-D, en-GB-Wavenet-A, en-GB-Wavenet-B, en-GB-Wavenet-C, en-GB-Wavenet-D, en-US-Standard-B, en-US-Standard-C, en-US-Standard-D, en-US-Standard-E, de-DE-Standard-A, de-DE-Standard-B, de-DE-Wavenet-A, de-DE-Wavenet-B, de-DE-Wavenet-C, de-DE-Wavenet-D, en-AU-Standard-A, en-AU-Standard-B, en-AU-Wavenet-A, en-AU-Wavenet-B, en-AU-Wavenet-C, en-AU-Wavenet-D, en-AU-Standard-C, en-AU-Standard-D, fr-CA-Standard-A, fr-CA-Standard-B, fr-CA-Standard-C, fr-CA-Standard-D, fr-FR-Standard-C, fr-FR-Standard-D, fr-FR-Wavenet-A, fr-FR-Wavenet-B, fr-FR-Wavenet-C, fr-FR-Wavenet-D, da-DK-Wavenet-A, pl-PL-Wavenet-A, pl-PL-Wavenet-B, pl-PL-Wavenet-C, pl-PL-Wavenet-D, pt-PT-Wavenet-A, pt-PT-Wavenet-B, pt-PT-Wavenet-C, pt-PT-Wavenet-D, ru-RU-Wavenet-A, ru-RU-Wavenet-B, ru-RU-Wavenet-C, ru-RU-Wavenet-D, sk-SK-Wavenet-A, tr-TR-Wavenet-A, tr-TR-Wavenet-B, tr-TR-Wavenet-C, tr-TR-Wavenet-D, tr-TR-Wavenet-E, uk-UA-Wavenet-A, ar-XA-Wavenet-A, ar-XA-Wavenet-B, ar-XA-Wavenet-C, cs-CZ-Wavenet-A, nl-NL-Wavenet-B, nl-NL-Wavenet-C, nl-NL-Wavenet-D, nl-NL-Wavenet-E, en-IN-Wavenet-A, en-IN-Wavenet-B, en-IN-Wavenet-C, fil-PH-Wavenet-A, fi-FI-Wavenet-A, el-GR-Wavenet-A, hi-IN-Wavenet-A, hi-IN-Wavenet-B, hi-IN-Wavenet-C, hu-HU-Wavenet-A, id-ID-Wavenet-A, id-ID-Wavenet-B, id-ID-Wavenet-C, it-IT-Wavenet-B, it-IT-Wavenet-C, it-IT-Wavenet-D, ja-JP-Wavenet-B, ja-JP-Wavenet-C, ja-JP-Wavenet-D, cmn-CN-Wavenet-A, cmn-CN-Wavenet-B, cmn-CN-Wavenet-C, cmn-CN-Wavenet-D, nb-no-Wavenet-E, nb-no-Wavenet-A, nb-no-Wavenet-B, nb-no-Wavenet-C, nb-no-Wavenet-D, vi-VN-Wavenet-A, vi-VN-Wavenet-B, vi-VN-Wavenet-C, vi-VN-Wavenet-D, sr-rs-Standard-A, lv-lv-Standard-A, is-is-Standard-A, bg-bg-Standard-A, af-ZA-Standard-A, Tracy, Danny, Huihui, Yaoyao, Kangkang, HanHan, Zhiwei, Asaf, An, Stefanos, Filip, Ivan, Heidi, Herena, Kalpana, Hemant, Matej, Andika, Rizwan, Lado, Valluvar, Linda, Heather, Sean, Michael, Karsten, Guillaume, Pattara, Jakub, Szabolcs, Hoda, Naayf]
340
360
  ## WEBS and AsyncWEBS classes
341
361
 
342
362
  The WEBS and AsyncWEBS classes are used to retrieve search results from DuckDuckGo.com and yep.com periodically.
@@ -357,11 +377,12 @@ import logging
357
377
  import sys
358
378
  from itertools import chain
359
379
  from random import shuffle
360
-
361
380
  import requests
362
381
  from webscout import AsyncWEBS
363
382
 
364
- # bypass curl-cffi NotImplementedError in windows https://curl-cffi.readthedocs.io/en/latest/faq/
383
+ # If you have proxies, define them here
384
+ proxies = None
385
+
365
386
  if sys.platform.lower().startswith("win"):
366
387
  asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
367
388
 
@@ -373,24 +394,21 @@ def get_words():
373
394
 
374
395
  async def aget_results(word):
375
396
  async with AsyncWEBS(proxies=proxies) as WEBS:
376
- results = [r async for r in WEBS.text(word, max_results=None)]
397
+ results = await WEBS.text(word, max_results=None)
377
398
  return results
378
399
 
379
400
  async def main():
380
401
  words = get_words()
381
402
  shuffle(words)
382
- tasks = []
383
- for word in words[:10]:
384
- tasks.append(aget_results(word))
403
+ tasks = [aget_results(word) for word in words[:10]]
385
404
  results = await asyncio.gather(*tasks)
386
405
  print(f"Done")
387
406
  for r in chain.from_iterable(results):
388
407
  print(r)
389
-
390
408
 
391
- if __name__ == "__main__":
392
- logging.basicConfig(level=logging.DEBUG)
393
- asyncio.run(main())
409
+ logging.basicConfig(level=logging.DEBUG)
410
+
411
+ await main()
394
412
  ```
395
413
  It is important to note that the WEBS and AsyncWEBS classes should always be used as a context manager (with statement).
396
414
  This ensures proper resource management and cleanup, as the context manager will automatically handle opening and closing the HTTP client connection.
@@ -20,6 +20,9 @@ Search for words, documents, images, videos, news, maps and text translation usi
20
20
  - [Activating DeepWEBS](#activating-deepwebs)
21
21
  - [Point to remember before using `DeepWEBS`](#point-to-remember-before-using-deepwebs)
22
22
  - [Usage Example](#usage-example)
23
+ - [Text-to-Speech:](#text-to-speech)
24
+ - [Available TTS Voices:](#available-tts-voices)
25
+ - [ALL voices:](#all-voices)
23
26
  - [WEBS and AsyncWEBS classes](#webs-and-asyncwebs-classes)
24
27
  - [Exceptions](#exceptions)
25
28
  - [usage of webscout](#usage-of-webscout)
@@ -285,6 +288,23 @@ if __name__ == "__main__":
285
288
  main()
286
289
 
287
290
  ```
291
+ ## Text-to-Speech:
292
+ ```python
293
+ from webscout import play_audio
294
+
295
+ message = "This is an example of text-to-speech."
296
+ audio_content = play_audio(message, voice="Brian")
297
+
298
+ # Save the audio to a file
299
+ with open("output.mp3", "wb") as f:
300
+ f.write(audio_content)
301
+ ```
302
+ ### Available TTS Voices:
303
+ You can choose from a wide range of voices, including:
304
+ - Filiz, Astrid, Tatyana, Maxim, Carmen, Ines, Cristiano, Vitoria, Ricardo, Maja, Jan, Jacek, Ewa, Ruben, Lotte, Liv, Seoyeon, Takumi, Mizuki, Giorgio, Carla, Bianca, Karl, Dora, Mathieu, Celine, Chantal, Penelope, Miguel, Mia, Enrique, Conchita, Geraint, Salli, Matthew, Kimberly, Kendra, Justin, Joey, Joanna, Ivy, Raveena, Aditi, Emma, Brian, Amy, Russell, Nicole, Vicki, Marlene, Hans, Naja, Mads, Gwyneth, Zhiyu
305
+ - Standard and WaveNet voices for various languages (e.g., en-US, es-ES, ja-JP, etc.)
306
+ ### ALL voices:
307
+ [Filiz, Astrid, Tatyana, Maxim, Carmen, Ines, Cristiano, Vitoria, Ricardo, Maja, Jan, Jacek, Ewa, Ruben, Lotte, Liv, Seoyeon, Takumi, Mizuki, Giorgio, Carla, Bianca, Karl, Dora, Mathieu, Celine, Chantal, Penelope, Miguel, Mia, Enrique, Conchita, Geraint, Salli, Matthew, Kimberly, Kendra, Justin, Joey, Joanna, Ivy, Raveena, Aditi, Emma, Brian, Amy, Russell, Nicole, Vicki, Marlene, Hans, Naja, Mads, Gwyneth, Zhiyu, es-ES-Standard-A, it-IT-Standard-A, it-IT-Wavenet-A, ja-JP-Standard-A, ja-JP-Wavenet-A, ko-KR-Standard-A, ko-KR-Wavenet-A, pt-BR-Standard-A, tr-TR-Standard-A, sv-SE-Standard-A, nl-NL-Standard-A, nl-NL-Wavenet-A, en-US-Wavenet-A, en-US-Wavenet-B, en-US-Wavenet-C, en-US-Wavenet-D, en-US-Wavenet-E, en-US-Wavenet-F, en-GB-Standard-A, en-GB-Standard-B, en-GB-Standard-C, en-GB-Standard-D, en-GB-Wavenet-A, en-GB-Wavenet-B, en-GB-Wavenet-C, en-GB-Wavenet-D, en-US-Standard-B, en-US-Standard-C, en-US-Standard-D, en-US-Standard-E, de-DE-Standard-A, de-DE-Standard-B, de-DE-Wavenet-A, de-DE-Wavenet-B, de-DE-Wavenet-C, de-DE-Wavenet-D, en-AU-Standard-A, en-AU-Standard-B, en-AU-Wavenet-A, en-AU-Wavenet-B, en-AU-Wavenet-C, en-AU-Wavenet-D, en-AU-Standard-C, en-AU-Standard-D, fr-CA-Standard-A, fr-CA-Standard-B, fr-CA-Standard-C, fr-CA-Standard-D, fr-FR-Standard-C, fr-FR-Standard-D, fr-FR-Wavenet-A, fr-FR-Wavenet-B, fr-FR-Wavenet-C, fr-FR-Wavenet-D, da-DK-Wavenet-A, pl-PL-Wavenet-A, pl-PL-Wavenet-B, pl-PL-Wavenet-C, pl-PL-Wavenet-D, pt-PT-Wavenet-A, pt-PT-Wavenet-B, pt-PT-Wavenet-C, pt-PT-Wavenet-D, ru-RU-Wavenet-A, ru-RU-Wavenet-B, ru-RU-Wavenet-C, ru-RU-Wavenet-D, sk-SK-Wavenet-A, tr-TR-Wavenet-A, tr-TR-Wavenet-B, tr-TR-Wavenet-C, tr-TR-Wavenet-D, tr-TR-Wavenet-E, uk-UA-Wavenet-A, ar-XA-Wavenet-A, ar-XA-Wavenet-B, ar-XA-Wavenet-C, cs-CZ-Wavenet-A, nl-NL-Wavenet-B, nl-NL-Wavenet-C, nl-NL-Wavenet-D, nl-NL-Wavenet-E, en-IN-Wavenet-A, en-IN-Wavenet-B, en-IN-Wavenet-C, fil-PH-Wavenet-A, fi-FI-Wavenet-A, el-GR-Wavenet-A, hi-IN-Wavenet-A, hi-IN-Wavenet-B, hi-IN-Wavenet-C, hu-HU-Wavenet-A, id-ID-Wavenet-A, id-ID-Wavenet-B, id-ID-Wavenet-C, it-IT-Wavenet-B, it-IT-Wavenet-C, it-IT-Wavenet-D, ja-JP-Wavenet-B, ja-JP-Wavenet-C, ja-JP-Wavenet-D, cmn-CN-Wavenet-A, cmn-CN-Wavenet-B, cmn-CN-Wavenet-C, cmn-CN-Wavenet-D, nb-no-Wavenet-E, nb-no-Wavenet-A, nb-no-Wavenet-B, nb-no-Wavenet-C, nb-no-Wavenet-D, vi-VN-Wavenet-A, vi-VN-Wavenet-B, vi-VN-Wavenet-C, vi-VN-Wavenet-D, sr-rs-Standard-A, lv-lv-Standard-A, is-is-Standard-A, bg-bg-Standard-A, af-ZA-Standard-A, Tracy, Danny, Huihui, Yaoyao, Kangkang, HanHan, Zhiwei, Asaf, An, Stefanos, Filip, Ivan, Heidi, Herena, Kalpana, Hemant, Matej, Andika, Rizwan, Lado, Valluvar, Linda, Heather, Sean, Michael, Karsten, Guillaume, Pattara, Jakub, Szabolcs, Hoda, Naayf]
288
308
  ## WEBS and AsyncWEBS classes
289
309
 
290
310
  The WEBS and AsyncWEBS classes are used to retrieve search results from DuckDuckGo.com and yep.com periodically.
@@ -305,11 +325,12 @@ import logging
305
325
  import sys
306
326
  from itertools import chain
307
327
  from random import shuffle
308
-
309
328
  import requests
310
329
  from webscout import AsyncWEBS
311
330
 
312
- # bypass curl-cffi NotImplementedError in windows https://curl-cffi.readthedocs.io/en/latest/faq/
331
+ # If you have proxies, define them here
332
+ proxies = None
333
+
313
334
  if sys.platform.lower().startswith("win"):
314
335
  asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
315
336
 
@@ -321,24 +342,21 @@ def get_words():
321
342
 
322
343
  async def aget_results(word):
323
344
  async with AsyncWEBS(proxies=proxies) as WEBS:
324
- results = [r async for r in WEBS.text(word, max_results=None)]
345
+ results = await WEBS.text(word, max_results=None)
325
346
  return results
326
347
 
327
348
  async def main():
328
349
  words = get_words()
329
350
  shuffle(words)
330
- tasks = []
331
- for word in words[:10]:
332
- tasks.append(aget_results(word))
351
+ tasks = [aget_results(word) for word in words[:10]]
333
352
  results = await asyncio.gather(*tasks)
334
353
  print(f"Done")
335
354
  for r in chain.from_iterable(results):
336
355
  print(r)
337
-
338
356
 
339
- if __name__ == "__main__":
340
- logging.basicConfig(level=logging.DEBUG)
341
- asyncio.run(main())
357
+ logging.basicConfig(level=logging.DEBUG)
358
+
359
+ await main()
342
360
  ```
343
361
  It is important to note that the WEBS and AsyncWEBS classes should always be used as a context manager (with statement).
344
362
  This ensures proper resource management and cleanup, as the context manager will automatically handle opening and closing the HTTP client connection.
@@ -9,7 +9,7 @@ with open("README.md", encoding="utf-8") as f:
9
9
 
10
10
  setup(
11
11
  name="webscout",
12
- version="1.2.8",
12
+ version="1.3.0",
13
13
  description="Search for words, documents, images, videos, news, maps and text translation using the Google, DuckDuckGo.com, yep.com, phind.com, you.com, etc Also containes AI models and now can transcribe yt videos",
14
14
  long_description=README,
15
15
  long_description_content_type="text/markdown",
@@ -9,8 +9,8 @@ from .webscout_search import WEBS
9
9
  from .webscout_search_async import AsyncWEBS
10
10
  from .version import __version__
11
11
  from .DWEBS import DeepWEBS
12
- from .AIutel import appdir
13
12
  from .transcriber import transcriber
13
+ from .voice import play_audio
14
14
 
15
15
 
16
16
  __all__ = ["WEBS", "AsyncWEBS", "__version__", "cli"]