diff --git a/.eslintrc.js b/.eslintrc.js index 7bf51c7a5..40b200f68 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -51,6 +51,7 @@ module.exports = { 'no-floating-decimal': ['error'], 'no-multi-spaces': ['error'], 'no-multiple-empty-lines': ['error', { 'max': 1 }], + 'no-nested-ternary': ['error'], 'no-restricted-globals': ['error'].concat(restrictedGlobals), 'no-return-assign': ['error'], 'no-return-await': ['error'], @@ -58,14 +59,14 @@ module.exports = { 'no-trailing-spaces': ['error'], '@babel/no-unused-expressions': ['error', { 'allowShortCircuit': true, 'allowTernary': true, 'allowTaggedTemplates': true }], 'no-useless-constructor': ['error'], + 'no-var': ['error'], 'no-void': ['error', { 'allowAsStatement': true }], - 'no-nested-ternary': ['error'], + 'no-warning-comments': ['warn', { 'terms': ['fixme', 'hack', 'xxx'] }], 'one-var': ['error', 'never'], 'padded-blocks': ['error', 'never'], 'prefer-const': ['error', { 'destructuring': 'all' }], 'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }], '@babel/semi': ['error'], - 'no-var': ['error'], 'space-before-blocks': ['error'], 'space-infix-ops': 'error', 'yoda': 'error', diff --git a/src/components/cardbuilder/cardBuilder.js b/src/components/cardbuilder/cardBuilder.js index ebdc250d7..c22e6a2b3 100644 --- a/src/components/cardbuilder/cardBuilder.js +++ b/src/components/cardbuilder/cardBuilder.js @@ -390,7 +390,8 @@ import { appRouter } from '../appRouter'; } else if (options.indexBy === 'ProductionYear') { newIndexValue = item.ProductionYear; } else if (options.indexBy === 'CommunityRating') { - newIndexValue = item.CommunityRating ? (Math.floor(item.CommunityRating) + (item.CommunityRating % 1 >= 0.5 ? 0.5 : 0)) + '+' : null; + const roundedRatingDecimal = item.CommunityRating % 1 >= 0.5 ? 0.5 : 0; + newIndexValue = item.CommunityRating ? (Math.floor(item.CommunityRating) + roundedRatingDecimal) + '+' : null; } if (newIndexValue !== currentIndexValue) { diff --git a/src/components/playback/playbackmanager.js b/src/components/playback/playbackmanager.js index 1cbd99950..4259354d8 100644 --- a/src/components/playback/playbackmanager.js +++ b/src/components/playback/playbackmanager.js @@ -2478,8 +2478,8 @@ class PlaybackManager { playMethod = 'DirectPlay'; } else if (mediaSource.StreamUrl) { // Only used for audio - playMethod = 'Transcode'; mediaUrl = mediaSource.StreamUrl; + // Use the default playMethod value of Transcode } else if (mediaSource.SupportsDirectPlay || mediaSource.SupportsDirectStream) { directOptions = { Static: true, diff --git a/src/components/tunerPicker.js b/src/components/tunerPicker.js index b73337182..68c664409 100644 --- a/src/components/tunerPicker.js +++ b/src/components/tunerPicker.js @@ -67,7 +67,7 @@ function getDeviceHtml(device) { } function getTunerName(providerId) { - switch (providerId = providerId.toLowerCase()) { + switch (providerId.toLowerCase()) { case 'm3u': return 'M3U'; diff --git a/src/components/tvproviders/schedulesdirect.js b/src/components/tvproviders/schedulesdirect.js index 239831ad8..509c8145a 100644 --- a/src/components/tvproviders/schedulesdirect.js +++ b/src/components/tvproviders/schedulesdirect.js @@ -202,7 +202,7 @@ export default function (page, providerId, options) { } function getTunerName(providerId) { - switch (providerId = providerId.toLowerCase()) { + switch (providerId.toLowerCase()) { case 'm3u': return 'M3U Playlist'; case 'hdhomerun': diff --git a/src/components/tvproviders/xmltv.js b/src/components/tvproviders/xmltv.js index 9d5312e4d..5a4e44db6 100644 --- a/src/components/tvproviders/xmltv.js +++ b/src/components/tvproviders/xmltv.js @@ -106,7 +106,7 @@ export default function (page, providerId, options) { } function getTunerName(providerId) { - switch (providerId = providerId.toLowerCase()) { + switch (providerId.toLowerCase()) { case 'm3u': return 'M3U Playlist'; case 'hdhomerun': diff --git a/src/controllers/livetvstatus.js b/src/controllers/livetvstatus.js index d07b50c04..d771464b1 100644 --- a/src/controllers/livetvstatus.js +++ b/src/controllers/livetvstatus.js @@ -192,7 +192,7 @@ function deleteProvider(page, id) { } function getTunerName(providerId) { - switch (providerId = providerId.toLowerCase()) { + switch (providerId.toLowerCase()) { case 'm3u': return 'M3U'; case 'hdhomerun': @@ -207,7 +207,7 @@ function getTunerName(providerId) { } function getProviderName(providerId) { - switch (providerId = providerId.toLowerCase()) { + switch (providerId.toLowerCase()) { case 'schedulesdirect': return 'Schedules Direct'; case 'xmltv': @@ -218,7 +218,7 @@ function getProviderName(providerId) { } function getProviderConfigurationUrl(providerId) { - switch (providerId = providerId.toLowerCase()) { + switch (providerId.toLowerCase()) { case 'xmltv': return '#/livetvguideprovider.html?type=xmltv'; case 'schedulesdirect': diff --git a/src/libraries/scroller.js b/src/libraries/scroller.js index 26b4a8370..49b84e734 100644 --- a/src/libraries/scroller.js +++ b/src/libraries/scroller.js @@ -459,7 +459,8 @@ const scrollerFactory = function (frame, options) { */ function dragHandler(event) { dragging.released = event.type === 'mouseup' || event.type === 'touchend'; - const pointer = dragging.touch ? event[dragging.released ? 'changedTouches' : 'touches'][0] : event; + const eventName = dragging.released ? 'changedTouches' : 'touches'; + const pointer = dragging.touch ? event[eventName][0] : event; dragging.pathX = pointer.pageX - dragging.initX; dragging.pathY = pointer.pageY - dragging.initY; dragging.path = Math.sqrt(Math.pow(dragging.pathX, 2) + Math.pow(dragging.pathY, 2)); diff --git a/src/scripts/dom.js b/src/scripts/dom.js index 8cc3e7d03..e336088c8 100644 --- a/src/scripts/dom.js +++ b/src/scripts/dom.js @@ -183,9 +183,9 @@ width = height * (16.0 / 9.0); } - return standardWidths.sort(function (a, b) { - return Math.abs(width - a) - Math.abs(width - b); - })[0]; + standardWidths.sort((a, b) => Math.abs(width - a) - Math.abs(width - b)); + + return standardWidths[0]; } /**