From f32ef8b4ab29f5edc5e5885ee88cd836b16f33e1 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Thu, 16 Jan 2025 16:25:13 +0000 Subject: [PATCH] feat: add personal stream identification to formatters and wrappers --- packages/formatters/src/gdrive.ts | 2 +- packages/formatters/src/torbox.ts | 2 +- packages/formatters/src/torrentio.ts | 2 +- packages/types/src/types.ts | 1 + packages/wrappers/src/base.ts | 4 +++- packages/wrappers/src/torbox.ts | 12 +++++++++++- 6 files changed, 18 insertions(+), 5 deletions(-) diff --git a/packages/formatters/src/gdrive.ts b/packages/formatters/src/gdrive.ts index a7e6acae..822cb03c 100644 --- a/packages/formatters/src/gdrive.ts +++ b/packages/formatters/src/gdrive.ts @@ -24,7 +24,7 @@ export function gdriveFormat(stream: ParsedStream): { name += `[P2P] `; } - name += `${stream.addon.name} ${stream.resolution}`; + name += `${stream.addon.name} ${stream.personal ? '(Your Media) ' : ''}${stream.resolution}`; let description: string = `${stream.quality !== 'Unknown' ? '🎥 ' + stream.quality + ' ' : ''}${stream.encode !== 'Unknown' ? '🎞️ ' + stream.encode : ''}`; diff --git a/packages/formatters/src/torbox.ts b/packages/formatters/src/torbox.ts index 1d8a3b07..c20ac582 100644 --- a/packages/formatters/src/torbox.ts +++ b/packages/formatters/src/torbox.ts @@ -20,7 +20,7 @@ export function torboxFormat(stream: ParsedStream): { name += ` (P2P)`; } - name += ` (${stream.resolution})`; + name += `${stream.personal ? '(Your Media) ' : ''}(${stream.resolution})`; let description: string = ''; diff --git a/packages/formatters/src/torrentio.ts b/packages/formatters/src/torrentio.ts index 9df3c099..3b28f98a 100644 --- a/packages/formatters/src/torrentio.ts +++ b/packages/formatters/src/torrentio.ts @@ -24,7 +24,7 @@ export function torrentioFormat(stream: ParsedStream): { name += '[P2P] '; } - name += `${stream.addon.name} ${stream.resolution} `; + name += `${stream.addon.name} ${stream.personal ? '(Your Media) ' : ''}${stream.resolution} `; if (stream.visualTags.length > 0) { name += stream.visualTags.join(' | '); diff --git a/packages/types/src/types.ts b/packages/types/src/types.ts index 1f5e2c7c..3a3a3596 100644 --- a/packages/types/src/types.ts +++ b/packages/types/src/types.ts @@ -34,6 +34,7 @@ export interface ParsedStream extends ParsedNameData { url?: string; externalUrl?: string; indexers?: string; + personal?: boolean; stream?: { subtitles?: Subtitle[]; behaviorHints?: { diff --git a/packages/wrappers/src/base.ts b/packages/wrappers/src/base.ts index 8e31599d..1e4a8bb1 100644 --- a/packages/wrappers/src/base.ts +++ b/packages/wrappers/src/base.ts @@ -130,7 +130,8 @@ export class BaseWrapper { seeders?: number, usenetAge?: string, indexer?: string, - duration?: number + duration?: number, + personal?: boolean ): ParsedStream { return { ...parsedInfo, @@ -154,6 +155,7 @@ export class BaseWrapper { }, indexers: indexer, duration: duration, + personal: personal, stream: { subtitles: stream.subtitles, behaviorHints: { diff --git a/packages/wrappers/src/torbox.ts b/packages/wrappers/src/torbox.ts index 25d824cf..0bfcfe74 100644 --- a/packages/wrappers/src/torbox.ts +++ b/packages/wrappers/src/torbox.ts @@ -46,6 +46,13 @@ export class Torbox extends BaseWrapper { protected parseStream(stream: TorboxStream): ParsedStream | undefined { let type = stream.type; + let personal = false; + if (stream.name.includes('Your Media')) { + console.log( + `|INF| wrappers > torbox > detected personal stream in ${stream.name}` + ); + personal = true; + } const [dQuality, dFilename, dSize, dLanguage, dAgeOrSeeders] = stream.description.split('\n').map((field: string) => { if (field.startsWith('Type')) { @@ -126,7 +133,10 @@ export class Torbox extends BaseWrapper { sizeInBytes, provider, seeders, - age + age, + undefined, + undefined, + personal ); return parsedStream;