eshmeshek 7152378bc1 fix(1.0.12): skip passive Google sign-in popups
YouTube auto-opens window.open on accounts.google.com/...?passive=true&...
at page load to silently pick up an existing Google session via postMessage.
Our setWindowOpenHandler was routing these to the OAuth popup, where Google
detects no parent context and shows "JavaScript отключен".

Tighten isGoogleLoginUrl to exclude passive=true URLs — let them get denied
without a popup. Active "Войти" clicks have no passive flag and continue
to open the popup as before.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 01:07:42 +03:00

ESH-Media

Десктопное приложение на Electron + React. Запускает веб-сервисы в отдельных WebContentsView, поиск и обзор фильмов через TMDB, встроенная блокировка рекламы.

Стек

  • Electron 32
  • React 18 + TypeScript
  • Vite
  • @cliqz/adblocker-electron

Запуск

npm install
npm run dev

Сборка

# Windows (installer + zip)
npm run build:win

# Linux (AppImage + deb)
npm run build:linux

Артефакты в папке release/.

Linux-сборку нужно запускать на Linux-машине.

Настройка

Настройки открываются кнопкой в левом верхнем углу приложения.

Приложения

Список сайтов, которые отображаются на главном экране в виде карточек. Для каждого можно указать:

  • Название — отображается под иконкой
  • URL — адрес сайта, открывается в отдельном WebContentsView
  • URL иконки — картинка для карточки (необязательно)
  • Прокси — использовать ли прокси для этого сайта (переключатель включается отдельно для каждого)

Прокси

Приложение поддерживает HTTP/HTTPS/SOCKS5 прокси. Настраивается в разделе "Прокси" — указываешь хост и порт. Прокси применяется не глобально, а поприложенно: для каждого сайта в списке есть отдельный переключатель. Это позволяет, например, открывать заблокированные сайты через прокси, а остальные — напрямую.

Конфигурация прокси сохраняется в файл ~/.ESH-Media.json и применяется при следующем запуске автоматически.

Поиск фильмов

  • TMDB API Key — ключ для поиска метаданных, постеров и обзора по фильтрам. Получить бесплатно на themoviedb.org. Поддерживаются как обычные API-ключи, так и Bearer-токены.
  • Сайты — список фильмовых сайтов, на которых будет производиться поиск после выбора фильма из TMDB. Поддерживаются движки DLE (kinogo, lordfilm и зеркала), HDRezka, Filmix. Тип определяется автоматически по домену.

Если раздел "Сайты" пустой, приложение попробует использовать подходящие сайты из раздела "Приложения".

Конфиг

Хранится в домашней директории пользователя: ~/.ESH-Media.json.

{
  "apps": [...],
  "proxy": { "host": "127.0.0.1", "port": "7890" },
  "movieSites": [...],
  "tmdbApiKey": "...",
  "bookmarks": [...]
}

Структура

main.js              — main process
preload.js           — preload / IPC bridge
index.html           — точка входа основного UI
loader.html          — экран загрузки
dialog-error.html    — диалог ошибки
dialog-confirm.html  — диалог подтверждения
src/
  entries/           — entry points для Vite (loader, dialogs)
  components/        — React компоненты
  pages/             — страницы
  styles/            — стили
Description
No description provided
Readme 1.8 MiB
v1.0.14 Latest
2026-05-17 12:13:14 +03:00
Languages
TypeScript 45.6%
JavaScript 36.1%
CSS 16.7%
HTML 1.6%