Skip to content

Releases: Dosash/web_panel_acc

TG Panel 0.15.1

Choose a tag to compare

@github-actions github-actions released this 24 Oct 21:30
5aea41f

Левая рейка: боты отдельно, версия панели внизу.

  • Интерфейс: кнопки бота постинга и бота рекламы в рейке собраны в отдельную карточку с синими иконками
    (открытый бот — с заливкой), чтобы не сливались с кнопками невидимки, темы и поддержки ниже
  • Интерфейс: в самом низу рейки — версия панели; по нажатию открывается окно «Поддержка» с проверкой обновлений

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.15.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 20:39
24b876d

Панель на сервере обновляется кнопкой из окна «Обновление».

  • Обновление панели: в окне значка «Вышло обновление» — кнопка «Обновить панель». В Docker панель через
    /var/run/docker.sock запускает рядом временный контейнер <проект>-updater (образ docker:27-cli), который
    делает git pull от владельца папки и docker compose up -d --build; без Docker — git pull, pip install
    и штатный перезапуск процесса. Ход и журнал обновления видны в окне, страница перезагрузится сама, когда
    ответит новая версия. Команда для ручного обновления осталась под «Обновить вручную».
    Новые эндпоинты POST /api/update/install и GET /api/update/progress, в GET /api/update — поле self_update
  • Docker: в docker-compose.yml добавлен /var/run/docker.sock (это права root на сервере для контейнера:
    без кнопки строку можно убрать). Новая настройка SELF_UPDATE (0 — только команда). Панели до 0.15.0
    первый раз обновляются командой — после этого строка с сокетом появится сама

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.14.0

Choose a tag to compare

@Dosash Dosash released this 24 Oct 19:09
9c42e90

Новая программа для Windows: Tauri 2 + WebView2 вместо PyQt5 + Qt WebEngine. Установленная программа
обновится на неё сама — режим, адрес сервера и аккаунты сохранятся.

  • Программа для Windows (desktop-win/): оболочка на Rust и встроенный в Windows движок Edge WebView2 —
    свежий Chromium, окно через ~1 с вместо ~4 с, установщик 28,5 МБ вместо 85 МБ (в установленном виде 63 МБ
    вместо 246 МБ). Python запускается только в режиме «на этом компьютере»: сервер панели — отдельный процесс
    server\tg-panel-server.exe, из Qt в нём только QtCore для чтения tdata. Всё прежнее на месте: два режима,
    трей, системные уведомления, «Сохранить как», окна фото/видео и встроенных ботов, разрешения мини-приложений,
    масштаб, горячие клавиши, автозапуск, одна копия; заголовок окна — в теме панели
  • Переход без вопросов: тот же desktop.ini (режим, адрес сервера, порт, масштаб, автообновление, папка
    загрузок), те же имена файлов релиза и установщик с тем же AppId — установленные программы на PyQt5 обновятся
    на новую сами, их _internal удаляется, данные в %APPDATA% не трогаются
  • Обновление (Windows): проверка и скачивание в фоне с докачкой при обрыве; файл сверяется с
    TG-Panel-<версия>-SHA256SUMS.txt из релиза — битый или подменённый не ставится; установка без окон, когда
    программа в трее и простаивает, при выходе, при следующем запуске или по кнопке «Перезапустить» на плашке
    в окне. В локальном режиме аккаунты отключаются штатно, простой — около 10 секунд. Новая версия не
    запустилась — возвращается прежняя, сломанная больше не ставится. После обновления — «Обновлено до X.Y.Z»
    с описанием. Установка «для всех» один раз предлагает перейти на установку для пользователя — обновления без UAC
  • Релизы: в каждом релизе — файл контрольных сумм TG-Panel-<версия>-SHA256SUMS.txt; Windows собирается
    desktop-win/build.ps1, Linux и macOS — по-прежнему desktop/build.py
  • Панель (Windows): имена файлов из загруженной папки tdata вида /etc/x или C:x под Windows не считались
    абсолютными и могли вывести запись из временной папки — теперь такие файлы пропускаются

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.13.1

Choose a tag to compare

@github-actions github-actions released this 24 Oct 12:23
a2f2439

Демо-ролик проекта в README и в репозитории.

  • Документация: демо-ролик проекта docs/video/demo.mp4 (1080p, 60 fps, со звуком) и его превью в README.
    Ролик не записан с экрана, а собран как детерминированная HTML/JS-сцена на настоящих стилях панели
    (docs/video/src/, рендер — render.py через Chromium и ffmpeg), поэтому его можно пересобрать после изменений интерфейса

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.13.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 11:19
db17bc2

Аккаунты из файлов сессий: формат «session + json» рядом с tdata.

  • Аккаунты: импорт из файлов .session (Telethon или Pyrogram, в том числе строковые сессии) и .json
    с параметрами приложения — формат «session + json». В окне «Новый аккаунт» появилась вкладка Файлы .session:
    можно выбрать или перетащить несколько пар файлов либо zip с ними — каждая сессия станет аккаунтом.
    Из .json берутся app_id/app_hash, устройство и версия (вход для Telegram выглядит прежним), облачный
    пароль и прокси; имя при пачке — из .json. Новый эндпоинт POST /api/accounts/import-sessions
  • Интерфейс: у переключателей-сегментов («Папка tdata / Файлы .session», «Ссылка / Копировать текст»
    в редакторе поста) подложка активной кнопки плавно переезжает к нажатой; иконка и подпись в одну строку,
    вместо оранжевой рамки фокуса браузера — мягкая подсветка

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.12.1

Choose a tag to compare

@github-actions github-actions released this 24 Oct 09:57
bb7836f

Диагностика проекта: устойчивость панели и ботов, совместимость с Windows-программой, тесты и CI.

  • Панель: при двойном «Переподключить» (или смене прокси во время подключения) первый клиент аккаунта
    оставался в сети вне панели — события приходили дважды. Подключение аккаунта теперь под замком
  • Панель: сеанс, завершённый с телефона уже после подключения, панель показывает как ошибку аккаунта
    («Сессия недействительна»), а не отвечает 400 на каждый запрос
  • Панель: data/cache (медиа из чатов, аватары) раньше не очищался никогда — теперь при старте и раз в 6 часов:
    медиа старше 7 дней, аватары старше 30 дней, затем самые старые файлы до размера CACHE_MAX_MB (по умолчанию 2 ГБ);
    data/tmp чистится от папок, оставшихся после аварийного завершения
  • Панель: загрузка медиа в ленте — не больше нескольких на аккаунт разом (как у аватаров) и один раз на файл:
    несколько одинаковых запросов подряд больше не качают файл параллельно
  • Панель: первая пачка запросов к чатам после перезапуска грузит список диалогов один раз, а не из каждого
    запроса (меньше шансов на flood wait); зависшее WebSocket-соединение не задерживает события остальным вкладкам
  • Панель: вход — не больше 10 неверных паролей за 10 минут (429 с Retry-After), сравнение пароля без утечки
    по времени; /api/health не расшифровывает сессии всех аккаунтов при каждой проверке
  • Панель: «аккаунт не найден» и «аккаунт не в сети» — свои исключения; любые другие KeyError/RuntimeError
    попадают в журнал с трассировкой и возвращают 500 вместо того, чтобы прятаться под «Аккаунт не найден».
    Фоновые задачи (подключение аккаунтов, операции с ботами) пишут ошибки в журнал
  • Панель: SQLite в режиме WAL, соединения закрываются, ожидание занятой базы 10 с
  • Интерфейс: после обрыва WebSocket (сон ноутбука, перезапуск сервера) панель перечитывает список чатов,
    аккаунты и открытый чат — пропущенные сообщения появляются без F5
  • Windows-программа (Chromium 83): модальные окна, оверлей мини-приложений, чат на телефоне и панели ботов
    позиционировались неправильно — CSS inset заменён на top/right/bottom/left; у color-mix() появились запасные
    цвета (раньше чипы и полупрозрачные панели оставались без фона); панель бота постинга не открывалась из-за
    replaceChildren — добавлен полифил
  • Бот постинга: уборка папки загрузок раз в час — файлы медиа, на которые не ссылается ни один пост (старше суток),
    кэш превью из Telegram старше 7 дней и .part-файлы прерванных загрузок; раньше папка росла бесконечно
  • Бот постинга: записи статистики (снимки подписчиков, вступления и отписки, посты каналов) старше 400 дней удаляются
  • Бот постинга: токен, на который Telegram отвечает 404, считается отклонённым, а не «нет связи» с бесконечными
    повторами; некорректный BOT_TOKEN даёт понятную ошибку в журнале; ошибки фоновых задач запуска пишутся в журнал;
    при ограничении частоты во время проверки каналов бот ждёт и проверяет канал повторно
  • Бот рекламы: заказы, застрявшие в статусе «оплачен» после остановки процесса (оплата прошла, публикации нет),
    доводятся до конца при старте и из планировщика — бронь и очередь или публикация без дублей в уже получивших пост
    каналах; при остановке бот дожидается незавершённых обработчиков оплаты и публикации, прежде чем закрыть базу
  • Бот рекламы: веб-панель поднимается до связи с Telegram; без сети бот ждёт её, а не падает в цикле перезапусков,
    при отклонённом токене панель остаётся доступной, чтобы сменить токен
  • Бот рекламы: оплата звёздами не теряется, если администратор в этот момент принимает пост для рассылки или
    находится в сценарии админки или поддержки (обработчики оплаты — первыми в диспетчере)
  • Бот рекламы: оплата заказа с уже прошедшим временем не публикует пост «сразу» в произвольный момент —
    пользователю предлагается выбрать новое время
  • Бот рекламы: опрос счетов CryptoBot и xRocket — только по счетам, выставленным за последние двое суток, у заказов
    с ещё не наступившим временем (список не рос бесконечно, а переполнение ломало проверку всех оплат разом)
  • Бот рекламы: падение фоновой задачи попадает в журнал; сводка автообнаружения каналов не умирает после первой
    ошибки; негодные TEST_CHANNEL_ID, WORK_HOURS, BOOKING_DAYS, MIN_LEAD_MINUTES в настройках запуска
    не роняют бота на старте — значения по умолчанию с предупреждением в журнале
  • Интерфейс — оформление: экран входа с плывущими пятнами света и «стеклянной» карточкой, свечение активного аккаунта
    и кнопок, блик по кромке панелей, переливающийся градиент главных кнопок, плавная смена темы; появление списка чатов
    «лесенкой», сообщений, окон и тостов — с лёгким «перелётом», окна закрываются плавно; отклик кнопок, плиток,
    меню и поля ввода при наведении и нажатии; пульс точки «подключение», парящие логотипы на пустых экранах;
    аккуратные полосы прокрутки. Всё на токенах и без color-mix()/:focus-visible в общих правилах (Chromium 83)
  • Панели ботов — оформление: тот же уровень, что у панели: стеклянное боковое меню, градиентная метка активного
    раздела, карточки и плитки с бликом по кромке и подъёмом при наведении, переливающиеся главные кнопки, пружинное
    появление окон и тостов с размытым фоном, страницы появляются снизу, экран входа бота постинга с плывущими
    пятнами света. Всё в общем static/bots-theme.css, стили самих ботов не тронуты
  • Боты: бот, выходящий сам (например, с неверным токеном), падал при завершении с «Fatal Python error:
    _enter_buffered_busy» из-за потока, читающего stdin от панели, — теперь завершается обычным кодом
  • Разработка: ruff.toml, тесты tests/ (чистые функции и HTTP-слой без Telegram), requirements-dev.txt
    и CI «Проверки» (ruff, компиляция, тесты, синтаксис JS) при каждом пуше; в docs/DEVELOPMENT.md — раздел
    о совместимости интерфейса с Chromium 83

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.12.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 08:09
0daefcb

Бот постинга и бот рекламы — внутри панели.

  • Встроенные боты: в левой колонке вместо «Все панели» — кнопки «Бот постинга» и «Бот рекламы»
    (бывшие отдельные проекты post_channel_bot и ads_chanel_bot, теперь — папка bots/). Первый раз кнопка
    открывает экран запуска: токен бота от @Botfather (проверяется у Telegram), администраторы — можно выбрать
    из своих аккаунтов — и часовой пояс. Дальше на месте чатов открывается собственная панель бота:
    посты, контент-план, каналы, заказы, оплата — всё как раньше, тем же адресом и паролем, что и TG Panel
  • Каждый бот работает отдельным процессом: панель запускает его, поднимает после падения и останавливает
    вместе с собой. Точка на кнопке — состояние бота (работает, запускается, ошибка); журнал — в
    data/bots/<бот>/bot.log и на экране ошибки
  • Тема панели переключает и тему в панелях ботов
  • Панели ботов оформлены как TG Panel: та же палитра в обеих темах, шрифт Inter, градиентные кнопки
    и логотипы, фон как у ленты чата (static/bots-theme.css подключается последним в их страницах)
  • Правый клик по кнопке бота — меню: открыть в панели, в отдельном окне, в новой вкладке (в браузере),
    настройки запуска, запустить или выключить. Кнопка «отдельное окно» есть и в шапке бота. В программе для
    ПК панель бота открывается своим окном программы — одно окно на бота, Esc его не закрывает
  • Панель бота на 127.0.0.1 отвечает только с ключом, который знает TG Panel (новый на каждый запуск бота), —
    в обход входа в панель её не открыть. Вебхук оплаты xRocket проходит без входа: подпись проверяет сам бот
  • Токен, администраторы и пояс, заданные в «Настройках запуска», применяются, даже если раньше их меняли
    в панели самого бота; имя бота в TG Panel берётся у работающего бота. Старые адреса /posts/, /ads/
    за nginx можно перенаправить на /accounts/#bot=posts и #bot=ads — панель сразу откроет бота
  • /api/health показывает состояние подключённых ботов (bots)
  • Убрана настройка HUB_URL и ссылка «Все панели»
  • Docker: stop_grace_period — 90 с (бот постинга даёт начатым публикациям завершиться), память — 1 ГБ
  • Программа под Windows останавливает бота сразу, без ожидания начатых публикаций (так работает
    terminate в Windows) — для отложенных постов лучше панель на сервере

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.11.3

Choose a tag to compare

@github-actions github-actions released this 23 Oct 17:04
c6e63a5

Обновление и перезапуск программы под Windows.

  • Исправлено: под Windows программа не ставила скачанное обновление и не перезапускалась после смены
    подключения. Скрипт установки запускался с флагом DETACHED_PROCESS, а без консоли PowerShell 5.1 молча
    завершается, не выполнив скрипт. Исправление из 0.11.2 (выход из задания Windows) этого не лечило.
    Из 0.11.2 и раньше обновиться кнопкой нельзя — 0.11.3 нужно один раз распаковать поверх вручную
  • Исправлено: в режиме «На моём сервере» первый запуск после обновления на 0.11.2 давал пустое окно —
    очистка кэша страниц (clearHttpCache) в Qt 5.15.2 подвешивала загрузку. Теперь папка кэша удаляется
    до того, как встроенный браузер её откроет

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.11.2

Choose a tag to compare

@github-actions github-actions released this 23 Oct 15:55
c92428a

Обновление программы под Windows и свежий интерфейс после обновления.

  • Исправлено: под Windows программа скачивала обновление, закрывалась и не ставила его — скрипт установки
    завершался вместе с программой (она работает в задании Windows, Job Object). Теперь скрипт выводится из задания
  • Исправлено: после обновления встроенный браузер мог показывать старый интерфейс из своего кэша (в 0.11.1 —
    по-прежнему пустое окно). Панель отдаёт свои файлы с Cache-Control: no-cache (каждый раз сверка по ETag,
    без изменений — короткий ответ 304), а программа очищает кэш страниц при смене версии

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.

TG Panel 0.11.1

Choose a tag to compare

@github-actions github-actions released this 23 Oct 14:50
d2eef04

Исправлено пустое окно программы под Windows.

  • Исправлено: программа под Windows показывала пустое окно — встроенный браузер (Qt 5.15.2, Chromium 83)
    не понимал оператор ||= в app.js, и интерфейс не запускался
  • Ошибки JavaScript страницы теперь пишутся в журнал программы (logs/tg-panel.log)

Скачать: Windows — setup.exe (или portable.zip), Linux — .AppImage (или .tar.gz), macOS — .dmg (arm64 — Apple Silicon, x86_64 — Intel). Установленные программы обновятся сами.