From d4871a3bfd795fd2bccb405125d19cf29919d9b0 Mon Sep 17 00:00:00 2001 From: Viren070 Date: Sun, 19 Jan 2025 17:07:25 +0000 Subject: [PATCH] feat: add minimalistic-gdrive format --- packages/addon/src/addon.ts | 9 ++++++++ packages/addon/src/config.ts | 7 ++++++- packages/formatters/src/gdrive.ts | 34 +++++++++++++++++++++++-------- 3 files changed, 41 insertions(+), 9 deletions(-) diff --git a/packages/addon/src/addon.ts b/packages/addon/src/addon.ts index e881bee..c556f0a 100644 --- a/packages/addon/src/addon.ts +++ b/packages/addon/src/addon.ts @@ -505,6 +505,15 @@ export class AIOStreams { description = _description; break; } + case 'minimalistic-gdrive': { + const { name: _name, description: _description } = gdriveFormat( + parsedStream, + true + ); + name = _name; + description = _description; + break; + } case 'torrentio': { const { name: _name, description: _description } = torrentioFormat(parsedStream); diff --git a/packages/addon/src/config.ts b/packages/addon/src/config.ts index fefe439..005a807 100644 --- a/packages/addon/src/config.ts +++ b/packages/addon/src/config.ts @@ -1,7 +1,12 @@ import { AddonDetail, Config } from '@aiostreams/types'; import { addonDetails, serviceDetails, Settings } from '@aiostreams/utils'; -export const allowedFormatters = ['gdrive', 'torrentio', 'torbox']; +export const allowedFormatters = [ + 'gdrive', + 'minimalistic-gdrive', + 'torrentio', + 'torbox', +]; export const allowedLanguages = [ 'Multi', diff --git a/packages/formatters/src/gdrive.ts b/packages/formatters/src/gdrive.ts index 822cb03..c078340 100644 --- a/packages/formatters/src/gdrive.ts +++ b/packages/formatters/src/gdrive.ts @@ -1,8 +1,11 @@ import { ParsedStream } from '@aiostreams/types'; -import { formatDuration, formatSize } from './utils'; +import { formatDuration, formatSize, languageToEmoji } from './utils'; import { serviceDetails } from '@aiostreams/utils'; -export function gdriveFormat(stream: ParsedStream): { +export function gdriveFormat( + stream: ParsedStream, + minimalistic: boolean = false +): { name: string; description: string; } { @@ -24,7 +27,12 @@ export function gdriveFormat(stream: ParsedStream): { name += `[P2P] `; } - name += `${stream.addon.name} ${stream.personal ? '(Your Media) ' : ''}${stream.resolution}`; + name += `${stream.addon.name} ${stream.personal ? '(Your Media) ' : ''}`; + if (!minimalistic) { + name += stream.resolution; + } else { + name += stream.resolution !== 'Unknown' ? stream.resolution + '' : ''; + } let description: string = `${stream.quality !== 'Unknown' ? 'šŸŽ„ ' + stream.quality + ' ' : ''}${stream.encode !== 'Unknown' ? 'šŸŽžļø ' + stream.encode : ''}`; @@ -40,7 +48,8 @@ export function gdriveFormat(stream: ParsedStream): { } if ( stream.size || - stream.torrent?.seeders || + (stream.torrent?.seeders && !minimalistic) || + (minimalistic && stream.torrent?.seeders && !stream.provider?.cached) || stream.usenet?.age || stream.duration ) { @@ -51,17 +60,26 @@ export function gdriveFormat(stream: ParsedStream): { ? `ā±ļø ${formatDuration(stream.duration)} ` : ''; description += - stream.torrent?.seeders !== undefined + (stream.torrent?.seeders !== undefined && !minimalistic) || + (minimalistic && stream.torrent?.seeders && !stream.provider?.cached) ? `šŸ‘„ ${stream.torrent.seeders}` : ''; description += stream.usenet?.age ? `šŸ“… ${stream.usenet.age}` : ''; } + if (stream.languages.length !== 0) { - description += `\nšŸ”Š ${stream.languages.join(' | ')}`; + let languages = stream.languages; + if (minimalistic) { + languages = languages.map( + (language) => languageToEmoji(language) || language + ); + } + description += `\nšŸ”Š ${languages.join(' | ')}`; } - description += `\nšŸ“„ ${stream.filename ? stream.filename : 'Unknown'}`; - + if (!minimalistic && stream.filename) { + description += `\nšŸ“„ ${stream.filename ? stream.filename : 'Unknown'}`; + } return { name, description }; }