anichi 2.2.6 → 2.6.0
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/LICENSE +2 -2
- package/README.md +39 -8
- package/dist/api.d.ts +3 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +16 -3
- package/dist/api.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +14 -2
- package/dist/config.js.map +1 -1
- package/dist/index.js +305 -103
- package/dist/index.js.map +1 -1
- package/dist/player.d.ts.map +1 -1
- package/dist/player.js +107 -216
- package/dist/player.js.map +1 -1
- package/dist/types.d.ts +13 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/ui.d.ts +3 -2
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +108 -15
- package/dist/ui.js.map +1 -1
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2026 ShDitz
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
18
18
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
19
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
20
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
<div align="center">
|
|
4
4
|
|
|
5
|
-

|
|
6
6
|

|
|
7
7
|

|
|
8
8
|
|
|
9
|
-
**
|
|
9
|
+
**Streaming Anime CLI By ShDitz**
|
|
10
10
|
|
|
11
11
|
Your modern, feature-rich, and interactive command-line tool for Anime streaming, downloading, and scheduling.
|
|
12
12
|
|
|
@@ -18,11 +18,16 @@ Your modern, feature-rich, and interactive command-line tool for Anime streaming
|
|
|
18
18
|
|
|
19
19
|
## 🌟 Features
|
|
20
20
|
|
|
21
|
+
## 🌟 Features
|
|
22
|
+
|
|
21
23
|
Anichi is built to provide a premium experience right from your terminal.
|
|
22
24
|
|
|
23
25
|
- **🎨 Modern UI**: Gradient banners, clean tables, and colorful typography using `chalk`, `boxen`, and `figlet`.
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
+
- **📂 Comprehensive Browsing**:
|
|
27
|
+
- **Ongoing & Completed Anime**: Browse lists with pagination (15 items per page).
|
|
28
|
+
- **Search by Genre**: Filter anime by specific genres.
|
|
29
|
+
- **Schedule**: View anime airing schedule by day (Senin - Minggu).
|
|
30
|
+
- **🔍 Smart Search**: Quickly find anime by title with detailed results.
|
|
26
31
|
- **📺 Streaming**: Play anime directly with your favorite external media player (MPV, VLC) or fallback to browser.
|
|
27
32
|
- **⬇️ Downloads**: Support for single episode downloads and **Batch Downloads** with multiple quality and provider options.
|
|
28
33
|
- **⚡ Performance**: Integrated caching system (`node-cache`) for instant loading of previously accessed data.
|
|
@@ -113,11 +118,11 @@ You will be greeted with the main menu banner. From there, you can navigate usin
|
|
|
113
118
|
|
|
114
119
|
#### 1. Ongoing Anime
|
|
115
120
|
|
|
116
|
-
Shows currently airing anime with their release day and latest episode.
|
|
121
|
+
Shows currently airing anime with their release day and latest episode. Supports **pagination** for browsing more results.
|
|
117
122
|
|
|
118
123
|
#### 2. Completed Anime
|
|
119
124
|
|
|
120
|
-
Shows completed anime with their score and last release date.
|
|
125
|
+
Shows completed anime with their score and last release date. Supports **pagination**.
|
|
121
126
|
|
|
122
127
|
#### 3. Search Anime
|
|
123
128
|
|
|
@@ -125,13 +130,21 @@ Search for any anime by its title.
|
|
|
125
130
|
|
|
126
131
|
> **Tip**: Type "Naruto" or "One Piece".
|
|
127
132
|
|
|
128
|
-
#### 4.
|
|
133
|
+
#### 4. Search by Genre
|
|
134
|
+
|
|
135
|
+
Filter anime by specific genres (Action, Adventure, Comedy, etc.) and browse through **paginated** results.
|
|
136
|
+
|
|
137
|
+
#### 5. Schedule Anime
|
|
129
138
|
|
|
130
139
|
View the broadcast schedule.
|
|
131
140
|
|
|
132
141
|
- **By Number**: Type `1` for Senin, `2` for Selasa, etc.
|
|
133
142
|
- **By Name**: Type "Senin", "Selasa", or "Minggu" to filter.
|
|
134
143
|
|
|
144
|
+
#### 6. FAQ
|
|
145
|
+
|
|
146
|
+
View frequently asked questions and help guides.
|
|
147
|
+
|
|
135
148
|
---
|
|
136
149
|
|
|
137
150
|
### 🎞️ How to Install MPV (Recommended Player)
|
|
@@ -156,7 +169,25 @@ choco install mpv
|
|
|
156
169
|
|
|
157
170
|
#### 3. Verify Installation
|
|
158
171
|
|
|
159
|
-
Type `mpv` in your terminal. If the player opens, installation is successful.
|
|
172
|
+
Type `mpv` in your terminal. If the player opens, installation is successful.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
### 📼 How to Install yt-dlp (Required for some streams)
|
|
177
|
+
|
|
178
|
+
Some streaming links or sources require `yt-dlp` to fetch the direct video URL. Without it, the player might fail to load certain streams.
|
|
179
|
+
|
|
180
|
+
#### 1. Install yt-dlp using Chocolatey
|
|
181
|
+
|
|
182
|
+
Open **PowerShell** or **CMD** and run:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
choco install yt-dlp
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
#### 2. Verify Installation
|
|
189
|
+
|
|
190
|
+
Type `yt-dlp --version` in your terminal. If it outputs a version number, it's installed successfully.
|
|
160
191
|
|
|
161
192
|
---
|
|
162
193
|
|
package/dist/api.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
declare class ApiClient {
|
|
2
2
|
private client;
|
|
3
3
|
private cache;
|
|
4
|
+
private lastRequestTime;
|
|
4
5
|
constructor();
|
|
5
6
|
private request;
|
|
6
7
|
getHome(): Promise<any>;
|
|
8
|
+
getOngoing(page?: number): Promise<any>;
|
|
9
|
+
getCompleted(page?: number): Promise<any>;
|
|
7
10
|
getAnime(slug: string): Promise<any>;
|
|
8
11
|
getGenre(): Promise<any>;
|
|
9
12
|
getEpisode(slug: string): Promise<any>;
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAwBA,cAAM,SAAS;IACb,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,eAAe,CAAa;;YAUtB,OAAO;IAgDf,OAAO;IAIP,UAAU,CAAC,IAAI,GAAE,MAAU;IAI3B,YAAY,CAAC,IAAI,GAAE,MAAU;IAI7B,QAAQ,CAAC,IAAI,EAAE,MAAM;IAGrB,QAAQ;IAGR,UAAU,CAAC,IAAI,EAAE,MAAM;IAGvB,SAAS,CAAC,EAAE,EAAE,MAAM;IAGpB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAGrB,SAAS,CAAC,OAAO,EAAE,MAAM;IAGzB,WAAW;IAGX,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAU;IAIlD,UAAU;CAIX;;AAED,wBAA+B"}
|
package/dist/api.js
CHANGED
|
@@ -10,8 +10,10 @@ const ui_1 = require("./ui");
|
|
|
10
10
|
const BASE_URL = "https://www.sankavollerei.com/anime";
|
|
11
11
|
const CACHE_TTL = 3600;
|
|
12
12
|
const MAX_RETRIES = 3;
|
|
13
|
+
const MIN_REQUEST_DELAY = 600;
|
|
13
14
|
class ApiClient {
|
|
14
15
|
constructor() {
|
|
16
|
+
this.lastRequestTime = 0;
|
|
15
17
|
this.client = axios_1.default.create({
|
|
16
18
|
baseURL: BASE_URL,
|
|
17
19
|
timeout: 60000,
|
|
@@ -19,11 +21,18 @@ class ApiClient {
|
|
|
19
21
|
this.cache = new node_cache_1.default({ stdTTL: CACHE_TTL, checkperiod: 600 });
|
|
20
22
|
}
|
|
21
23
|
async request(url) {
|
|
24
|
+
const now = Date.now();
|
|
25
|
+
const elapsed = now - this.lastRequestTime;
|
|
26
|
+
if (elapsed < MIN_REQUEST_DELAY) {
|
|
27
|
+
const waitTime = MIN_REQUEST_DELAY - elapsed;
|
|
28
|
+
await new Promise((r) => setTimeout(r, waitTime));
|
|
29
|
+
}
|
|
30
|
+
this.lastRequestTime = now;
|
|
22
31
|
const cached = this.cache.get(url);
|
|
23
32
|
if (cached)
|
|
24
33
|
return cached;
|
|
25
34
|
const spinner = (0, ora_1.default)({
|
|
26
|
-
text:
|
|
35
|
+
text: "Loading data...",
|
|
27
36
|
color: "cyan",
|
|
28
37
|
}).start();
|
|
29
38
|
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
|
|
@@ -35,7 +44,6 @@ class ApiClient {
|
|
|
35
44
|
}
|
|
36
45
|
if (status !== 200)
|
|
37
46
|
throw new Error(`HTTP ${status}`);
|
|
38
|
-
// Hanya simpan jika success (perbaikan sebelumnya)
|
|
39
47
|
if (data.ok === true || data.status === "success") {
|
|
40
48
|
this.cache.set(url, data);
|
|
41
49
|
}
|
|
@@ -57,6 +65,12 @@ class ApiClient {
|
|
|
57
65
|
async getHome() {
|
|
58
66
|
return this.request("/home");
|
|
59
67
|
}
|
|
68
|
+
async getOngoing(page = 1) {
|
|
69
|
+
return this.request(`/ongoing-anime?page=${page}`);
|
|
70
|
+
}
|
|
71
|
+
async getCompleted(page = 1) {
|
|
72
|
+
return this.request(`/complete-anime?page=${page}`);
|
|
73
|
+
}
|
|
60
74
|
async getAnime(slug) {
|
|
61
75
|
return this.request(`/anime/${slug}`);
|
|
62
76
|
}
|
|
@@ -78,7 +92,6 @@ class ApiClient {
|
|
|
78
92
|
async getSchedule() {
|
|
79
93
|
return this.request(`/schedule`);
|
|
80
94
|
}
|
|
81
|
-
// Method Baru: Get Anime by Genre with Pagination
|
|
82
95
|
async getGenreAnime(slug, page = 1) {
|
|
83
96
|
return this.request(`/genre/${slug}?page=${page}`);
|
|
84
97
|
}
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;AAAA,kDAA2C;AAC3C,4DAAmC;AACnC,8CAAsB;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAMlC,eAAO,MAAM,eAAe,QAAO,IAIlC,CAAC;AAEF,eAAO,MAAM,UAAU,QAAO,SAmB7B,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,QAAQ,SAAS,KAAG,IAO9C,CAAC;AAEF,eAAO,MAAM,aAAa,QAAO,MAAqB,CAAC"}
|
package/dist/config.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.getConfigPath = exports.saveConfig = exports.loadConfig = exports.ensure
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const ui_1 = require("./ui");
|
|
10
11
|
const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), ".config", "anichi");
|
|
11
12
|
const CONFIG_FILE = path_1.default.join(CONFIG_DIR, "config.json");
|
|
12
13
|
const ensureConfigDir = () => {
|
|
@@ -22,16 +23,27 @@ const loadConfig = () => {
|
|
|
22
23
|
}
|
|
23
24
|
try {
|
|
24
25
|
const content = fs_1.default.readFileSync(CONFIG_FILE, "utf-8");
|
|
25
|
-
|
|
26
|
+
const config = JSON.parse(content);
|
|
27
|
+
if (typeof config !== "object" || config === null) {
|
|
28
|
+
ui_1.logger.warn("Invalid config format, resetting to default.");
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
return config;
|
|
26
32
|
}
|
|
27
33
|
catch (err) {
|
|
34
|
+
ui_1.logger.warn("Corrupt config file found, resetting to default.");
|
|
28
35
|
return {};
|
|
29
36
|
}
|
|
30
37
|
};
|
|
31
38
|
exports.loadConfig = loadConfig;
|
|
32
39
|
const saveConfig = (config) => {
|
|
33
40
|
(0, exports.ensureConfigDir)();
|
|
34
|
-
|
|
41
|
+
try {
|
|
42
|
+
fs_1.default.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
ui_1.logger.error(`Failed to save config: ${err.message}`);
|
|
46
|
+
}
|
|
35
47
|
};
|
|
36
48
|
exports.saveConfig = saveConfig;
|
|
37
49
|
const getConfigPath = () => CONFIG_FILE;
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAEpB,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAElD,MAAM,eAAe,GAAG,GAAS,EAAE;IACxC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEK,MAAM,UAAU,GAAG,GAAc,EAAE;IACxC,IAAA,uBAAe,GAAE,CAAC;IAClB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAEpB,6BAA4B;AAE5B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AAElD,MAAM,eAAe,GAAG,GAAS,EAAE;IACxC,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,YAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEK,MAAM,UAAU,GAAG,GAAc,EAAE;IACxC,IAAA,uBAAe,GAAE,CAAC;IAClB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAClD,WAAM,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YAC5D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,UAAU,cAmBrB;AAEK,MAAM,UAAU,GAAG,CAAC,MAAiB,EAAQ,EAAE;IACpD,IAAA,uBAAe,GAAE,CAAC;IAClB,IAAI,CAAC;QACH,YAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,WAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACxD,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB;AAEK,MAAM,aAAa,GAAG,GAAW,EAAE,CAAC,WAAW,CAAC;AAA1C,QAAA,aAAa,iBAA6B"}
|