feat(web): ddgs plugin (second migration)

Adds plugins/web/ddgs/ following the same plugins/image_gen/ pattern as
brave_free. DuckDuckGo search via the community ddgs package; no API key,
package is an optional dep gated by is_available().

E2E verified — registry now has ['brave-free', 'ddgs'].
This commit is contained in:
kshitijk4poor 2026-05-13 23:31:13 +05:30 committed by Teknium
parent d403cf018c
commit 5c7d098bee
3 changed files with 122 additions and 0 deletions

View file

@ -0,0 +1,15 @@
"""DuckDuckGo search plugin — bundled, auto-loaded.
Backed by the community ``ddgs`` Python package which scrapes DDG's HTML
results page. No API key required, but the package itself must be installed
(it's an optional dep — gated via :meth:`is_available`).
"""
from __future__ import annotations
from plugins.web.ddgs.provider import DDGSWebSearchProvider
def register(ctx) -> None:
"""Register the DDGS provider with the plugin context."""
ctx.register_web_search_provider(DDGSWebSearchProvider())