From 2aace854188e5c0be78cc77050be7cb5aa7cca05 Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Fri, 19 Aug 2022 10:41:44 +0200 Subject: [PATCH] Automaticly fixable eslint issues, mostly 3 -> 2 space indentation --- src/cache/redis.js | 4 +- src/config/environmentVariables.js | 18 ++-- src/config/field.js | 86 ++++++++++--------- src/config/filters.js | 48 +++++------ src/git/gitRepository.js | 9 +- src/media_classes/media.js | 25 +++--- src/media_classes/mediaInfo.js | 22 ++--- src/media_classes/player.js | 16 ++-- src/media_classes/user.js | 8 +- src/notifications/sms.js | 2 +- src/pirate/pirateRepository.js | 4 +- src/plex/convertPlexToSeasoned.js | 8 +- src/plex/mailTemplate.js | 30 +++---- src/plex/plex.js | 40 ++++----- src/plex/plexRepository.js | 4 +- src/plex/requestRepository.js | 4 +- src/plex/stream/convertStreamToPlayback.js | 20 ++--- src/plex/types/episode.js | 6 +- src/plex/types/movie.js | 4 +- src/plex/types/show.js | 2 +- src/request/request.js | 11 +-- src/request/utils.js | 36 +++++--- src/seasoned/stray.js | 6 +- src/seasoned/strayRepository.js | 2 +- src/tmdb/tmdb.js | 18 ++-- src/tmdb/types.js | 12 +-- src/tmdb/types/credits.js | 10 ++- src/tmdb/types/movie.js | 76 +++++++++++++--- src/tmdb/types/releaseDates.js | 58 ++++++++----- src/tmdb/types/show.js | 59 ++++++++++--- src/user/token.js | 6 +- src/user/user.js | 8 +- src/webserver/app.js | 4 +- .../controllers/list/listController.js | 4 +- src/webserver/controllers/movie/credits.js | 9 +- .../controllers/movie/releaseDates.js | 9 +- src/webserver/controllers/person/credits.js | 1 + src/webserver/controllers/person/info.js | 3 +- src/webserver/controllers/pirate/addMagnet.js | 6 +- src/webserver/controllers/plex/hookDump.js | 12 +-- src/webserver/controllers/plex/readRequest.js | 2 +- src/webserver/controllers/plex/search.js | 11 ++- src/webserver/controllers/plex/searchMedia.js | 10 +-- .../controllers/plex/submitRequest.js | 3 +- .../controllers/plex/updateRequested.js | 4 +- .../controllers/plex/watchDirectLink.js | 1 + .../controllers/request/fetchAllRequests.js | 5 +- .../controllers/request/getRequest.js | 3 +- .../controllers/request/requestTmdbId.js | 3 +- .../controllers/search/movieSearch.js | 3 +- .../controllers/search/multiSearch.js | 5 +- .../controllers/search/personSearch.js | 3 +- .../controllers/search/showSearch.js | 3 +- src/webserver/controllers/show/credits.js | 9 +- src/webserver/controllers/show/info.js | 3 +- .../user/authenticatePlexAccount.js | 1 + src/webserver/controllers/user/login.js | 8 +- src/webserver/controllers/user/register.js | 2 +- src/webserver/controllers/user/settings.js | 1 + src/webserver/controllers/user/viewHistory.js | 10 +-- src/webserver/middleware/mustBeAdmin.js | 31 ++++--- .../middleware/mustHaveAccountLinkedToPlex.js | 42 +++++---- 62 files changed, 498 insertions(+), 375 deletions(-) diff --git a/src/cache/redis.js b/src/cache/redis.js index 75e098c..340d884 100644 --- a/src/cache/redis.js +++ b/src/cache/redis.js @@ -21,11 +21,11 @@ try { console.error("Unable to connect to redis, setting up redis-mock."); client = { - get: function () { + get() { console.log("redis-dummy get", arguments[0]); return Promise.resolve(); }, - set: function () { + set() { console.log("redis-dummy set", arguments[0]); return Promise.resolve(); } diff --git a/src/config/environmentVariables.js b/src/config/environmentVariables.js index b7fc3f2..22d467f 100644 --- a/src/config/environmentVariables.js +++ b/src/config/environmentVariables.js @@ -1,15 +1,15 @@ class EnvironmentVariables { - constructor(variables) { - this.variables = variables || process.env; - } + constructor(variables) { + this.variables = variables || process.env; + } - get(variable) { - return this.variables[variable]; - } + get(variable) { + return this.variables[variable]; + } - has(variable) { - return this.get(variable) !== undefined; - } + has(variable) { + return this.get(variable) !== undefined; + } } module.exports = EnvironmentVariables; diff --git a/src/config/field.js b/src/config/field.js index 42eb8cd..546513b 100644 --- a/src/config/field.js +++ b/src/config/field.js @@ -1,49 +1,53 @@ -const Filters = require('./filters.js'); -const EnvironmentVariables = require('./environmentVariables.js'); +const Filters = require("./filters.js"); +const EnvironmentVariables = require("./environmentVariables.js"); class Field { - constructor(rawValue, environmentVariables) { - this.rawValue = rawValue; - this.filters = new Filters(rawValue); - this.valueWithoutFilters = this.filters.removeFiltersFromValue(); - this.environmentVariables = new EnvironmentVariables(environmentVariables); - } - - get value() { - if (this.filters.isEmpty()) { - return this.valueWithoutFilters; - } - - if (this.filters.has('base64') && !this.filters.has('env')) { - return Field.base64Decode(this.valueWithoutFilters); - } - - if (this.environmentVariables.has(this.valueWithoutFilters) && - this.environmentVariables.get(this.valueWithoutFilters) === '') { - return undefined; - } - - if (!this.filters.has('base64') && this.filters.has('env')) { - if (this.environmentVariables.has(this.valueWithoutFilters)) { - return this.environmentVariables.get(this.valueWithoutFilters); - } - return undefined; - } - - if (this.filters.has('env') && this.filters.has('base64')) { - if (this.environmentVariables.has(this.valueWithoutFilters)) { - const encodedEnvironmentVariable = this.environmentVariables.get(this.valueWithoutFilters); - return Field.base64Decode(encodedEnvironmentVariable); - } - return undefined; - } + constructor(rawValue, environmentVariables) { + this.rawValue = rawValue; + this.filters = new Filters(rawValue); + this.valueWithoutFilters = this.filters.removeFiltersFromValue(); + this.environmentVariables = new EnvironmentVariables(environmentVariables); + } + get value() { + if (this.filters.isEmpty()) { return this.valueWithoutFilters; - } + } - static base64Decode(string) { - return new Buffer(string, 'base64').toString('utf-8'); - } + if (this.filters.has("base64") && !this.filters.has("env")) { + return Field.base64Decode(this.valueWithoutFilters); + } + + if ( + this.environmentVariables.has(this.valueWithoutFilters) && + this.environmentVariables.get(this.valueWithoutFilters) === "" + ) { + return undefined; + } + + if (!this.filters.has("base64") && this.filters.has("env")) { + if (this.environmentVariables.has(this.valueWithoutFilters)) { + return this.environmentVariables.get(this.valueWithoutFilters); + } + return undefined; + } + + if (this.filters.has("env") && this.filters.has("base64")) { + if (this.environmentVariables.has(this.valueWithoutFilters)) { + const encodedEnvironmentVariable = this.environmentVariables.get( + this.valueWithoutFilters + ); + return Field.base64Decode(encodedEnvironmentVariable); + } + return undefined; + } + + return this.valueWithoutFilters; + } + + static base64Decode(string) { + return new Buffer(string, "base64").toString("utf-8"); + } } module.exports = Field; diff --git a/src/config/filters.js b/src/config/filters.js index b4ec359..8d5fad1 100644 --- a/src/config/filters.js +++ b/src/config/filters.js @@ -1,34 +1,34 @@ class Filters { - constructor(value) { - this.value = value; - this.delimiter = '|'; - } + constructor(value) { + this.value = value; + this.delimiter = "|"; + } - get filters() { - return this.value.split(this.delimiter).slice(0, -1); - } + get filters() { + return this.value.split(this.delimiter).slice(0, -1); + } - isEmpty() { - return !this.hasValidType() || this.value.length === 0; - } + isEmpty() { + return !this.hasValidType() || this.value.length === 0; + } - has(filter) { - return this.filters.includes(filter); - } + has(filter) { + return this.filters.includes(filter); + } - hasValidType() { - return (typeof this.value === 'string'); - } + hasValidType() { + return typeof this.value === "string"; + } - removeFiltersFromValue() { - if (this.hasValidType() === false) { - return this.value; - } + removeFiltersFromValue() { + if (this.hasValidType() === false) { + return this.value; + } - let filtersCombined = this.filters.join(this.delimiter); - filtersCombined += this.filters.length >= 1 ? this.delimiter : ''; - return this.value.replace(filtersCombined, ''); - } + let filtersCombined = this.filters.join(this.delimiter); + filtersCombined += this.filters.length >= 1 ? this.delimiter : ""; + return this.value.replace(filtersCombined, ""); + } } module.exports = Filters; diff --git a/src/git/gitRepository.js b/src/git/gitRepository.js index 703ce2c..7659561 100644 --- a/src/git/gitRepository.js +++ b/src/git/gitRepository.js @@ -1,9 +1,8 @@ - class GitRepository { - static dumpHook(body) { - /* eslint-disable no-console */ - console.log(body); - } + static dumpHook(body) { + /* eslint-disable no-console */ + console.log(body); + } } module.exports = GitRepository; diff --git a/src/media_classes/media.js b/src/media_classes/media.js index 4ec1627..e68f670 100644 --- a/src/media_classes/media.js +++ b/src/media_classes/media.js @@ -1,19 +1,18 @@ - class Media { - constructor(title, year, type) { - this.title = title; - this.year = year; - this.type = type; - } + constructor(title, year, type) { + this.title = title; + this.year = year; + this.type = type; + } - toString() { - return `N: ${this.title} | Y: ${this.year} | T: ${this.type}`; - } + toString() { + return `N: ${this.title} | Y: ${this.year} | T: ${this.type}`; + } - print() { - /* eslint-disable no-console */ - console.log(this.toString()); - } + print() { + /* eslint-disable no-console */ + console.log(this.toString()); + } } module.exports = Media; diff --git a/src/media_classes/mediaInfo.js b/src/media_classes/mediaInfo.js index 3cbe69d..663bcb8 100644 --- a/src/media_classes/mediaInfo.js +++ b/src/media_classes/mediaInfo.js @@ -1,15 +1,15 @@ class MediaInfo { - constructor() { - this.duration = undefined; - this.height = undefined; - this.width = undefined; - this.bitrate = undefined; - this.resolution = undefined; - this.framerate = undefined; - this.protocol = undefined; - this.container = undefined; - this.audioCodec = undefined; - } + constructor() { + this.duration = undefined; + this.height = undefined; + this.width = undefined; + this.bitrate = undefined; + this.resolution = undefined; + this.framerate = undefined; + this.protocol = undefined; + this.container = undefined; + this.audioCodec = undefined; + } } module.exports = MediaInfo; diff --git a/src/media_classes/player.js b/src/media_classes/player.js index e675f85..6f9a22f 100644 --- a/src/media_classes/player.js +++ b/src/media_classes/player.js @@ -1,12 +1,12 @@ class Player { - constructor(device, address) { - this.device = device; - this.ip = address; - this.platform = undefined; - this.product = undefined; - this.title = undefined; - this.state = undefined; - } + constructor(device, address) { + this.device = device; + this.ip = address; + this.platform = undefined; + this.product = undefined; + this.title = undefined; + this.state = undefined; + } } module.exports = Player; diff --git a/src/media_classes/user.js b/src/media_classes/user.js index fc09d7d..62a5f3e 100644 --- a/src/media_classes/user.js +++ b/src/media_classes/user.js @@ -1,8 +1,8 @@ class User { - constructor(id, title) { - this.id = id; - this.title = title; - } + constructor(id, title) { + this.id = id; + this.title = title; + } } module.exports = User; diff --git a/src/notifications/sms.js b/src/notifications/sms.js index 7e78b05..a56587f 100644 --- a/src/notifications/sms.js +++ b/src/notifications/sms.js @@ -24,7 +24,7 @@ const sendSMS = message => { } }, function (err, r, body) { - console.log(err ? err : body); + console.log(err || body); console.log("sms provider response:", body); resolve(); } diff --git a/src/pirate/pirateRepository.js b/src/pirate/pirateRepository.js index ba01bfa..70a030c 100644 --- a/src/pirate/pirateRepository.js +++ b/src/pirate/pirateRepository.js @@ -92,8 +92,8 @@ async function AddMagnet(magnet, name, tmdb_id) { "INSERT INTO requested_torrent(magnet,torrent_name,tmdb_id) \ VALUES (?,?,?)"; - let response = database.run(insert_query, [magnet, name, tmdb_id]); - console.log("Response from requsted_torrent insert: " + response); + const response = database.run(insert_query, [magnet, name, tmdb_id]); + console.log(`Response from requsted_torrent insert: ${response}`); resolve({ success: true }); }) diff --git a/src/plex/convertPlexToSeasoned.js b/src/plex/convertPlexToSeasoned.js index 148fe7c..40f1dcc 100644 --- a/src/plex/convertPlexToSeasoned.js +++ b/src/plex/convertPlexToSeasoned.js @@ -5,10 +5,10 @@ function translateAdded(date_string) { } function convertPlexToSeasoned(plex) { - const title = plex.title; - const year = plex.year; - const type = plex.type; - const summary = plex.summary; + const { title } = plex; + const { year } = plex; + const { type } = plex; + const { summary } = plex; const poster_path = plex.thumb; const background_path = plex.art; const added = translateAdded(plex.addedAt); diff --git a/src/plex/mailTemplate.js b/src/plex/mailTemplate.js index 64d38a9..fa0a355 100644 --- a/src/plex/mailTemplate.js +++ b/src/plex/mailTemplate.js @@ -1,25 +1,25 @@ class mailTemplate { - constructor(mediaItem) { - this.mediaItem = mediaItem; - this.posterURL = 'https://image.tmdb.org/t/p/w600'; - } + constructor(mediaItem) { + this.mediaItem = mediaItem; + this.posterURL = "https://image.tmdb.org/t/p/w600"; + } - toText() { - return `${this.mediaItem.title} (${this.mediaItem.year})`; // plain text body - } + toText() { + return `${this.mediaItem.title} (${this.mediaItem.year})`; // plain text body + } - toHTML() { - const info = { - name: this.mediaItem.title, - year: `(${this.mediaItem.year})`, - poster: this.posterURL + this.mediaItem.poster, - }; + toHTML() { + const info = { + name: this.mediaItem.title, + year: `(${this.mediaItem.year})`, + poster: this.posterURL + this.mediaItem.poster + }; - return ` + return `

${info.name} ${info.year}

`; - } + } } module.exports = mailTemplate; diff --git a/src/plex/plex.js b/src/plex/plex.js index 159fd00..9108dcb 100644 --- a/src/plex/plex.js +++ b/src/plex/plex.js @@ -11,23 +11,22 @@ const sanitize = string => string.toLowerCase().replace(/[^\w]/gi, ""); function fixedEncodeURIComponent(str) { return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { - return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + return `%${c.charCodeAt(0).toString(16).toUpperCase()}`; }); } const matchingTitleAndYear = (plex, tmdb) => { - let matchingTitle, matchingYear; + let matchingTitle; + let matchingYear; - if (plex["title"] != null && tmdb["title"] != null) { + if (plex.title != null && tmdb.title != null) { const plexTitle = sanitize(plex.title); const tmdbTitle = sanitize(tmdb.title); matchingTitle = plexTitle == tmdbTitle; - matchingTitle = matchingTitle - ? matchingTitle - : plexTitle.startsWith(tmdbTitle); + matchingTitle = matchingTitle || plexTitle.startsWith(tmdbTitle); } else matchingTitle = false; - if (plex["year"] != null && tmdb["year"] != null) + if (plex.year != null && tmdb.year != null) matchingYear = plex.year == tmdb.year; else matchingYear = false; @@ -35,12 +34,12 @@ const matchingTitleAndYear = (plex, tmdb) => { }; const successfullResponse = response => { - if (response && response["MediaContainer"]) return response; + if (response && response.MediaContainer) return response; if ( response == null || - response["status"] == null || - response["statusText"] == null + response.status == null || + response.statusText == null ) { throw Error("Unable to decode response"); } @@ -49,9 +48,8 @@ const successfullResponse = response => { if (status === 200) { return response.json(); - } else { - throw { message: statusText, status: status }; } + throw { message: statusText, status }; }; class Plex { @@ -77,13 +75,13 @@ class Plex { return new Promise((resolve, reject) => this.cache .get(cacheKey) - .then(machineInfo => resolve(machineInfo["machineIdentifier"])) + .then(machineInfo => resolve(machineInfo.machineIdentifier)) .catch(() => fetch(url, options)) .then(response => response.json()) .then(machineInfo => - this.cache.set(cacheKey, machineInfo["MediaContainer"], 2628000) + this.cache.set(cacheKey, machineInfo.MediaContainer, 2628000) ) - .then(machineInfo => resolve(machineInfo["machineIdentifier"])) + .then(machineInfo => resolve(machineInfo.machineIdentifier)) .catch(error => { if (error != undefined && error.type === "request-timeout") { reject({ @@ -104,7 +102,7 @@ class Plex { if (plex == null || tmdb == null) return false; if (plex instanceof Array) { - let possibleMatches = plex.map(plexItem => + const possibleMatches = plex.map(plexItem => matchingTitleAndYear(plexItem, tmdb) ); match = possibleMatches.includes(true); @@ -120,7 +118,7 @@ class Plex { tmdb.title, tmdb.year ); - return plexMatch ? true : false; + return !!plexMatch; } findPlexItemByTitleAndYear(title, year) { @@ -149,7 +147,7 @@ class Plex { if ( matchingObjectInPlex == false || matchingObjectInPlex == null || - matchingObjectInPlex["key"] == null || + matchingObjectInPlex.key == null || machineIdentifier == null ) return false; @@ -227,9 +225,11 @@ class Plex { .map(category => { if (category.type === "movie") { return category.Metadata; - } else if (category.type === "show") { + } + if (category.type === "show") { return category.Metadata.map(convertPlexToShow); - } else if (category.type === "episode") { + } + if (category.type === "episode") { return category.Metadata.map(convertPlexToEpisode); } }) diff --git a/src/plex/plexRepository.js b/src/plex/plexRepository.js index 4433fa2..3bc29ac 100644 --- a/src/plex/plexRepository.js +++ b/src/plex/plexRepository.js @@ -1,6 +1,6 @@ +const rp = require("request-promise"); const convertPlexToSeasoned = require("./convertPlexToSeasoned"); const convertPlexToStream = require("./convertPlexToStream"); -const rp = require("request-promise"); class PlexRepository { constructor(plexIP) { @@ -24,7 +24,7 @@ class PlexRepository { `http://${this.plexIP}:32400/search?query=${queryUri}` ); const options = { - uri: uri, + uri, headers: { Accept: "application/json" }, diff --git a/src/plex/requestRepository.js b/src/plex/requestRepository.js index 357ad40..fcf480e 100644 --- a/src/plex/requestRepository.js +++ b/src/plex/requestRepository.js @@ -56,7 +56,7 @@ class RequestRepository { if (error) { throw new Error(error); } - tmdbMovie.requested = result ? true : false; + tmdbMovie.requested = !!result; return tmdbMovie; }); } @@ -98,7 +98,7 @@ class RequestRepository { type, page ]); - else return this.database.all(this.queries.fetchRequestedItems, page); + return this.database.all(this.queries.fetchRequestedItems, page); }); } diff --git a/src/plex/stream/convertStreamToPlayback.js b/src/plex/stream/convertStreamToPlayback.js index cdabee4..c07d439 100644 --- a/src/plex/stream/convertStreamToPlayback.js +++ b/src/plex/stream/convertStreamToPlayback.js @@ -1,14 +1,14 @@ class convertStreamToPlayback { - constructor(plexStream) { - this.bitrate = plexStream.bitrate; - this.width = plexStream.width; - this.height = plexStream.height; - this.decision = plexStream.decision; - this.audioProfile = plexStream.audioProfile; - this.videoProfile = plexStream.videoProfile; - this.duration = plexStream.duration; - this.container = plexStream.container; - } + constructor(plexStream) { + this.bitrate = plexStream.bitrate; + this.width = plexStream.width; + this.height = plexStream.height; + this.decision = plexStream.decision; + this.audioProfile = plexStream.audioProfile; + this.videoProfile = plexStream.videoProfile; + this.duration = plexStream.duration; + this.container = plexStream.container; + } } module.exports = convertStreamToPlayback; diff --git a/src/plex/types/episode.js b/src/plex/types/episode.js index a99fa8f..69ce4fe 100644 --- a/src/plex/types/episode.js +++ b/src/plex/types/episode.js @@ -8,9 +8,9 @@ class Episode { this.summary = null; this.rating = null; this.views = null; - this.aired = null; - this.type = 'episode'; + this.aired = null; + this.type = "episode"; } } -module.exports = Episode; \ No newline at end of file +module.exports = Episode; diff --git a/src/plex/types/movie.js b/src/plex/types/movie.js index 8a2b6fa..aa62ca6 100644 --- a/src/plex/types/movie.js +++ b/src/plex/types/movie.js @@ -5,8 +5,8 @@ class Movie { this.summary = null; this.rating = null; this.tagline = null; - this.type = 'movie'; + this.type = "movie"; } } -module.exports = Movie; \ No newline at end of file +module.exports = Movie; diff --git a/src/plex/types/show.js b/src/plex/types/show.js index 86c1ef4..426fd7c 100644 --- a/src/plex/types/show.js +++ b/src/plex/types/show.js @@ -9,4 +9,4 @@ class Show { } } -module.exports = Show; \ No newline at end of file +module.exports = Show; diff --git a/src/request/request.js b/src/request/request.js index 97afb05..14ca0dc 100644 --- a/src/request/request.js +++ b/src/request/request.js @@ -1,6 +1,7 @@ const assert = require("assert"); const configuration = require("../config/configuration").getInstance(); const TMDB = require("../tmdb/tmdb"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const establishedDatabase = require("../database/database"); const utils = require("./utils"); @@ -33,7 +34,7 @@ class RequestRepository { } sortAndFilterToDbQuery(by, direction, filter, query) { - let dbQuery = undefined; + let dbQuery; if (query !== undefined) { const dbParams = [query, query]; @@ -87,7 +88,7 @@ class RequestRepository { mapToTmdbByType(rows) { return rows.map(row => { if (row.type === "movie") return tmdb.movieInfo(row.id); - else if (row.type === "show") return tmdb.showInfo(row.id); + if (row.type === "show") return tmdb.showInfo(row.id); }); } @@ -189,9 +190,9 @@ class RequestRepository { .then(async rows => { const sqliteResponse = await this.database.get( fetchTotalResults, - filter ? filter : undefined + filter || undefined ); - const totalRequests = sqliteResponse["totalRequests"]; + const { totalRequests } = sqliteResponse; const totalPages = Math.ceil(totalRequests / 26); return [ @@ -211,7 +212,7 @@ class RequestRepository { Promise.resolve({ results: result, total_results: totalRequests, - page: page, + page, total_pages: totalPages }) ) diff --git a/src/request/utils.js b/src/request/utils.js index 0f92156..6cbe37a 100644 --- a/src/request/utils.js +++ b/src/request/utils.js @@ -1,34 +1,48 @@ // TODO : test title and date are valid matches to columns in the database -const validSortParams = ['title', 'date'] -const validSortDirs = ['asc', 'desc'] -const validFilterParams = ['movie', 'show', 'seeding', 'downloading', 'paused', 'finished', 'downloaded'] +const validSortParams = ["title", "date"]; +const validSortDirs = ["asc", "desc"]; +const validFilterParams = [ + "movie", + "show", + "seeding", + "downloading", + "paused", + "finished", + "downloaded" +]; function validSort(by, direction) { return new Promise((resolve, reject) => { if (by === undefined) { - resolve() + resolve(); } if (validSortParams.includes(by) && validSortDirs.includes(direction)) { - resolve() + resolve(); } else { - reject(new Error(`invalid sort parameter, must be of: ${validSortParams} with optional sort directions: ${validSortDirs} appended with ':'`)) + reject( + new Error( + `invalid sort parameter, must be of: ${validSortParams} with optional sort directions: ${validSortDirs} appended with ':'` + ) + ); } }); } function validFilter(filter_param) { return new Promise((resolve, reject) => { - if (filter_param === undefined) { - resolve() + if (filter_param === undefined) { + resolve(); } if (filter_param && validFilterParams.includes(filter_param)) { - resolve() + resolve(); } else { - reject(new Error(`filter parameteres must be of type: ${validFilterParams}`)) + reject( + new Error(`filter parameteres must be of type: ${validFilterParams}`) + ); } }); } -module.exports = { validSort, validFilter } \ No newline at end of file +module.exports = { validSort, validFilter }; diff --git a/src/seasoned/stray.js b/src/seasoned/stray.js index f33e2ac..c2620fa 100644 --- a/src/seasoned/stray.js +++ b/src/seasoned/stray.js @@ -1,7 +1,7 @@ class Stray { - constructor(id) { - this.id = id; - } + constructor(id) { + this.id = id; + } } module.exports = Stray; diff --git a/src/seasoned/strayRepository.js b/src/seasoned/strayRepository.js index 8474295..9239736 100644 --- a/src/seasoned/strayRepository.js +++ b/src/seasoned/strayRepository.js @@ -1,7 +1,7 @@ const assert = require("assert"); +const pythonShell = require("python-shell"); const Stray = require("./stray"); const establishedDatabase = require("../database/database"); -const pythonShell = require("python-shell"); class StrayRepository { constructor(database) { diff --git a/src/tmdb/tmdb.js b/src/tmdb/tmdb.js index d549d0e..9110167 100644 --- a/src/tmdb/tmdb.js +++ b/src/tmdb/tmdb.js @@ -5,11 +5,11 @@ const { Movie, Show, Person, Credits, ReleaseDates } = require("./types"); const tmdbErrorResponse = (error, typeString = undefined) => { if (error.status === 404) { - let message = error.response.body.status_message; + const message = error.response.body.status_message; throw { status: 404, - message: message.slice(0, -1) + " in tmdb." + message: `${message.slice(0, -1)} in tmdb.` }; } else if (error.status === 401) { throw { @@ -221,7 +221,7 @@ class TMDB { } movieList(listname, page = 1) { - const query = { page: page }; + const query = { page }; const cacheKey = `tmdb/${this.cacheTags[listname]}:${page}`; return this.getFromCacheOrFetchFromTmdb(cacheKey, listname, query) @@ -230,7 +230,7 @@ class TMDB { } showList(listname, page = 1) { - const query = { page: page }; + const query = { page }; const cacheKey = `tmdb/${this.cacheTags[listname]}:${page}`; return this.getFromCacheOrFetchFromTmdb(cacheKey, listName, query) @@ -245,21 +245,23 @@ class TMDB { * @returns {Promise} dict with tmdb results, mapped as movie/show objects. */ mapResults(response, type = undefined) { - let results = response.results.map(result => { + const results = response.results.map(result => { if (type === "movie" || result.media_type === "movie") { const movie = Movie.convertFromTmdbResponse(result); return movie.createJsonResponse(); - } else if (type === "show" || result.media_type === "tv") { + } + if (type === "show" || result.media_type === "tv") { const show = Show.convertFromTmdbResponse(result); return show.createJsonResponse(); - } else if (type === "person" || result.media_type === "person") { + } + if (type === "person" || result.media_type === "person") { const person = Person.convertFromTmdbResponse(result); return person.createJsonResponse(); } }); return { - results: results, + results, page: response.page, total_results: response.total_results, total_pages: response.total_pages diff --git a/src/tmdb/types.js b/src/tmdb/types.js index 0c7ae23..f3a831a 100644 --- a/src/tmdb/types.js +++ b/src/tmdb/types.js @@ -1,7 +1,7 @@ -const Movie = require('./types/movie.js') -const Show = require('./types/show.js') -const Person = require('./types/person.js') -const Credits = require('./types/credits.js') -const ReleaseDates = require('./types/releaseDates.js') +const Movie = require("./types/movie.js"); +const Show = require("./types/show.js"); +const Person = require("./types/person.js"); +const Credits = require("./types/credits.js"); +const ReleaseDates = require("./types/releaseDates.js"); -module.exports = { Movie, Show, Person, Credits, ReleaseDates } +module.exports = { Movie, Show, Person, Credits, ReleaseDates }; diff --git a/src/tmdb/types/credits.js b/src/tmdb/types/credits.js index 0c47e51..b32a557 100644 --- a/src/tmdb/types/credits.js +++ b/src/tmdb/types/credits.js @@ -13,10 +13,11 @@ class Credits { const { id, cast, crew } = response; const allCast = cast.map(cast => { - if (cast["media_type"]) { + if (cast.media_type) { if (cast.media_type === "movie") { return CreditedMovie.convertFromTmdbResponse(cast); - } else if (cast.media_type === "tv") { + } + if (cast.media_type === "tv") { return CreditedShow.convertFromTmdbResponse(cast); } } @@ -31,10 +32,11 @@ class Credits { }); const allCrew = crew.map(crew => { - if (cast["media_type"]) { + if (cast.media_type) { if (cast.media_type === "movie") { return CreditedMovie.convertFromTmdbResponse(cast); - } else if (cast.media_type === "tv") { + } + if (cast.media_type === "tv") { return CreditedShow.convertFromTmdbResponse(cast); } } diff --git a/src/tmdb/types/movie.js b/src/tmdb/types/movie.js index 4663245..09b5816 100644 --- a/src/tmdb/types/movie.js +++ b/src/tmdb/types/movie.js @@ -1,7 +1,20 @@ class Movie { - constructor(id, title, year=undefined, overview=undefined, poster=undefined, backdrop=undefined, - releaseDate=undefined, rating=undefined, genres=undefined, productionStatus=undefined, - tagline=undefined, runtime=undefined, imdb_id=undefined, popularity=undefined) { + constructor( + id, + title, + year = undefined, + overview = undefined, + poster = undefined, + backdrop = undefined, + releaseDate = undefined, + rating = undefined, + genres = undefined, + productionStatus = undefined, + tagline = undefined, + runtime = undefined, + imdb_id = undefined, + popularity = undefined + ) { this.id = id; this.title = title; this.year = year; @@ -16,27 +29,66 @@ class Movie { this.runtime = runtime; this.imdb_id = imdb_id; this.popularity = popularity; - this.type = 'movie'; + this.type = "movie"; } static convertFromTmdbResponse(response) { - const { id, title, release_date, overview, poster_path, backdrop_path, vote_average, genres, status, - tagline, runtime, imdb_id, popularity } = response; + const { + id, + title, + release_date, + overview, + poster_path, + backdrop_path, + vote_average, + genres, + status, + tagline, + runtime, + imdb_id, + popularity + } = response; const releaseDate = new Date(release_date); const year = releaseDate.getFullYear(); - const genreNames = genres ? genres.map(g => g.name) : undefined + const genreNames = genres ? genres.map(g => g.name) : undefined; - return new Movie(id, title, year, overview, poster_path, backdrop_path, releaseDate, vote_average, genreNames, status, - tagline, runtime, imdb_id, popularity) + return new Movie( + id, + title, + year, + overview, + poster_path, + backdrop_path, + releaseDate, + vote_average, + genreNames, + status, + tagline, + runtime, + imdb_id, + popularity + ); } static convertFromPlexResponse(response) { // console.log('response', response) const { title, year, rating, tagline, summary } = response; - const _ = undefined + const _ = undefined; - return new Movie(null, title, year, summary, _, _, _, rating, _, _, tagline) + return new Movie( + null, + title, + year, + summary, + _, + _, + _, + rating, + _, + _, + tagline + ); } createJsonResponse() { @@ -55,7 +107,7 @@ class Movie { runtime: this.runtime, imdb_id: this.imdb_id, type: this.type - } + }; } } diff --git a/src/tmdb/types/releaseDates.js b/src/tmdb/types/releaseDates.js index 340479e..02b6a4a 100644 --- a/src/tmdb/types/releaseDates.js +++ b/src/tmdb/types/releaseDates.js @@ -1,4 +1,4 @@ -class ReleaseDates { +class ReleaseDates { constructor(id, releases) { this.id = id; this.releases = releases; @@ -7,24 +7,35 @@ class ReleaseDates { static convertFromTmdbResponse(response) { const { id, results } = response; - const releases = results.map(countryRelease => - new Release( - countryRelease.iso_3166_1, - countryRelease.release_dates.map(rd => new ReleaseDate(rd.certification, rd.iso_639_1, rd.release_date, rd.type, rd.note)) - )) + const releases = results.map( + countryRelease => + new Release( + countryRelease.iso_3166_1, + countryRelease.release_dates.map( + rd => + new ReleaseDate( + rd.certification, + rd.iso_639_1, + rd.release_date, + rd.type, + rd.note + ) + ) + ) + ); - return new ReleaseDates(id, releases) + return new ReleaseDates(id, releases); } createJsonResponse() { return { id: this.id, results: this.releases.map(release => release.createJsonResponse()) - } + }; } } -class Release { +class Release { constructor(country, releaseDates) { this.country = country; this.releaseDates = releaseDates; @@ -33,8 +44,10 @@ class Release { createJsonResponse() { return { country: this.country, - release_dates: this.releaseDates.map(releaseDate => releaseDate.createJsonResponse()) - } + release_dates: this.releaseDates.map(releaseDate => + releaseDate.createJsonResponse() + ) + }; } } @@ -49,19 +62,18 @@ class ReleaseDate { releaseTypeLookup(releaseTypeKey) { const releaseTypeEnum = { - 1: 'Premier', - 2: 'Limited theatrical', - 3: 'Theatrical', - 4: 'Digital', - 5: 'Physical', - 6: 'TV' - } + 1: "Premier", + 2: "Limited theatrical", + 3: "Theatrical", + 4: "Digital", + 5: "Physical", + 6: "TV" + }; if (releaseTypeKey <= Object.keys(releaseTypeEnum).length) { - return releaseTypeEnum[releaseTypeKey] - } else { - // TODO log | Release type not defined, does this need updating? - return null + return releaseTypeEnum[releaseTypeKey]; } + // TODO log | Release type not defined, does this need updating? + return null; } createJsonResponse() { @@ -71,7 +83,7 @@ class ReleaseDate { release_date: this.releaseDate, type: this.type, note: this.note - } + }; } } diff --git a/src/tmdb/types/show.js b/src/tmdb/types/show.js index 176c59a..995a4de 100644 --- a/src/tmdb/types/show.js +++ b/src/tmdb/types/show.js @@ -1,7 +1,18 @@ class Show { - constructor(id, title, year=undefined, overview=undefined, poster=undefined, backdrop=undefined, - seasons=undefined, episodes=undefined, rank=undefined, genres=undefined, status=undefined, - runtime=undefined) { + constructor( + id, + title, + year = undefined, + overview = undefined, + poster = undefined, + backdrop = undefined, + seasons = undefined, + episodes = undefined, + rank = undefined, + genres = undefined, + status = undefined, + runtime = undefined + ) { this.id = id; this.title = title; this.year = year; @@ -14,18 +25,44 @@ class Show { this.genres = genres; this.productionStatus = status; this.runtime = runtime; - this.type = 'show'; + this.type = "show"; } static convertFromTmdbResponse(response) { - const { id, name, first_air_date, overview, poster_path, backdrop_path, number_of_seasons, number_of_episodes, - rank, genres, status, episode_run_time, popularity } = response; + const { + id, + name, + first_air_date, + overview, + poster_path, + backdrop_path, + number_of_seasons, + number_of_episodes, + rank, + genres, + status, + episode_run_time, + popularity + } = response; - const year = new Date(first_air_date).getFullYear() - const genreNames = genres ? genres.map(g => g.name) : undefined + const year = new Date(first_air_date).getFullYear(); + const genreNames = genres ? genres.map(g => g.name) : undefined; - return new Show(id, name, year, overview, poster_path, backdrop_path, number_of_seasons, number_of_episodes, - rank, genreNames, status, episode_run_time, popularity) + return new Show( + id, + name, + year, + overview, + poster_path, + backdrop_path, + number_of_seasons, + number_of_episodes, + rank, + genreNames, + status, + episode_run_time, + popularity + ); } createJsonResponse() { @@ -43,7 +80,7 @@ class Show { production_status: this.productionStatus, runtime: this.runtime, type: this.type - } + }; } } diff --git a/src/user/token.js b/src/user/token.js index d99baac..3f80aad 100644 --- a/src/user/token.js +++ b/src/user/token.js @@ -1,5 +1,5 @@ -const User = require("./user"); const jwt = require("jsonwebtoken"); +const User = require("./user"); class Token { constructor(user, admin = false, settings = null) { @@ -16,8 +16,8 @@ class Token { toString(secret) { const { user, admin, settings } = this; - let data = { username: user.username, settings }; - if (admin) data["admin"] = admin; + const data = { username: user.username, settings }; + if (admin) data.admin = admin; return jwt.sign(data, secret, { expiresIn: "90d" }); } diff --git a/src/user/user.js b/src/user/user.js index bdf326a..0c24602 100644 --- a/src/user/user.js +++ b/src/user/user.js @@ -1,8 +1,8 @@ class User { - constructor(username, email=undefined) { - this.username = username; - this.email = email; - } + constructor(username, email = undefined) { + this.username = username; + this.email = email; + } } module.exports = User; diff --git a/src/webserver/app.js b/src/webserver/app.js index 270c9ff..e184f5c 100644 --- a/src/webserver/app.js +++ b/src/webserver/app.js @@ -59,7 +59,7 @@ router.get("/", (req, res) => { app.use(Raven.errorHandler()); app.use((err, req, res, next) => { res.statusCode = 500; - res.end(res.sentry + "\n"); + res.end(`${res.sentry}\n`); }); /** @@ -68,6 +68,7 @@ app.use((err, req, res, next) => { router.post("/v1/user", require("./controllers/user/register.js")); router.post("/v1/user/login", require("./controllers/user/login.js")); router.post("/v1/user/logout", require("./controllers/user/logout.js")); + router.get( "/v1/user/settings", mustBeAuthenticated, @@ -88,6 +89,7 @@ router.get( mustBeAuthenticated, require("./controllers/user/requests.js") ); + router.post( "/v1/user/link_plex", mustBeAuthenticated, diff --git a/src/webserver/controllers/list/listController.js b/src/webserver/controllers/list/listController.js index 9ec287e..9557099 100644 --- a/src/webserver/controllers/list/listController.js +++ b/src/webserver/controllers/list/listController.js @@ -1,5 +1,6 @@ const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); // there should be a translate function from query params to @@ -39,7 +40,8 @@ function fetchTmdbList(req, res, listname, type) { .movieList(listname, page) .then(listResponse => res.send(listResponse)) .catch(error => handleError(error, res)); - } else if (type === "show") { + } + if (type === "show") { return tmdb .showList(listname, page) .then(listResponse => res.send(listResponse)) diff --git a/src/webserver/controllers/movie/credits.js b/src/webserver/controllers/movie/credits.js index a33b2fa..f8ec6c1 100644 --- a/src/webserver/controllers/movie/credits.js +++ b/src/webserver/controllers/movie/credits.js @@ -17,12 +17,9 @@ const movieCreditsController = (req, res) => { } else { // TODO log unhandled errors console.log("caugth movie credits controller error", error); - res - .status(500) - .send({ - message: - "An unexpected error occured while requesting movie credits" - }); + res.status(500).send({ + message: "An unexpected error occured while requesting movie credits" + }); } }); }; diff --git a/src/webserver/controllers/movie/releaseDates.js b/src/webserver/controllers/movie/releaseDates.js index d8eb2e0..84bd43b 100644 --- a/src/webserver/controllers/movie/releaseDates.js +++ b/src/webserver/controllers/movie/releaseDates.js @@ -17,12 +17,9 @@ const movieReleaseDatesController = (req, res) => { } else { // TODO log unhandled errors : here our at tmdbReleaseError ? console.log("caugth release dates controller error", error); - res - .status(500) - .send({ - message: - "An unexpected error occured while requesting movie credits" - }); + res.status(500).send({ + message: "An unexpected error occured while requesting movie credits" + }); } }); }; diff --git a/src/webserver/controllers/person/credits.js b/src/webserver/controllers/person/credits.js index 91a79e5..19eb5c2 100644 --- a/src/webserver/controllers/person/credits.js +++ b/src/webserver/controllers/person/credits.js @@ -1,5 +1,6 @@ const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const personCreditsController = (req, res) => { diff --git a/src/webserver/controllers/person/info.js b/src/webserver/controllers/person/info.js index be1dad0..87c91ff 100644 --- a/src/webserver/controllers/person/info.js +++ b/src/webserver/controllers/person/info.js @@ -1,5 +1,6 @@ const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); function handleError(error, res) { @@ -31,7 +32,7 @@ async function personInfoController(req, res) { ? (credits = true) : (credits = false); - let tmdbQueue = [tmdb.personInfo(personId)]; + const tmdbQueue = [tmdb.personInfo(personId)]; if (credits) tmdbQueue.push(tmdb.personCredits(personId)); try { diff --git a/src/webserver/controllers/pirate/addMagnet.js b/src/webserver/controllers/pirate/addMagnet.js index 0ce38d0..7dfbbdd 100644 --- a/src/webserver/controllers/pirate/addMagnet.js +++ b/src/webserver/controllers/pirate/addMagnet.js @@ -8,9 +8,9 @@ const PirateRepository = require("../../../pirate/pirateRepository"); function addMagnet(req, res) { - const magnet = req.body.magnet; - const name = req.body.name; - const tmdb_id = req.body.tmdb_id; + const { magnet } = req.body; + const { name } = req.body; + const { tmdb_id } = req.body; PirateRepository.AddMagnet(magnet, name, tmdb_id) .then(result => { diff --git a/src/webserver/controllers/plex/hookDump.js b/src/webserver/controllers/plex/hookDump.js index 82d4e69..15682a0 100644 --- a/src/webserver/controllers/plex/hookDump.js +++ b/src/webserver/controllers/plex/hookDump.js @@ -1,12 +1,12 @@ /* -* @Author: KevinMidboe -* @Date: 2017-05-03 23:26:46 -* @Last Modified by: KevinMidboe -* @Last Modified time: 2018-02-06 20:54:22 -*/ + * @Author: KevinMidboe + * @Date: 2017-05-03 23:26:46 + * @Last Modified by: KevinMidboe + * @Last Modified time: 2018-02-06 20:54:22 + */ function hookDumpController(req, res) { - console.log(req); + console.log(req); } module.exports = hookDumpController; diff --git a/src/webserver/controllers/plex/readRequest.js b/src/webserver/controllers/plex/readRequest.js index db29647..04d8c98 100644 --- a/src/webserver/controllers/plex/readRequest.js +++ b/src/webserver/controllers/plex/readRequest.js @@ -9,7 +9,7 @@ const requestRepository = new RequestRepository(); * @returns {Callback} */ function readRequestController(req, res) { - const mediaId = req.params.mediaId; + const { mediaId } = req.params; const { type } = req.query; requestRepository .lookup(mediaId, type) diff --git a/src/webserver/controllers/plex/search.js b/src/webserver/controllers/plex/search.js index 0d7b577..50162e9 100644 --- a/src/webserver/controllers/plex/search.js +++ b/src/webserver/controllers/plex/search.js @@ -1,5 +1,6 @@ const configuration = require("../../../config/configuration").getInstance(); const Plex = require("../../../plex/plex"); + const plex = new Plex(configuration.get("plex", "ip")); /** @@ -16,12 +17,10 @@ function searchPlexController(req, res) { if (movies.length > 0) { res.send(movies); } else { - res - .status(404) - .send({ - success: false, - message: "Search query did not give any results from plex." - }); + res.status(404).send({ + success: false, + message: "Search query did not give any results from plex." + }); } }) .catch(error => { diff --git a/src/webserver/controllers/plex/searchMedia.js b/src/webserver/controllers/plex/searchMedia.js index c4d9698..d64cefe 100644 --- a/src/webserver/controllers/plex/searchMedia.js +++ b/src/webserver/controllers/plex/searchMedia.js @@ -19,12 +19,10 @@ function searchMediaController(req, res) { if (media !== undefined || media.length > 0) { res.send(media); } else { - res - .status(404) - .send({ - success: false, - message: "Search query did not return any results." - }); + res.status(404).send({ + success: false, + message: "Search query did not return any results." + }); } }) .catch(error => { diff --git a/src/webserver/controllers/plex/submitRequest.js b/src/webserver/controllers/plex/submitRequest.js index 2d78018..c06083a 100644 --- a/src/webserver/controllers/plex/submitRequest.js +++ b/src/webserver/controllers/plex/submitRequest.js @@ -1,6 +1,7 @@ const configuration = require("../../../config/configuration").getInstance(); const RequestRepository = require("../../../request/request"); const TMDB = require("../../../tmdb/tmdb"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const request = new RequestRepository(); @@ -26,7 +27,7 @@ function submitRequestController(req, res) { const user_agent = req.headers["user-agent"]; const username = req.loggedInUser ? req.loggedInUser.username : null; - let mediaFunction = undefined; + let mediaFunction; if (type === "movie") { console.log("movie"); diff --git a/src/webserver/controllers/plex/updateRequested.js b/src/webserver/controllers/plex/updateRequested.js index 3194a03..0fd4b18 100644 --- a/src/webserver/controllers/plex/updateRequested.js +++ b/src/webserver/controllers/plex/updateRequested.js @@ -10,8 +10,8 @@ const requestRepository = new RequestRepository(); */ function updateRequested(req, res) { const id = req.params.requestId; - const type = req.body.type; - const status = req.body.status; + const { type } = req.body; + const { status } = req.body; requestRepository .updateRequestedById(id, type, status) diff --git a/src/webserver/controllers/plex/watchDirectLink.js b/src/webserver/controllers/plex/watchDirectLink.js index a56f85d..13c4eb1 100644 --- a/src/webserver/controllers/plex/watchDirectLink.js +++ b/src/webserver/controllers/plex/watchDirectLink.js @@ -1,5 +1,6 @@ const configuration = require("../../../config/configuration").getInstance(); const Plex = require("../../../plex/plex"); + const plex = new Plex(configuration.get("plex", "ip")); /** diff --git a/src/webserver/controllers/request/fetchAllRequests.js b/src/webserver/controllers/request/fetchAllRequests.js index 7679169..c6f8ae2 100644 --- a/src/webserver/controllers/request/fetchAllRequests.js +++ b/src/webserver/controllers/request/fetchAllRequests.js @@ -1,4 +1,5 @@ const RequestRepository = require("../../../request/request"); + const request = new RequestRepository(); /** @@ -8,9 +9,9 @@ const request = new RequestRepository(); * @returns {Callback} */ function fetchAllRequests(req, res) { - let { page, filter, sort, query } = req.query; + const { page, filter, sort, query } = req.query; let sort_by = sort; - let sort_direction = undefined; + let sort_direction; if (sort !== undefined && sort.includes(":")) { [sort_by, sort_direction] = sort.split(":"); diff --git a/src/webserver/controllers/request/getRequest.js b/src/webserver/controllers/request/getRequest.js index 9167e95..ec79520 100644 --- a/src/webserver/controllers/request/getRequest.js +++ b/src/webserver/controllers/request/getRequest.js @@ -1,4 +1,5 @@ const RequestRepository = require("../../../request/request"); + const request = new RequestRepository(); /** @@ -8,7 +9,7 @@ const request = new RequestRepository(); * @returns {Callback} */ function fetchAllRequests(req, res) { - const id = req.params.id; + const { id } = req.params; const { type } = req.query; request diff --git a/src/webserver/controllers/request/requestTmdbId.js b/src/webserver/controllers/request/requestTmdbId.js index a4e6185..139e560 100644 --- a/src/webserver/controllers/request/requestTmdbId.js +++ b/src/webserver/controllers/request/requestTmdbId.js @@ -1,6 +1,7 @@ const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); const RequestRepository = require("../../../request/request"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const request = new RequestRepository(); // const { sendSMS } = require("src/notifications/sms"); @@ -26,7 +27,7 @@ function requestTmdbIdController(req, res) { const user_agent = req.headers["user-agent"]; const username = req.loggedInUser ? req.loggedInUser.username : null; - let mediaFunction = undefined; + let mediaFunction; if (id === undefined || type === undefined) { res.status(422).send({ diff --git a/src/webserver/controllers/search/movieSearch.js b/src/webserver/controllers/search/movieSearch.js index bfee6d1..3fa329d 100644 --- a/src/webserver/controllers/search/movieSearch.js +++ b/src/webserver/controllers/search/movieSearch.js @@ -1,6 +1,7 @@ const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); const SearchHistory = require("../../../searchHistory/searchHistory"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const searchHistory = new SearchHistory(); @@ -13,7 +14,7 @@ const searchHistory = new SearchHistory(); function movieSearchController(req, res) { const { query, page, adult } = req.query; const username = req.loggedInUser ? req.loggedInUser.username : null; - const includeAdult = adult == "true" ? true : false; + const includeAdult = adult == "true"; if (username) { searchHistory.create(username, query); diff --git a/src/webserver/controllers/search/multiSearch.js b/src/webserver/controllers/search/multiSearch.js index db977c7..5172612 100644 --- a/src/webserver/controllers/search/multiSearch.js +++ b/src/webserver/controllers/search/multiSearch.js @@ -1,11 +1,12 @@ -const configuration = require("../../..//config/configuration").getInstance(); +const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); const SearchHistory = require("../../../searchHistory/searchHistory"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const searchHistory = new SearchHistory(); function checkAndCreateJsonResponse(result) { - if (typeof result["createJsonResponse"] === "function") { + if (typeof result.createJsonResponse === "function") { return result.createJsonResponse(); } return result; diff --git a/src/webserver/controllers/search/personSearch.js b/src/webserver/controllers/search/personSearch.js index dbd11c1..4a3699f 100644 --- a/src/webserver/controllers/search/personSearch.js +++ b/src/webserver/controllers/search/personSearch.js @@ -1,6 +1,7 @@ const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); const SearchHistory = require("../../../searchHistory/searchHistory"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const searchHistory = new SearchHistory(); @@ -13,7 +14,7 @@ const searchHistory = new SearchHistory(); function personSearchController(req, res) { const { query, page, adult } = req.query; const username = req.loggedInUser ? req.loggedInUser.username : null; - const includeAdult = adult == "true" ? true : false; + const includeAdult = adult == "true"; if (username) { searchHistory.create(username, query); diff --git a/src/webserver/controllers/search/showSearch.js b/src/webserver/controllers/search/showSearch.js index cd420c4..2566010 100644 --- a/src/webserver/controllers/search/showSearch.js +++ b/src/webserver/controllers/search/showSearch.js @@ -1,6 +1,7 @@ const SearchHistory = require("../../../searchHistory/searchHistory"); const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const searchHistory = new SearchHistory(); @@ -13,7 +14,7 @@ const searchHistory = new SearchHistory(); function showSearchController(req, res) { const { query, page, adult } = req.query; const username = req.loggedInUser ? req.loggedInUser.username : null; - const includeAdult = adult == "true" ? true : false; + const includeAdult = adult == "true"; if (username) { searchHistory.create(username, query); diff --git a/src/webserver/controllers/show/credits.js b/src/webserver/controllers/show/credits.js index b7014a5..f381efd 100644 --- a/src/webserver/controllers/show/credits.js +++ b/src/webserver/controllers/show/credits.js @@ -1,5 +1,6 @@ const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const showCreditsController = (req, res) => { @@ -16,11 +17,9 @@ const showCreditsController = (req, res) => { } else { // TODO log unhandled errors console.log("caugth show credits controller error", error); - res - .status(500) - .send({ - message: "An unexpected error occured while requesting show credits" - }); + res.status(500).send({ + message: "An unexpected error occured while requesting show credits" + }); } }); }; diff --git a/src/webserver/controllers/show/info.js b/src/webserver/controllers/show/info.js index 322c381..9ae9e58 100644 --- a/src/webserver/controllers/show/info.js +++ b/src/webserver/controllers/show/info.js @@ -1,6 +1,7 @@ const configuration = require("../../../config/configuration").getInstance(); const TMDB = require("../../../tmdb/tmdb"); const Plex = require("../../../plex/plex"); + const tmdb = new TMDB(configuration.get("tmdb", "apiKey")); const plex = new Plex(configuration.get("plex", "ip")); @@ -35,7 +36,7 @@ async function showInfoController(req, res) { ? (check_existance = true) : (check_existance = false); - let tmdbQueue = [tmdb.showInfo(showId)]; + const tmdbQueue = [tmdb.showInfo(showId)]; if (credits) tmdbQueue.push(tmdb.showCredits(showId)); try { diff --git a/src/webserver/controllers/user/authenticatePlexAccount.js b/src/webserver/controllers/user/authenticatePlexAccount.js index 19a2749..4e5a09c 100644 --- a/src/webserver/controllers/user/authenticatePlexAccount.js +++ b/src/webserver/controllers/user/authenticatePlexAccount.js @@ -1,4 +1,5 @@ const UserRepository = require("../../../user/userRepository"); + const userRepository = new UserRepository(); const fetch = require("node-fetch"); const FormData = require("form-data"); diff --git a/src/webserver/controllers/user/login.js b/src/webserver/controllers/user/login.js index c0098ca..0438a89 100644 --- a/src/webserver/controllers/user/login.js +++ b/src/webserver/controllers/user/login.js @@ -27,7 +27,7 @@ const cookieOptions = { */ async function loginController(req, res) { const user = new User(req.body.username); - const password = req.body.password; + const { password } = req.body; try { const [loggedIn, isAdmin, settings] = await Promise.all([ @@ -43,11 +43,7 @@ async function loginController(req, res) { }); } - const token = new Token( - user, - isAdmin === 1 ? true : false, - settings - ).toString(secret); + const token = new Token(user, isAdmin === 1, settings).toString(secret); return res.cookie("authorization", token, cookieOptions).status(200).send({ success: true, diff --git a/src/webserver/controllers/user/register.js b/src/webserver/controllers/user/register.js index e3a5d71..2c36f4e 100644 --- a/src/webserver/controllers/user/register.js +++ b/src/webserver/controllers/user/register.js @@ -24,7 +24,7 @@ const cookieOptions = { */ function registerController(req, res) { const user = new User(req.body.username, req.body.email); - const password = req.body.password; + const { password } = req.body; userSecurity .createNewUser(user, password) diff --git a/src/webserver/controllers/user/settings.js b/src/webserver/controllers/user/settings.js index b69b322..caf55f8 100644 --- a/src/webserver/controllers/user/settings.js +++ b/src/webserver/controllers/user/settings.js @@ -1,4 +1,5 @@ const UserRepository = require("../../../user/userRepository"); + const userRepository = new UserRepository(); /** * Controller: Retrieves settings of a logged in user diff --git a/src/webserver/controllers/user/viewHistory.js b/src/webserver/controllers/user/viewHistory.js index 8a5334e..99725e5 100644 --- a/src/webserver/controllers/user/viewHistory.js +++ b/src/webserver/controllers/user/viewHistory.js @@ -1,5 +1,6 @@ const configuration = require("../../../config/configuration").getInstance(); const Tautulli = require("../../../tautulli/tautulli"); + const apiKey = configuration.get("tautulli", "apiKey"); const ip = configuration.get("tautulli", "ip"); const port = configuration.get("tautulli", "port"); @@ -10,12 +11,11 @@ function handleError(error, res) { if (status && message) { return res.status(status).send({ success: false, message }); - } else { - console.log("caught view history controller error", error); - return res.status(500).send({ - message: "An unexpected error occured while fetching view history" - }); } + console.log("caught view history controller error", error); + return res.status(500).send({ + message: "An unexpected error occured while fetching view history" + }); } function watchTimeStatsController(req, res) { diff --git a/src/webserver/middleware/mustBeAdmin.js b/src/webserver/middleware/mustBeAdmin.js index be516c6..4ee3bb6 100644 --- a/src/webserver/middleware/mustBeAdmin.js +++ b/src/webserver/middleware/mustBeAdmin.js @@ -1,29 +1,28 @@ const establishedDatabase = require("../../database/database"); const mustBeAdmin = (req, res, next) => { - let database = establishedDatabase; + const database = establishedDatabase; if (req.loggedInUser === undefined) { return res.status(401).send({ success: false, message: "You must be logged in." }); - } else { - database - .get( - `SELECT admin FROM user WHERE user_name IS ?`, - req.loggedInUser.username - ) - .then(isAdmin => { - console.log(isAdmin, req.loggedInUser); - if (isAdmin.admin == 0) { - return res.status(401).send({ - success: false, - message: "You must be logged in as a admin." - }); - } - }); } + database + .get( + `SELECT admin FROM user WHERE user_name IS ?`, + req.loggedInUser.username + ) + .then(isAdmin => { + console.log(isAdmin, req.loggedInUser); + if (isAdmin.admin == 0) { + return res.status(401).send({ + success: false, + message: "You must be logged in as a admin." + }); + } + }); return next(); }; diff --git a/src/webserver/middleware/mustHaveAccountLinkedToPlex.js b/src/webserver/middleware/mustHaveAccountLinkedToPlex.js index d3413d0..c1ce4a5 100644 --- a/src/webserver/middleware/mustHaveAccountLinkedToPlex.js +++ b/src/webserver/middleware/mustHaveAccountLinkedToPlex.js @@ -1,35 +1,33 @@ const establishedDatabase = require("../../database/database"); const mustHaveAccountLinkedToPlex = (req, res, next) => { - let database = establishedDatabase; - const loggedInUser = req.loggedInUser; + const database = establishedDatabase; + const { loggedInUser } = req; if (loggedInUser === undefined) { return res.status(401).send({ success: false, message: "You must have your account linked to a plex account." }); - } else { - database - .get( - `SELECT plex_userid FROM settings WHERE user_name IS ?`, - loggedInUser.username - ) - .then(row => { - const plex_userid = row.plex_userid; - - if (plex_userid === null || plex_userid === undefined) { - return res.status(403).send({ - success: false, - message: - "No plex account user id found for your user. Please authenticate your plex account at /user/authenticate." - }); - } else { - req.loggedInUser.plex_userid = plex_userid; - return next(); - } - }); } + database + .get( + `SELECT plex_userid FROM settings WHERE user_name IS ?`, + loggedInUser.username + ) + .then(row => { + const { plex_userid } = row; + + if (plex_userid === null || plex_userid === undefined) { + return res.status(403).send({ + success: false, + message: + "No plex account user id found for your user. Please authenticate your plex account at /user/authenticate." + }); + } + req.loggedInUser.plex_userid = plex_userid; + return next(); + }); }; module.exports = mustHaveAccountLinkedToPlex;