File size: 1,701 Bytes
0bfe2e3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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 };
}