From e16ea3dddd0c80c67e2b370d2c4279d5912f3e60 Mon Sep 17 00:00:00 2001 From: Alex Kozack Date: Thu, 12 Sep 2019 15:21:33 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=98=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=20=D1=81=D0=BF=D0=BE=D1=81=D0=BE=D0=B1=20=D1=81=D0=BE=D1=85?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D0=BE=D0=B5=D0=BA=D1=80=D0=B0=D0=BD=D0=BD=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=20=D1=80=D0=B5=D0=B6=D0=B8=D0=BC=D0=B0=20=D0=B2=20=D0=BF?= =?UTF-8?q?=D0=BB=D0=B5=D0=B5=D1=80=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/UI/components/player.vue | 1 + src/content-scripts/anime365-player-events.ts | 36 +++++++++++++------ 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/src/UI/components/player.vue b/src/UI/components/player.vue index d89a653f..7a3463eb 100644 --- a/src/UI/components/player.vue +++ b/src/UI/components/player.vue @@ -42,6 +42,7 @@ config.append('play-shikimori[episodeId]', `${this.translation.episodeId}`); config.append('play-shikimori[id]', `${this.translation.id}`); config.append('play-shikimori[isAutoPlay]', '1'); + config.append('play-shikimori[fullScreen]', document.fullscreenElement ? '1' : '0'); if (playerStore.currentEpisode) { config.set( diff --git a/src/content-scripts/anime365-player-events.ts b/src/content-scripts/anime365-player-events.ts index 69c866e5..bed315eb 100644 --- a/src/content-scripts/anime365-player-events.ts +++ b/src/content-scripts/anime365-player-events.ts @@ -26,6 +26,7 @@ import videojs from 'video.js'; const EPISODE_ID = config.get('play-shikimori[episodeId]'); const NEXT_EPISODE = config.get('play-shikimori[nextEpisode]') === '1'; const IS_AUTO_PLAY = config.get('play-shikimori[isAutoPlay]') === '1'; + const IS_FULL_SCREEN = config.get('play-shikimori[fullScreen]') === '1'; /** @@ -40,7 +41,6 @@ import videojs from 'video.js'; setCurrentTime(); - initSaveFullScreenState(); let nextEpisodeButton: HTMLButtonElement | null; if (NEXT_EPISODE) { nextEpisodeButton = createNextEpisodeButton(); @@ -67,6 +67,30 @@ import videojs from 'video.js'; toggleNextEpisodeButtonThrottled({currentTime, duration, nextEpisodeButton}); } }); + + + /** + * Если фрейм с видео развернут на весь екран + * выполнить .requestFullscreen() + * чтобы переключить встроенный интерфейс плеера в полноекранный режим + */ + if (IS_FULL_SCREEN) { + /** + * Операция возможна только если пользователь самостоятельно переключил серию + * Если серия переключилась автоматически, то браузер не позволит развернуть плеер + * и requestFullscreen() приведет к ошибке + * + * @see https://stackoverflow.com/a/29282049/4543826 + */ + player.requestFullscreen(); + } + + /** + * Ранее состояние плеера сохранялось в хранилище с ключем "play-fullscreen-state" + * Теперь механизм сохранения состояния плеера отличается. + * Больше нет необходимости хранить состояние в хранилище и данные можно удалить + */ + storage.delete('play-fullscreen-state'); } @@ -175,13 +199,6 @@ import videojs from 'video.js'; } - function initSaveFullScreenState() { - player.on('fullscreenchange', () => { - storage.set(`play-fullscreen-state`, player.isFullscreen()); - }); - } - - /** * Функция автоматически запускает воспроизведение, если нет рекламной вставки */ @@ -190,9 +207,6 @@ import videojs from 'video.js'; return; } - if (await storage.get(`play-fullscreen-state`) === true) { - player.requestFullscreen(); - } player.play(); } From 43d3854197dc62eba5e8185e1a9a6e855b586a55 Mon Sep 17 00:00:00 2001 From: Alex Kozack Date: Fri, 13 Sep 2019 12:05:45 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=92=D0=B5=D1=80=D1=81=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 89b835c7..3bfcdda7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "play-shiki-online", - "version": "1.1.3", + "version": "1.1.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ba6c6478..1cda36f8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "description": "Расширение позволяет смотреть аниме онлайн и синхронизировать его с вашим списком на Шикимори (shikimori.org и shikimori.one)", "name": "play-shiki-online", - "version": "1.1.3", + "version": "1.1.4", "private": true, "scripts": { "serve": "vue-cli-service serve",