anichi 2.6.0 → 2.6.2
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/README.md +335 -140
- package/dist/index.js +2 -2
- package/dist/player.js +1 -1
- package/dist/player.js.map +1 -1
- package/dist/ui.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,15 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-

|
|
6
|
+

|
|
7
7
|

|
|
8
|
+

|
|
8
9
|
|
|
9
|
-
**Streaming Anime
|
|
10
|
+
**A Modern, Interactive CLI for Discovering, Streaming, and Managing Anime Directly from the Terminal**
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
Built by Aditya K.
|
|
12
13
|
|
|
13
|
-
[Features](#-features) • [Installation](#-installation) • [Usage](#-usage) • [
|
|
14
|
+
[Features](#-features) • [Installation](#-installation) • [Usage](#-usage) • [Development](#-development) • [License](#-license)
|
|
14
15
|
|
|
15
16
|
</div>
|
|
16
17
|
|
|
@@ -18,61 +19,97 @@ Your modern, feature-rich, and interactive command-line tool for Anime streaming
|
|
|
18
19
|
|
|
19
20
|
## 🌟 Features
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Anichi is built to provide a premium experience right from your terminal.
|
|
22
|
+
Anichi brings the anime streaming experience to your terminal with a modern, interactive interface:
|
|
24
23
|
|
|
25
|
-
- **🎨 Modern UI**: Gradient banners,
|
|
24
|
+
- **🎨 Premium Modern UI**: Gradient banners, elegant tables, ASCII art banners, and vibrant color themes powered by `chalk`, `boxen`, `figlet`, and `gradient-string`
|
|
26
25
|
- **📂 Comprehensive Browsing**:
|
|
27
|
-
- **Ongoing
|
|
28
|
-
- **
|
|
29
|
-
- **
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
26
|
+
- **Ongoing Anime**: Browse currently airing anime with release day and latest episode information
|
|
27
|
+
- **Completed Anime**: Explore finished series with scores and ratings
|
|
28
|
+
- **Popular Anime**: Discover trending and popular titles
|
|
29
|
+
- **Search by Genre**: Filter anime by categories (Action, Adventure, Comedy, Drama, etc.)
|
|
30
|
+
- **Anime Schedule**: View broadcast schedule by day of the week
|
|
31
|
+
- **🔍 Smart Search**: Instantly search for anime by title with detailed metadata
|
|
32
|
+
- **📺 Streaming**: Play episodes directly using MPV or fallback to browser playback
|
|
33
|
+
- **⬇️ Downloads**:
|
|
34
|
+
- Single episode downloads with multiple quality options
|
|
35
|
+
- Batch downloads with format, quality, and provider selection
|
|
36
|
+
- **⚡ Performance**: Lightning-fast caching system to eliminate redundant API calls
|
|
37
|
+
- **⚙️ Configuration**: Easily customize player paths, arguments, and playback preferences
|
|
38
|
+
- **🔄 Cache Management**: Clear cached data on demand
|
|
39
|
+
- **📊 Pagination Support**: Navigate through large lists with ease
|
|
35
40
|
|
|
36
41
|
---
|
|
37
42
|
|
|
38
43
|
## 🛠️ Tech Stack
|
|
39
44
|
|
|
40
|
-
|
|
45
|
+
Anichi is built with modern, battle-tested libraries:
|
|
41
46
|
|
|
42
47
|
- **Language**: TypeScript 5.x
|
|
43
|
-
- **Runtime**: Node.js
|
|
44
|
-
- **CLI Framework**: Commander.js
|
|
45
|
-
- **HTTP Client**: Axios
|
|
46
|
-
- **Styling
|
|
47
|
-
- `chalk`
|
|
48
|
-
- `cli-table3`
|
|
49
|
-
- `boxen`
|
|
50
|
-
- `gradient-string`
|
|
51
|
-
- `figlet`
|
|
52
|
-
-
|
|
53
|
-
- **
|
|
54
|
-
- `
|
|
55
|
-
- `
|
|
56
|
-
-
|
|
57
|
-
- **
|
|
48
|
+
- **Runtime**: Node.js 18+
|
|
49
|
+
- **CLI Framework**: Commander.js 11.x
|
|
50
|
+
- **HTTP Client**: Axios 1.6.x
|
|
51
|
+
- **UI/Styling**:
|
|
52
|
+
- `chalk` - Terminal color styling
|
|
53
|
+
- `cli-table3` - Data table rendering
|
|
54
|
+
- `boxen` - Text boxes with borders
|
|
55
|
+
- `gradient-string` - Gradient text effects
|
|
56
|
+
- `figlet` - ASCII art banners
|
|
57
|
+
- `chalk-animation` - Animated text
|
|
58
|
+
- **User Interaction**:
|
|
59
|
+
- `inquirer` - Interactive CLI prompts
|
|
60
|
+
- `terminal-kit` - Terminal utilities
|
|
61
|
+
- `readline` - Command-line input
|
|
62
|
+
- **Performance**:
|
|
63
|
+
- `node-cache` - Fast in-memory caching
|
|
64
|
+
- `log-symbols` - Standard symbols (✓, ✗, ℹ, ⚠)
|
|
65
|
+
- `ora` - Loading spinners
|
|
66
|
+
- **Utilities**:
|
|
67
|
+
- `open` - Cross-platform URL/file opening
|
|
68
|
+
- `update-notifier` - Update notifications
|
|
69
|
+
- `string-width` - Text width calculation
|
|
70
|
+
- `wrap-ansi` - ANSI text wrapping
|
|
71
|
+
- **Cross-Platform**: Optimized for Windows, macOS, and Linux
|
|
58
72
|
|
|
59
73
|
---
|
|
60
74
|
|
|
61
75
|
## 📦 Supported Video Players
|
|
62
76
|
|
|
63
|
-
Anichi
|
|
77
|
+
Anichi automatically detects and uses the best available video player on your system:
|
|
78
|
+
|
|
79
|
+
### Primary Player: MPV (Recommended)
|
|
80
|
+
|
|
81
|
+
**Why MPV?** Lightweight, supports virtually all formats, highly customizable, and perfect for streaming.
|
|
82
|
+
|
|
83
|
+
**Installation Locations:**
|
|
84
|
+
|
|
85
|
+
- **Windows**:
|
|
86
|
+
- Scoop: `~/scoop/apps/mpv/current/mpv.exe`
|
|
87
|
+
- Program Files: `C:\Program Files\mpv\mpv.exe`
|
|
88
|
+
- Program Files (x86): `C:\Program Files (x86)\mpv\mpv.exe`
|
|
89
|
+
- Chocolatey: `C:\ProgramData\chocolatey\bin\mpvio.install\tools\mpv.exe`
|
|
90
|
+
- AppData: `%APPDATA%\Local\Programs\mpv\mpv.exe`
|
|
91
|
+
- **macOS**:
|
|
92
|
+
- Homebrew: `/opt/homebrew/bin/mpv`
|
|
93
|
+
- MacPorts: `/opt/local/bin/mpv`
|
|
94
|
+
- App Bundle: `/Applications/mpv.app/Contents/MacOS/mpv`
|
|
95
|
+
- **Linux**:
|
|
96
|
+
- Snap: `/snap/bin/mpv`
|
|
97
|
+
- Flatpak: `/var/lib/flatpak/exports/bin/io.github.mpv.mpv`
|
|
98
|
+
- Package Manager: `/usr/bin/mpv` or `/usr/local/bin/mpv`
|
|
99
|
+
|
|
100
|
+
### Fallback: Browser
|
|
64
101
|
|
|
65
|
-
|
|
66
|
-
- Windows: `mpv.exe`
|
|
67
|
-
- Linux/macOS: `mpv`
|
|
68
|
-
- _Why? Lightweight, supports almost all formats, highly customizable._
|
|
69
|
-
2. **VLC Media Player** (Fallback)
|
|
70
|
-
- Windows: `vlc.exe` (or `vlc`)
|
|
71
|
-
- Linux: `vlc`
|
|
72
|
-
- macOS: `VLC.app`
|
|
73
|
-
- _Why? Very common, supports almost all formats._
|
|
102
|
+
If no compatible player is found, streams automatically open in your default web browser.
|
|
74
103
|
|
|
75
|
-
|
|
104
|
+
### Important: yt-dlp Requirement
|
|
105
|
+
|
|
106
|
+
MPV requires **yt-dlp** to extract direct streaming URLs from various sources. Without it, some streams may fail to play.
|
|
107
|
+
|
|
108
|
+
**Install yt-dlp:**
|
|
109
|
+
|
|
110
|
+
- Windows: `choco install yt-dlp`
|
|
111
|
+
- macOS: `brew install yt-dlp`
|
|
112
|
+
- Linux: `sudo apt install yt-dlp` or `sudo pacman -S yt-dlp`
|
|
76
113
|
|
|
77
114
|
---
|
|
78
115
|
|
|
@@ -80,216 +117,374 @@ If no player is found, the app will automatically open the stream in your defaul
|
|
|
80
117
|
|
|
81
118
|
### Prerequisites
|
|
82
119
|
|
|
83
|
-
|
|
120
|
+
- **Node.js 18.0.0** or higher
|
|
121
|
+
- **npm** or **yarn** package manager
|
|
122
|
+
- **MPV player** (recommended) - See [Supported Video Players](#-supported-video-players)
|
|
123
|
+
- **yt-dlp** (required for streaming) - See [Supported Video Players](#-supported-video-players)
|
|
84
124
|
|
|
85
|
-
### Install Globally
|
|
86
|
-
|
|
87
|
-
To run `anichi` from anywhere in your terminal, install it globally using npm:
|
|
125
|
+
### Install Globally via NPM
|
|
88
126
|
|
|
89
127
|
```bash
|
|
90
128
|
npm install -g anichi
|
|
91
129
|
```
|
|
92
130
|
|
|
93
|
-
|
|
131
|
+
### Install Globally via Yarn
|
|
94
132
|
|
|
95
133
|
```bash
|
|
96
134
|
yarn global add anichi
|
|
97
135
|
```
|
|
98
136
|
|
|
137
|
+
### Verify Installation
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
anichi --version
|
|
141
|
+
# Output: 2.6.1
|
|
142
|
+
|
|
143
|
+
anichi --help
|
|
144
|
+
# Shows available commands
|
|
145
|
+
```
|
|
146
|
+
|
|
99
147
|
---
|
|
100
148
|
|
|
101
149
|
## 💻 Usage
|
|
102
150
|
|
|
103
151
|
### Launch Interactive Menu
|
|
104
152
|
|
|
105
|
-
|
|
153
|
+
Start the application with:
|
|
106
154
|
|
|
107
155
|
```bash
|
|
108
|
-
|
|
156
|
+
an home
|
|
109
157
|
```
|
|
110
158
|
|
|
111
|
-
|
|
159
|
+
or
|
|
112
160
|
|
|
113
161
|
```bash
|
|
114
162
|
anichi home
|
|
115
163
|
```
|
|
116
164
|
|
|
117
|
-
|
|
165
|
+
This launches the main menu with beautiful ASCII banners and gradient text. Navigate using number inputs (1-7) or keywords.
|
|
118
166
|
|
|
119
|
-
|
|
167
|
+
### Menu Options
|
|
120
168
|
|
|
121
|
-
|
|
169
|
+
#### 1. 🔄 Ongoing Anime
|
|
122
170
|
|
|
123
|
-
|
|
171
|
+
Browse currently airing anime series:
|
|
124
172
|
|
|
125
|
-
|
|
173
|
+
- View release day and latest episode information
|
|
174
|
+
- Pagination support (25 items per page)
|
|
175
|
+
- Navigate: `n` for next, `p` for previous
|
|
176
|
+
- Select anime by number to view details and streaming options
|
|
126
177
|
|
|
127
|
-
####
|
|
178
|
+
#### 2. ✅ Completed Anime
|
|
128
179
|
|
|
129
|
-
|
|
180
|
+
Explore finished anime series:
|
|
130
181
|
|
|
131
|
-
|
|
182
|
+
- View completion status and ratings/scores
|
|
183
|
+
- Pagination support
|
|
184
|
+
- Access to all completed episodes
|
|
132
185
|
|
|
133
|
-
####
|
|
186
|
+
#### 3. 🌟 Popular Anime
|
|
134
187
|
|
|
135
|
-
|
|
188
|
+
Discover trending and popular titles:
|
|
136
189
|
|
|
137
|
-
|
|
190
|
+
- See what the community is watching
|
|
191
|
+
- Ratings and current status
|
|
192
|
+
- Pagination support
|
|
138
193
|
|
|
139
|
-
|
|
194
|
+
#### 4. 🔍 Search Anime
|
|
140
195
|
|
|
141
|
-
|
|
142
|
-
- **By Name**: Type "Senin", "Selasa", or "Minggu" to filter.
|
|
196
|
+
Find anime by title:
|
|
143
197
|
|
|
144
|
-
|
|
198
|
+
```bash
|
|
199
|
+
# When prompted, enter anime title
|
|
200
|
+
Enter keyword: Naruto
|
|
201
|
+
```
|
|
145
202
|
|
|
146
|
-
|
|
203
|
+
- Displays all matching results
|
|
204
|
+
- Shows status and score
|
|
205
|
+
- Select to view details
|
|
147
206
|
|
|
148
|
-
|
|
207
|
+
#### 5. 🎬 Search by Genre
|
|
149
208
|
|
|
150
|
-
|
|
209
|
+
Filter anime by category:
|
|
151
210
|
|
|
152
|
-
|
|
211
|
+
- Browse available genres (Action, Adventure, Comedy, Drama, etc.)
|
|
212
|
+
- Select genre to view paginated anime list
|
|
213
|
+
- Search within genre results
|
|
153
214
|
|
|
154
|
-
####
|
|
215
|
+
#### 6. 📅 Schedule Anime
|
|
155
216
|
|
|
156
|
-
|
|
217
|
+
View anime broadcast schedule:
|
|
157
218
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
```
|
|
219
|
+
- Organized by day of the week (Senin - Minggu)
|
|
220
|
+
- Shows airing time when available
|
|
161
221
|
|
|
162
|
-
####
|
|
222
|
+
#### 7. ❓ FAQ
|
|
163
223
|
|
|
164
|
-
|
|
224
|
+
Frequently asked questions:
|
|
225
|
+
|
|
226
|
+
- Player installation guides
|
|
227
|
+
- Troubleshooting common issues
|
|
228
|
+
- Performance tips
|
|
229
|
+
- Command reference
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
### 📺 Episode Viewing & Streaming
|
|
234
|
+
|
|
235
|
+
When viewing an anime's episode list, you have several options:
|
|
165
236
|
|
|
166
|
-
```
|
|
167
|
-
|
|
237
|
+
```
|
|
238
|
+
Perintah:
|
|
239
|
+
• [nomor] atau 'latest' - Watch episode
|
|
240
|
+
• 'b' atau 'batch' - Download entire series (if available)
|
|
241
|
+
• 'd' atau 'download' - Download single episode
|
|
242
|
+
• 'back' - Return to anime list
|
|
168
243
|
```
|
|
169
244
|
|
|
170
|
-
|
|
245
|
+
**Example - Watch Episode:**
|
|
171
246
|
|
|
172
|
-
|
|
247
|
+
```
|
|
248
|
+
Peintah: 10
|
|
249
|
+
# Starts streaming episode 10 with MPV player
|
|
173
250
|
|
|
174
|
-
|
|
251
|
+
Peintah: latest
|
|
252
|
+
# Streams the newest episode
|
|
253
|
+
```
|
|
175
254
|
|
|
176
|
-
|
|
255
|
+
**Streaming Process:**
|
|
177
256
|
|
|
178
|
-
|
|
257
|
+
1. Select episode number
|
|
258
|
+
2. Choose video quality
|
|
259
|
+
3. MPV player launches automatically
|
|
179
260
|
|
|
180
|
-
|
|
261
|
+
### 📼 Episode Downloading
|
|
181
262
|
|
|
182
|
-
|
|
263
|
+
Download episodes for offline viewing:
|
|
183
264
|
|
|
184
|
-
```bash
|
|
185
|
-
choco install yt-dlp
|
|
186
265
|
```
|
|
266
|
+
Peintah: d
|
|
267
|
+
# Shows available qualities with file sizes
|
|
268
|
+
# Select quality → Select provider → Opens download link in browser
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 📦 Batch Downloads
|
|
187
272
|
|
|
188
|
-
|
|
273
|
+
Download entire anime series (if available):
|
|
189
274
|
|
|
190
|
-
|
|
275
|
+
```
|
|
276
|
+
Peintah: b
|
|
277
|
+
# Select format (720p, 1080p, etc.)
|
|
278
|
+
# Select quality within format
|
|
279
|
+
# Select provider (drive, mega, etc.)
|
|
280
|
+
# Opens download link in browser
|
|
281
|
+
```
|
|
191
282
|
|
|
192
283
|
---
|
|
193
284
|
|
|
194
|
-
### Commands
|
|
285
|
+
### ⌨️ Command Line Commands
|
|
195
286
|
|
|
196
|
-
####
|
|
287
|
+
#### Direct Episode Playback
|
|
197
288
|
|
|
198
|
-
Skip the menu and play a specific episode immediately
|
|
289
|
+
Skip the menu and play a specific episode immediately:
|
|
199
290
|
|
|
200
291
|
```bash
|
|
201
292
|
anichi play <slug> <episode>
|
|
202
293
|
```
|
|
203
294
|
|
|
204
|
-
|
|
295
|
+
**Example:**
|
|
205
296
|
|
|
206
297
|
```bash
|
|
207
298
|
anichi play one-piece-sub-indo 1070
|
|
299
|
+
# Directly streams One Piece episode 1070
|
|
208
300
|
```
|
|
209
301
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
- `-p, --player <path>`: Specify custom player path (e.g., `"C:\mpv\mpv.exe"`).
|
|
213
|
-
- `-a, --args <args>`: Pass arguments to the player (e.g., `"--fs --no-border"`).
|
|
214
|
-
|
|
215
|
-
#### Configuration
|
|
302
|
+
#### Configuration Management
|
|
216
303
|
|
|
217
|
-
Manage your
|
|
304
|
+
Manage your playback preferences:
|
|
218
305
|
|
|
219
306
|
```bash
|
|
220
|
-
# View current
|
|
307
|
+
# View current configuration
|
|
221
308
|
anichi config show
|
|
222
309
|
|
|
223
|
-
# Set default player
|
|
224
|
-
anichi config set
|
|
225
|
-
|
|
226
|
-
# Set default arguments
|
|
227
|
-
anichi config set playerArgs "--fs"
|
|
310
|
+
# Set default player path
|
|
311
|
+
anichi config set playerPath "C:\mpv\mpv.exe"
|
|
228
312
|
```
|
|
229
313
|
|
|
314
|
+
**Configuration File Location:**
|
|
315
|
+
|
|
316
|
+
- Windows: `%APPDATA%\.config\anichi\config.json`
|
|
317
|
+
- macOS/Linux: `~/.config/anichi/config.json`
|
|
318
|
+
|
|
230
319
|
#### Cache Management
|
|
231
320
|
|
|
232
|
-
Clear
|
|
321
|
+
Clear application cache to force fresh data:
|
|
233
322
|
|
|
234
323
|
```bash
|
|
324
|
+
# Clear all cached anime data
|
|
235
325
|
anichi cache clear
|
|
236
326
|
```
|
|
237
327
|
|
|
328
|
+
**When to clear cache:**
|
|
329
|
+
|
|
330
|
+
- Huge data updates from API
|
|
331
|
+
- Outdated episode information
|
|
332
|
+
- To reset pagination
|
|
333
|
+
|
|
238
334
|
---
|
|
239
335
|
|
|
240
|
-
|
|
336
|
+
### 🛠️ Setup Guide: MPV + yt-dlp
|
|
337
|
+
|
|
338
|
+
#### Windows (Recommended: Chocolatey)
|
|
241
339
|
|
|
242
|
-
|
|
340
|
+
**Step 1: Install Chocolatey** (if not already installed)
|
|
243
341
|
|
|
342
|
+
Open PowerShell as Administrator and run:
|
|
343
|
+
|
|
344
|
+
```powershell
|
|
345
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
|
244
346
|
```
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
347
|
+
|
|
348
|
+
**Step 2: Install MPV and yt-dlp**
|
|
349
|
+
|
|
350
|
+
```powershell
|
|
351
|
+
choco install mpv yt-dlp -y
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
**Step 3: Verify Installation**
|
|
355
|
+
|
|
356
|
+
```powershell
|
|
357
|
+
mpv --version
|
|
358
|
+
yt-dlp --version
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
#### macOS (Homebrew)
|
|
362
|
+
|
|
363
|
+
```bash
|
|
364
|
+
# Install Homebrew (if not installed)
|
|
365
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
366
|
+
|
|
367
|
+
# Install MPV and yt-dlp
|
|
368
|
+
brew install mpv yt-dlp
|
|
369
|
+
|
|
370
|
+
# Verify
|
|
371
|
+
mpv --version
|
|
372
|
+
yt-dlp --version
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
#### Linux (Ubuntu/Debian)
|
|
376
|
+
|
|
377
|
+
```bash
|
|
378
|
+
# Update package manager
|
|
379
|
+
sudo apt update
|
|
380
|
+
|
|
381
|
+
# Install MPV and yt-dlp
|
|
382
|
+
sudo apt install mpv yt-dlp -y
|
|
383
|
+
|
|
384
|
+
# Verify
|
|
385
|
+
mpv --version
|
|
386
|
+
yt-dlp --version
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## 🐛 Troubleshooting
|
|
392
|
+
|
|
393
|
+
### "MPV not found" Error
|
|
394
|
+
|
|
395
|
+
**Solution 1: Install MPV**
|
|
396
|
+
|
|
397
|
+
- Windows: `choco install mpv`
|
|
398
|
+
- macOS: `brew install mpv`
|
|
399
|
+
- Linux: `sudo apt install mpv`
|
|
400
|
+
|
|
401
|
+
**Solution 2: Set Custom Path**
|
|
402
|
+
|
|
403
|
+
```bash
|
|
404
|
+
anichi config set playerPath "C:\path\to\mpv.exe"
|
|
257
405
|
```
|
|
258
406
|
|
|
259
|
-
###
|
|
407
|
+
### Stream won't load in MPV
|
|
408
|
+
|
|
409
|
+
**Common Cause:** Missing yt-dlp
|
|
410
|
+
|
|
411
|
+
**Solution:**
|
|
412
|
+
|
|
413
|
+
- Windows: `choco install yt-dlp`
|
|
414
|
+
- macOS: `brew install yt-dlp`
|
|
415
|
+
- Linux: `sudo apt install yt-dlp`
|
|
416
|
+
|
|
417
|
+
### Rate Limiting (Too Many Requests)
|
|
260
418
|
|
|
261
|
-
|
|
262
|
-
- `npm run test`: (If configured) Run test suites.
|
|
263
|
-
- `npm run lint`: (If configured) Check code style.
|
|
419
|
+
Anichi implements intelligent rate limiting to respect the API:
|
|
264
420
|
|
|
265
|
-
|
|
421
|
+
- Minimum 600ms between requests
|
|
422
|
+
- Automatic retry with exponential backoff
|
|
423
|
+
- Integrated caching to minimize requests
|
|
266
424
|
|
|
267
|
-
|
|
425
|
+
**Workaround:** Don't rapidly navigate between sections
|
|
426
|
+
|
|
427
|
+
### Pagination Issues
|
|
428
|
+
|
|
429
|
+
If pagination seems stuck:
|
|
268
430
|
|
|
269
431
|
```bash
|
|
270
|
-
|
|
271
|
-
cd anichi
|
|
272
|
-
npm install
|
|
273
|
-
npm run build
|
|
274
|
-
npm link
|
|
432
|
+
anichi cache clear
|
|
275
433
|
```
|
|
276
434
|
|
|
277
435
|
---
|
|
278
436
|
|
|
279
|
-
##
|
|
437
|
+
## 📁 Project Structure
|
|
280
438
|
|
|
281
|
-
|
|
439
|
+
```
|
|
440
|
+
anichi/
|
|
441
|
+
├── src/
|
|
442
|
+
│ ├── index.ts # Main application logic, CLI commands
|
|
443
|
+
│ ├── api.ts # Axios HTTP client, API integration, caching
|
|
444
|
+
│ ├── ui.ts # Terminal UI, tables, colors, formatting
|
|
445
|
+
│ ├── player.ts # External player detection & management
|
|
446
|
+
│ ├── config.ts # Configuration file handling
|
|
447
|
+
│ └── types.ts # TypeScript interfaces & type definitions
|
|
448
|
+
├── bin/
|
|
449
|
+
│ └── anichi # CLI entry point
|
|
450
|
+
├── dist/ # Compiled JavaScript (after build)
|
|
451
|
+
├── package.json # Dependencies & scripts
|
|
452
|
+
├── tsconfig.json # TypeScript configuration
|
|
453
|
+
├── jest.config.js # Test configuration
|
|
454
|
+
├── README.md # This file
|
|
455
|
+
├── CHANGELOG.md # Version history
|
|
456
|
+
└── LICENSE # MIT License
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
## 📝 License
|
|
462
|
+
|
|
463
|
+
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details.
|
|
464
|
+
|
|
465
|
+
---
|
|
466
|
+
|
|
467
|
+
## 🙏 Credits & Acknowledgments
|
|
282
468
|
|
|
283
|
-
-
|
|
469
|
+
- **Created By**: Aditya K.
|
|
470
|
+
- **Email**: adityarabbyoka3@gmail.com
|
|
471
|
+
- **Built With**: TypeScript, Node.js, and amazing open-source libraries
|
|
284
472
|
|
|
285
473
|
---
|
|
286
474
|
|
|
287
|
-
##
|
|
475
|
+
## 📞 Support
|
|
476
|
+
|
|
477
|
+
Need help? Check these resources:
|
|
288
478
|
|
|
289
|
-
|
|
479
|
+
1. **FAQ** - Run `anichi` → Select option 7
|
|
480
|
+
2. **Documentation** - See this README for detailed guides
|
|
290
481
|
|
|
291
482
|
---
|
|
292
483
|
|
|
293
484
|
<div align="center">
|
|
294
|
-
|
|
485
|
+
|
|
486
|
+
### Made with ❤️ and ☕ by Aditya K.
|
|
487
|
+
|
|
488
|
+
⭐ If you found this useful, please give it a star! ⭐
|
|
489
|
+
|
|
295
490
|
</div>
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ const player_1 = require("./player");
|
|
|
13
13
|
const config_1 = require("./config");
|
|
14
14
|
const ui_1 = require("./ui");
|
|
15
15
|
const program = new commander_1.Command();
|
|
16
|
-
program.name("anichi").description("Anime streaming for CLI").version("2.6.
|
|
16
|
+
program.name("anichi").description("Anime streaming for CLI").version("2.6.2");
|
|
17
17
|
const ask = (query) => {
|
|
18
18
|
const rl = readline_1.default.createInterface({
|
|
19
19
|
input: process.stdin,
|
|
@@ -758,7 +758,7 @@ const runHome = async () => {
|
|
|
758
758
|
(0, ui_1.showMenu)([
|
|
759
759
|
"Ongoing Anime",
|
|
760
760
|
"Completed Anime",
|
|
761
|
-
"Anime
|
|
761
|
+
"Popular Anime",
|
|
762
762
|
"Search Anime",
|
|
763
763
|
"Search by Genre",
|
|
764
764
|
"Schedule Anime",
|
package/dist/player.js
CHANGED
package/dist/player.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"player.js","sourceRoot":"","sources":["../src/player.ts"],"names":[],"mappings":";;;;;;AAAA,iDAAoC;AACpC,gDAAwB;AACxB,6BAA4B;AAC5B,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAEpB,MAAM,cAAc,GAAG;IACrB,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,MAAM,gBAAgB,GAAG,GAAkB,EAAE;IAC3C,MAAM,KAAK,GAAG;QACZ,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC;QACrE,iCAAiC;QACjC,uCAAuC;QACvC,iEAAiE;QACjE,2CAA2C;QAC3C,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC;QACzE,kBAAkB;KACnB,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,YAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAkB,EAAE;IACvC,MAAM,KAAK,GAAG;QACZ,oBAAoB;QACpB,uBAAuB;QACvB,oBAAoB;QACpB,0CAA0C;QAC1C,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC;KAC/E,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,YAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,GAAkB,EAAE;IACzC,MAAM,KAAK,GAAG;QACZ,eAAe
|
|
1
|
+
{"version":3,"file":"player.js","sourceRoot":"","sources":["../src/player.ts"],"names":[],"mappings":"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"}
|
package/dist/ui.js
CHANGED
|
@@ -31,8 +31,8 @@ const showBanner = () => {
|
|
|
31
31
|
horizontalLayout: "fitted",
|
|
32
32
|
});
|
|
33
33
|
console.log(gradient_string_1.default.pastel.multiline(banner));
|
|
34
|
-
console.log(chalk_1.default.hex(theme.muted)(" v2.6.
|
|
35
|
-
console.log(chalk_1.default.hex(theme.muted)(" Butuh bantuan tentang Anichi? ketik
|
|
34
|
+
console.log(chalk_1.default.hex(theme.muted)(" v2.6.2 • Streaming Anime CLI By ShDitz\n"));
|
|
35
|
+
console.log(chalk_1.default.hex(theme.muted)(" Butuh bantuan tentang Anichi? ketik 7 untuk 'FAQ'\n"));
|
|
36
36
|
};
|
|
37
37
|
exports.showBanner = showBanner;
|
|
38
38
|
const createBox = (content, title, color = theme.primary) => {
|
|
@@ -182,7 +182,7 @@ const printSearchResults = (list) => {
|
|
|
182
182
|
chalk_1.default.bold.white("Status"),
|
|
183
183
|
chalk_1.default.bold.white("Score"),
|
|
184
184
|
],
|
|
185
|
-
colWidths: [5, 50, 15,
|
|
185
|
+
colWidths: [5, 50, 15, 7],
|
|
186
186
|
wordWrap: true,
|
|
187
187
|
style: { head: [], border: [theme.border] },
|
|
188
188
|
});
|