From 194fb32fec9b434ee705f9b2246863bd8aa509c9 Mon Sep 17 00:00:00 2001 From: anten-ka Date: Fri, 10 Apr 2026 11:37:28 +0300 Subject: [PATCH] =?UTF-8?q?v2.4.0=20=E2=80=94=20internationalization=20(EN?= =?UTF-8?q?/RU)=20+=20custom=20git=20templates?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - i18n engine (lib/i18n.sh, lib/lang/en.sh, lib/lang/ru.sh) - first-run language picker, persisted to .language + config.json - install.sh, common.sh, backup.sh, templates_catalog.sh wired through t()/tf() - backup.sh preserves .language marker and records language in metadata.json - custom git template feature (first item in pro template picker) * validates HTTPS URLs, rejects shell metachars * 100MB size guard, 90s clone timeout * auto-detects index.html in dist/public/build/_site/site/docs/out/www - bot v2.4.0: i18n.py + lang/{en,ru}.json, /lang command, language toggle button - bot: custom git template via text input with waiter gating --- gotelegram-bot/bot.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gotelegram-bot/bot.py b/gotelegram-bot/bot.py index 97fadbb..f22eb9c 100644 --- a/gotelegram-bot/bot.py +++ b/gotelegram-bot/bot.py @@ -912,6 +912,9 @@ async def _download_custom_git_template(url_with_branch: str) -> Tuple[bool, str ): url = base branch = maybe_branch + elif not maybe_branch and base.lower().startswith("https://"): + # Trailing `@` with no branch — drop it so git doesn't treat it as userinfo + url = base tpl_id = "custom_" + hashlib.md5(url_with_branch.encode("utf-8")).hexdigest()[:10] target_dir = f"/opt/gotelegram/custom_templates/{tpl_id}"