release 1.13.3: sticky generated time in Europe/Zurich (CEST)
Display wall-clock like local `date` (CEST/CET), not UTC …Z. ISO datetime keeps +02:00 offset so the live age counter stays correct.
This commit is contained in:
parent
aa854b034a
commit
d5213adb7a
4 changed files with 31 additions and 9 deletions
|
|
@ -8,6 +8,25 @@ import re
|
|||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
|
||||
# Display timestamps in Central European time (CEST/CET · MESZ/MEZ), same as `date` on CH/DE hosts.
|
||||
try:
|
||||
from zoneinfo import ZoneInfo
|
||||
|
||||
MON_TZ = ZoneInfo("Europe/Zurich")
|
||||
except Exception: # pragma: no cover
|
||||
MON_TZ = timezone.utc
|
||||
|
||||
|
||||
def format_generated_now() -> tuple[str, str]:
|
||||
"""Return (display_local, iso_with_offset) for sticky bar + <time datetime>."""
|
||||
now = datetime.now(MON_TZ)
|
||||
# ISO with offset so JS Date.parse / age stays correct
|
||||
generated_iso = now.isoformat(timespec="seconds")
|
||||
# Human: 2026-07-19 02:41:34 CEST (MESZ in German speech = CEST)
|
||||
tz_name = now.tzname() or "CEST"
|
||||
generated_at = now.strftime("%Y-%m-%d %H:%M:%S") + f" {tz_name}"
|
||||
return generated_at, generated_iso
|
||||
|
||||
def ui_lang(explicit: str = "") -> str:
|
||||
"""en (default) or fr. Env: TALER_MON_LANG; auto fr for lefrancpaysan hosts."""
|
||||
import os
|
||||
|
|
@ -1734,9 +1753,7 @@ def build_redirect_html(
|
|||
else html.escape(commit_short)
|
||||
)
|
||||
if not generated_at:
|
||||
now = datetime.now(timezone.utc)
|
||||
generated_iso = now.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
generated_at = now.strftime("%Y-%m-%d %H:%M:%SZ")
|
||||
generated_at, generated_iso = format_generated_now()
|
||||
# Redirect pages exist only when the run failed → treat as red if n_err unknown
|
||||
if n_err <= 0:
|
||||
n_err = max(n_err, 1)
|
||||
|
|
@ -1842,9 +1859,7 @@ def main() -> None:
|
|||
import os
|
||||
os.environ["TALER_MON_LANG"] = args.lang
|
||||
log_text = args.log.read_text(errors="replace") if args.log.is_file() else ""
|
||||
now = datetime.now(timezone.utc)
|
||||
generated_iso = now.strftime("%Y-%m-%dT%H:%M:%SZ")
|
||||
generated_at = now.strftime("%Y-%m-%d %H:%M:%SZ")
|
||||
generated_at, generated_iso = format_generated_now()
|
||||
title = args.title or f"{args.page_label} {args.mode} · {args.hostname}"
|
||||
|
||||
raw_for_counts = [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue