diff --git a/README.md b/README.md index fefe130..b1667a1 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,19 @@
-
-
+
+
+
-
-
+
+
+
+
diff --git a/src/plex/plexRepository.js b/src/plex/plexRepository.js
index 4018ce2..3bdc6e5 100644
--- a/src/plex/plexRepository.js
+++ b/src/plex/plexRepository.js
@@ -1,3 +1,4 @@
+const rp = require("request-promise");
const convertPlexToSeasoned = require("./convertPlexToSeasoned");
const convertPlexToStream = require("./convertPlexToStream");
diff --git a/src/request/request.js b/src/request/request.js
index e5a034e..d61f25d 100644
--- a/src/request/request.js
+++ b/src/request/request.js
@@ -33,8 +33,7 @@ class RequestRepository {
// downloaded: "(select status from requests where id is request.id and type is request.type limit 1)",
// deluge: '(select status from deluge_torrent where id is request.id and type is request.type limit 1)',
// fetchAllFilterStatus: 'select * from request where '
- readWithoutUserData:
- "select id, title, year, type, status, date from requests where id is ? and type is ?",
+ // readWithoutUserData: "select id, title, year, type, status, date from requests where id is ? and type is ?",
read: "select id, title, year, type, status, requested_by, ip, date, user_agent from requests where id is ? and type is ?"
};
}
diff --git a/src/tautulli/tautulli.js b/src/tautulli/tautulli.js
index 90b7b29..a40fee2 100644
--- a/src/tautulli/tautulli.js
+++ b/src/tautulli/tautulli.js
@@ -12,6 +12,20 @@ function logTautulliError(error) {
throw new TautulliUnexpectedError(error);
}
+class TautulliUnexpectedError extends Error {
+ constructor(errorMessage) {
+ const message = "Unexpected error fetching from tautulli.";
+ super(message);
+
+ this.statusCode = 500;
+ this.errorMessage = errorMessage;
+ }
+}
+
+function logTautulliError(error) {
+ throw new TautulliUnexpectedError(error);
+}
+
class Tautulli {
constructor(apiKey, ip, port) {
this.apiKey = apiKey;
diff --git a/src/tmdb/tmdb.js b/src/tmdb/tmdb.js
index 054d1e8..df1bb49 100644
--- a/src/tmdb/tmdb.js
+++ b/src/tmdb/tmdb.js
@@ -37,6 +37,44 @@ class TMDBNotReachableError extends Error {
}
}
+const tmdbErrorResponse = (error, type = null) => {
+ if (error.status === 404) {
+ const message = error.response.body.status_message;
+
+ throw new TMDBNotFoundError(`${message.slice(0, -1)} in tmdb.`);
+ } else if (error.status === 401) {
+ throw new TMDBUnauthorizedError(error?.response?.body?.status_message);
+ } else if (error?.code === "ENOTFOUND") {
+ throw new TMDBNotReachableError();
+ }
+}
+
+class TMDBUnauthorizedError extends Error {
+ constructor(message = "TMDB returned access denied, requires api token.") {
+ super(message);
+
+ this.statusCode = 401;
+ }
+}
+
+class TMDBUnexpectedError extends Error {
+ constructor(type, errorMessage) {
+ const message = `An unexpected error occured while fetching ${type} from tmdb`;
+ super(message);
+
+ this.errorMessage = errorMessage;
+ this.statusCode = 500;
+ }
+}
+
+class TMDBNotReachableError extends Error {
+ constructor(
+ message = "TMDB api not reachable, check your internet connection"
+ ) {
+ super(message);
+ }
+}
+
const tmdbErrorResponse = (error, type = null) => {
if (error?.status === 404) {
const message = error?.response?.body?.status_message;
diff --git a/src/webserver/controllers/misc/emoji.js b/src/webserver/controllers/misc/emoji.js
index 5e866a6..fbc7086 100644
--- a/src/webserver/controllers/misc/emoji.js
+++ b/src/webserver/controllers/misc/emoji.js
@@ -1,3 +1,15 @@
+const emojiBlock = {
+ start: 127744,
+ end: 128512
+};
+
+const randomEmoji = () => {
+ const seed = Math.floor(Math.random() * (emojiBlock.end - emojiBlock.start));
+ const code = emojiBlock.start + seed;
+ const hex = `0x${code.toString(16)}`;
+ return String.fromCodePoint(hex);
+};
+
/**
* Controller: Returns a random emoji โจ
* @param {Request} req http request variable
@@ -5,832 +17,9 @@
* @returns {Callback}
*/
function emojiController(req, res) {
- const emojis = [
- /* eslint-disable comma-spacing */
- "๐",
- "๐",
- "๐",
- "๐",
- "โบ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ณ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฃ",
- "๐ข",
- "๐",
- "๐ญ",
- "๐ช",
- "๐ฅ",
- "๐ฐ",
- "๐
",
- "๐",
- "๐ฉ",
- "๐ซ",
- "๐จ",
- "๐ฑ",
- "๐ ",
- "๐ก",
- "๐ค",
- "๐",
- "๐",
- "๐",
- "๐ท",
- "๐",
- "๐ด",
- "๐ต",
- "๐ฒ",
- "๐",
- "๐ฆ",
- "๐ง",
- "๐",
- "๐ฟ",
- "๐ฎ",
- "๐ฌ",
- "๐",
- "๐",
- "๐ฏ",
- "๐ถ",
- "๐",
- "๐",
- "๐",
- "๐ฒ",
- "๐ณ",
- "๐ฎ",
- "๐ท",
- "๐",
- "๐ถ",
- "๐ฆ",
- "๐ง",
- "๐จ",
- "๐ฉ",
- "๐ด",
- "๐ต",
- "๐ฑ",
- "๐ผ",
- "๐ธ",
- "๐บ",
- "๐ธ",
- "๐ป",
- "๐ฝ",
- "๐ผ",
- "๐",
- "๐ฟ",
- "๐น",
- "๐พ",
- "๐น",
- "๐บ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฝ",
- "๐ฉ",
- "๐ฅ",
- "โจ",
- "๐",
- "๐ซ",
- "๐ฅ",
- "๐ข",
- "๐ฆ",
- "๐ง",
- "๐ค",
- "๐จ",
- "๐",
- "๐",
- "๐",
- "๐
",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "โ",
- "โ",
- "๐",
- "โ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "โ",
- "๐",
- "๐ช",
- "๐ถ",
- "๐",
- "๐",
- "๐ซ",
- "๐ช",
- "๐ฌ",
- "๐ญ",
- "๐",
- "๐",
- "๐ฏ",
- "๐",
- "๐
",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐
",
- "๐ฐ",
- "๐",
- "๐",
- "๐",
- "๐ฉ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ก",
- "๐ ",
- "๐ข",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฝ",
- "๐",
- "๐",
- "๐",
- "๐ผ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "โค",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ค",
- "๐ฅ",
- "๐ฌ",
- "๐ฃ",
- "๐ญ",
- "๐ถ",
- "๐บ",
- "๐ฑ",
- "๐ญ",
- "๐น",
- "๐ฐ",
- "๐ธ",
- "๐ฏ",
- "๐จ",
- "๐ป",
- "๐ท",
- "๐ฝ",
- "๐ฎ",
- "๐",
- "๐ต",
- "๐",
- "๐ด",
- "๐",
- "๐",
- "๐ผ",
- "๐ง",
- "๐ฆ",
- "๐ค",
- "๐ฅ",
- "๐ฃ",
- "๐",
- "๐",
- "๐ข",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ ",
- "๐",
- "๐ฌ",
- "๐ณ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐
",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฒ",
- "๐ก",
- "๐",
- "๐ซ",
- "๐ช",
- "๐",
- "๐",
- "๐ฉ",
- "๐พ",
- "๐",
- "๐ธ",
- "๐ท",
- "๐",
- "๐น",
- "๐ป",
- "๐บ",
- "๐",
- "๐",
- "๐",
- "๐ฟ",
- "๐พ",
- "๐",
- "๐ต",
- "๐ด",
- "๐ฒ",
- "๐ณ",
- "๐ฐ",
- "๐ฑ",
- "๐ผ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ ",
- "โญ",
- "โ",
- "โ
",
- "โ",
- "โก",
- "โ",
- "โ",
- "โ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ป",
- "๐
",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฎ",
- "๐ฅ",
- "๐ท",
- "๐น",
- "๐ผ",
- "๐ฟ",
- "๐",
- "๐ฝ",
- "๐พ",
- "๐ป",
- "๐ฑ",
- "โ",
- "๐",
- "๐",
- "๐ ",
- "๐ก",
- "๐บ",
- "๐ป",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ข",
- "๐ฃ",
- "โณ",
- "โ",
- "โฐ",
- "โ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ก",
- "๐ฆ",
- "๐",
- "๐
",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฟ",
- "๐ฝ",
- "๐ง",
- "๐ฉ",
- "๐จ",
- "๐ช",
- "๐ฌ",
- "๐ฃ",
- "๐ซ",
- "๐ช",
- "๐",
- "๐",
- "๐ฐ",
- "๐ด",
- "๐ต",
- "๐ท",
- "๐ถ",
- "๐ณ",
- "๐ธ",
- "๐ฒ",
- "๐ง",
- "๐ฅ",
- "๐ค",
- "โ",
- "๐ฉ",
- "๐จ",
- "๐ฏ",
- "๐ซ",
- "๐ช",
- "๐ฌ",
- "๐ญ",
- "๐ฎ",
- "๐ฆ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐
",
- "๐",
- "๐",
- "๐",
- "๐",
- "โ",
- "๐",
- "๐",
- "โ",
- "โ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฌ",
- "๐ญ",
- "๐ฐ",
- "๐จ",
- "๐ฌ",
- "๐ค",
- "๐ง",
- "๐ผ",
- "๐ต",
- "๐ถ",
- "๐น",
- "๐ป",
- "๐บ",
- "๐ท",
- "๐ธ",
- "๐พ",
- "๐ฎ",
- "๐",
- "๐ด",
- "๐",
- "๐ฒ",
- "๐ฏ",
- "๐",
- "๐",
- "โฝ",
- "โพ",
- "๐พ",
- "๐ฑ",
- "๐",
- "๐ณ",
- "โณ",
- "๐ต",
- "๐ด",
- "๐",
- "๐",
- "๐",
- "๐ฟ",
- "๐",
- "๐",
- "๐",
- "๐ฃ",
- "โ",
- "๐ต",
- "๐ถ",
- "๐ผ",
- "๐บ",
- "๐ป",
- "๐ธ",
- "๐น",
- "๐ท",
- "๐ด",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ค",
- "๐ฑ",
- "๐ฃ",
- "๐ฅ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฒ",
- "๐ข",
- "๐ก",
- "๐ณ",
- "๐",
- "๐ฉ",
- "๐ฎ",
- "๐ฆ",
- "๐จ",
- "๐ง",
- "๐",
- "๐ฐ",
- "๐ช",
- "๐ซ",
- "๐ฌ",
- "๐ญ",
- "๐ฏ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ ",
- "๐",
- "๐
",
- "๐ฝ",
- "๐ ",
- "๐ก",
- "๐ซ",
- "๐ข",
- "๐ฃ",
- "๐ฅ",
- "๐ฆ",
- "๐ช",
- "๐ฉ",
- "๐จ",
- "๐",
- "โช",
- "๐ฌ",
- "๐ค",
- "๐",
- "๐",
- "๐ฏ",
- "๐ฐ",
- "โบ",
- "๐ญ",
- "๐ผ",
- "๐พ",
- "๐ป",
- "๐",
- "๐
",
- "๐",
- "๐ฝ",
- "๐",
- "๐ ",
- "๐ก",
- "โฒ",
- "๐ข",
- "๐ข",
- "โต",
- "๐ค",
- "๐ฃ",
- "โ",
- "๐",
- "โ",
- "๐บ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐
",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐จ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ฒ",
- "๐ก",
- "๐",
- "๐ ",
- "๐",
- "๐",
- "๐",
- "๐ซ",
- "๐ฆ",
- "๐ฅ",
- "โ ",
- "๐ง",
- "๐ฐ",
- "โฝ",
- "๐ฎ",
- "๐ฐ",
- "โจ",
- "๐ฟ",
- "๐ช",
- "๐ญ",
- "๐",
- "๐ฉ",
- "โฌ",
- "โฌ",
- "โฌ
",
- "โก",
- "๐ ",
- "๐ก",
- "๐ค",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "๐",
- "โ",
- "โถ",
- "๐ผ",
- "๐ฝ",
- "โฉ",
- "โช",
- "โน",
- "โช",
- "โฉ",
- "โซ",
- "โฌ",
- "โคต",
- "โคด",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ถ",
- "๐ฆ",
- "๐",
- "๐ฏ",
- "๐ณ",
- "๐ต",
- "๐ด",
- "๐ฒ",
- "๐",
- "๐น",
- "๐บ",
- "๐ถ",
- "๐",
- "๐ป",
- "๐น",
- "๐บ",
- "๐ผ",
- "๐พ",
- "๐ฐ",
- "๐ฎ",
- "๐
ฟ",
- "โฟ",
- "๐ญ",
- "๐ท",
- "๐ธ",
- "๐",
- "โ",
- "๐",
- "๐",
- "๐
",
- "๐",
- "๐",
- "ใ",
- "ใ",
- "๐",
- "๐",
- "๐",
- "๐ซ",
- "๐",
- "๐ต",
- "๐ฏ",
- "๐ฑ",
- "๐ณ",
- "๐ท",
- "๐ธ",
- "โ",
- "โณ",
- "โ",
- "โ",
- "โ
",
- "โด",
- "๐",
- "๐",
- "๐ณ",
- "๐ด",
- "๐
ฐ",
- "๐
ฑ",
- "๐",
- "๐
พ",
- "๐ ",
- "โฟ",
- "โป",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ",
- "๐ฏ",
- "๐ง",
- "๐น",
- "๐ฒ",
- "๐ฑ",
- "ยฉ",
- "ยฎ",
- "โข",
- "ใฝ",
- "ใฐ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "โ",
- "โญ",
- "โ",
- "โ",
- "โ",
- "โ",
- "๐",
- "๐",
- "๐ง",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ ",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐",
- "๐ก",
- "๐ข",
- "๐ฃ",
- "๐ค",
- "๐ฅ",
- "๐ฆ",
- "โ",
- "โ",
- "โ",
- "โ",
- "โ ",
- "โฅ",
- "โฃ",
- "โฆ",
- "๐ฎ",
- "๐ฏ",
- "โ",
- "โ",
- "๐",
- "๐",
- "โฐ",
- "๐ฑ",
- "๐ฒ",
- "๐ณ",
- "โผ",
- "โป",
- "โพ",
- "โฝ",
- "โช",
- "โซ",
- "๐บ",
- "โฌ",
- "โฌ",
- "โซ",
- "โช",
- "๐ด",
- "๐ต",
- "๐ป",
- "๐ถ",
- "๐ท",
- "๐ธ",
- "๐น"
- ];
-
res.send({
success: true,
- emoji: emojis[Math.floor(Math.random() * emojis.length)],
+ emoji: randomEmoji(),
message: "Happy emoji-ing! ๐"
});
}