Open source: add AGPL-3.0 license, NOTICE, and copyright headers

- Add LICENSE (GNU Affero General Public License v3.0)
- Add NOTICE file with SearXNG attribution for borrowed scraping patterns
  in google.py (arc_id, GSA user-agent, HTML selectors) and bing.py
  (PERE pagination, base64 redirect decoding, CAPTCHA detection)
- Add CONTRIBUTING.md with contribution guidelines and license info
- Add SPDX-License-Identifier headers to all Python source files
- Add AGPL-3.0 license badge and License section to README.md

SearXNG is licensed under AGPL-3.0-or-later; this project follows suit
as it incorporates techniques derived from SearXNG's search engines.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-03-07 10:18:05 +11:00
co-authored by Copilot
parent cb57e2ed05
commit 7a2126ddb1
22 changed files with 769 additions and 0 deletions
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""API routes for Hey Search."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Background image management — fetch from Unsplash, cache locally."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""SQLite-backed bookmarks storage."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Optional Redis cache for search results.
When REDIS_URL is not set or Redis is unreachable, all operations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Abstract base class for search engines."""
from __future__ import annotations
+4
View File
@@ -1,3 +1,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
# Portions derived from SearXNG <https://github.com/searxng/searxng>
# Copyright (C) 2021-2024 SearXNG Contributors
"""Bing Search engine — direct scraping with Yahoo fallback on CAPTCHA."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Brave Search engine implementation."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Date extraction utilities for search engine result snippets."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""DuckDuckGo Search engine implementation."""
from __future__ import annotations
+4
View File
@@ -1,3 +1,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
# Portions derived from SearXNG <https://github.com/searxng/searxng>
# Copyright (C) 2021-2024 SearXNG Contributors
"""Google Search engine — using SearXNG's async progressive response approach."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Engine registry - manages available search engines."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""SQLite-backed storage for excluded domains."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Search history reads from the stats search_events table."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Hey Search - A metasearch engine."""
import json
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Result models for search engines."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Search orchestrator - coordinates searches across multiple engines concurrently."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""SQLite-backed application settings."""
from __future__ import annotations
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# Copyright (C) 2026 Junwei Zhao
"""Search analytics persisted in a local SQLite database."""
from __future__ import annotations