# -*- coding: utf-8 -*- """Part B + C: /alkalmazasok (HU) and /en/apps (EN) from one card list. Starts from HEAD each run.""" import html, os, re, sys sys.path.insert(0, __file__.rsplit("/", 1)[0]) from common import * from cards_data import * src = head_text("alkalmazasok.html") cats = re.findall(r'(
\s*
\s*(.*?)).*?\n
\n\n', src, re.S) icons = {cid: icon for _, cid, icon in cats} cards = [] # dicts in page order for m in re.finditer(r'
(.*?)\n
\n\n', src, re.S): cid, body = m.group(1), m.group(2) for cm, c in re.findall(r'\n\s*
(.*?)\n
\n(?=\s*(?:" % c["comment"], '
', '
'] if not c.get("logo_missing"): out.append(' ' % (c["logo"], name)) out += ['

%s

%s
' % (name, tag), '
', '
', '

%s

' % desc, '
%s
' % "".join('%s' % f for f in feats)] if c["shot"]: out.append(' %s screenshot' % (c["shot"], name)) out += ['
', ' ', '
'] return "\n".join(out) def sections(lang): out = [] for n, (cid, icon_name, hu_t, en_id, en_t) in enumerate(CATEGORIES, 1): cc = [c for c in cards if c["cat"] == cid] builtin = sum(1 for c in cc if c["badge"] == "builtin") k = len(cc) - builtin if lang == "hu": count = "%d alkalmazás" % k + (" + %d beépített" % builtin if builtin else "") sec_id, title = cid, hu_t else: count = ("%d app" % k if k == 1 else "%d apps" % k) + (" + %d built in" % builtin if builtin else "") sec_id, title = en_id, en_t out.append("""
%s

%s

%s
%s
""" % (n, html.unescape(title).upper() if lang == "en" else title.upper(), sec_id, icons[cid], title, count, "\n".join(card_html(c, lang) for c in cc))) return "\n".join(out) total = sum(1 for c in cards if c["badge"] != "builtin") oss = sum(1 for c in cards if c["badge"] == "oss") assert total == 56, total print("apps:", total, "| OSI open source:", oss) # ---------------------------------------------------------------- the Hungarian page start = src.index(" \n ") hu = src[:start] + sections("hu") + "\n" + src[end:] hu = sub1(hu, "Telepíthető alkalmazások — 53 nyílt forráskódú app otthoni szerverre | Felhom.eu", "Telepíthető alkalmazások — %d app otthoni szerverre | Felhom.eu" % total) hu = sub1(hu, "Nextcloud, Immich, Jellyfin, Vaultwarden és 53 további nyílt forráskódú alkalmazás otthoni szerveredre.", "Nextcloud, Immich, Jellyfin, Vaultwarden — összesen %d alkalmazás otthoni szerveredre, szinte mind nyílt forráskódú." % total) hu = sub1(hu, '', '' % total) hu = sub1(hu, '', '' % total) hu = sub1(hu, '"numberOfItems": 45,', '"numberOfItems": %d,' % total) hu = sub1(hu, '"description": "Nyílt forráskódú, önhostolt alkalmazások otthoni szerverre",', '"description": "Önhostolt alkalmazások otthoni szerverre, szinte mind nyílt forráskódú",') hu = sub1(hu, "

Válassz a nyílt forráskódú alkalmazások széles kínálatából. Mindegyik ingyenes, közösség által fejlesztett szoftver, amit a saját szervereden futtathatsz.

", "

Válassz %d alkalmazás közül. Szinte mind ingyenes, nyílt forráskódú szoftver, és mind a saját szervereden fut.

" % total) hu = sub1(hu, "
  • Az alkalmazások nyílt forráskódúak – bárki ellenőrizheti a működésüket, nincs rejtett funkció
  • ", "
  • Az alkalmazások szinte mind nyílt forráskódúak – bárki ellenőrizheti a működésüket. A kivételeket a kártyán jelöljük: Zárt forráskód (Plex, Emby), Korlátozott licenc (a forrás olvasható, de a licenc korlátoz), Felhom saját (a mi fejlesztésünk)
  • ") hu = sub1(hu, "
  • Egyedi igények esetén további alkalmazások is telepíthetők – kérdezz bátran!
  • ", "
  • Ha egy alkalmazás hiányzik, megnézzük, felvehető-e a katalógusba – kérdezz bátran!
  • ") hu = sub1(hu, """

    49

    Elérhető alkalmazás

    """, """

    %d

    Elérhető alkalmazás

    """ % total) hu = sub1(hu, """

    100%

    Nyílt forráskódú

    """, """

    %d

    Nyílt forráskódú

    """ % oss) hu = sub1(hu, "

    Ez csak egy részlet a telepíthető alkalmazásokból. Ha van egy konkrét igényed, keress minket és megtaláljuk a megfelelő megoldást!

    ", "

    Ez a teljes katalógus. Ha van egy konkrét igényed, keress minket — megnézzük, felvehető-e a megfelelő alkalmazás.

    ") hu = set_alternates(hu, "/alkalmazasok", "/en/apps") hu = set_nav(hu, "hu", "/alkalmazasok", "/en/apps") write("alkalmazasok.html", hu) # ---------------------------------------------------------------- the English page en = src[:start] + sections("en") + "\n" + src[end:] en = en.replace('', '', 1) head_old = en[: en.index("