mirror of
https://github.com/Trollobot/Telemax.git
synced 2026-10-21 05:29:59 +00:00
Релиз 1.3.6: фото из MAX, которое Telegram не берёт как фото, приходит файлом, а не «[фото]»; подпись пересылки — название чата-источника (личный — собеседник) без «MAX chat N»; комментарии — HEIC из MAX приходит WebP (проверено вживую), ветка форматов — подстраховка; новость на сайте
This commit is contained in:
parent
6f89576896
commit
7e50dcd810
9 changed files with 46 additions and 21 deletions
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
Пользовательские описания релизов. Именно ЭТОТ файл (не заголовки коммитов) показывается в уведомлении об обновлении: раздел на версию, пункты — строки, начинающиеся с «- ». Заполняется ПЕРЕД тегированием релиза — scripts/release.sh откажется публиковать версию без её раздела здесь. Коммиты остаются техническими и пользователям не показываются.
|
||||
|
||||
## 1.3.6 — 2026-10-13
|
||||
|
||||
- Фото из MAX, которое Telegram не принимает как фото (слишком большое по габаритам или в формате, который Telegram не показывает), приходит файлом, а не заглушкой «[фото]»
|
||||
- Пересланное сообщение подписано названием чата, откуда переслали: личный чат — именем собеседника. Вместо непонятного «MAX chat …» — просто «Переслано (от …)»
|
||||
|
||||
## 1.3.5 — 2026-10-13
|
||||
|
||||
- «➕ В контакты MAX» — в карточке найденного человека (поиск по номеру, MAX ID или контакт из Telegram) и в /info: в личке собеседник добавляется сразу, в группе — выбранный участник. Контакт из Telegram сохраняется под тем же именем, что у вас в Telegram
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
"downloadUrl": "https://github.com/Trollobot/Telemax",
|
||||
"license": "https://www.gnu.org/licenses/agpl-3.0.html",
|
||||
"image": "https://telemax.svnest.ru/og.png",
|
||||
"softwareVersion": "1.3.5",
|
||||
"softwareVersion": "1.3.6",
|
||||
"dateModified": "2026-10-13",
|
||||
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "RUB" }
|
||||
}
|
||||
|
|
@ -294,7 +294,7 @@
|
|||
<a class="btn btn-ghost" href="https://github.com/Trollobot/Telemax">Открыть на GitHub</a>
|
||||
</div>
|
||||
<!-- news:latest -->
|
||||
<a class="newsbar" href="news/#v1.3.5"><span class="nb-tag">Новое · v1.3.5</span><span class="nb-text">📡 Трансляция чатов и контакты MAX</span><span class="nb-go" aria-hidden="true">→</span></a>
|
||||
<a class="newsbar" href="news/#v1.3.6"><span class="nb-tag">Новое · v1.3.6</span><span class="nb-text">🖼️ Фото из MAX больше не теряются</span><span class="nb-go" aria-hidden="true">→</span></a>
|
||||
<!-- /news:latest -->
|
||||
|
||||
<div class="flow" id="flow" data-scene="chat" role="region" aria-label="Как работает Telemax: MAX, ваш сервер и Telegram">
|
||||
|
|
|
|||
|
|
@ -7,6 +7,13 @@
|
|||
<description>Что нового в Telemax — бесплатном мосте MAX ↔ Telegram с открытым кодом</description>
|
||||
<language>ru</language>
|
||||
<lastBuildDate>Tue, 13 Oct 2026 09:00:00 GMT</lastBuildDate>
|
||||
<item>
|
||||
<title>Telemax 1.3.6: Фото из MAX больше не теряются</title>
|
||||
<link>https://telemax.svnest.ru/news/#v1.3.6</link>
|
||||
<guid isPermaLink="false">telemax-1.3.6</guid>
|
||||
<pubDate>Tue, 13 Oct 2026 09:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<ul><li>Фото из MAX, которое Telegram не принимает как фото (слишком большое по габаритам или в формате, который Telegram не показывает), приходит файлом, а не заглушкой «[фото]»</li><li><b>Пересланное сообщение подписано названием чата, откуда переслали:</b> личный чат — именем собеседника. Вместо непонятного «MAX chat …» — просто «Переслано (от …)»</li></ul>]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Telemax 1.3.5: Трансляция чатов и контакты MAX</title>
|
||||
<link>https://telemax.svnest.ru/news/#v1.3.5</link>
|
||||
|
|
@ -210,12 +217,5 @@
|
|||
<pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<ul><li><b>Ростер группы:</b> кнопка «Открыть личку» → список участников → тап открывает 1:1</li></ul>]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Telemax 0.4.4: Состав группы в карточке</title>
|
||||
<link>https://telemax.svnest.ru/news/#v0.4.4</link>
|
||||
<guid isPermaLink="false">telemax-0.4.4</guid>
|
||||
<pubDate>Sat, 22 Aug 2026 09:00:00 GMT</pubDate>
|
||||
<description><![CDATA[<ul><li>Ростер участников группы в карточке + свои сообщения метятся «Вы» при синхронизации</li></ul>]]></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -4,13 +4,13 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Новости Telemax — что нового в мосте MAX ↔ Telegram</title>
|
||||
<meta name="description" content="Что нового в Telemax: все версии моста MAX ↔ Telegram по-человечески. Последняя — 1.3.5 от 13 октября 2026: Трансляция чатов и контакты MAX.">
|
||||
<meta name="description" content="Что нового в Telemax: все версии моста MAX ↔ Telegram по-человечески. Последняя — 1.3.6 от 13 октября 2026: Фото из MAX больше не теряются.">
|
||||
<link rel="canonical" href="https://telemax.svnest.ru/news/">
|
||||
<link rel="alternate" type="application/rss+xml" title="Новости Telemax" href="https://telemax.svnest.ru/news/feed.xml">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:locale" content="ru_RU">
|
||||
<meta property="og:site_name" content="Telemax">
|
||||
<meta property="og:title" content="Новости Telemax — Трансляция чатов и контакты MAX">
|
||||
<meta property="og:title" content="Новости Telemax — Фото из MAX больше не теряются">
|
||||
<meta property="og:description" content="Все версии моста MAX ↔ Telegram: что появилось и что починили.">
|
||||
<meta property="og:url" content="https://telemax.svnest.ru/news/">
|
||||
<meta property="og:image" content="https://telemax.svnest.ru/og.png">
|
||||
|
|
@ -24,6 +24,16 @@
|
|||
"url": "https://telemax.svnest.ru/news/",
|
||||
"inLanguage": "ru",
|
||||
"blogPost": [
|
||||
{
|
||||
"@type": "BlogPosting",
|
||||
"headline": "Telemax 1.3.6: Фото из MAX больше не теряются",
|
||||
"datePublished": "2026-10-13",
|
||||
"url": "https://telemax.svnest.ru/news/#v1.3.6",
|
||||
"author": {
|
||||
"@type": "Organization",
|
||||
"name": "Telemax"
|
||||
}
|
||||
},
|
||||
{
|
||||
"@type": "BlogPosting",
|
||||
"headline": "Telemax 1.3.5: Трансляция чатов и контакты MAX",
|
||||
|
|
@ -260,18 +270,26 @@
|
|||
<h1>Что нового в Telemax</h1>
|
||||
<p class="lead">Каждая версия моста — коротко и по-человечески. О новой версии бот сам скажет в группе, а обновиться можно одной кнопкой «Обновить» в <code>/version</code>.</p>
|
||||
<div class="actions">
|
||||
<a class="btn btn-primary" href="#v1.3.5">📡 Версия 1.3.5</a>
|
||||
<a class="btn btn-primary" href="#v1.3.6">🖼️ Версия 1.3.6</a>
|
||||
<a class="btn btn-ghost" href="feed.xml">📡 RSS-лента</a>
|
||||
<a class="btn btn-ghost" href="../#how">Как установить</a>
|
||||
</div>
|
||||
<div class="facts">
|
||||
<span class="fact">Последняя версия — <b>1.3.5</b>, 13 октября 2026</span>
|
||||
<span class="fact"><b>33</b> версий с 22 августа 2026</span>
|
||||
<span class="fact">Последняя версия — <b>1.3.6</b>, 13 октября 2026</span>
|
||||
<span class="fact"><b>34</b> версий с 22 августа 2026</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="feed">
|
||||
<div class="month"><h2 class="mh">Октябрь 2026</h2>
|
||||
<article class="rel" id="v1.3.6">
|
||||
<div class="meta"><a class="ver" href="#v1.3.6" title="Ссылка на эту новость">v1.3.6</a><time datetime="2026-10-13">13 октября</time></div>
|
||||
<h3><span class="em" aria-hidden="true">🖼️</span> Фото из MAX больше не теряются</h3>
|
||||
<ul>
|
||||
<li>Фото из MAX, которое Telegram не принимает как фото (слишком большое по габаритам или в формате, который Telegram не показывает), приходит файлом, а не заглушкой «[фото]»</li>
|
||||
<li><b>Пересланное сообщение подписано названием чата, откуда переслали:</b> личный чат — именем собеседника. Вместо непонятного «MAX chat …» — просто «Переслано (от …)»</li>
|
||||
</ul>
|
||||
</article>
|
||||
<article class="rel" id="v1.3.5">
|
||||
<div class="meta"><a class="ver" href="#v1.3.5" title="Ссылка на эту новость">v1.3.5</a><time datetime="2026-10-13">13 октября</time></div>
|
||||
<h3><span class="em" aria-hidden="true">📡</span> Трансляция чатов и контакты MAX</h3>
|
||||
|
|
|
|||
4
package-lock.json
generated
4
package-lock.json
generated
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "telemax",
|
||||
"version": "1.3.6-beta.1",
|
||||
"version": "1.3.6",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "telemax",
|
||||
"version": "1.3.6-beta.1",
|
||||
"version": "1.3.6",
|
||||
"license": "AGPL-3.0-only",
|
||||
"dependencies": {
|
||||
"dotenv": "^17.2.3",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
"name": "telemax",
|
||||
"private": true,
|
||||
"license": "AGPL-3.0-only",
|
||||
"version": "1.3.6-beta.1",
|
||||
"version": "1.3.6",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "tsx watch src/server/app.ts",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
{
|
||||
"1.3.6": { "emoji": "🖼️", "title": "Фото из MAX больше не теряются" },
|
||||
"1.3.5": { "emoji": "📡", "title": "Трансляция чатов и контакты MAX" },
|
||||
"1.3.4": { "emoji": "🔑", "title": "Вход в MAX снова работает" },
|
||||
"1.3.3": { "emoji": "🧭", "title": "Большие файлы: понятные причины сбоев и отправка с сервера" },
|
||||
|
|
|
|||
|
|
@ -236,7 +236,7 @@ export function imageExtension(buf: Uint8Array): string {
|
|||
return 'jpg';
|
||||
}
|
||||
|
||||
/** Image formats Telegram doesn't take as a photo — they go as a file straight away instead of a doomed sendPhoto. */
|
||||
/** Image formats Telegram doesn't take as a photo — they go as a file straight away instead of a doomed sendPhoto. A safety net: MAX serves its photos as its own WebP/JPEG copies (a HEIC came as WebP, live 2026-10-13). */
|
||||
export const PHOTO_AS_FILE = new Set(['heic', 'tiff', 'avif']);
|
||||
|
||||
async function downloadAttachmentOrThrow(att: MaxAttachment, ctx: DownloadContext): Promise<DownloadedAttachment | null> {
|
||||
|
|
|
|||
|
|
@ -699,9 +699,10 @@ async function sendOneAttachment(
|
|||
}
|
||||
const source = { source: downloaded.buffer, filename: downloaded.filename };
|
||||
if (kind === 'photo') {
|
||||
// MAX takes images Telegram won't show as a photo: HEIC/TIFF (format), or past sendPhoto's
|
||||
// 10 000 px (width + height) or 20:1 — MAX allows 7680×7680. Such a picture goes as a file
|
||||
// instead of a «[фото]» placeholder (seen live 2026-10-13 on a user's bridge).
|
||||
// A safety net: MAX takes images Telegram won't show as a photo — past sendPhoto's 10 000 px
|
||||
// (width + height) or 20:1 (MAX allows 7680×7680), or in a format like TIFF. Such a picture goes
|
||||
// as a file instead of a «[фото]» placeholder. In practice MAX hands out its own compressed copy:
|
||||
// a HEIC sent from the MAX app came as a 78 KB WebP (live 2026-10-13), so HEIC never gets here.
|
||||
const ext = downloaded.filename.split('.').pop() ?? 'jpg';
|
||||
if (ext !== 'jpg') logger.info(`MAX photo arrived as ${ext} (${downloaded.buffer.byteLength} bytes)`);
|
||||
if (PHOTO_AS_FILE.has(ext)) return withFloodRetry(() => bot.telegram.sendDocument(groupId, source, opts));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue