From dcf62fe651497fe627021abe4c71a00ab3f6e55c Mon Sep 17 00:00:00 2001 From: iPromKnight Date: Tue, 6 Feb 2024 11:17:46 +0000 Subject: [PATCH] expand boolean helpers to support more than just true and false --- .../src/lib/helpers/boolean_helpers.ts | 40 +++++++++++++++++-- src/node/consumer/src/lib/torrentEntries.js | 2 +- 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/src/node/consumer/src/lib/helpers/boolean_helpers.ts b/src/node/consumer/src/lib/helpers/boolean_helpers.ts index 6d5d785..cd66b22 100644 --- a/src/node/consumer/src/lib/helpers/boolean_helpers.ts +++ b/src/node/consumer/src/lib/helpers/boolean_helpers.ts @@ -1,8 +1,40 @@ export const BooleanHelpers = { - parseBool: function(value: string | undefined, defaultValue: boolean) { - if (value === undefined) { - return defaultValue; + parseBool: function(value: string | number | undefined, defaultValue: boolean): boolean { + switch (typeof value) { + case 'string': + return parseStringToBool(value, defaultValue); + case 'boolean': + return value; + case 'number': + return parseNumberToBool(value, defaultValue); + default: + return defaultValue; } - return value.toLowerCase().trim() === 'true'; + } +} + +const parseStringToBool = (input: string, defaultVal: boolean): boolean => { + switch (input.toLowerCase().trim()) { + case 'true': + case 'yes': + case '1': + return true; + case 'false': + case 'no': + case '0': + return false; + default: + return defaultVal + } +} + +const parseNumberToBool = (input: number, defaultVal: boolean): boolean => { + switch (input) { + case 1: + return true; + case 0: + return false; + default: + return defaultVal; } } \ No newline at end of file diff --git a/src/node/consumer/src/lib/torrentEntries.js b/src/node/consumer/src/lib/torrentEntries.js index c72bb17..0108e61 100644 --- a/src/node/consumer/src/lib/torrentEntries.js +++ b/src/node/consumer/src/lib/torrentEntries.js @@ -8,7 +8,7 @@ import { parsingService } from './services/parsing_service'; import { torrentFileService } from './services/torrent_file_service'; import { torrentSubtitleService } from './services/torrent_subtitle_service'; -export async function createTorrentEntry(torrent, overwrite = false) : Promise { +export async function createTorrentEntry(torrent, overwrite = false) { const titleInfo = parse(torrent.title); if (!torrent.imdbId && torrent.type !== TorrentType.Anime) {