tor-dl 1.0.2 → 1.0.4

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.
Files changed (51) hide show
  1. package/README.md +85 -192
  2. package/dist/cli/display.d.ts.map +1 -1
  3. package/dist/cli/display.js +13 -7
  4. package/dist/cli/display.js.map +1 -1
  5. package/dist/cli/parser.d.ts.map +1 -1
  6. package/dist/cli/parser.js +59 -37
  7. package/dist/cli/parser.js.map +1 -1
  8. package/dist/commands/download.d.ts +1 -1
  9. package/dist/commands/download.d.ts.map +1 -1
  10. package/dist/commands/download.js +55 -49
  11. package/dist/commands/download.js.map +1 -1
  12. package/dist/commands/search.d.ts.map +1 -1
  13. package/dist/commands/search.js +29 -1
  14. package/dist/commands/search.js.map +1 -1
  15. package/dist/download/engine.d.ts +1 -3
  16. package/dist/download/engine.d.ts.map +1 -1
  17. package/dist/download/engine.js +0 -129
  18. package/dist/download/engine.js.map +1 -1
  19. package/dist/filters/seeds.d.ts +1 -1
  20. package/dist/filters/seeds.d.ts.map +1 -1
  21. package/dist/filters/seeds.js +4 -1
  22. package/dist/filters/seeds.js.map +1 -1
  23. package/dist/index.d.ts +0 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +0 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/sources/nyaa.d.ts.map +1 -1
  28. package/dist/sources/nyaa.js +3 -0
  29. package/dist/sources/nyaa.js.map +1 -1
  30. package/dist/sources/thepiratebay.d.ts.map +1 -1
  31. package/dist/sources/thepiratebay.js +1 -0
  32. package/dist/sources/thepiratebay.js.map +1 -1
  33. package/dist/sources/yts.d.ts.map +1 -1
  34. package/dist/sources/yts.js +1 -0
  35. package/dist/sources/yts.js.map +1 -1
  36. package/dist/types.d.ts +2 -0
  37. package/dist/types.d.ts.map +1 -1
  38. package/help.txt +30 -0
  39. package/package.json +3 -5
  40. package/src/cli/display.ts +15 -7
  41. package/src/cli/parser.ts +62 -40
  42. package/src/commands/download.ts +48 -15
  43. package/src/commands/search.ts +84 -52
  44. package/src/download/engine.ts +1 -144
  45. package/src/filters/seeds.ts +4 -1
  46. package/src/index.ts +0 -1
  47. package/src/sources/nyaa.ts +3 -0
  48. package/src/sources/thepiratebay.ts +1 -0
  49. package/src/sources/yts.ts +1 -0
  50. package/src/types.ts +2 -0
  51. package/src/cli/progress.ts +0 -78
package/README.md CHANGED
@@ -1,39 +1,6 @@
1
1
  # tor-dl
2
2
 
3
- <p align="center">
4
- <img src="https://img.shields.io/npm/v/tor-dl" alt="npm version">
5
- <img src="https://img.shields.io/node-version/tor-dl" alt="node version">
6
- <img src="https://img.shields.io/github/license/tor-dl" alt="license">
7
- </p>
8
-
9
- > A powerful CLI torrent search and download tool. Search across multiple torrent sources, filter results, and download directly to your current directory - all from the terminal.
10
-
11
- ## Features
12
-
13
- - 🔍 **Multi-Source Search** - Search across 9 popular torrent sources simultaneously
14
- - 🎯 **Smart Filters** - Filter by category, seeders, size with customizable defaults
15
- - 📊 **Sort Options** - Sort by seeds, size, or date (ascending/descending)
16
- - ⬇️ **Direct Downloads** - Download torrents directly using WebTorrent
17
- - 📈 **Rich Progress** - Beautiful CLI progress bar with speed and ETA
18
- - 🔄 **Easy Updates** - Update source configurations via `-u` flag
19
- - ⚙️ **JSON Config** - Fully configurable via `filters.json` and `sources.json`
20
-
21
- ## Installation
22
-
23
- ```bash
24
- # Clone the repository
25
- git clone https://github.com/eaeoz/tor-dl.git
26
- cd tor-dl
27
-
28
- # Install dependencies
29
- npm install
30
-
31
- # Build the project
32
- npm run build
33
-
34
- # Link for global use (optional)
35
- npm link
36
- ```
3
+ A CLI torrent search tool. Search across multiple sources, open .torrent in browser, or copy magnet links to clipboard.
37
4
 
38
5
  ## Quick Start
39
6
 
@@ -41,30 +8,17 @@ npm link
41
8
  # Search for torrents
42
9
  tor-dl search "movie title"
43
10
 
44
- # Download a specific result
45
- tor-dl 3
11
+ # Copy magnet link to clipboard
12
+ tor-dl o 3
46
13
 
47
- # Update sources
48
- tor-dl -u
14
+ # Show version
15
+ tor-dl --version
49
16
  ```
50
17
 
51
- ## Supported Sources
52
-
53
- | Source | Categories | Status |
54
- |--------|------------|--------|
55
- | 1337x | All | ✅ Enabled |
56
- | EZTV | TV | ✅ Enabled |
57
- | The Pirate Bay | All | ✅ Enabled |
58
- | RarBG | Movie, TV | ✅ Enabled |
59
- | Limetorrents | All | ✅ Enabled |
60
- | TorLock | All | ✅ Enabled |
61
- | TorrentProject | All | ✅ Enabled |
62
- | SolidTorrents | All | ✅ Enabled |
63
- | torrents-csv | All | ✅ Enabled |
18
+ ## Commands
64
19
 
65
- ## Usage
66
-
67
- ### Search Command
20
+ ### search <query>
21
+ Search for torrents across multiple sources.
68
22
 
69
23
  ```bash
70
24
  tor-dl search <query> [options]
@@ -72,184 +26,123 @@ tor-dl search <query> [options]
72
26
 
73
27
  **Options:**
74
28
 
75
- | Flag | Description | Default |
29
+ | Flag | Description | Example |
76
30
  |------|-------------|---------|
77
- | `-c, --cat <category>` | Category: all, movie, tv | from filters.json |
78
- | `-s, --min-seeds <number>` | Minimum seeders | from filters.json |
79
- | `--min-size <size>` | Minimum size (e.g., 500MB, 1GB) | from filters.json |
80
- | `--max-size <size>` | Maximum size (e.g., 5GB) | from filters.json |
81
- | `-o, --sort <field>` | Sort by: seeds, size, date | seeds |
82
- | `--order <order>` | Order: asc, desc | desc |
83
- | `-l, --limit <number>` | Result limit | 50 |
31
+ | `-c, --cat <category>` | Category to filter results | `all`, `movie`, `tv`, `anime`, `music`, `games`, `apps` |
32
+ | `-s, --min-seeds <number>` | Minimum number of seeders | `100` |
33
+ | `--max-seeds <number>` | Maximum number of seeders | `1000` |
34
+ | `--min-size <size>` | Minimum file size | `500MB`, `1GB`, `2GB` |
35
+ | `--max-size <size>` | Maximum file size | `5GB`, `10GB` |
36
+ | `-o, --sort <field>` | Sort results by field | `seeds`, `size`, `date` |
37
+ | `--order <order>` | Sort order | `asc` (low to high), `desc` (high to low) |
38
+ | `-l, --limit <number>` | Maximum results to return | `10`, `50`, `100` |
39
+ | `--sources <sources>` | Sources to search (comma-separated) | `yts,thepiratebay,nyaa` |
40
+
41
+ **Available Categories:**
42
+ - `all` - Search all categories
43
+ - `movie` - Movies
44
+ - `tv` - TV shows
45
+ - `anime` - Anime (mainly Nyaa)
46
+ - `music` - Music
47
+ - `games` - Games
48
+ - `apps` - Applications
49
+
50
+ **Available Sources:**
51
+ - `yts` - YTS (Movies only)
52
+ - `eztv` - EZTV (TV shows)
53
+ - `thepiratebay` - The Pirate Bay (All categories)
54
+ - `nyaa` - Nyaa.si (Anime, Software)
84
55
 
85
56
  **Examples:**
86
57
 
87
58
  ```bash
88
- # Basic search (uses filters.json defaults)
59
+ # Basic search
89
60
  tor-dl search "Blade Runner 2049"
90
61
 
91
- # Search with custom filters
92
- tor-dl search "game of thrones" --cat tv --min-seeds 100 --min-size 500MB
62
+ # Search movies with minimum seeds
63
+ tor-dl search "movie" --cat movie --min-seeds 100
93
64
 
94
- # Sort by size (ascending)
95
- tor-dl search "movie" --sort size --order asc
65
+ # Search with size limits
66
+ tor-dl search "linux" --min-size 500MB --max-size 2GB
96
67
 
97
- # Limit results to top 10
98
- tor-dl search "linux" -l 10
99
- ```
68
+ # Search specific sources only
69
+ tor-dl search "game" --sources yts,thepiratebay
100
70
 
101
- ### Download Command
71
+ # Sort by size (smallest first)
72
+ tor-dl search "documentary" --sort size --order asc
102
73
 
103
- ```bash
104
- # Download by number (from previous search)
105
- tor-dl <number>
106
-
107
- # Or use explicit download command
108
- tor-dl download <number> [options]
74
+ # Limit results to top 10
75
+ tor-dl search "podcast" -l 10
109
76
  ```
110
77
 
111
- **Options:**
112
-
113
- | Flag | Description |
114
- |------|-------------|
115
- | `-p, --path <path>` | Custom download path |
116
-
117
- **Example:**
78
+ ### o <number>
79
+ Copy .torrent URL or magnet link to clipboard for the selected result number.
118
80
 
119
81
  ```bash
120
- # Download result #3 from previous search
121
- tor-dl 3
82
+ tor-dl o <number>
122
83
  ```
123
84
 
124
- ### Update Command
85
+ After running a search, enter the result number to copy the link to your clipboard.
125
86
 
87
+ **Example:**
126
88
  ```bash
127
- tor-dl update
128
- # or
129
- tor-dl -u
89
+ tor-dl search "python tutorial"
90
+ # Results displayed...
91
+ tor-dl o 5
92
+ # Magnet link copied to clipboard!
130
93
  ```
131
94
 
132
- Updates source configurations from the remote URL specified in `sources.json`.
133
-
134
- ### Version
95
+ ### open <number>
96
+ Same as `o` command - opens .torrent in browser or copies magnet link.
135
97
 
136
98
  ```bash
137
- tor-dl --version
138
- # or
139
- tor-dl -v
99
+ tor-dl open <number>
140
100
  ```
141
101
 
142
- ## Configuration
102
+ ### Options
143
103
 
144
- ### filters.json
104
+ | Flag | Description |
105
+ |------|-------------|
106
+ | `-v, --version` | Show version number |
107
+ | `-h, --help` | Show help information |
145
108
 
146
- Default search filters (can be overridden via CLI):
109
+ ## Supported Sources
147
110
 
148
- ```json
149
- {
150
- "category": "all",
151
- "minSeeds": 0,
152
- "minSize": "0",
153
- "maxSize": "50GB",
154
- "sortBy": "seeds",
155
- "order": "desc",
156
- "limit": 50
157
- }
158
- ```
111
+ | Source | Categories | Description |
112
+ |--------|------------|-------------|
113
+ | YTS | movie | Movie torrents with direct .torrent download |
114
+ | The Pirate Bay | all | General torrent search |
115
+ | Nyaa | anime, tv | Anime and Japanese media |
116
+ | EZTV | tv | TV show torrents |
159
117
 
160
- ### sources.json
161
-
162
- Source configurations with remote update URL:
163
-
164
- ```json
165
- {
166
- "updateUrl": "https://raw.githubusercontent.com/eaeoz/tor-dl/main/sources.json",
167
- "version": "1.0.0",
168
- "sources": {
169
- "1337x": {
170
- "enabled": true,
171
- "name": "1337x",
172
- "baseUrl": "https://1337x.to",
173
- "searchUrl": "https://1337x.to/category-search",
174
- "categories": ["all", "movie", "tv", "music", "games", "apps"],
175
- "searchParam": "search",
176
- "hasMagnet": true
177
- }
178
- }
179
- }
180
- ```
118
+ ## Size Format
181
119
 
182
- ## CLI Output Example
120
+ Size can be specified in various formats:
121
+ - `KB` - Kilobytes
122
+ - `MB` - Megabytes
123
+ - `GB` - Gigabytes
124
+ - `TB` - Terabytes
183
125
 
184
- ```
185
- ┌─────┬─────────────────────────────────────────┬───────────┬────────┬──────────┐
186
- │ Num │ Name │ Size │ Seeds │ Source │
187
- ├─────┼─────────────────────────────────────────┼───────────┼────────┼──────────┤
188
- │ 1 │ Blade.Runner.2049.2017.720p.BluRay │ 1.2GB │ 5,000 │ 1337x │
189
- │ 2 │ Blade.Runner.2049.2017.1080p.BluRay │ 2.1GB │ 3,200 │ limetorrent │
190
- │ 3 │ Blade.Runner.2049.2017.4K.BluRay │ 4.5GB │ 1,800 │ rarbg │
191
- └─────┴─────────────────────────────────────────┴───────────┴────────┴──────────┘
192
-
193
- To download: tor-dl <number>
194
- ```
195
-
196
- ## Project Structure
197
-
198
- ```
199
- tor-dl/
200
- ├── bin/
201
- │ └── tor-dl.js # CLI entry point
202
- ├── src/
203
- │ ├── cli/
204
- │ │ ├── parser.ts # Commander.js CLI parser
205
- │ │ ├── display.ts # Terminal output formatting
206
- │ │ └── progress.ts # Download progress bar
207
- │ ├── commands/
208
- │ │ ├── search.ts # Search command
209
- │ │ ├── download.ts # Download command
210
- │ │ └── update.ts # Update sources command
211
- │ ├── sources/
212
- │ │ ├── _1337x.ts # 1337x scraper
213
- │ │ ├── eztv.ts # EZTV scraper
214
- │ │ ├── limetorrent.ts # Limetorrents scraper
215
- │ │ ├── rarbg.ts # RarBG scraper
216
- │ │ └── ... # More source scrapers
217
- │ ├── filters/
218
- │ │ ├── category.ts # Category filter
219
- │ │ ├── size.ts # Size filter
220
- │ │ ├── seeds.ts # Seeds filter
221
- │ │ └── sort.ts # Sort functionality
222
- │ ├── download/
223
- │ │ └── engine.ts # WebTorrent download engine
224
- │ └── types.ts # TypeScript interfaces
225
- ├── sources.json # Source configurations
226
- ├── filters.json # Default filters
227
- └── package.json
228
- ```
126
+ Examples: `500MB`, `1.5GB`, `2GB`
229
127
 
230
128
  ## Requirements
231
129
 
232
130
  - Node.js >= 18.0.0
233
- - npm or yarn
131
+ - npm
234
132
 
235
- ## Tech Stack
133
+ ## Local Installation
236
134
 
237
- - **TypeScript** - Type-safe code
238
- - **Commander.js** - CLI argument parsing
239
- - **Axios + Cheerio** - HTTP requests and HTML parsing
240
- - **WebTorrent** - Torrent downloading
241
- - **cli-progress** - Rich progress bars
242
- - **Chalk** - Terminal colors
243
- - **Ora** - Loading spinners
135
+ ```bash
136
+ git clone https://github.com/eaeoz/tor-dl.git
137
+ cd tor-dl
138
+ npm install
139
+ npm run build
140
+ ```
244
141
 
245
142
  ## License
246
143
 
247
- MIT License - See [LICENSE](LICENSE) for details.
144
+ MIT License
248
145
 
249
146
  ## Disclaimer
250
147
 
251
- This tool is for educational purposes. Always respect copyright laws and the terms of service of torrent sites. Download only content you have the right to access.
252
-
253
- ---
254
-
255
- <p align="center">Made with ❤️ for the CLI community</p>
148
+ This tool is for educational purposes. Always respect copyright laws and the terms of service of torrent sites.
@@ -1 +1 @@
1
- {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/cli/display.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,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"}
1
+ {"version":3,"file":"display.d.ts","sourceRoot":"","sources":["../../src/cli/display.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQzC,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAiC7D;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"}
@@ -10,6 +10,9 @@ exports.displaySuccess = displaySuccess;
10
10
  exports.displayInfo = displayInfo;
11
11
  const chalk_1 = __importDefault(require("chalk"));
12
12
  chalk_1.default.level = 1;
13
+ function makeClickable(url, text) {
14
+ return `\u001b]8;;${url}\u0007${text}\u001b]8;;\u0007`;
15
+ }
13
16
  function displayResults(results) {
14
17
  if (results.length === 0) {
15
18
  console.log(chalk_1.default.yellow('No results found.'));
@@ -17,9 +20,9 @@ function displayResults(results) {
17
20
  }
18
21
  const out = (s) => process.stdout.write(s + '\n');
19
22
  out('\n' + [
20
- '┌─────┬────────────────────────────────────────┬────────┬───────┬───────┬────────┐',
21
- '│ Num │ Name │ Size │ Seeds │ Leech │ Source │',
22
- '├─────┼────────────────────────────────────────┼────────┼───────┼───────┼────────┤'
23
+ '┌─────┬───┬────────────────────────────────────────┬────────┬───────┬───────┬────────┐',
24
+ '│ Num │ L │ Name │ Size │ Seeds │ Leech │ Source │',
25
+ '├─────┼───┼────────────────────────────────────────┼────────┼───────┼───────┼────────┤'
23
26
  ].join('\n'));
24
27
  for (const r of results) {
25
28
  const name = r.name.length > 38 ? r.name.substring(0, 35) + '...' : r.name;
@@ -28,12 +31,15 @@ function displayResults(results) {
28
31
  const peers = r.peers > 50 ? chalk_1.default.cyan(r.peers.toString().padStart(5)) : r.peers.toString().padStart(5);
29
32
  const source = (r.source || 'unknown').slice(0, 6).padEnd(6);
30
33
  const num = chalk_1.default.cyan(r.num.toString().padStart(3));
31
- out(`│ ${num} ${name.padEnd(38)} ${size} ${seeds} ${peers} │ ${source} │`);
34
+ const link = r.torrentUrl || r.magnet ? chalk_1.default.green('✓') : ' ';
35
+ const url = r.torrentUrl || r.magnet || '';
36
+ const clickableName = url ? makeClickable(url, name.padEnd(38)) : name.padEnd(38);
37
+ out(`│ ${num} │ ${link} │ ${clickableName} │ ${size} │ ${seeds} │ ${peers} │ ${source} │`);
32
38
  }
33
- out('├─────┼────────────────────────────────────────┼────────┼───────┼───────┼────────┤');
34
- out('└─────┴────────────────────────────────────────┴────────┴───────┴───────┴────────┘');
39
+ out('├─────┼───┼────────────────────────────────────────┼────────┼───────┼───────┼────────┤');
40
+ out('└─────┴───┴────────────────────────────────────────┴────────┴───────┴───────┴────────┘');
35
41
  out('');
36
- out('To download: tor-dl <number>');
42
+ out(chalk_1.default.gray('Use: tor-dl o <number> to copy link to clipboard'));
37
43
  }
38
44
  function displayResultDetails(result) {
39
45
  console.log(chalk_1.default.bold('\n--- Torrent Details ---'));
@@ -1 +1 @@
1
- {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/cli/display.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../src/cli/display.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
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"}
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;AAWvD,wBAAgB,WAAW,IAAI,YAAY,CAc1C;AAED,wBAAgB,YAAY,IAAI,OAAO,CAuFtC"}
@@ -38,6 +38,15 @@ exports.createParser = createParser;
38
38
  const commander_1 = require("commander");
39
39
  const fs_1 = require("fs");
40
40
  const path_1 = require("path");
41
+ function getVersion() {
42
+ try {
43
+ const pkg = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '../../package.json'), 'utf-8'));
44
+ return pkg.version || '1.0.0';
45
+ }
46
+ catch {
47
+ return '1.0.0';
48
+ }
49
+ }
41
50
  function loadFilters() {
42
51
  const filtersPath = (0, path_1.join)(process.cwd(), 'filters.json');
43
52
  if ((0, fs_1.existsSync)(filtersPath)) {
@@ -55,32 +64,55 @@ function loadFilters() {
55
64
  }
56
65
  function createParser() {
57
66
  const program = new commander_1.Command();
67
+ const filters = loadFilters();
68
+ const mainHelp = `
69
+ Categories: all, movie, tv, anime, music, games, apps
70
+ Sources:
71
+ yts - YTS (Movies) | eztv - EZTV (TV) | thepiratebay - The Pirate Bay | nyaa - Nyaa.si (Anime)`;
58
72
  program
59
73
  .name('tor-dl')
60
- .description('CLI torrent search and download tool')
61
- .version('1.0.0')
62
- .hook('preAction', (thisCommand) => {
63
- if (thisCommand.name() === 'update') {
64
- return;
65
- }
66
- });
74
+ .description('CLI torrent search tool - search, open in browser, copy magnet links' + mainHelp)
75
+ .version(getVersion(), '-v, --version')
76
+ .showHelpAfterError()
77
+ .showSuggestionAfterError();
67
78
  program
68
79
  .command('search <query>')
69
- .description('Search for torrents')
70
- .option('-c, --cat <category>', 'Category: all, movie, tv')
71
- .option('-s, --min-seeds <number>', 'Minimum seeds', parseInt)
72
- .option('--min-size <size>', 'Minimum size (e.g., 500MB, 1GB)')
73
- .option('--max-size <size>', 'Maximum size (e.g., 5GB)')
74
- .option('-o, --sort <sortBy>', 'Sort by: seeds, size, date')
75
- .option('--order <order>', 'Order: asc, desc')
76
- .option('-l, --limit <limit>', 'Result limit', parseInt)
77
- .option('--sources <sources>', 'Comma-separated source names')
80
+ .description('Search for torrents. Use -h after search term for examples: tor-dl search "movie" -h')
81
+ .option('-c, --cat <category>', 'Category (all|movie|tv|anime|music|games|apps)')
82
+ .option('-s, --min-seeds <number>', 'Minimum seeders', parseInt)
83
+ .option('--max-seeds <number>', 'Maximum seeders', parseInt)
84
+ .option('--min-size <size>', 'Min size (e.g. 500MB, 1GB)')
85
+ .option('--max-size <size>', 'Max size (e.g. 5GB)')
86
+ .option('-o, --sort <sortBy>', 'Sort by (seeds|size|date)')
87
+ .option('--order <order>', 'Order (asc|desc)')
88
+ .option('-l, --limit <number>', 'Max results (default: 50)', parseInt)
89
+ .option('--sources <sources>', 'Sources (yts,eztv,thepiratebay,nyaa)')
90
+ .option('-h, --help', 'Show help with examples')
91
+ .allowUnknownOption()
92
+ .hook('preAction', (thisCommand) => {
93
+ const opts = thisCommand.opts();
94
+ if (opts.help || thisCommand.args.includes('-h')) {
95
+ console.log('');
96
+ console.log('Categories: all, movie, tv, anime, music, games, apps');
97
+ console.log('Sources:');
98
+ console.log(' yts - YTS (Movies)');
99
+ console.log(' eztv - EZTV (TV)');
100
+ console.log(' thepiratebay - The Pirate Bay');
101
+ console.log(' nyaa - Nyaa.si (Anime)');
102
+ console.log('');
103
+ console.log('Examples:');
104
+ console.log(' tor-dl search "movie" -c movie -s 100');
105
+ console.log(' tor-dl search "anime" --sources nyaa --max-size 2GB');
106
+ console.log(' tor-dl search "linux" --min-size 500MB -l 10');
107
+ process.exit(0);
108
+ }
109
+ })
78
110
  .action(async (query, options) => {
79
- const filters = loadFilters();
80
111
  const searchOptions = {
81
112
  query,
82
113
  category: options.cat || filters.category,
83
114
  minSeeds: options.minSeeds ?? filters.minSeeds,
115
+ maxSeeds: options.maxSeeds,
84
116
  minSize: options.minSize || filters.minSize,
85
117
  maxSize: options.maxSize || filters.maxSize,
86
118
  sortBy: options.sort || filters.sortBy,
@@ -91,27 +123,17 @@ function createParser() {
91
123
  const { searchCommand } = await Promise.resolve().then(() => __importStar(require('../commands/search')));
92
124
  await searchCommand(searchOptions);
93
125
  });
94
- program
95
- .command('download <number>')
96
- .description('Download a torrent by number from previous search')
97
- .option('-p, --path <path>', 'Download path')
98
- .action(async (number, options) => {
99
- const { downloadCommand } = await Promise.resolve().then(() => __importStar(require('../commands/download')));
100
- await downloadCommand(parseInt(number), options.path);
101
- });
102
- program
103
- .command('update')
104
- .description('Update sources from remote config')
105
- .alias('u')
106
- .action(async () => {
107
- const { updateCommand } = await Promise.resolve().then(() => __importStar(require('../commands/update')));
108
- await updateCommand();
126
+ const openCmd = program.command('open <number>', { hidden: true });
127
+ openCmd.description('Open .torrent in browser or copy magnet to clipboard');
128
+ openCmd.action(async (number) => {
129
+ const { openInBrowser } = await Promise.resolve().then(() => __importStar(require('../commands/download')));
130
+ await openInBrowser(parseInt(number));
109
131
  });
110
- program
111
- .argument('<number>', 'Torrent number to download')
112
- .action(async (number) => {
113
- const { downloadCommand } = await Promise.resolve().then(() => __importStar(require('../commands/download')));
114
- await downloadCommand(parseInt(number));
132
+ const oCmd = program.command('o <number>');
133
+ oCmd.description('Open .torrent in browser or copy magnet to clipboard');
134
+ oCmd.action(async (number) => {
135
+ const { openInBrowser } = await Promise.resolve().then(() => __importStar(require('../commands/download')));
136
+ await openInBrowser(parseInt(number));
115
137
  });
116
138
  program.on('command:*', () => {
117
139
  console.error('Invalid command: %s\nSee --help for a list of available commands.', program.args[0]);
@@ -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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"}
@@ -1,2 +1,2 @@
1
- export declare function downloadCommand(number: number, savePath?: string): Promise<void>;
1
+ export declare function openInBrowser(number: number): Promise<void>;
2
2
  //# sourceMappingURL=download.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/commands/download.ts"],"names":[],"mappings":"AAIA,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BtF"}
1
+ {"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/commands/download.ts"],"names":[],"mappings":"AAKA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA+DjE"}