tor-dl 1.0.14 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/display.d.ts.map +1 -1
- package/dist/cli/display.js +68 -2
- package/dist/cli/display.js.map +1 -1
- package/dist/cli/parser.js +1 -1
- package/dist/cli/parser.js.map +1 -1
- package/dist/sources/torrentscsv.js +7 -7
- package/dist/sources/torrentscsv.js.map +1 -1
- package/dist/sources/yts.js +1 -1
- package/dist/sources/yts.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/filters.json +9 -8
- package/package.json +34 -34
- package/sources.json +104 -104
- package/src/cli/display.ts +59 -2
- package/src/cli/parser.ts +1 -1
- package/src/sources/torrentscsv.ts +57 -57
- package/src/sources/yts.ts +85 -85
- package/src/types.ts +67 -66
- package/dist/cli/progress.d.ts +0 -15
- package/dist/cli/progress.d.ts.map +0 -1
- package/dist/cli/progress.js +0 -76
- package/dist/cli/progress.js.map +0 -1
- package/dist/src/cli/display.d.ts +0 -7
- package/dist/src/cli/display.d.ts.map +0 -1
- package/dist/src/cli/display.js +0 -59
- package/dist/src/cli/display.js.map +0 -1
- package/dist/src/cli/parser.d.ts +0 -5
- package/dist/src/cli/parser.d.ts.map +0 -1
- package/dist/src/cli/parser.js +0 -122
- package/dist/src/cli/parser.js.map +0 -1
- package/dist/src/cli/progress.d.ts +0 -15
- package/dist/src/cli/progress.d.ts.map +0 -1
- package/dist/src/cli/progress.js +0 -76
- package/dist/src/cli/progress.js.map +0 -1
- package/dist/src/commands/download.d.ts +0 -2
- package/dist/src/commands/download.d.ts.map +0 -1
- package/dist/src/commands/download.js +0 -70
- package/dist/src/commands/download.js.map +0 -1
- package/dist/src/commands/search.d.ts +0 -3
- package/dist/src/commands/search.d.ts.map +0 -1
- package/dist/src/commands/search.js +0 -46
- package/dist/src/commands/search.js.map +0 -1
- package/dist/src/commands/update.d.ts +0 -2
- package/dist/src/commands/update.d.ts.map +0 -1
- package/dist/src/commands/update.js +0 -32
- package/dist/src/commands/update.js.map +0 -1
- package/dist/src/download/engine.d.ts +0 -6
- package/dist/src/download/engine.d.ts.map +0 -1
- package/dist/src/download/engine.js +0 -163
- package/dist/src/download/engine.js.map +0 -1
- package/dist/src/filters/category.d.ts +0 -3
- package/dist/src/filters/category.d.ts.map +0 -1
- package/dist/src/filters/category.js +0 -24
- package/dist/src/filters/category.js.map +0 -1
- package/dist/src/filters/index.d.ts +0 -5
- package/dist/src/filters/index.d.ts.map +0 -1
- package/dist/src/filters/index.js +0 -13
- package/dist/src/filters/index.js.map +0 -1
- package/dist/src/filters/seeds.d.ts +0 -3
- package/dist/src/filters/seeds.d.ts.map +0 -1
- package/dist/src/filters/seeds.js +0 -7
- package/dist/src/filters/seeds.js.map +0 -1
- package/dist/src/filters/size.d.ts +0 -4
- package/dist/src/filters/size.d.ts.map +0 -1
- package/dist/src/filters/size.js +0 -36
- package/dist/src/filters/size.js.map +0 -1
- package/dist/src/filters/sort.d.ts +0 -5
- package/dist/src/filters/sort.d.ts.map +0 -1
- package/dist/src/filters/sort.js +0 -25
- package/dist/src/filters/sort.js.map +0 -1
- package/dist/src/index.d.ts +0 -11
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -30
- package/dist/src/index.js.map +0 -1
- package/dist/src/sources/1337x.d.ts +0 -11
- package/dist/src/sources/1337x.d.ts.map +0 -1
- package/dist/src/sources/1337x.js +0 -121
- package/dist/src/sources/1337x.js.map +0 -1
- package/dist/src/sources/eztv.d.ts +0 -11
- package/dist/src/sources/eztv.d.ts.map +0 -1
- package/dist/src/sources/eztv.js +0 -104
- package/dist/src/sources/eztv.js.map +0 -1
- package/dist/src/sources/httpClient.d.ts +0 -24
- package/dist/src/sources/httpClient.d.ts.map +0 -1
- package/dist/src/sources/httpClient.js +0 -42
- package/dist/src/sources/httpClient.js.map +0 -1
- package/dist/src/sources/limetorrent.d.ts +0 -11
- package/dist/src/sources/limetorrent.d.ts.map +0 -1
- package/dist/src/sources/limetorrent.js +0 -113
- package/dist/src/sources/limetorrent.js.map +0 -1
- package/dist/src/sources/nyaa.d.ts +0 -11
- package/dist/src/sources/nyaa.d.ts.map +0 -1
- package/dist/src/sources/nyaa.js +0 -119
- package/dist/src/sources/nyaa.js.map +0 -1
- package/dist/src/sources/rarbg.d.ts +0 -11
- package/dist/src/sources/rarbg.d.ts.map +0 -1
- package/dist/src/sources/rarbg.js +0 -122
- package/dist/src/sources/rarbg.js.map +0 -1
- package/dist/src/sources/registry.d.ts +0 -9
- package/dist/src/sources/registry.d.ts.map +0 -1
- package/dist/src/sources/registry.js +0 -70
- package/dist/src/sources/registry.js.map +0 -1
- package/dist/src/sources/solidtorrents.d.ts +0 -11
- package/dist/src/sources/solidtorrents.d.ts.map +0 -1
- package/dist/src/sources/solidtorrents.js +0 -105
- package/dist/src/sources/solidtorrents.js.map +0 -1
- package/dist/src/sources/thepiratebay.d.ts +0 -11
- package/dist/src/sources/thepiratebay.d.ts.map +0 -1
- package/dist/src/sources/thepiratebay.js +0 -67
- package/dist/src/sources/thepiratebay.js.map +0 -1
- package/dist/src/sources/torlock.d.ts +0 -11
- package/dist/src/sources/torlock.d.ts.map +0 -1
- package/dist/src/sources/torlock.js +0 -116
- package/dist/src/sources/torlock.js.map +0 -1
- package/dist/src/sources/torrentproject.d.ts +0 -11
- package/dist/src/sources/torrentproject.d.ts.map +0 -1
- package/dist/src/sources/torrentproject.js +0 -105
- package/dist/src/sources/torrentproject.js.map +0 -1
- package/dist/src/sources/torrentscsv.d.ts +0 -11
- package/dist/src/sources/torrentscsv.d.ts.map +0 -1
- package/dist/src/sources/torrentscsv.js +0 -62
- package/dist/src/sources/torrentscsv.js.map +0 -1
- package/dist/src/sources/yts.d.ts +0 -12
- package/dist/src/sources/yts.d.ts.map +0 -1
- package/dist/src/sources/yts.js +0 -88
- package/dist/src/sources/yts.js.map +0 -1
- package/dist/src/types.d.ts +0 -60
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -3
- package/dist/src/types.js.map +0 -1
package/src/cli/parser.ts
CHANGED
|
@@ -87,7 +87,7 @@ Sources:
|
|
|
87
87
|
sortBy: (options.sort as 'seeds' | 'size' | 'date') || filters.sortBy,
|
|
88
88
|
order: (options.order as 'asc' | 'desc') || filters.order,
|
|
89
89
|
limit: options.limit || filters.limit,
|
|
90
|
-
sources: options.sources ? options.sources.split(',') : undefined
|
|
90
|
+
sources: options.sources ? options.sources.split(',') : (filters as any).sources ? (filters as any).sources.split(',') : undefined
|
|
91
91
|
};
|
|
92
92
|
|
|
93
93
|
const { searchCommand } = await import('../commands/search');
|
|
@@ -1,58 +1,58 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import { TorrentResult, SourceScraper } from '../types';
|
|
3
|
-
import { DEFAULT_HEADERS, TIMEOUT } from './httpClient';
|
|
4
|
-
|
|
5
|
-
export class TorrentsCsvScraper implements SourceScraper {
|
|
6
|
-
name = 'torrentscsv';
|
|
7
|
-
|
|
8
|
-
async search(query: string, category?: string): Promise<TorrentResult[]> {
|
|
9
|
-
try {
|
|
10
|
-
const url = `https://torrents-csv.
|
|
11
|
-
const { data } = await axios.get(url, {
|
|
12
|
-
headers: DEFAULT_HEADERS,
|
|
13
|
-
timeout: TIMEOUT
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
const results: TorrentResult[] = [];
|
|
17
|
-
const torrents = Array.isArray(data) ? data : data.torrents || [];
|
|
18
|
-
|
|
19
|
-
for (const t of torrents.slice(0, 50)) {
|
|
20
|
-
results.push({
|
|
21
|
-
num: results.length + 1,
|
|
22
|
-
name: t.name || t.title || 'Unknown',
|
|
23
|
-
size: this.formatSize(t.length || t.size || 0),
|
|
24
|
-
sizeBytes: t.length || t.size || 0,
|
|
25
|
-
seeds: t.seeders || t.s || 0,
|
|
26
|
-
peers: t.leechers || t.l || 0,
|
|
27
|
-
source: 'torrents-csv',
|
|
28
|
-
url:
|
|
29
|
-
magnet:
|
|
30
|
-
hash: t.
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return results;
|
|
35
|
-
} catch (error: unknown) {
|
|
36
|
-
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
37
|
-
console.error(`torrents-csv search error: ${message}`);
|
|
38
|
-
return [];
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
async getTorrentUrl(result: TorrentResult): Promise<string> {
|
|
43
|
-
return
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
async getMagnet(result: TorrentResult): Promise<string> {
|
|
47
|
-
return result.magnet || `magnet:?xt=urn:btih:${result.hash}`;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
private formatSize(bytes: number): string {
|
|
51
|
-
if (bytes < 1024) return bytes + ' B';
|
|
52
|
-
if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(2) + ' KB';
|
|
53
|
-
if (bytes < 1024 * 1024 * 1024) return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
|
|
54
|
-
return (bytes / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import { TorrentResult, SourceScraper } from '../types';
|
|
3
|
+
import { DEFAULT_HEADERS, TIMEOUT } from './httpClient';
|
|
4
|
+
|
|
5
|
+
export class TorrentsCsvScraper implements SourceScraper {
|
|
6
|
+
name = 'torrentscsv';
|
|
7
|
+
|
|
8
|
+
async search(query: string, category?: string): Promise<TorrentResult[]> {
|
|
9
|
+
try {
|
|
10
|
+
const url = `https://torrents-csv.com/service/search?q=${encodeURIComponent(query)}&after=0`;
|
|
11
|
+
const { data } = await axios.get(url, {
|
|
12
|
+
headers: DEFAULT_HEADERS,
|
|
13
|
+
timeout: TIMEOUT
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
const results: TorrentResult[] = [];
|
|
17
|
+
const torrents = Array.isArray(data) ? data : data.torrents || [];
|
|
18
|
+
|
|
19
|
+
for (const t of torrents.slice(0, 50)) {
|
|
20
|
+
results.push({
|
|
21
|
+
num: results.length + 1,
|
|
22
|
+
name: t.name || t.title || 'Unknown',
|
|
23
|
+
size: this.formatSize(t.size_bytes || t.length || t.size || 0),
|
|
24
|
+
sizeBytes: t.size_bytes || t.length || t.size || 0,
|
|
25
|
+
seeds: t.seeders || t.s || 0,
|
|
26
|
+
peers: t.leechers || t.l || 0,
|
|
27
|
+
source: 'torrents-csv',
|
|
28
|
+
url: `https://torrents-csv.com/#/search/torrent/${t.infohash}/1`,
|
|
29
|
+
magnet: `magnet:?xt=urn:btih:${t.infohash}`,
|
|
30
|
+
hash: t.infohash
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return results;
|
|
35
|
+
} catch (error: unknown) {
|
|
36
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
37
|
+
console.error(`torrents-csv search error: ${message}`);
|
|
38
|
+
return [];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
async getTorrentUrl(result: TorrentResult): Promise<string> {
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
async getMagnet(result: TorrentResult): Promise<string> {
|
|
47
|
+
return result.magnet || `magnet:?xt=urn:btih:${result.hash}`;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
private formatSize(bytes: number): string {
|
|
51
|
+
if (bytes < 1024) return bytes + ' B';
|
|
52
|
+
if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(2) + ' KB';
|
|
53
|
+
if (bytes < 1024 * 1024 * 1024) return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
|
|
54
|
+
return (bytes / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
58
|
export default new TorrentsCsvScraper();
|
package/src/sources/yts.ts
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import * as cheerio from 'cheerio';
|
|
3
|
-
import { TorrentResult, SourceScraper } from '../types';
|
|
4
|
-
import { getHeaders, TIMEOUT } from './httpClient';
|
|
5
|
-
|
|
6
|
-
export class YtsScraper implements SourceScraper {
|
|
7
|
-
name = 'YTS';
|
|
8
|
-
|
|
9
|
-
async search(query: string, category?: string): Promise<TorrentResult[]> {
|
|
10
|
-
if (category && category.toLowerCase() === 'tv') {
|
|
11
|
-
return [];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
try {
|
|
15
|
-
const url = `https://yts.lt/api/v2/list_movies.json?query_term=${encodeURIComponent(query)}&limit=50`;
|
|
16
|
-
const { data } = await axios.get(url, {
|
|
17
|
-
headers: getHeaders(),
|
|
18
|
-
timeout: TIMEOUT
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
const results: TorrentResult[] = [];
|
|
22
|
-
|
|
23
|
-
if (data.data && data.data.movies) {
|
|
24
|
-
for (const movie of data.data.movies) {
|
|
25
|
-
const quality = movie.torrents?.[0]?.quality || 'Unknown';
|
|
26
|
-
const sizeStr = movie.torrents?.[0]?.size || '0';
|
|
27
|
-
const sizeBytes = this.parseSizeStr(sizeStr);
|
|
28
|
-
results.push({
|
|
29
|
-
num: results.length + 1,
|
|
30
|
-
name: `${movie.title} (${movie.year}) ${quality}`,
|
|
31
|
-
size: this.formatSize(sizeBytes),
|
|
32
|
-
sizeBytes: sizeBytes,
|
|
33
|
-
seeds: movie.torrents?.[0]?.seeds || 0,
|
|
34
|
-
peers: movie.torrents?.[0]?.peers || 0,
|
|
35
|
-
source: 'YTS',
|
|
36
|
-
url: movie.
|
|
37
|
-
torrentUrl: movie.torrents?.[0]?.url || '',
|
|
38
|
-
magnet: movie.torrents?.[0]?.hash ? `magnet:?xt=urn:btih:${movie.torrents[0].hash}` : '',
|
|
39
|
-
hash: movie.torrents?.[0]?.hash
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return results;
|
|
45
|
-
} catch (error: unknown) {
|
|
46
|
-
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
47
|
-
console.error(`YTS search error: ${message}`);
|
|
48
|
-
return [];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async getTorrentUrl(result: TorrentResult): Promise<string> {
|
|
53
|
-
return result.url;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
async getMagnet(result: TorrentResult): Promise<string> {
|
|
57
|
-
return result.magnet || '';
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
private parseSizeStr(sizeStr: string): number {
|
|
61
|
-
if (!sizeStr || typeof sizeStr !== 'string') return 0;
|
|
62
|
-
const match = sizeStr.match(/([\d.]+)\s*(GB|MB|KB|TB)/i);
|
|
63
|
-
if (!match) return 0;
|
|
64
|
-
const value = parseFloat(match[1]);
|
|
65
|
-
const unit = match[2].toUpperCase();
|
|
66
|
-
const multipliers: Record<string, number> = {
|
|
67
|
-
'KB': 1024,
|
|
68
|
-
'MB': 1024 ** 2,
|
|
69
|
-
'GB': 1024 ** 3,
|
|
70
|
-
'TB': 1024 ** 4
|
|
71
|
-
};
|
|
72
|
-
return value * (multipliers[unit] || 0);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
private formatSize(bytes: number): string {
|
|
76
|
-
if (typeof bytes !== 'number' || isNaN(bytes) || bytes === 0) {
|
|
77
|
-
return 'Unknown';
|
|
78
|
-
}
|
|
79
|
-
if (bytes < 1024) return (bytes / 1024).toFixed(2) + ' KB';
|
|
80
|
-
if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(2) + ' KB';
|
|
81
|
-
if (bytes < 1024 * 1024 * 1024) return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
|
|
82
|
-
return (bytes / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import * as cheerio from 'cheerio';
|
|
3
|
+
import { TorrentResult, SourceScraper } from '../types';
|
|
4
|
+
import { getHeaders, TIMEOUT } from './httpClient';
|
|
5
|
+
|
|
6
|
+
export class YtsScraper implements SourceScraper {
|
|
7
|
+
name = 'YTS';
|
|
8
|
+
|
|
9
|
+
async search(query: string, category?: string): Promise<TorrentResult[]> {
|
|
10
|
+
if (category && category.toLowerCase() === 'tv') {
|
|
11
|
+
return [];
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
const url = `https://yts.lt/api/v2/list_movies.json?query_term=${encodeURIComponent(query)}&limit=50`;
|
|
16
|
+
const { data } = await axios.get(url, {
|
|
17
|
+
headers: getHeaders(),
|
|
18
|
+
timeout: TIMEOUT
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const results: TorrentResult[] = [];
|
|
22
|
+
|
|
23
|
+
if (data.data && data.data.movies) {
|
|
24
|
+
for (const movie of data.data.movies) {
|
|
25
|
+
const quality = movie.torrents?.[0]?.quality || 'Unknown';
|
|
26
|
+
const sizeStr = movie.torrents?.[0]?.size || '0';
|
|
27
|
+
const sizeBytes = this.parseSizeStr(sizeStr);
|
|
28
|
+
results.push({
|
|
29
|
+
num: results.length + 1,
|
|
30
|
+
name: `${movie.title} (${movie.year}) ${quality}`,
|
|
31
|
+
size: this.formatSize(sizeBytes),
|
|
32
|
+
sizeBytes: sizeBytes,
|
|
33
|
+
seeds: movie.torrents?.[0]?.seeds || 0,
|
|
34
|
+
peers: movie.torrents?.[0]?.peers || 0,
|
|
35
|
+
source: 'YTS',
|
|
36
|
+
url: movie.url || '',
|
|
37
|
+
torrentUrl: movie.torrents?.[0]?.url || '',
|
|
38
|
+
magnet: movie.torrents?.[0]?.hash ? `magnet:?xt=urn:btih:${movie.torrents[0].hash}` : '',
|
|
39
|
+
hash: movie.torrents?.[0]?.hash
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return results;
|
|
45
|
+
} catch (error: unknown) {
|
|
46
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
47
|
+
console.error(`YTS search error: ${message}`);
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async getTorrentUrl(result: TorrentResult): Promise<string> {
|
|
53
|
+
return result.url;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async getMagnet(result: TorrentResult): Promise<string> {
|
|
57
|
+
return result.magnet || '';
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
private parseSizeStr(sizeStr: string): number {
|
|
61
|
+
if (!sizeStr || typeof sizeStr !== 'string') return 0;
|
|
62
|
+
const match = sizeStr.match(/([\d.]+)\s*(GB|MB|KB|TB)/i);
|
|
63
|
+
if (!match) return 0;
|
|
64
|
+
const value = parseFloat(match[1]);
|
|
65
|
+
const unit = match[2].toUpperCase();
|
|
66
|
+
const multipliers: Record<string, number> = {
|
|
67
|
+
'KB': 1024,
|
|
68
|
+
'MB': 1024 ** 2,
|
|
69
|
+
'GB': 1024 ** 3,
|
|
70
|
+
'TB': 1024 ** 4
|
|
71
|
+
};
|
|
72
|
+
return value * (multipliers[unit] || 0);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
private formatSize(bytes: number): string {
|
|
76
|
+
if (typeof bytes !== 'number' || isNaN(bytes) || bytes === 0) {
|
|
77
|
+
return 'Unknown';
|
|
78
|
+
}
|
|
79
|
+
if (bytes < 1024) return (bytes / 1024).toFixed(2) + ' KB';
|
|
80
|
+
if (bytes < 1024 * 1024) return (bytes / 1024).toFixed(2) + ' KB';
|
|
81
|
+
if (bytes < 1024 * 1024 * 1024) return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
|
|
82
|
+
return (bytes / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
86
|
export default new YtsScraper();
|
package/src/types.ts
CHANGED
|
@@ -1,67 +1,68 @@
|
|
|
1
|
-
export interface TorrentResult {
|
|
2
|
-
num: number;
|
|
3
|
-
name: string;
|
|
4
|
-
size: string;
|
|
5
|
-
sizeBytes: number;
|
|
6
|
-
seeds: number;
|
|
7
|
-
peers: number;
|
|
8
|
-
source: string;
|
|
9
|
-
url: string;
|
|
10
|
-
magnet?: string;
|
|
11
|
-
hash?: string;
|
|
12
|
-
category?: string;
|
|
13
|
-
date?: string;
|
|
14
|
-
torrentUrl?: string;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export interface SourceConfig {
|
|
18
|
-
enabled: boolean;
|
|
19
|
-
name: string;
|
|
20
|
-
baseUrl: string;
|
|
21
|
-
searchUrl: string;
|
|
22
|
-
categories: string[];
|
|
23
|
-
searchParam: string;
|
|
24
|
-
hasMagnet: boolean;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export interface SourcesJSON {
|
|
28
|
-
updateUrl: string;
|
|
29
|
-
version: string;
|
|
30
|
-
sources: Record<string, SourceConfig>;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export interface FilterConfig {
|
|
34
|
-
category: string;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
1
|
+
export interface TorrentResult {
|
|
2
|
+
num: number;
|
|
3
|
+
name: string;
|
|
4
|
+
size: string;
|
|
5
|
+
sizeBytes: number;
|
|
6
|
+
seeds: number;
|
|
7
|
+
peers: number;
|
|
8
|
+
source: string;
|
|
9
|
+
url: string;
|
|
10
|
+
magnet?: string;
|
|
11
|
+
hash?: string;
|
|
12
|
+
category?: string;
|
|
13
|
+
date?: string;
|
|
14
|
+
torrentUrl?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface SourceConfig {
|
|
18
|
+
enabled: boolean;
|
|
19
|
+
name: string;
|
|
20
|
+
baseUrl: string;
|
|
21
|
+
searchUrl: string;
|
|
22
|
+
categories: string[];
|
|
23
|
+
searchParam: string;
|
|
24
|
+
hasMagnet: boolean;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface SourcesJSON {
|
|
28
|
+
updateUrl: string;
|
|
29
|
+
version: string;
|
|
30
|
+
sources: Record<string, SourceConfig>;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export interface FilterConfig {
|
|
34
|
+
category: string;
|
|
35
|
+
sources?: string;
|
|
36
|
+
minSeeds: number;
|
|
37
|
+
minSize: string;
|
|
38
|
+
maxSize: string;
|
|
39
|
+
sortBy: 'seeds' | 'size' | 'date';
|
|
40
|
+
order: 'asc' | 'desc';
|
|
41
|
+
limit: number;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export interface SearchOptions {
|
|
45
|
+
query: string;
|
|
46
|
+
category?: string;
|
|
47
|
+
minSeeds?: number;
|
|
48
|
+
maxSeeds?: number;
|
|
49
|
+
minSize?: string;
|
|
50
|
+
maxSize?: string;
|
|
51
|
+
sortBy?: 'seeds' | 'size' | 'date';
|
|
52
|
+
order?: 'asc' | 'desc';
|
|
53
|
+
limit?: number;
|
|
54
|
+
sources?: string[];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export interface DownloadOptions {
|
|
58
|
+
torrentUrl?: string;
|
|
59
|
+
magnet?: string;
|
|
60
|
+
savePath?: string;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export interface SourceScraper {
|
|
64
|
+
name: string;
|
|
65
|
+
search(query: string, category?: string): Promise<TorrentResult[]>;
|
|
66
|
+
getTorrentUrl(result: TorrentResult): Promise<string>;
|
|
67
|
+
getMagnet(result: TorrentResult): Promise<string>;
|
|
67
68
|
}
|
package/dist/cli/progress.d.ts
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export declare class DownloadProgress {
|
|
2
|
-
private bar;
|
|
3
|
-
private startTime;
|
|
4
|
-
private totalBytes;
|
|
5
|
-
private downloadedBytes;
|
|
6
|
-
constructor();
|
|
7
|
-
start(total: number): void;
|
|
8
|
-
update(downloaded: number, total: number): void;
|
|
9
|
-
private calculateSpeed;
|
|
10
|
-
private calculateETA;
|
|
11
|
-
private formatBytes;
|
|
12
|
-
stop(): void;
|
|
13
|
-
getTotalDownloaded(): number;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=progress.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAwB;IACnC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAa;;IAcpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ1B,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAe/C,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAOnB,IAAI,IAAI,IAAI;IAIZ,kBAAkB,IAAI,MAAM;CAG7B"}
|
package/dist/cli/progress.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DownloadProgress = void 0;
|
|
7
|
-
const cli_progress_1 = __importDefault(require("cli-progress"));
|
|
8
|
-
class DownloadProgress {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.totalBytes = 0;
|
|
11
|
-
this.downloadedBytes = 0;
|
|
12
|
-
this.startTime = Date.now();
|
|
13
|
-
this.bar = new cli_progress_1.default.SingleBar({
|
|
14
|
-
format: '[{bar}] {percentage}% | {speed} | ETA: {eta} | {downloaded}',
|
|
15
|
-
barCompleteChar: '\u2588',
|
|
16
|
-
barIncompleteChar: '\u2591',
|
|
17
|
-
hideCursor: true,
|
|
18
|
-
fps: 10,
|
|
19
|
-
etaAsynchronous: true
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
start(total) {
|
|
23
|
-
this.totalBytes = total;
|
|
24
|
-
this.bar.start(total, 0, {
|
|
25
|
-
speed: '0 B/s',
|
|
26
|
-
downloaded: '0 MB'
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
update(downloaded, total) {
|
|
30
|
-
this.downloadedBytes = downloaded;
|
|
31
|
-
this.totalBytes = total || this.totalBytes;
|
|
32
|
-
const speed = this.calculateSpeed();
|
|
33
|
-
const eta = this.calculateETA();
|
|
34
|
-
const downloadedMB = (this.downloadedBytes / (1024 * 1024)).toFixed(2);
|
|
35
|
-
this.bar.update(this.downloadedBytes, {
|
|
36
|
-
speed,
|
|
37
|
-
downloaded: `${downloadedMB} MB`,
|
|
38
|
-
eta
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
calculateSpeed() {
|
|
42
|
-
const elapsed = (Date.now() - this.startTime) / 1000;
|
|
43
|
-
const bytesPerSecond = elapsed > 0 ? this.downloadedBytes / elapsed : 0;
|
|
44
|
-
return this.formatBytes(bytesPerSecond) + '/s';
|
|
45
|
-
}
|
|
46
|
-
calculateETA() {
|
|
47
|
-
const elapsed = (Date.now() - this.startTime) / 1000;
|
|
48
|
-
if (this.downloadedBytes === 0 || this.totalBytes === 0)
|
|
49
|
-
return 'N/A';
|
|
50
|
-
const speed = this.downloadedBytes / elapsed;
|
|
51
|
-
const remaining = this.totalBytes - this.downloadedBytes;
|
|
52
|
-
const seconds = remaining / speed;
|
|
53
|
-
if (seconds < 60)
|
|
54
|
-
return `${Math.round(seconds)}s`;
|
|
55
|
-
if (seconds < 3600)
|
|
56
|
-
return `${Math.floor(seconds / 60)}m ${Math.round(seconds % 60)}s`;
|
|
57
|
-
return `${Math.floor(seconds / 3600)}h ${Math.floor((seconds % 3600) / 60)}m`;
|
|
58
|
-
}
|
|
59
|
-
formatBytes(bytes) {
|
|
60
|
-
if (bytes < 1024)
|
|
61
|
-
return bytes + ' B';
|
|
62
|
-
if (bytes < 1024 * 1024)
|
|
63
|
-
return (bytes / 1024).toFixed(2) + ' KB';
|
|
64
|
-
if (bytes < 1024 * 1024 * 1024)
|
|
65
|
-
return (bytes / (1024 * 1024)).toFixed(2) + ' MB';
|
|
66
|
-
return (bytes / (1024 * 1024 * 1024)).toFixed(2) + ' GB';
|
|
67
|
-
}
|
|
68
|
-
stop() {
|
|
69
|
-
this.bar.stop();
|
|
70
|
-
}
|
|
71
|
-
getTotalDownloaded() {
|
|
72
|
-
return this.downloadedBytes;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.DownloadProgress = DownloadProgress;
|
|
76
|
-
//# sourceMappingURL=progress.js.map
|
package/dist/cli/progress.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/cli/progress.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { TorrentResult } from '../types';
|
|
2
|
-
export declare function displayResults(results: TorrentResult[]): void;
|
|
3
|
-
export declare function displayResultDetails(result: TorrentResult): void;
|
|
4
|
-
export declare function displayError(message: string): void;
|
|
5
|
-
export declare function displaySuccess(message: string): void;
|
|
6
|
-
export declare function displayInfo(message: string): void;
|
|
7
|
-
//# sourceMappingURL=display.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../../src/cli/display.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CA6B7D;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAYhE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjD"}
|
package/dist/src/cli/display.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.displayResults = displayResults;
|
|
7
|
-
exports.displayResultDetails = displayResultDetails;
|
|
8
|
-
exports.displayError = displayError;
|
|
9
|
-
exports.displaySuccess = displaySuccess;
|
|
10
|
-
exports.displayInfo = displayInfo;
|
|
11
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
12
|
-
function displayResults(results) {
|
|
13
|
-
if (results.length === 0) {
|
|
14
|
-
console.log(chalk_1.default.yellow('No results found.'));
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
const out = (s) => process.stdout.write(s + '\n');
|
|
18
|
-
out('\n' + [
|
|
19
|
-
'┌─────┬────────────────────────────────────────┬────────┬───────┬───────┬────────┐',
|
|
20
|
-
'│ Num │ Name │ Size │ Seeds │ Leech │ Source │',
|
|
21
|
-
'├─────┼────────────────────────────────────────┼────────┼───────┼───────┼────────┤'
|
|
22
|
-
].join('\n'));
|
|
23
|
-
for (const r of results) {
|
|
24
|
-
const name = r.name.length > 38 ? r.name.substring(0, 35) + '...' : r.name;
|
|
25
|
-
const size = r.size ? r.size.slice(0, 6).padEnd(6) : 'N/A ';
|
|
26
|
-
const seeds = r.seeds.toString().padStart(5);
|
|
27
|
-
const peers = r.peers.toString().padStart(5);
|
|
28
|
-
const source = (r.source || 'unknown').slice(0, 6).padEnd(6);
|
|
29
|
-
const num = r.num.toString().padStart(3);
|
|
30
|
-
out(`│ ${num} │ ${name.padEnd(38)} │ ${size} │ ${seeds} │ ${peers} │ ${source} │`);
|
|
31
|
-
}
|
|
32
|
-
out('├─────┼────────────────────────────────────────┼────────┼───────┼───────┼────────┤');
|
|
33
|
-
out('└─────┴────────────────────────────────────────┴────────┴───────┴───────┴────────┘');
|
|
34
|
-
out('');
|
|
35
|
-
out('To download: tor-dl <number>');
|
|
36
|
-
}
|
|
37
|
-
function displayResultDetails(result) {
|
|
38
|
-
console.log(chalk_1.default.bold('\n--- Torrent Details ---'));
|
|
39
|
-
console.log(chalk_1.default.white('Name: ') + result.name);
|
|
40
|
-
console.log(chalk_1.default.white('Size: ') + result.size);
|
|
41
|
-
console.log(chalk_1.default.white('Seeds: ') + chalk_1.default.green(result.seeds.toString()));
|
|
42
|
-
console.log(chalk_1.default.white('Peers: ') + result.peers.toString());
|
|
43
|
-
console.log(chalk_1.default.white('Source: ') + result.source);
|
|
44
|
-
console.log(chalk_1.default.white('URL: ') + result.url);
|
|
45
|
-
if (result.magnet) {
|
|
46
|
-
console.log(chalk_1.default.white('Magnet: ') + chalk_1.default.cyan(result.magnet.substring(0, 60) + '...'));
|
|
47
|
-
}
|
|
48
|
-
console.log(chalk_1.default.bold('----------------------\n'));
|
|
49
|
-
}
|
|
50
|
-
function displayError(message) {
|
|
51
|
-
console.error(chalk_1.default.red('Error: ') + message);
|
|
52
|
-
}
|
|
53
|
-
function displaySuccess(message) {
|
|
54
|
-
console.log(chalk_1.default.green('✓ ') + message);
|
|
55
|
-
}
|
|
56
|
-
function displayInfo(message) {
|
|
57
|
-
console.log(chalk_1.default.blue('ℹ ') + message);
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=display.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../../src/cli/display.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli/parser.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/cli/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,EAAE,YAAY,EAAiB,MAAM,UAAU,CAAC;AAEvD,wBAAgB,WAAW,IAAI,YAAY,CAc1C;AAED,wBAAgB,YAAY,IAAI,OAAO,CA0EtC"}
|