eshmeshek 2857a40d1e feat: trusted-domains OAuth popups, og:image bookmark posters, periodic updater
- main.js: trusted-domains list with default Google/Yandex/GitHub/etc.;
  cross-domain confirmation skipped for trusted; setWindowOpenHandler
  returns action:'allow' for trusted so OAuth popups work (postMessage
  back to opener, popup self-closes). Fixes YouTube/Google login reset.
- main.js: get-page-meta IPC extracts og:image / twitter:image / JSON-LD
  image from current view; HDRezka also tries .b-sidecover img for hi-res.
- Header: bookmark button pulls og:image as poster and the page's title;
  duplicate detection switched from hostname to full URL so multiple
  movies from same site can coexist.
- BookmarksBar: site icon rendered next to source domain when distinct
  from poster; img onerror falls back to placeholder.
- Settings: trusted domains chip list with add/remove/reset.
- Updater: proper semver compare (only show if latest > current),
  direct installer URL detection per platform, hourly re-check.

Bookmark schema gains optional siteIcon; existing bookmarks remain valid.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 18:56:12 +03:00
2026-03-14 05:04:51 +03:00
2026-03-14 05:04:51 +03:00
2026-03-14 05:04:51 +03:00
2026-03-14 05:04:51 +03:00
2026-03-14 05:04:51 +03:00
2026-03-14 05:04:51 +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%