movizone 1.0.1 → 1.0.3

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 (3) hide show
  1. package/README.md +125 -49
  2. package/index.ts +6 -6
  3. package/package.json +14 -4
package/README.md CHANGED
@@ -1,47 +1,72 @@
1
- # Movizon
1
+ <p align="center">
2
+ <img src="https://img.shields.io/npm/v/movizone?color=magenta&style=flat-square" alt="npm version" />
3
+ <img src="https://img.shields.io/npm/l/movizone?style=flat-square" alt="license" />
4
+ <img src="https://img.shields.io/github/actions/workflow/status/alilibx/movizone/ci.yml?style=flat-square&label=CI" alt="CI" />
5
+ <img src="https://img.shields.io/badge/runtime-Bun-f472b6?style=flat-square" alt="Bun" />
6
+ <img src="https://img.shields.io/badge/73k%2B-movies-cyan?style=flat-square" alt="Movies" />
7
+ </p>
2
8
 
3
- A movie torrent explorer CLI. Search, browse, and download movies directly in the terminal.
9
+ # Movizone
4
10
 
5
- ## Features
11
+ A beautiful terminal UI for browsing, searching, and downloading movies. Fuzzy search handles your typos, and WebTorrent downloads run right in the terminal — no external torrent client needed.
6
12
 
7
- - **Fuzzy search** - handles typos like "zootobia" -> Zootopia, "incpetion" -> Inception
8
- - **In-terminal downloads** - download via WebTorrent with a live progress bar, no torrent client needed
9
- - **Browse** - sort by trending, rating, seeds, year, or date added with genre filters
10
- - **Movie details** - rating, runtime, genres, synopsis, trailer link, torrent info
11
- - **Copy magnet links** - to clipboard for use in external clients
12
- - **Similar movies** - discover related films
13
+ ```
14
+ ╔═══════════════════════════════════════════════════════════════════════════╗
15
+ ║ ║
16
+ ║ ███╗ ███╗ ██████╗ ██╗ ██╗██╗███████╗ ██████╗ ███╗ ██╗███████╗ ║
17
+ ║ ████╗ ████║██╔═══██╗██║ ██║██║╚══███╔╝██╔═══██╗████╗ ██║██╔════╝ ║
18
+ ║ ██╔████╔██║██║ ██║██║ ██║██║ ███╔╝ ██║ ██║██╔██╗ ██║█████╗ ║
19
+ ║ ██║╚██╔╝██║██║ ██║╚██╗ ██╔╝██║ ███╔╝ ██║ ██║██║╚██╗██║██╔══╝ ║
20
+ ║ ██║ ╚═╝ ██║╚██████╔╝ ╚████╔╝ ██║███████╗╚██████╔╝██║ ╚████║███████╗ ║
21
+ ║ ╚═╝ ╚═╝ ╚═════╝ ╚═══╝ ╚═╝╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚══════╝ ║
22
+ ║ Movie Explorer ║
23
+ ║ ║
24
+ ╚═══════════════════════════════════════════════════════════════════════════╝
25
+ ```
13
26
 
14
- ## Requirements
27
+ ## Features
15
28
 
16
- - [Bun](https://bun.sh) v1.0+
29
+ - **Fuzzy search** — handles typos like `zootobia` → Zootopia, `incpetion` → Inception
30
+ - **In-terminal downloads** — WebTorrent with live progress bar, speed, ETA, and peer count
31
+ - **Rich TUI** — gradient ASCII header, boxed panels, color-coded tables, rating bars
32
+ - **Browse** — sort by trending, rating, seeds, year, or date added with genre filters
33
+ - **Paginated results** — navigate pages of 20 movies at a time
34
+ - **Movie details** — rating bar, runtime, genres, synopsis, trailer link, full torrent table
35
+ - **Copy magnet links** — to clipboard for use in external clients
36
+ - **Similar movies** — discover related films from any movie detail view
17
37
 
18
38
  ## Install
19
39
 
20
40
  ```bash
21
- # Clone and install
22
- git clone https://github.com/alilibx/movizon.git
23
- cd movizon
24
- bun install
41
+ # Run instantly (no install)
42
+ npx movizone
25
43
 
26
- # Link globally
27
- bun link
44
+ # Or with Bun
45
+ bun x movizone
28
46
  ```
29
47
 
30
- Or run directly:
48
+ Install globally:
31
49
 
32
50
  ```bash
33
- bun run index.ts
51
+ npm install -g movizone
52
+ # or
53
+ bun install -g movizone
34
54
  ```
35
55
 
36
- ## Usage
56
+ ### From source
37
57
 
58
+ ```bash
59
+ git clone https://github.com/alilibx/movizone.git
60
+ cd movizone
61
+ bun install
62
+ bun run index.ts
38
63
  ```
39
- $ movizon
40
64
 
41
- Movizon — Movie Torrent Explorer
42
- ────────────────────────────────────────
43
- Downloads: ~/Downloads/Movizon
65
+ ## Usage
66
+
67
+ ### Main menu
44
68
 
69
+ ```
45
70
  ? What do you want to do?
46
71
  > Search movies
47
72
  Browse movies
@@ -52,53 +77,104 @@ $ movizon
52
77
 
53
78
  ### Search
54
79
 
55
- Search handles typos and misspellings automatically:
80
+ Fuzzy search corrects typos automatically — it tries transpositions, similar-character substitutions, and per-word corrections in parallel:
56
81
 
57
82
  ```
58
- ? Search movies: zootobia 2 2025
83
+ ? Search movies: incpetion
84
+
85
+ ┌──────────────────────────────────────────────────────────────────────────┐
86
+ │ MOVIZONE Search: "incpetion" · 8 found │
87
+ └──────────────────────────────────────────────────────────────────────────┘
88
+ ┌─────┬────────────────────────────────┬───────┬─────────┬─────────┬────────┬──────────────────────┐
89
+ │ # │ Title │ Year │ Rating │ Quality │ Seeds │ Genre │
90
+ ├─────┼────────────────────────────────┼───────┼─────────┼─────────┼────────┼──────────────────────┤
91
+ │ 1 │ Inception │ 2010 │ ★ 8.8 │ 2160p │ ↑120 │ Action, Sci-Fi │
92
+ │ 2 │ Interception │ 2009 │ ★ 5.3 │ 1080p │ ↑12 │ Drama, Thriller │
93
+ │ ... │
94
+ └─────┴────────────────────────────────┴───────┴─────────┴─────────┴────────┴──────────────────────┘
95
+ ```
59
96
 
60
- Results for "zootobia 2 2025" · 2 found
97
+ ### Movie details
61
98
 
62
- 1. Zootopia 2 (2025) ★ 6.6 720p ↑42 Animation, Adventure, Comedy
63
- 2. Zootopia (2016) ★ 8 1080p ↑95 Animation, Adventure, Comedy
99
+ ```
100
+ ╔══════════════════════════════════════════════════════╗
101
+ ║ Inception (2010) tt1375666 ║
102
+ ╚══════════════════════════════════════════════════════╝
103
+ ┌──────────────────────┬────────────┬──────────┬──────────────────────────────┐
104
+ │ ★ 8.8 ████████░░ │ 2h 28m │ EN │ Action, Adventure, Sci-Fi │
105
+ └──────────────────────┴────────────┴──────────┴──────────────────────────────┘
106
+ Trailer: https://youtube.com/watch?v=...
107
+
108
+ ╭─ Synopsis ────────────────────────────────────────────╮
109
+ │ A thief who steals corporate secrets through the use │
110
+ │ of dream-sharing technology is given the inverse task │
111
+ │ of planting an idea into the mind of a C.E.O... │
112
+ ╰───────────────────────────────────────────────────────╯
113
+
114
+ ╭─ Torrents ────────────────────────────────────────────╮
115
+ │ Quality │ Type │ Size │ Seeds │ Peers │ Codec │
116
+ │ 720p │ web │ 1.1 GB │ ↑85 │ ↓12 │ x264 │
117
+ │ 1080p │ blu │ 1.9 GB │ ↑120 │ ↓25 │ x264 │
118
+ │ 2160p │ web │ 4.2 GB │ ↑42 │ ↓8 │ x265 │
119
+ ╰───────────────────────────────────────────────────────╯
120
+
121
+ ? Action:
122
+ > Download 1080p (1.9 GB, ↑120)
123
+ Download 2160p (4.2 GB, ↑42)
124
+ Copy magnet link
125
+ Similar movies
126
+ Back
64
127
  ```
65
128
 
66
129
  ### Download
67
130
 
68
- Select a movie and choose a quality to download directly in the terminal:
131
+ Downloads run in-terminal via WebTorrent with a live-updating progress panel:
69
132
 
70
133
  ```
71
- ? Action: Download 1080p (1.85 GB, ↑100)
72
-
73
- Saving to: ~/Downloads/Movizon
74
- Downloading: Inception.2010.1080p.BluRay.x264.mp4
75
- Size: 1.85 GB
76
-
77
- ████████████░░░░░░░░░░░░░░░░░░ 40.2% 756MB/1.85GB 2.3MB/s ETA 8m 12s 15 peers
134
+ ╭─ Download ────────────────────────────────────────────╮
135
+ │ Title: Inception │
136
+ Quality: 1080p blu │
137
+ │ Size: 1.9 GB │
138
+ │ Codec: x264 2.0ch │
139
+ │ Save to: ~/Downloads/Movizone │
140
+ ╰───────────────────────────────────────────────────────╯
141
+
142
+ ╭─ Progress ────────────────────────────────────────────╮
143
+ │ ████████████████████░░░░░░░░░░░░░░░░░░░░ 40.2% │
144
+ │ Downloaded 756MB/1.9GB Speed 2.3MB/s ETA 8m 15 │
145
+ ╰───────────────────────────────────────────────────────╯
78
146
  ```
79
147
 
80
148
  ### Browse
81
149
 
82
- Filter by genre and sort order:
150
+ Filter by genre and sort order, with pagination:
83
151
 
84
152
  ```
85
153
  ? Sort by: Rating
86
154
  ? Genre: Sci-Fi
87
155
 
88
- Browse · Page 1 · 4,521 total
89
-
90
- 1. Inception (2010) ★ 8.8 1080p ↑100 Action, Sci-Fi, Thriller
91
- 2. Interstellar (2014) ★ 8.7 2160p ↑100 Adventure, Drama, Sci-Fi
92
- 3. The Matrix (1999) ★ 8.7 1080p 100 Action, Sci-Fi
93
- ...
156
+ ┌──────────────────────────────────────────────────────────────────────────┐
157
+ │ MOVIZONE Browse · Page 1 · 4,521 total │
158
+ └──────────────────────────────────────────────────────────────────────────┘
159
+ ┌─────┬────────────────────────────────┬───────┬─────────┬─────────┬────────┬──────────────────────┐
160
+ 1 │ Inception │ 2010 │ ★ 8.8 │ 2160p │ 120 │ Action, Sci-Fi
161
+ │ 2 │ Interstellar │ 2014 │ ★ 8.7 │ 2160p │ ↑100 │ Adventure, Sci-Fi │
162
+ │ 3 │ The Matrix │ 1999 │ ★ 8.7 │ 1080p │ ↑100 │ Action, Sci-Fi │
163
+ │ ... │
164
+ └─────┴────────────────────────────────┴───────┴─────────┴─────────┴────────┴──────────────────────┘
94
165
  ```
95
166
 
96
- ## How It Works
167
+ ## How it works
168
+
169
+ - **Movie data** — YTS API with 73,000+ movies and torrent metadata
170
+ - **Fuzzy search** — edit-distance-1 corrections (transposes, similar-char substitutions) tried in parallel batches, with Levenshtein scoring to rank results
171
+ - **Downloads** — [WebTorrent](https://github.com/webtorrent/webtorrent) for peer-to-peer downloading, runs in a Node.js subprocess with JSON IPC back to the TUI
172
+ - **TUI** — [chalk](https://github.com/chalk/chalk), [boxen](https://github.com/sindresorhus/boxen), [cli-table3](https://github.com/cli-table/cli-table3), [figlet](https://github.com/patorjk/figlet.js), [gradient-string](https://github.com/bokub/gradient-string), [inquirer](https://github.com/SBoudrias/Inquirer.js)
173
+ - Movies saved to `~/Downloads/Movizone/`
174
+
175
+ ## Requirements
97
176
 
98
- - **Movie data** comes from the YTS API (73,000+ movies with torrent links)
99
- - **Fuzzy search** uses edit-distance-1 corrections (transposes, similar-char substitutions) tried in parallel, with Levenshtein scoring to rank results
100
- - **Downloads** use [WebTorrent](https://github.com/webtorrent/webtorrent) for peer-to-peer downloading directly in Node/Bun
101
- - Movies are saved to `~/Downloads/Movizon/`
177
+ - [Bun](https://bun.sh) v1.0+ (or Node.js 18+ via npx)
102
178
 
103
179
  ## License
104
180
 
package/index.ts CHANGED
@@ -16,8 +16,8 @@ import { fileURLToPath } from "url";
16
16
  const movizonGradient = gradient(["#ff00ff", "#00ffff"]);
17
17
 
18
18
  function renderHeader(): string {
19
- const ascii = figlet.textSync("MOVIZON", { font: "ANSI Shadow", horizontalLayout: "fitted" });
20
- return boxen(movizonGradient.multiline(ascii) + "\n" + chalk.dim(" Movie Torrent Explorer"), {
19
+ const ascii = figlet.textSync("MOVIZONE", { font: "ANSI Shadow", horizontalLayout: "fitted" });
20
+ return boxen(movizonGradient.multiline(ascii) + "\n" + chalk.dim(" Movie Explorer"), {
21
21
  padding: { top: 0, bottom: 0, left: 2, right: 2 },
22
22
  borderStyle: "double",
23
23
  borderColor: "magenta",
@@ -63,7 +63,7 @@ function navFooter(): string {
63
63
  // --- API Layer ---
64
64
 
65
65
  const API_BASE = "https://yts.torrentbay.st/api/v2";
66
- const DOWNLOAD_DIR = join(homedir(), "Downloads", "Movizon");
66
+ const DOWNLOAD_DIR = join(homedir(), "Downloads", "Movizone");
67
67
 
68
68
  const TRACKERS = [
69
69
  "udp://open.demonii.com:1337/announce",
@@ -685,7 +685,7 @@ async function searchAction(): Promise<void> {
685
685
  }
686
686
 
687
687
  console.log();
688
- console.log(contextBar(chalk.bold.magenta("MOVIZON"), chalk.dim(`Search: "${query}" · ${movies.length} found`)));
688
+ console.log(contextBar(chalk.bold.magenta("MOVIZONE"), chalk.dim(`Search: "${query}" · ${movies.length} found`)));
689
689
  displayMovieTable(movies);
690
690
  console.log(navFooter());
691
691
 
@@ -789,7 +789,7 @@ async function showSimilar(movie: Movie): Promise<void> {
789
789
  }
790
790
 
791
791
  console.log();
792
- console.log(contextBar(chalk.bold.magenta("MOVIZON"), chalk.dim(`Similar to "${movie.title}"`)));
792
+ console.log(contextBar(chalk.bold.magenta("MOVIZONE"), chalk.dim(`Similar to "${movie.title}"`)));
793
793
  displayMovieTable(res.data.movies);
794
794
  console.log(navFooter());
795
795
 
@@ -835,7 +835,7 @@ async function paginatedList(
835
835
  }
836
836
 
837
837
  console.log();
838
- console.log(contextBar(chalk.bold.magenta("MOVIZON"), chalk.dim(`${label} · Page ${page} · ${res.data.movie_count.toLocaleString()} total`)));
838
+ console.log(contextBar(chalk.bold.magenta("MOVIZONE"), chalk.dim(`${label} · Page ${page} · ${res.data.movie_count.toLocaleString()} total`)));
839
839
  displayMovieTable(res.data.movies);
840
840
  console.log(navFooter());
841
841
 
package/package.json CHANGED
@@ -1,12 +1,16 @@
1
1
  {
2
2
  "name": "movizone",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Movie torrent explorer CLI with fuzzy search and in-terminal downloads",
5
5
  "type": "module",
6
6
  "bin": {
7
- "movizon": "./index.ts"
7
+ "movizone": "./index.ts"
8
8
  },
9
- "files": ["index.ts", "download.mjs", "README.md"],
9
+ "files": [
10
+ "index.ts",
11
+ "download.mjs",
12
+ "README.md"
13
+ ],
10
14
  "scripts": {
11
15
  "start": "bun run index.ts",
12
16
  "typecheck": "bun x tsc --noEmit"
@@ -17,7 +21,13 @@
17
21
  "cli",
18
22
  "download",
19
23
  "search",
20
- "webtorrent"
24
+ "webtorrent",
25
+ "tui",
26
+ "terminal",
27
+ "streaming",
28
+ "magnet",
29
+ "yts",
30
+ "bun"
21
31
  ],
22
32
  "license": "MIT",
23
33
  "dependencies": {