From 8fefc226697b82c3fedd4a2041ce73cb59bfc243 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Mon, 22 Nov 2021 10:36:49 -0500 Subject: [PATCH 1/3] Add eslint rule for empty functions --- .eslintrc.js | 1 + 1 file changed, 1 insertion(+) diff --git a/.eslintrc.js b/.eslintrc.js index 19ccd168d..fa7afae71 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -42,6 +42,7 @@ module.exports = { 'jsx-quotes': ['error', 'prefer-single'], 'keyword-spacing': ['error'], 'max-statements-per-line': ['error'], + 'no-empty-function': ['error'], 'no-floating-decimal': ['error'], 'no-multi-spaces': ['error'], 'no-multiple-empty-lines': ['error', { 'max': 1 }], From 9067b0e397cc8b38635d661ce86ddd83194f3202 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Tue, 1 Mar 2022 10:57:48 -0500 Subject: [PATCH 2/3] Fix eslint errors for empty functions/constructors --- src/components/guide/guide.js | 5 --- src/components/playback/playbackmanager.js | 1 + .../syncPlay/core/players/GenericPlayer.js | 32 +++++++++---------- src/components/tabbedview/tabbedview.js | 2 +- src/components/viewSettings/viewSettings.js | 2 -- src/controllers/movies/moviecollections.js | 4 ++- src/controllers/movies/movietrailers.js | 4 ++- src/controllers/music/musicalbums.js | 4 ++- src/controllers/music/musicartists.js | 4 ++- src/controllers/music/songs.js | 4 ++- src/controllers/shows/episodes.js | 4 ++- src/controllers/shows/tvshows.js | 4 ++- .../emby-progressring/emby-progressring.js | 2 +- .../emby-scrollbuttons/emby-scrollbuttons.js | 4 ++- src/plugins/chromecastPlayer/plugin.js | 1 + src/plugins/sessionPlayer/plugin.js | 3 ++ src/plugins/youtubePlayer/plugin.js | 2 ++ src/scripts/clientUtils.js | 2 +- src/scripts/settings/userSettings.js | 3 -- 19 files changed, 50 insertions(+), 37 deletions(-) diff --git a/src/components/guide/guide.js b/src/components/guide/guide.js index 0fbb39d2c..017bfdb41 100644 --- a/src/components/guide/guide.js +++ b/src/components/guide/guide.js @@ -166,7 +166,6 @@ function Guide(options) { stopAutoRefresh(); Events.off(serverNotifications, 'TimerCreated', onTimerCreated); - Events.off(serverNotifications, 'SeriesTimerCreated', onSeriesTimerCreated); Events.off(serverNotifications, 'TimerCancelled', onTimerCancelled); Events.off(serverNotifications, 'SeriesTimerCancelled', onSeriesTimerCancelled); @@ -1057,9 +1056,6 @@ function Guide(options) { } } - function onSeriesTimerCreated() { - } - function onTimerCancelled(e, apiClient, data) { const id = data.Id; // find guide cells by timer id, remove timer icon @@ -1186,7 +1182,6 @@ function Guide(options) { Events.trigger(self, 'load'); Events.on(serverNotifications, 'TimerCreated', onTimerCreated); - Events.on(serverNotifications, 'SeriesTimerCreated', onSeriesTimerCreated); Events.on(serverNotifications, 'TimerCancelled', onTimerCancelled); Events.on(serverNotifications, 'SeriesTimerCancelled', onSeriesTimerCancelled); diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index d50d000f4..ffc188360 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -3322,6 +3322,7 @@ class PlaybackManager { mediaSource.MediaStreams = info.MediaStreams; Events.trigger(player, 'mediastreamschange'); }, function () { + // Swallow errors }); } diff --git a/src/components/syncPlay/core/players/GenericPlayer.js b/src/components/syncPlay/core/players/GenericPlayer.js index f3f2e9715..bb4beda82 100644 --- a/src/components/syncPlay/core/players/GenericPlayer.js +++ b/src/components/syncPlay/core/players/GenericPlayer.js @@ -183,14 +183,14 @@ class GenericPlayer { * Unpauses the player. */ localUnpause() { - + // Override } /** * Pauses the player. */ localPause() { - + // Override } /** @@ -199,14 +199,14 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localSeek(positionTicks) { - + // Override } /** * Stops the player. */ localStop() { - + // Override } /** @@ -215,7 +215,7 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localSendCommand(command) { - + // Override } /** @@ -224,7 +224,7 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localPlay(options) { - + // Override } /** @@ -233,7 +233,7 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localSetCurrentPlaylistItem(playlistItemId) { - + // Override } /** @@ -242,7 +242,7 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localRemoveFromPlaylist(playlistItemIds) { - + // Override } /** @@ -252,7 +252,7 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localMovePlaylistItem(playlistItemId, newIndex) { - + // Override } /** @@ -261,7 +261,7 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localQueue(options) { - + // Override } /** @@ -270,21 +270,21 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localQueueNext(options) { - + // Override } /** * Picks next item in playlist. */ localNextItem() { - + // Override } /** * Picks previous item in playlist. */ localPreviousItem() { - + // Override } /** @@ -293,7 +293,7 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localSetRepeatMode(value) { - + // Override } /** @@ -302,14 +302,14 @@ class GenericPlayer { */ // eslint-disable-next-line no-unused-vars localSetQueueShuffleMode(value) { - + // Override } /** * Toggles shuffle mode. */ localToggleQueueShuffleMode() { - + // Override } } diff --git a/src/components/tabbedview/tabbedview.js b/src/components/tabbedview/tabbedview.js index 833b42cc0..46ae4c36d 100644 --- a/src/components/tabbedview/tabbedview.js +++ b/src/components/tabbedview/tabbedview.js @@ -24,7 +24,7 @@ function onViewDestroy() { } function onBeforeTabChange() { - + // no-op } class TabbedView { diff --git a/src/components/viewSettings/viewSettings.js b/src/components/viewSettings/viewSettings.js index 95e41b1b3..246e08ee7 100644 --- a/src/components/viewSettings/viewSettings.js +++ b/src/components/viewSettings/viewSettings.js @@ -56,8 +56,6 @@ function showIfAllowed(context, selector, visible) { } class ViewSettings { - constructor() { - } show(options) { return new Promise(function (resolve, reject) { const dialogOptions = { diff --git a/src/controllers/movies/moviecollections.js b/src/controllers/movies/moviecollections.js index 7c6adb073..8f2032da3 100644 --- a/src/controllers/movies/moviecollections.js +++ b/src/controllers/movies/moviecollections.js @@ -263,7 +263,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(tabContent); }; - this.destroy = function () {}; + this.destroy = function () { + // TODO: Remove if unused + }; } /* eslint-enable indent */ diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js index d936a95e5..a838b3693 100644 --- a/src/controllers/movies/movietrailers.js +++ b/src/controllers/movies/movietrailers.js @@ -274,7 +274,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; this.alphaPicker?.updateControls(getQuery(tabContent)); }; - this.destroy = function () {}; + this.destroy = function () { + // TODO: Remove if unused + }; } /* eslint-enable indent */ diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index 8702aa38f..25a86e391 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -299,7 +299,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; this.alphaPicker?.updateControls(getQuery()); }; - this.destroy = function () {}; + this.destroy = function () { + // TODO: Remove if unused + }; } /* eslint-enable indent */ diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js index 61cc6b727..3e2b51534 100644 --- a/src/controllers/music/musicartists.js +++ b/src/controllers/music/musicartists.js @@ -240,7 +240,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; this.alphaPicker?.updateControls(getQuery(tabContent)); }; - this.destroy = function () {}; + this.destroy = function () { + // TODO: Remove if unused + }; } /* eslint-enable indent */ diff --git a/src/controllers/music/songs.js b/src/controllers/music/songs.js index 3fc754994..303af6e69 100644 --- a/src/controllers/music/songs.js +++ b/src/controllers/music/songs.js @@ -200,7 +200,9 @@ import Dashboard from '../../scripts/clientUtils'; reloadItems(tabContent); }; - self.destroy = function () {}; + self.destroy = function () { + // TODO: Remove if unused + }; } /* eslint-enable indent */ diff --git a/src/controllers/shows/episodes.js b/src/controllers/shows/episodes.js index 4852a676e..7b42024e8 100644 --- a/src/controllers/shows/episodes.js +++ b/src/controllers/shows/episodes.js @@ -247,7 +247,9 @@ import Dashboard from '../../scripts/clientUtils'; reloadItems(tabContent); }; - self.destroy = function () {}; + self.destroy = function () { + // TODO: Remove if unused + }; } /* eslint-enable indent */ diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index 08504ea79..b93ff0ff0 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -298,7 +298,9 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; this.alphaPicker?.updateControls(getQuery(tabContent)); }; - this.destroy = function () {}; + this.destroy = function () { + // TODO: Remove if unused + }; } /* eslint-enable indent */ diff --git a/src/elements/emby-progressring/emby-progressring.js b/src/elements/emby-progressring/emby-progressring.js index 3572abca7..8c7f890ac 100644 --- a/src/elements/emby-progressring/emby-progressring.js +++ b/src/elements/emby-progressring/emby-progressring.js @@ -74,7 +74,7 @@ import template from './emby-progressring.template.html'; }; EmbyProgressRing.attachedCallback = function () { - + // no-op }; EmbyProgressRing.detachedCallback = function () { diff --git a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js index b484733ae..3a6dc05fc 100644 --- a/src/elements/emby-scrollbuttons/emby-scrollbuttons.js +++ b/src/elements/emby-scrollbuttons/emby-scrollbuttons.js @@ -6,7 +6,9 @@ import '../emby-button/paper-icon-button-light'; const EmbyScrollButtonsPrototype = Object.create(HTMLDivElement.prototype); - EmbyScrollButtonsPrototype.createdCallback = function () {}; + EmbyScrollButtonsPrototype.createdCallback = function () { + // no-op + }; function getScrollButtonHtml(direction) { let html = ''; diff --git a/src/plugins/chromecastPlayer/plugin.js b/src/plugins/chromecastPlayer/plugin.js index e59707590..947426ec2 100644 --- a/src/plugins/chromecastPlayer/plugin.js +++ b/src/plugins/chromecastPlayer/plugin.js @@ -1056,6 +1056,7 @@ class ChromecastPlayer { } getCurrentPlaylistItemId() { + // not supported? } setCurrentPlaylistItem() { diff --git a/src/plugins/sessionPlayer/plugin.js b/src/plugins/sessionPlayer/plugin.js index a165cd54c..6997dc173 100644 --- a/src/plugins/sessionPlayer/plugin.js +++ b/src/plugins/sessionPlayer/plugin.js @@ -451,6 +451,7 @@ class SessionPlayer { } getRepeatMode() { + // not supported? } setQueueShuffleMode(mode) { @@ -460,6 +461,7 @@ class SessionPlayer { } getQueueShuffleMode() { + // not supported? } displayContent(options) { @@ -488,6 +490,7 @@ class SessionPlayer { } getCurrentPlaylistItemId() { + // not supported? } setCurrentPlaylistItem() { diff --git a/src/plugins/youtubePlayer/plugin.js b/src/plugins/youtubePlayer/plugin.js index 50edabccf..5c3f3c360 100644 --- a/src/plugins/youtubePlayer/plugin.js +++ b/src/plugins/youtubePlayer/plugin.js @@ -256,11 +256,13 @@ class YoutubePlayer { return this._currentSrc; } setSubtitleStreamIndex() { + // not supported } canSetAudioStreamIndex() { return false; } setAudioStreamIndex() { + // not supported } // Save this for when playback stops, because querying the time at that point might return 0 currentTime(val) { diff --git a/src/scripts/clientUtils.js b/src/scripts/clientUtils.js index 768fcf8cc..ac50e57c5 100644 --- a/src/scripts/clientUtils.js +++ b/src/scripts/clientUtils.js @@ -155,7 +155,7 @@ export function alert(options) { baseAlert({ title: options.title || globalize.translate('HeaderAlert'), text: options.message - }).then(options.callback || function () {}); + }).then(options.callback || function () { /* no-op */ }); } } diff --git a/src/scripts/settings/userSettings.js b/src/scripts/settings/userSettings.js index 00fa20861..6a1dadde1 100644 --- a/src/scripts/settings/userSettings.js +++ b/src/scripts/settings/userSettings.js @@ -20,9 +20,6 @@ const defaultSubtitleAppearanceSettings = { }; export class UserSettings { - constructor() { - } - /** * Bind UserSettings instance to user. * @param {string} - User identifier. From ddbe59669655a2f02bc519ebf9bdbd25c9687e27 Mon Sep 17 00:00:00 2001 From: Bill Thornton Date: Wed, 2 Mar 2022 00:59:04 -0500 Subject: [PATCH 3/3] Remove unneeded empty functions --- src/components/tabbedview/tabbedview.js | 6 +----- src/controllers/movies/moviecollections.js | 4 ---- src/controllers/movies/movietrailers.js | 4 ---- src/controllers/music/musicalbums.js | 4 ---- src/controllers/music/musicartists.js | 4 ---- src/controllers/music/songs.js | 4 ---- src/controllers/shows/episodes.js | 4 ---- src/controllers/shows/tvshows.js | 4 ---- 8 files changed, 1 insertion(+), 33 deletions(-) diff --git a/src/components/tabbedview/tabbedview.js b/src/components/tabbedview/tabbedview.js index 46ae4c36d..fac54fd49 100644 --- a/src/components/tabbedview/tabbedview.js +++ b/src/components/tabbedview/tabbedview.js @@ -23,10 +23,6 @@ function onViewDestroy() { this.initialTabIndex = null; } -function onBeforeTabChange() { - // no-op -} - class TabbedView { constructor(view, params) { this.tabControllers = []; @@ -79,7 +75,7 @@ class TabbedView { view.addEventListener('viewbeforehide', this.onPause.bind(this)); view.addEventListener('viewbeforeshow', function () { - mainTabsManager.setTabs(view, currentTabIndex, self.getTabs, getTabContainers, onBeforeTabChange, onTabChange, false); + mainTabsManager.setTabs(view, currentTabIndex, self.getTabs, getTabContainers, null, onTabChange, false); }); view.addEventListener('viewshow', function (e) { diff --git a/src/controllers/movies/moviecollections.js b/src/controllers/movies/moviecollections.js index 8f2032da3..43f96be17 100644 --- a/src/controllers/movies/moviecollections.js +++ b/src/controllers/movies/moviecollections.js @@ -262,10 +262,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; this.renderTab = function () { reloadItems(tabContent); }; - - this.destroy = function () { - // TODO: Remove if unused - }; } /* eslint-enable indent */ diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js index a838b3693..fbf219ecf 100644 --- a/src/controllers/movies/movietrailers.js +++ b/src/controllers/movies/movietrailers.js @@ -273,10 +273,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(); this.alphaPicker?.updateControls(getQuery(tabContent)); }; - - this.destroy = function () { - // TODO: Remove if unused - }; } /* eslint-enable indent */ diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index 25a86e391..2e9e0f797 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -298,10 +298,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(); this.alphaPicker?.updateControls(getQuery()); }; - - this.destroy = function () { - // TODO: Remove if unused - }; } /* eslint-enable indent */ diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js index 3e2b51534..ee43c3fc9 100644 --- a/src/controllers/music/musicartists.js +++ b/src/controllers/music/musicartists.js @@ -239,10 +239,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(tabContent); this.alphaPicker?.updateControls(getQuery(tabContent)); }; - - this.destroy = function () { - // TODO: Remove if unused - }; } /* eslint-enable indent */ diff --git a/src/controllers/music/songs.js b/src/controllers/music/songs.js index 303af6e69..061d67ae4 100644 --- a/src/controllers/music/songs.js +++ b/src/controllers/music/songs.js @@ -199,10 +199,6 @@ import Dashboard from '../../scripts/clientUtils'; self.renderTab = function () { reloadItems(tabContent); }; - - self.destroy = function () { - // TODO: Remove if unused - }; } /* eslint-enable indent */ diff --git a/src/controllers/shows/episodes.js b/src/controllers/shows/episodes.js index 7b42024e8..98f85d38d 100644 --- a/src/controllers/shows/episodes.js +++ b/src/controllers/shows/episodes.js @@ -246,10 +246,6 @@ import Dashboard from '../../scripts/clientUtils'; self.renderTab = function () { reloadItems(tabContent); }; - - self.destroy = function () { - // TODO: Remove if unused - }; } /* eslint-enable indent */ diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index b93ff0ff0..02a4a4543 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -297,10 +297,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(tabContent); this.alphaPicker?.updateControls(getQuery(tabContent)); }; - - this.destroy = function () { - // TODO: Remove if unused - }; } /* eslint-enable indent */