tor-dl 1.0.15 → 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.
@@ -117,7 +117,7 @@ Sources:
117
117
  sortBy: options.sort || filters.sortBy,
118
118
  order: options.order || filters.order,
119
119
  limit: options.limit || filters.limit,
120
- sources: options.sources ? options.sources.split(',') : undefined
120
+ sources: options.sources ? options.sources.split(',') : filters.sources ? filters.sources.split(',') : undefined
121
121
  };
122
122
  const { searchCommand } = await Promise.resolve().then(() => __importStar(require('../commands/search')));
123
123
  await searchCommand(searchOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/cli/parser.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ class TorrentsCsvScraper {
12
12
  }
13
13
  async search(query, category) {
14
14
  try {
15
- const url = `https://torrents-csv.ml/api/search?q=${encodeURIComponent(query)}`;
15
+ const url = `https://torrents-csv.com/service/search?q=${encodeURIComponent(query)}&after=0`;
16
16
  const { data } = await axios_1.default.get(url, {
17
17
  headers: httpClient_1.DEFAULT_HEADERS,
18
18
  timeout: httpClient_1.TIMEOUT
@@ -23,14 +23,14 @@ class TorrentsCsvScraper {
23
23
  results.push({
24
24
  num: results.length + 1,
25
25
  name: t.name || t.title || 'Unknown',
26
- size: this.formatSize(t.length || t.size || 0),
27
- sizeBytes: t.length || t.size || 0,
26
+ size: this.formatSize(t.size_bytes || t.length || t.size || 0),
27
+ sizeBytes: t.size_bytes || t.length || t.size || 0,
28
28
  seeds: t.seeders || t.s || 0,
29
29
  peers: t.leechers || t.l || 0,
30
30
  source: 'torrents-csv',
31
- url: t.link || t.info_hash ? `magnet:?xt=urn:btih:${t.info_hash}` : '',
32
- magnet: t.link || t.magnet ? `magnet:?xt=urn:btih:${t.info_hash}` : '',
33
- hash: t.info_hash
31
+ url: `https://torrents-csv.com/#/search/torrent/${t.infohash}/1`,
32
+ magnet: `magnet:?xt=urn:btih:${t.infohash}`,
33
+ hash: t.infohash
34
34
  });
35
35
  }
36
36
  return results;
@@ -42,7 +42,7 @@ class TorrentsCsvScraper {
42
42
  }
43
43
  }
44
44
  async getTorrentUrl(result) {
45
- return result.url;
45
+ return '';
46
46
  }
47
47
  async getMagnet(result) {
48
48
  return result.magnet || `magnet:?xt=urn:btih:${result.hash}`;
@@ -1 +1 @@
1
- {"version":3,"file":"torrentscsv.js","sourceRoot":"","sources":["../../src/sources/torrentscsv.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"torrentscsv.js","sourceRoot":"","sources":["../../src/sources/torrentscsv.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -29,6 +29,7 @@ export interface SourcesJSON {
29
29
  }
30
30
  export interface FilterConfig {
31
31
  category: string;
32
+ sources?: string;
32
33
  minSeeds: number;
33
34
  minSize: string;
34
35
  maxSize: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACnE,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnD"}
package/filters.json CHANGED
@@ -1,9 +1,10 @@
1
- {
2
- "category": "yts,thepiratebay,nyaa",
3
- "minSeeds": 0,
4
- "minSize": "0",
5
- "maxSize": "50GB",
6
- "sortBy": "seeds",
7
- "order": "desc",
8
- "limit": 60
1
+ {
2
+ "category": "all",
3
+ "sources": "yts,thepiratebay,nyaa,torrentscsv",
4
+ "minSeeds": 0,
5
+ "minSize": "0",
6
+ "maxSize": "50GB",
7
+ "sortBy": "seeds",
8
+ "order": "desc",
9
+ "limit": 60
9
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tor-dl",
3
- "version": "1.0.15",
3
+ "version": "1.0.16",
4
4
  "description": "CLI torrent search tool - search, open in browser, copy magnet links",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
package/sources.json CHANGED
@@ -1,105 +1,105 @@
1
- {
2
- "updateUrl": "https://raw.githubusercontent.com/eaeoz/tor-dl/main/sources.json",
3
- "version": "1.0.0",
4
- "sources": {
5
- "yts": {
6
- "enabled": true,
7
- "name": "YTS",
8
- "baseUrl": "https://yts.lt",
9
- "searchUrl": "https://yts.lt/api/v2/list_movies.json",
10
- "categories": ["movie"],
11
- "searchParam": "query_term",
12
- "hasMagnet": true
13
- },
14
- "torrentscsv": {
15
- "enabled": true,
16
- "name": "torrents-csv",
17
- "baseUrl": "https://torrents-csv.ml",
18
- "searchUrl": "https://torrents-csv.ml/api/search",
19
- "categories": ["all"],
20
- "searchParam": "q",
21
- "hasMagnet": true
22
- },
23
- "eztv": {
24
- "enabled": false,
25
- "name": "EZTV",
26
- "baseUrl": "https://eztv.io",
27
- "searchUrl": "https://eztv.io/search/",
28
- "categories": ["tv"],
29
- "searchParam": "search",
30
- "hasMagnet": true
31
- },
32
- "solidtorrents": {
33
- "enabled": false,
34
- "name": "SolidTorrents",
35
- "baseUrl": "https://solidtorrents.to",
36
- "searchUrl": "https://solidtorrents.to/search",
37
- "categories": ["all"],
38
- "searchParam": "q",
39
- "hasMagnet": true
40
- },
41
- "thepiratebay": {
42
- "enabled": true,
43
- "name": "The Pirate Bay",
44
- "baseUrl": "https://thepiratebay.org",
45
- "searchUrl": "https://thepiratebay.org/search.php",
46
- "categories": ["all", "movie", "tv", "music", "games", "apps"],
47
- "searchParam": "q",
48
- "hasMagnet": true
49
- },
50
- "torlock": {
51
- "enabled": false,
52
- "name": "TorLock",
53
- "baseUrl": "https://www.torlock.com",
54
- "searchUrl": "https://www.torlock.com/all/torrents",
55
- "categories": ["all"],
56
- "searchParam": "q",
57
- "hasMagnet": true
58
- },
59
- "torrentproject": {
60
- "enabled": false,
61
- "name": "TorrentProject",
62
- "baseUrl": "https://torrentproject.site",
63
- "searchUrl": "https://torrentproject.site",
64
- "categories": ["all"],
65
- "searchParam": "s",
66
- "hasMagnet": true
67
- },
68
- "limetorrents": {
69
- "enabled": false,
70
- "name": "Limetorrents",
71
- "baseUrl": "https://www.limetorrent.eu",
72
- "searchUrl": "https://www.limetorrent.eu/search",
73
- "categories": ["all", "movie", "tv", "music", "games", "apps"],
74
- "searchParam": "q",
75
- "hasMagnet": true
76
- },
77
- "1337x": {
78
- "enabled": false,
79
- "name": "1337x",
80
- "baseUrl": "https://1337x.to",
81
- "searchUrl": "https://1337x.to/category-search",
82
- "categories": ["all", "movie", "tv", "music", "games", "apps"],
83
- "searchParam": "search",
84
- "hasMagnet": true
85
- },
86
- "rarbg": {
87
- "enabled": false,
88
- "name": "RarBG",
89
- "baseUrl": "https://rarbg.to",
90
- "searchUrl": "https://rarbg.to/torrents.php",
91
- "categories": ["all", "movie", "tv"],
92
- "searchParam": "search",
93
- "hasMagnet": true
94
- },
95
- "nyaa": {
96
- "enabled": true,
97
- "name": "Nyaa",
98
- "baseUrl": "https://nyaa.si",
99
- "searchUrl": "https://nyaa.si/",
100
- "categories": ["all", "anime", "movie", "tv"],
101
- "searchParam": "q",
102
- "hasMagnet": true
103
- }
104
- }
1
+ {
2
+ "updateUrl": "https://raw.githubusercontent.com/eaeoz/tor-dl/main/sources.json",
3
+ "version": "1.0.0",
4
+ "sources": {
5
+ "yts": {
6
+ "enabled": true,
7
+ "name": "YTS",
8
+ "baseUrl": "https://yts.lt",
9
+ "searchUrl": "https://yts.lt/api/v2/list_movies.json",
10
+ "categories": ["movie"],
11
+ "searchParam": "query_term",
12
+ "hasMagnet": true
13
+ },
14
+ "torrentscsv": {
15
+ "enabled": true,
16
+ "name": "torrents-csv",
17
+ "baseUrl": "https://torrents-csv.com",
18
+ "searchUrl": "https://torrents-csv.com/service/search",
19
+ "categories": ["all"],
20
+ "searchParam": "q",
21
+ "hasMagnet": true
22
+ },
23
+ "eztv": {
24
+ "enabled": false,
25
+ "name": "EZTV",
26
+ "baseUrl": "https://eztv.io",
27
+ "searchUrl": "https://eztv.io/search/",
28
+ "categories": ["tv"],
29
+ "searchParam": "search",
30
+ "hasMagnet": true
31
+ },
32
+ "solidtorrents": {
33
+ "enabled": false,
34
+ "name": "SolidTorrents",
35
+ "baseUrl": "https://solidtorrents.to",
36
+ "searchUrl": "https://solidtorrents.to/search",
37
+ "categories": ["all"],
38
+ "searchParam": "q",
39
+ "hasMagnet": true
40
+ },
41
+ "thepiratebay": {
42
+ "enabled": true,
43
+ "name": "The Pirate Bay",
44
+ "baseUrl": "https://thepiratebay.org",
45
+ "searchUrl": "https://thepiratebay.org/search.php",
46
+ "categories": ["all", "movie", "tv", "music", "games", "apps"],
47
+ "searchParam": "q",
48
+ "hasMagnet": true
49
+ },
50
+ "torlock": {
51
+ "enabled": false,
52
+ "name": "TorLock",
53
+ "baseUrl": "https://www.torlock.com",
54
+ "searchUrl": "https://www.torlock.com/all/torrents",
55
+ "categories": ["all"],
56
+ "searchParam": "q",
57
+ "hasMagnet": true
58
+ },
59
+ "torrentproject": {
60
+ "enabled": false,
61
+ "name": "TorrentProject",
62
+ "baseUrl": "https://torrentproject.site",
63
+ "searchUrl": "https://torrentproject.site",
64
+ "categories": ["all"],
65
+ "searchParam": "s",
66
+ "hasMagnet": true
67
+ },
68
+ "limetorrents": {
69
+ "enabled": false,
70
+ "name": "Limetorrents",
71
+ "baseUrl": "https://www.limetorrent.eu",
72
+ "searchUrl": "https://www.limetorrent.eu/search",
73
+ "categories": ["all", "movie", "tv", "music", "games", "apps"],
74
+ "searchParam": "q",
75
+ "hasMagnet": true
76
+ },
77
+ "1337x": {
78
+ "enabled": false,
79
+ "name": "1337x",
80
+ "baseUrl": "https://1337x.to",
81
+ "searchUrl": "https://1337x.to/category-search",
82
+ "categories": ["all", "movie", "tv", "music", "games", "apps"],
83
+ "searchParam": "search",
84
+ "hasMagnet": true
85
+ },
86
+ "rarbg": {
87
+ "enabled": false,
88
+ "name": "RarBG",
89
+ "baseUrl": "https://rarbg.to",
90
+ "searchUrl": "https://rarbg.to/torrents.php",
91
+ "categories": ["all", "movie", "tv"],
92
+ "searchParam": "search",
93
+ "hasMagnet": true
94
+ },
95
+ "nyaa": {
96
+ "enabled": true,
97
+ "name": "Nyaa",
98
+ "baseUrl": "https://nyaa.si",
99
+ "searchUrl": "https://nyaa.si/",
100
+ "categories": ["all", "anime", "movie", "tv"],
101
+ "searchParam": "q",
102
+ "hasMagnet": true
103
+ }
104
+ }
105
105
  }
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.ml/api/search?q=${encodeURIComponent(query)}`;
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: t.link || t.info_hash ? `magnet:?xt=urn:btih:${t.info_hash}` : '',
29
- magnet: t.link || t.magnet ? `magnet:?xt=urn:btih:${t.info_hash}` : '',
30
- hash: t.info_hash
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 result.url;
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/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
- minSeeds: number;
36
- minSize: string;
37
- maxSize: string;
38
- sortBy: 'seeds' | 'size' | 'date';
39
- order: 'asc' | 'desc';
40
- limit: number;
41
- }
42
-
43
- export interface SearchOptions {
44
- query: string;
45
- category?: string;
46
- minSeeds?: number;
47
- maxSeeds?: number;
48
- minSize?: string;
49
- maxSize?: string;
50
- sortBy?: 'seeds' | 'size' | 'date';
51
- order?: 'asc' | 'desc';
52
- limit?: number;
53
- sources?: string[];
54
- }
55
-
56
- export interface DownloadOptions {
57
- torrentUrl?: string;
58
- magnet?: string;
59
- savePath?: string;
60
- }
61
-
62
- export interface SourceScraper {
63
- name: string;
64
- search(query: string, category?: string): Promise<TorrentResult[]>;
65
- getTorrentUrl(result: TorrentResult): Promise<string>;
66
- getMagnet(result: TorrentResult): Promise<string>;
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
  }