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 }], 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..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() { - -} - 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/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..43f96be17 100644 --- a/src/controllers/movies/moviecollections.js +++ b/src/controllers/movies/moviecollections.js @@ -262,8 +262,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; this.renderTab = function () { reloadItems(tabContent); }; - - this.destroy = function () {}; } /* eslint-enable indent */ diff --git a/src/controllers/movies/movietrailers.js b/src/controllers/movies/movietrailers.js index d936a95e5..fbf219ecf 100644 --- a/src/controllers/movies/movietrailers.js +++ b/src/controllers/movies/movietrailers.js @@ -273,8 +273,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(); this.alphaPicker?.updateControls(getQuery(tabContent)); }; - - this.destroy = function () {}; } /* eslint-enable indent */ diff --git a/src/controllers/music/musicalbums.js b/src/controllers/music/musicalbums.js index 8702aa38f..2e9e0f797 100644 --- a/src/controllers/music/musicalbums.js +++ b/src/controllers/music/musicalbums.js @@ -298,8 +298,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(); this.alphaPicker?.updateControls(getQuery()); }; - - this.destroy = function () {}; } /* eslint-enable indent */ diff --git a/src/controllers/music/musicartists.js b/src/controllers/music/musicartists.js index 61cc6b727..ee43c3fc9 100644 --- a/src/controllers/music/musicartists.js +++ b/src/controllers/music/musicartists.js @@ -239,8 +239,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(tabContent); this.alphaPicker?.updateControls(getQuery(tabContent)); }; - - this.destroy = function () {}; } /* eslint-enable indent */ diff --git a/src/controllers/music/songs.js b/src/controllers/music/songs.js index 3fc754994..061d67ae4 100644 --- a/src/controllers/music/songs.js +++ b/src/controllers/music/songs.js @@ -199,8 +199,6 @@ import Dashboard from '../../scripts/clientUtils'; self.renderTab = function () { reloadItems(tabContent); }; - - self.destroy = function () {}; } /* eslint-enable indent */ diff --git a/src/controllers/shows/episodes.js b/src/controllers/shows/episodes.js index 4852a676e..98f85d38d 100644 --- a/src/controllers/shows/episodes.js +++ b/src/controllers/shows/episodes.js @@ -246,8 +246,6 @@ import Dashboard from '../../scripts/clientUtils'; self.renderTab = function () { reloadItems(tabContent); }; - - self.destroy = function () {}; } /* eslint-enable indent */ diff --git a/src/controllers/shows/tvshows.js b/src/controllers/shows/tvshows.js index 08504ea79..02a4a4543 100644 --- a/src/controllers/shows/tvshows.js +++ b/src/controllers/shows/tvshows.js @@ -297,8 +297,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer'; reloadItems(tabContent); this.alphaPicker?.updateControls(getQuery(tabContent)); }; - - this.destroy = function () {}; } /* 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.