How benbusby/whoogle-search works
Whoogle is a historically privacy-focused Google search proxy with a Flask web interface; the README now states that Google search no longer works and the project is inactive. Its principal workflow accepts a search request, prepares a query, fetches results through the legacy Google route or optional Custom Search API, cleans and formats results, and returns them to the user. The graph also preserves documented capabilities such as suggestions, bangs, image viewing, themes, and proxy support. Connections are limited to relationships shown by excerpts, SOURCE INDEX references, or README statements; some UI and route details were not sampled.
Main entry points: routes.py HTTP Routes · search.py Search Orchestrator · request.py Google Request · js Browser Interface
Components 17
Web Interface
- HTTP Routes
app/routes.py - Browser Interface
app/static/js - Search Views
app/templates
Search Processing
- Search Orchestrator
app/utils/search.py - Result Cleaner
app/filter.py - Result Formatting
app/utils/results.py - Bang Resolver
app/utils/bangs.py
External Requests
- Custom Search API
app/services/cse_client.py - Google Request
app/request.py - HTTP Provider
app/services/provider.py - HTTP Client
app/services/http_client.py
Preferences And Extras
- Search Preferences
app/models/config.py - User Session
app/utils/session.py - User-Agent Pool
app/utils/ua_generator.py - Search Widgets
app/utils/widgets.py
Other components
- Search User
- Google Search
Connections 20
- Search User → HTTP Routes: submits query
README.md - HTTP Routes → Search Orchestrator: dispatches search
app/routes.py - HTTP Routes → Search Preferences: loads preferences
app/routes.py - HTTP Routes → User Session: uses session
app/routes.py - HTTP Routes → Bang Resolver: resolves bangs
app/routes.py - HTTP Routes → Search Widgets: uses widgets
app/routes.py - HTTP Routes → Result Formatting: uses formatting
app/routes.py - HTTP Routes → Search Views: renders views
- Search Orchestrator → Google Request: sends query
app/utils/search.py - Search Orchestrator → Result Cleaner: cleans results
app/utils/search.py - Search Orchestrator → Result Formatting: formats output
app/utils/search.py - Search Orchestrator → Custom Search API: calls API
app/utils/search.py - Search Orchestrator → Search Preferences: reads preferences
app/utils/search.py - Google Request → HTTP Provider: gets client
app/request.py - Google Request → User-Agent Pool: selects agent
app/request.py - HTTP Provider → HTTP Client: uses client
app/services/provider.py - Google Request → Google Search: queries Google
README.md - Custom Search API → Google Search: queries API
README.md - Search User → Browser Interface: uses interface
README.md - Browser Interface → HTTP Routes: requests suggestions