Add --base-url flag to serve command for correct feed links

This commit is contained in:
2026-07-28 12:55:56 +02:00
parent fda679f9ad
commit bddc6d2391
3 changed files with 8 additions and 3 deletions
+3 -1
View File
@@ -305,11 +305,12 @@ def cmd_serve(args: argparse.Namespace, db_path: str) -> None:
"""Start the HTTP server."""
host = args.host or DEFAULT_SERVER_HOST
port = args.port or DEFAULT_SERVER_PORT
base_url = getattr(args, 'base_url', None)
from src.server import create_handler
from http.server import ThreadingHTTPServer
handler = create_handler(db_path)
handler = create_handler(db_path, base_url)
try:
server = ThreadingHTTPServer((host, port), handler)
except OSError as e:
@@ -364,6 +365,7 @@ def build_parser() -> argparse.ArgumentParser:
p_serve = subparsers.add_parser("serve", help="Start HTTP server")
p_serve.add_argument("--port", type=int, default=DEFAULT_SERVER_PORT, help="Server port")
p_serve.add_argument("--host", default=DEFAULT_SERVER_HOST, help="Server host")
p_serve.add_argument("--base-url", default=None, help="Base URL for feed links (e.g., http://192.168.1.100:8080)")
# daemon
p_daemon = subparsers.add_parser("daemon", help="Run as background daemon")
+3 -1
View File
@@ -7,7 +7,7 @@ from src.db import get_connection
from src.rss import generate_feed, generate_index_html
def create_handler(db_path: str):
def create_handler(db_path: str, base_url: str = None):
"""Factory that returns an HTTP request handler class bound to a DB path."""
class FeedHandler(BaseHTTPRequestHandler):
@@ -64,6 +64,8 @@ def create_handler(db_path: str):
pass
def _base_url(self) -> str:
if base_url:
return base_url
host = self.server.server_address[0]
port = self.server.server_address[1]
return f"http://{host}:{port}"