Add DuckDuckGo support and refactor caching system

Introduced DuckDuckGo as a new search provider alongside Google. Implemented a flexible caching system with in-memory, file-based, and no-op cache options to improve modularity. Updated dependencies and revised the project structure for improved maintainability.
This commit is contained in:
2025-02-21 18:40:25 -05:00
parent 7a43e3a5c8
commit 6c30fdf4d8
5 changed files with 266 additions and 56 deletions

38
pkg/cache/nop.go vendored Normal file
View File

@@ -0,0 +1,38 @@
package cache
import (
"io"
)
type Nop struct {
}
var _ Cache = Nop{}
func (Nop) Get(_ string, _ io.Writer) error {
return ErrNotFound
}
func (Nop) GetString(_ string) (string, error) {
return "", ErrNotFound
}
func (Nop) GetJSON(_ string, _ interface{}) error {
return ErrNotFound
}
func (Nop) Set(_ string, _ io.Reader) error {
return nil
}
func (Nop) SetJSON(_ string, _ interface{}) error {
return nil
}
func (Nop) SetString(_ string, _ string) error {
return nil
}
func (Nop) Delete(_ string) error {
return nil
}