From e161237894d2a3c697fb2b3af95ca3fd98552ea2 Mon Sep 17 00:00:00 2001
From: Burer ]*>.*? )", flags=re.I | re.S)
+
+autobuild_date = date.today()
autobuild_vers = "0.0.0.0+0000-0000000"
+autobuild_sizes = {
+ lang: {ext: "?" for ext in DOWNLOAD_EXTS}
+ for lang in DOWNLOAD_LANGS
+}
_started = False
_updater_lock = threading.Lock()
-def _refresh_build_date_once():
+def _refresh_build_sizes():
+ for lang in DOWNLOAD_LANGS:
+ for ext in DOWNLOAD_EXTS:
+ url = f"http://builds.kolibrios.org/{lang}/latest-{ext}.7z"
+ req = Request(
+ url,
+ method="HEAD",
+ headers={"User-Agent": "Mozilla/5.0"},
+ )
+ with urlopen(req, timeout=10) as r:
+ content_length = r.headers.get("Content-Length")
+ if not content_length:
+ continue
+ autobuild_sizes[lang][ext] = f"{int(content_length) / 1048576:.1f} MB"
+
+
+def _refresh_autobuild_once():
global autobuild_date, autobuild_vers
try:
- from urllib.request import Request, urlopen
req = Request(
STATUS_URL,
headers={
@@ -29,67 +57,34 @@ def _refresh_build_date_once():
r.headers.get_content_charset() or "utf-8", "replace"
)
- ver_re = re.compile(
- r"\b(\d+\.\d+\.\d+\.\d+\+\d{3,8}-[0-9a-fA-F]{7,40})\b"
- )
last_ver = None
- rows = re.findall(r"(]*>.*? )", html, flags=re.I | re.S)
- for row in rows:
+ for row in ROW_RE.findall(html):
cls = re.search(r'class\s*=\s*"([^"]*)"', row, flags=re.I)
classes = cls.group(1).lower() if cls else ""
if "commit" in classes:
- mver = ver_re.search(row)
+ mver = VER_RE.search(row)
if mver:
last_ver = mver.group(1)
continue
if "success" not in classes:
continue
text = re.sub(r"<[^>]+>", " ", row)
- mts = re.search(
- r"\b(\d{4})\.(\d{2})\.(\d{2})\s+\d{2}:\d{2}:\d{2}\b", text
- )
+ mts = DATE_RE.search(text)
if mts:
- autobuild_date["YYYY"], autobuild_date["MM"], autobuild_date["DD"] = mts.groups()
- else:
- mds = re.search(r"\b(\d{2})\.(\d{2})\.(\d{4})\b", text)
- if not mds:
- return
- autobuild_date["YYYY"], autobuild_date["MM"], autobuild_date["DD"] = (
- mds.group(3),
- mds.group(2),
- mds.group(1),
- )
+ autobuild_date = date(*map(int, mts.groups()))
if last_ver:
autobuild_vers = last_ver
+ _refresh_build_sizes()
return
- # Fallback for plain-text log format (no HTML table)
- # Example: 2025.09.20 20:45:10 user 💚 Build processing completed successfully. Thank you.
- log_line_re = re.compile(
- r"^(\d{4})\.(\d{2})\.(\d{2})\s+\d{2}:\d{2}:\d{2}\s+(.*)$"
- )
- for raw in html.splitlines():
- mline = log_line_re.match(raw.strip())
- if not mline:
- continue
- yyyy, mm, dd, rest = mline.groups()
- mver = ver_re.search(rest)
- if mver:
- last_ver = mver.group(1)
- if "Build processing completed successfully" in rest:
- autobuild_date["YYYY"], autobuild_date["MM"], autobuild_date["DD"] = yyyy, mm, dd
- if last_ver:
- autobuild_vers = last_ver
- return
-
except Exception:
pass
def _updater_loop():
while True:
- _refresh_build_date_once()
+ _refresh_autobuild_once()
time.sleep(STATUS_SEC)
@@ -102,4 +97,4 @@ def ensure_started():
_started = True
-_refresh_build_date_once()
+_refresh_autobuild_once()
diff --git a/modules/helpers.py b/modules/helpers.py
index d6fa2b4..8d17330 100644
--- a/modules/helpers.py
+++ b/modules/helpers.py
@@ -19,5 +19,5 @@ def render_localized_template(lang, template_name):
template_name,
year=date.today().year,
),
- remove_empty_space=True,
+ remove_empty_space=False,
)
diff --git a/templates/download.html b/templates/download.html
index 668b02f..760f221 100644
--- a/templates/download.html
+++ b/templates/download.html
@@ -56,7 +56,7 @@
('es_ES', 'Español')
) %}
{{ lang }}
{% if l == 'en_US' %}
@@ -100,9 +100,9 @@
{{ _(
'downloads:download_description',
kolibrios="{0}".format(_('title:index')),
- zip="7zip",
- gpl="GPLv2",
- git="{0}".format(_('downloads:git-server'))
+ zip="7zip",
+ gpl="GPLv2",
+ git="{0}".format(_('downloads:git-server'))
) | safe }}