brunner56's picture
implement app
0bfe2e3
import { ParsedStream } from '@aiostreams/types';
import { formatSize } from './utils';
import { serviceDetails, Settings } from '@aiostreams/utils';
export function torboxFormat(stream: ParsedStream): {
name: string;
description: string;
} {
let name: string = '';
name += `${stream.addon.name} `;
if (stream.provider) {
const serviceShortName =
serviceDetails.find((service) => service.id === stream.provider!.id)
?.shortName || stream.provider.id;
name += `(${stream.provider.cached === undefined ? 'Unknown' : stream.provider.cached ? 'Instant' : ''} ${serviceShortName}) `;
}
if (stream.torrent?.infoHash) {
name += `(P2P) `;
}
name += `${stream.personal ? '(Your Media) ' : ''}(${stream.resolution})`;
let description: string = '';
let streamType = '';
if (stream?.torrent?.seeders) {
streamType = 'Torrent';
} else if (stream?.usenet?.age) {
streamType = 'Usenet';
}
description += `Quality: ${stream.quality}\nName: ${stream.filename || 'Unknown'}\nSize: ${stream.size ? formatSize(stream.size) : 'Unknown'}${stream.indexers ? ` | Source: ${stream.indexers}` : ''}\nLanguage: ${stream.languages.length > 0 ? stream.languages.join(', ') : 'Unknown'}`;
if (streamType === 'Torrent' || streamType === 'Usenet') {
description += `\nType: ${streamType} | ${streamType === 'Torrent' ? 'Seeders' : 'Age'}: ${streamType === 'Torrent' ? stream.torrent?.seeders : stream.usenet?.age}`;
}
if (stream.message) {
description += `\n${stream.message}`;
}
if (stream.proxied) {
name = `πŸ•΅οΈβ€β™‚οΈ ${name}`;
} else if (Settings.SHOW_DIE) {
name = `🎲 ${name}`;
}
return { name, description };
}