tanko 1.0.5 → 1.0.7
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/bun.lock +9 -2
- package/dist/const.js +46 -0
- package/dist/const.js.map +1 -0
- package/dist/frontend/menu.js +59 -36
- package/dist/frontend/menu.js.map +1 -1
- package/dist/frontend/prompts.js +10 -8
- package/dist/frontend/prompts.js.map +1 -1
- package/dist/functions/downloader.js +2 -2
- package/dist/functions/downloader.js.map +1 -1
- package/dist/functions/history.js +2 -1
- package/dist/functions/history.js.map +1 -1
- package/dist/index.js +36 -40
- package/dist/index.js.map +1 -1
- package/images/preview.gif +0 -0
- package/images/preview.png +0 -0
- package/images/reader.png +0 -0
- package/package.json +5 -3
- package/readme.md +8 -5
package/bun.lock
CHANGED
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
"": {
|
|
5
5
|
"name": "leer-capitulo-scrapper",
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@alex_521/prompts": "^0.
|
|
7
|
+
"@alex_521/prompts": "^0.1.1",
|
|
8
8
|
"ansi-escapes": "^7.2.0",
|
|
9
9
|
"boxen": "8.0.1",
|
|
10
10
|
"chalk": "^5.6.2",
|
|
11
11
|
"cheerio": "1.2.0",
|
|
12
|
+
"gradient-string": "^3.0.0",
|
|
12
13
|
"ora": "9.3.0",
|
|
13
14
|
"pdfkit": "0.17.2",
|
|
14
15
|
"playwright": "^1.58.2",
|
|
@@ -24,7 +25,7 @@
|
|
|
24
25
|
},
|
|
25
26
|
},
|
|
26
27
|
"packages": {
|
|
27
|
-
"@alex_521/prompts": ["@alex_521/prompts@0.
|
|
28
|
+
"@alex_521/prompts": ["@alex_521/prompts@0.1.1", "", { "dependencies": { "kleur": "^4.0.1", "sisteransi": "^1.0.5" } }, "sha512-SlDXrSHX3xphc8KlPCf22tsLjz+dI2Txsy8wrOgoWJ2vOkWci7Mt/t7VuS3KBMaOzqViugVhc/rtui5ayQmSrg=="],
|
|
28
29
|
|
|
29
30
|
"@babel/runtime": ["@babel/runtime@7.28.6", "", {}, "sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA=="],
|
|
30
31
|
|
|
@@ -170,6 +171,8 @@
|
|
|
170
171
|
|
|
171
172
|
"@types/pdfkit": ["@types/pdfkit@0.17.5", "", { "dependencies": { "@types/node": "*" } }, "sha512-T3ZHnvF91HsEco5ClhBCOuBwobZfPcI2jaiSHybkkKYq4KhVIIurod94JVKvDIG0JXT6o3KiERC0X0//m8dyrg=="],
|
|
172
173
|
|
|
174
|
+
"@types/tinycolor2": ["@types/tinycolor2@1.4.6", "", {}, "sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw=="],
|
|
175
|
+
|
|
173
176
|
"@xmldom/xmldom": ["@xmldom/xmldom@0.8.11", "", {}, "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw=="],
|
|
174
177
|
|
|
175
178
|
"abort-controller": ["abort-controller@3.0.0", "", { "dependencies": { "event-target-shim": "^5.0.0" } }, "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="],
|
|
@@ -286,6 +289,8 @@
|
|
|
286
289
|
|
|
287
290
|
"global": ["global@4.4.0", "", { "dependencies": { "min-document": "^2.19.0", "process": "^0.11.10" } }, "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w=="],
|
|
288
291
|
|
|
292
|
+
"gradient-string": ["gradient-string@3.0.0", "", { "dependencies": { "chalk": "^5.3.0", "tinygradient": "^1.1.5" } }, "sha512-frdKI4Qi8Ihp4C6wZNB565de/THpIaw3DjP5ku87M+N9rNSGmPTjfkq61SdRXB7eCaL8O1hkKDvf6CDMtOzIAg=="],
|
|
293
|
+
|
|
289
294
|
"htmlparser2": ["htmlparser2@10.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.2.2", "entities": "^7.0.1" } }, "sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ=="],
|
|
290
295
|
|
|
291
296
|
"human-signals": ["human-signals@2.1.0", "", {}, "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw=="],
|
|
@@ -450,6 +455,8 @@
|
|
|
450
455
|
|
|
451
456
|
"tinycolor2": ["tinycolor2@1.6.0", "", {}, "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw=="],
|
|
452
457
|
|
|
458
|
+
"tinygradient": ["tinygradient@1.1.5", "", { "dependencies": { "@types/tinycolor2": "^1.4.0", "tinycolor2": "^1.0.0" } }, "sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw=="],
|
|
459
|
+
|
|
453
460
|
"token-types": ["token-types@4.2.1", "", { "dependencies": { "@tokenizer/token": "^0.3.0", "ieee754": "^1.2.1" } }, "sha512-6udB24Q737UD/SDsKAHI9FCRP7Bqc9D/MQUV02ORQg5iskjtLJlZJNdN4kKtcdtwCeWIwIHDGaUsTsCCAa8sFQ=="],
|
|
454
461
|
|
|
455
462
|
"truncate-utf8-bytes": ["truncate-utf8-bytes@1.0.2", "", { "dependencies": { "utf8-byte-length": "^1.0.1" } }, "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ=="],
|
package/dist/const.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import os from "os";
|
|
3
|
+
import gradient from "gradient-string";
|
|
4
|
+
export const BASE_DIR = path.resolve(os.homedir(), 'tanko');
|
|
5
|
+
export const DOWNLOADS_DEFAULT_DIR = path.resolve(BASE_DIR, 'downloads');
|
|
6
|
+
export const DATA_DEFAULT_DIR = path.resolve(BASE_DIR, 'data');
|
|
7
|
+
export const TEMP_DIR = os.tmpdir();
|
|
8
|
+
export const PRIMARY_COLOR = '#bf78fa';
|
|
9
|
+
export const WELCOME_MESSAGE = gradient('#84b7fa', PRIMARY_COLOR).multiline(`
|
|
10
|
+
████████╗ █████╗ ███╗ ██╗██╗ ██╗ ██████╗
|
|
11
|
+
╚══██╔══╝██╔══██╗████╗ ██║██║ ██╔╝██╔═══██╗
|
|
12
|
+
██║ ███████║██╔██╗ ██║█████╔╝ ██║ ██║
|
|
13
|
+
██║ ██╔══██║██║╚██╗██║██╔═██╗ ██║ ██║
|
|
14
|
+
██║ ██║ ██║██║ ╚████║██║ ██╗╚██████╔╝
|
|
15
|
+
╚═╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝
|
|
16
|
+
`);
|
|
17
|
+
export const LAUNCH_OPTIONS = {
|
|
18
|
+
headless: true,
|
|
19
|
+
args: [
|
|
20
|
+
'--headless',
|
|
21
|
+
'--no-sandbox',
|
|
22
|
+
'--disable-gpu'
|
|
23
|
+
],
|
|
24
|
+
firefoxUserPrefs: {
|
|
25
|
+
'permissions.default.image': 2,
|
|
26
|
+
'toolkit.cosmeticAnimations.enabled': false,
|
|
27
|
+
'browser.sessionhistory.max_entries': 1,
|
|
28
|
+
'browser.cache.disk.enable': false,
|
|
29
|
+
'app.update.auto': false,
|
|
30
|
+
'dom.ipc.processCount': 1,
|
|
31
|
+
'datareporting.policy.dataSubmissionEnabled': false,
|
|
32
|
+
'toolkit.telemetry.enabled': false,
|
|
33
|
+
'javascript.options.ion': true,
|
|
34
|
+
'javascript.options.baselinejit': true,
|
|
35
|
+
'security.OCSP.enabled': 0,
|
|
36
|
+
'network.dns.disablePrefetch': true,
|
|
37
|
+
'layout.css.report_errors': false,
|
|
38
|
+
'browser.tabs.remote.autostart': true,
|
|
39
|
+
'layers.acceleration.disabled': true,
|
|
40
|
+
'browser.frames.enabled': false,
|
|
41
|
+
'permissions.default.desktop-notification': 2,
|
|
42
|
+
'network.http.proxy.pipelining': true,
|
|
43
|
+
'network.http.max-connections': 64,
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB,OAAO,QAAQ,MAAM,iBAAiB,CAAA;AAEtC,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAA;AAC3D,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AACxE,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AAC9D,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;AACnC,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAA;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC;;;;;;;CAO3E,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,cAAc,GAAiB;IACxC,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE;QACF,YAAY;QACZ,cAAc;QACd,eAAe;KAClB;IACD,gBAAgB,EAAE;QAClB,2BAA2B,EAAE,CAAC;QAC9B,oCAAoC,EAAE,KAAK;QAC3C,oCAAoC,EAAE,CAAC;QACvC,2BAA2B,EAAE,KAAK;QAClC,iBAAiB,EAAE,KAAK;QACxB,sBAAsB,EAAE,CAAC;QACzB,4CAA4C,EAAE,KAAK;QACnD,2BAA2B,EAAE,KAAK;QAClC,wBAAwB,EAAE,IAAI;QAC9B,gCAAgC,EAAE,IAAI;QACtC,uBAAuB,EAAE,CAAC;QAC1B,6BAA6B,EAAE,IAAI;QACnC,0BAA0B,EAAE,KAAK;QACjC,+BAA+B,EAAE,IAAI;QACrC,8BAA8B,EAAE,IAAI;QACpC,wBAAwB,EAAE,KAAK;QAC/B,0CAA0C,EAAE,CAAC;QAC7C,+BAA+B,EAAE,IAAI;QACrC,8BAA8B,EAAE,EAAE;KAEnC;CACF,CAAA"}
|
package/dist/frontend/menu.js
CHANGED
|
@@ -7,17 +7,15 @@ import { History } from "../functions/history.js";
|
|
|
7
7
|
import { terminalReader } from "./reader.js";
|
|
8
8
|
import { SignalsCodes } from '../types.js';
|
|
9
9
|
import { chapterSelect, historyCahpterSelectedOptions, historyPrompt, mainPrompt, PopularMangaSelectOptions, search, searchChapterSelectedOptions, searchResultPrompt, voidPrompt } from './prompts.js';
|
|
10
|
+
import { PRIMARY_COLOR, WELCOME_MESSAGE } from "../const.js";
|
|
11
|
+
import chalk from "chalk";
|
|
10
12
|
const loading = ora();
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
borderColor: 'yellowBright',
|
|
18
|
-
fullscreen: false
|
|
19
|
-
});
|
|
20
|
-
export async function init(server, browser, page, context) {
|
|
13
|
+
const clearScreen = () => {
|
|
14
|
+
console.log(esc.clearViewport);
|
|
15
|
+
console.log(WELCOME_MESSAGE);
|
|
16
|
+
};
|
|
17
|
+
export async function init(server, browser, page) {
|
|
18
|
+
console.log(WELCOME_MESSAGE);
|
|
21
19
|
try {
|
|
22
20
|
const closeBrowser = async () => {
|
|
23
21
|
loading.start('Saliendo...');
|
|
@@ -26,7 +24,7 @@ export async function init(server, browser, page, context) {
|
|
|
26
24
|
loading.stop();
|
|
27
25
|
};
|
|
28
26
|
while (true) {
|
|
29
|
-
console.log(
|
|
27
|
+
console.log();
|
|
30
28
|
const main = await prompts(mainPrompt);
|
|
31
29
|
if (!main?.opt) {
|
|
32
30
|
await closeBrowser();
|
|
@@ -44,7 +42,7 @@ export async function init(server, browser, page, context) {
|
|
|
44
42
|
closeBrowser();
|
|
45
43
|
break;
|
|
46
44
|
}
|
|
47
|
-
|
|
45
|
+
clearScreen();
|
|
48
46
|
}
|
|
49
47
|
}
|
|
50
48
|
catch (e) {
|
|
@@ -52,14 +50,17 @@ export async function init(server, browser, page, context) {
|
|
|
52
50
|
}
|
|
53
51
|
}
|
|
54
52
|
async function searchBar(server) {
|
|
53
|
+
clearScreen();
|
|
55
54
|
try {
|
|
56
55
|
while (true) {
|
|
57
56
|
const searchQuery = await prompts(search);
|
|
58
|
-
if (!searchQuery?.query)
|
|
57
|
+
if (!searchQuery?.query) {
|
|
59
58
|
break;
|
|
59
|
+
}
|
|
60
60
|
loading.start(`Buscando ${searchQuery.query}...`);
|
|
61
61
|
const results = await server.search(searchQuery.query);
|
|
62
62
|
if (results.length < 1) {
|
|
63
|
+
clearScreen();
|
|
63
64
|
loading.fail('Busqueda sin resultados');
|
|
64
65
|
continue;
|
|
65
66
|
}
|
|
@@ -72,11 +73,12 @@ async function searchBar(server) {
|
|
|
72
73
|
if (loading.isSpinning)
|
|
73
74
|
loading.stop();
|
|
74
75
|
const selectResult = await prompts(searchResultPrompt(choices, choices.length));
|
|
75
|
-
if (!selectResult?.manga)
|
|
76
|
+
if (!selectResult?.manga) {
|
|
77
|
+
clearScreen();
|
|
76
78
|
continue;
|
|
79
|
+
}
|
|
77
80
|
await loadMangaChapter(server, selectResult.manga.link);
|
|
78
|
-
|
|
79
|
-
console.log(box);
|
|
81
|
+
clearScreen();
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
catch (e) {
|
|
@@ -84,6 +86,7 @@ async function searchBar(server) {
|
|
|
84
86
|
}
|
|
85
87
|
}
|
|
86
88
|
async function loadMangaChapter(server, mangaSrc) {
|
|
89
|
+
clearScreen();
|
|
87
90
|
try {
|
|
88
91
|
loading.start(`Cargando capitulos...`);
|
|
89
92
|
const result = await server.getChaptersList(mangaSrc);
|
|
@@ -100,21 +103,26 @@ async function loadMangaChapter(server, mangaSrc) {
|
|
|
100
103
|
});
|
|
101
104
|
while (true) {
|
|
102
105
|
const select = await prompts(chapterSelect(result.title, choices.length, choices));
|
|
103
|
-
if (!select.chapter)
|
|
106
|
+
if (!select.chapter) {
|
|
107
|
+
clearScreen();
|
|
104
108
|
break;
|
|
109
|
+
}
|
|
105
110
|
loading.start(`cargando ${result.title}...`);
|
|
106
111
|
const chapterInfo = await server.getChapterPages(select.chapter.src);
|
|
107
112
|
if (loading.isSpinning)
|
|
108
113
|
loading.stop();
|
|
109
114
|
const options = await prompts(searchChapterSelectedOptions);
|
|
110
|
-
if (!options.opt)
|
|
115
|
+
if (!options.opt) {
|
|
116
|
+
clearScreen();
|
|
111
117
|
continue;
|
|
118
|
+
}
|
|
112
119
|
if (options.opt === SignalsCodes.read_chapter) {
|
|
113
120
|
await terminalReader(chapterInfo, server);
|
|
114
121
|
}
|
|
115
122
|
else if (options.opt === SignalsCodes.download_chapter) {
|
|
116
123
|
await downloadChapter(chapterInfo.mangaTitle, chapterInfo.title, chapterInfo.pages);
|
|
117
124
|
}
|
|
125
|
+
clearScreen();
|
|
118
126
|
}
|
|
119
127
|
}
|
|
120
128
|
catch (e) {
|
|
@@ -124,11 +132,12 @@ async function loadMangaChapter(server, mangaSrc) {
|
|
|
124
132
|
}
|
|
125
133
|
}
|
|
126
134
|
async function history(server) {
|
|
135
|
+
clearScreen();
|
|
127
136
|
const history = History.fetch();
|
|
128
137
|
if (history.length < 1) {
|
|
129
138
|
await prompts({
|
|
130
139
|
type: 'invisible',
|
|
131
|
-
name: '
|
|
140
|
+
name: 'back',
|
|
132
141
|
message: 'Tu historial esta vacio! ESC para volver al menu anterior'
|
|
133
142
|
});
|
|
134
143
|
return;
|
|
@@ -142,21 +151,27 @@ async function history(server) {
|
|
|
142
151
|
});
|
|
143
152
|
while (true) {
|
|
144
153
|
const selected = await prompts(historyPrompt(choices));
|
|
145
|
-
if (!selected?.manga)
|
|
154
|
+
if (!selected?.manga) {
|
|
155
|
+
clearScreen();
|
|
146
156
|
break;
|
|
157
|
+
}
|
|
147
158
|
const manga = selected.manga;
|
|
148
159
|
const options = await prompts(historyCahpterSelectedOptions(manga.mangaTitle));
|
|
149
|
-
if (!options.opt)
|
|
160
|
+
if (!options.opt) {
|
|
161
|
+
clearScreen();
|
|
150
162
|
continue;
|
|
163
|
+
}
|
|
151
164
|
if (options.opt === SignalsCodes.read_chapter)
|
|
152
165
|
await terminalReader(manga, server);
|
|
153
166
|
else if (options.opt === SignalsCodes.get_chapters_list)
|
|
154
167
|
await loadMangaChapter(server, manga.main_src);
|
|
155
168
|
else if (options.opt === SignalsCodes.download_chapter)
|
|
156
169
|
await downloadChapter(manga.mangaTitle, manga.title, manga.pages);
|
|
170
|
+
clearScreen();
|
|
157
171
|
}
|
|
158
172
|
}
|
|
159
173
|
async function populars(server) {
|
|
174
|
+
clearScreen();
|
|
160
175
|
try {
|
|
161
176
|
loading.start('cargando...');
|
|
162
177
|
const populars = await server.getPopulars();
|
|
@@ -175,19 +190,19 @@ async function populars(server) {
|
|
|
175
190
|
while (true) {
|
|
176
191
|
const select = await prompts({
|
|
177
192
|
type: 'autocomplete',
|
|
178
|
-
message: 'Populares',
|
|
193
|
+
message: chalk.bgHex(PRIMARY_COLOR)(' Populares '),
|
|
179
194
|
name: 'select',
|
|
180
195
|
choices,
|
|
181
196
|
clearFirst: true
|
|
182
197
|
});
|
|
183
198
|
if (!select.select) {
|
|
199
|
+
clearScreen();
|
|
184
200
|
break;
|
|
185
201
|
}
|
|
186
202
|
const info = select.select;
|
|
187
203
|
const option = await prompts(PopularMangaSelectOptions);
|
|
188
204
|
if (!option?.opt) {
|
|
189
|
-
|
|
190
|
-
console.log(box);
|
|
205
|
+
clearScreen();
|
|
191
206
|
continue;
|
|
192
207
|
}
|
|
193
208
|
if (option.opt === SignalsCodes.read_chapter) {
|
|
@@ -206,8 +221,10 @@ async function populars(server) {
|
|
|
206
221
|
await loadMangaChapter(server, info.src);
|
|
207
222
|
}
|
|
208
223
|
else if (option.opt === SignalsCodes.exit) {
|
|
224
|
+
clearScreen();
|
|
209
225
|
continue;
|
|
210
226
|
}
|
|
227
|
+
clearScreen();
|
|
211
228
|
}
|
|
212
229
|
}
|
|
213
230
|
catch (e) {
|
|
@@ -217,15 +234,12 @@ async function populars(server) {
|
|
|
217
234
|
}
|
|
218
235
|
}
|
|
219
236
|
async function lastedSection(server) {
|
|
237
|
+
clearScreen();
|
|
220
238
|
try {
|
|
221
239
|
loading.start('cargando');
|
|
222
240
|
const mangas = await server.getLastMangas();
|
|
223
241
|
loading.stop();
|
|
224
|
-
if (!mangas) {
|
|
225
|
-
await prompts(voidPrompt);
|
|
226
|
-
return;
|
|
227
|
-
}
|
|
228
|
-
else if (mangas.length < 1) {
|
|
242
|
+
if (!mangas || mangas.length < 0) {
|
|
229
243
|
await prompts(voidPrompt);
|
|
230
244
|
return;
|
|
231
245
|
}
|
|
@@ -238,25 +252,31 @@ async function lastedSection(server) {
|
|
|
238
252
|
});
|
|
239
253
|
while (true) {
|
|
240
254
|
const select = await prompts({
|
|
241
|
-
type: '
|
|
242
|
-
message: '
|
|
255
|
+
type: 'autocomplete',
|
|
256
|
+
message: chalk.bgHex(PRIMARY_COLOR)(' Ultimos lanzamientos '),
|
|
243
257
|
name: 'manga',
|
|
244
258
|
choices
|
|
245
259
|
});
|
|
246
|
-
if (!select.manga)
|
|
260
|
+
if (!select.manga) {
|
|
261
|
+
clearScreen();
|
|
247
262
|
break;
|
|
263
|
+
}
|
|
248
264
|
const manga = select.manga;
|
|
249
265
|
const choices2 = manga.last_chapters.map((chapter) => {
|
|
250
266
|
return { title: chapter.title, value: chapter };
|
|
251
267
|
});
|
|
252
268
|
while (true) {
|
|
253
269
|
const select2 = await prompts(chapterSelect(manga.title, choices2.length, choices2));
|
|
254
|
-
if (!select2.chapter)
|
|
270
|
+
if (!select2.chapter) {
|
|
271
|
+
clearScreen();
|
|
255
272
|
break;
|
|
273
|
+
}
|
|
256
274
|
const chapter = select2.chapter;
|
|
257
275
|
const chapterOptions = await prompts(searchChapterSelectedOptions);
|
|
258
|
-
if (!chapterOptions.opt)
|
|
276
|
+
if (!chapterOptions.opt) {
|
|
277
|
+
clearScreen();
|
|
259
278
|
continue;
|
|
279
|
+
}
|
|
260
280
|
loading.start(`cargando ${chapter.title} : ${chapter.title}`);
|
|
261
281
|
const res = await server.getChapterPages(chapter.src);
|
|
262
282
|
loading.stop();
|
|
@@ -264,10 +284,13 @@ async function lastedSection(server) {
|
|
|
264
284
|
await terminalReader(res, server);
|
|
265
285
|
else if (chapterOptions.opt === SignalsCodes.download_chapter)
|
|
266
286
|
await downloadChapter(res.mangaTitle, res.title, res.pages);
|
|
267
|
-
else if (chapterOptions.opt === SignalsCodes.exit)
|
|
287
|
+
else if (chapterOptions.opt === SignalsCodes.exit) {
|
|
288
|
+
clearScreen();
|
|
268
289
|
continue;
|
|
290
|
+
}
|
|
291
|
+
;
|
|
292
|
+
clearScreen();
|
|
269
293
|
}
|
|
270
|
-
console.log(esc.clearViewport);
|
|
271
294
|
}
|
|
272
295
|
}
|
|
273
296
|
catch (e) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/frontend/menu.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,
|
|
1
|
+
{"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/frontend/menu.ts"],"names":[],"mappings":"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"}
|
package/dist/frontend/prompts.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { SignalsCodes } from "../types.js";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { PRIMARY_COLOR } from "../const.js";
|
|
2
4
|
export const chapterSelect = (title, count, choices) => {
|
|
3
5
|
return {
|
|
4
6
|
type: 'autocomplete',
|
|
@@ -13,7 +15,7 @@ export const chapterSelect = (title, count, choices) => {
|
|
|
13
15
|
export const mainPrompt = {
|
|
14
16
|
type: 'select',
|
|
15
17
|
name: 'opt',
|
|
16
|
-
message: 'Menu principal',
|
|
18
|
+
message: chalk.bgHex(PRIMARY_COLOR)(' Menu principal '),
|
|
17
19
|
choices: [
|
|
18
20
|
{ title: 'Buscar', value: SignalsCodes.search_section },
|
|
19
21
|
{ title: 'Populares', value: SignalsCodes.popular_section },
|
|
@@ -27,7 +29,7 @@ export const historyPrompt = (choices) => {
|
|
|
27
29
|
return {
|
|
28
30
|
type: 'autocomplete',
|
|
29
31
|
name: 'manga',
|
|
30
|
-
message: 'Historial
|
|
32
|
+
message: chalk.bgHex(PRIMARY_COLOR)(' Historial '),
|
|
31
33
|
choices,
|
|
32
34
|
clearFirst: true
|
|
33
35
|
};
|
|
@@ -35,14 +37,14 @@ export const historyPrompt = (choices) => {
|
|
|
35
37
|
export const search = {
|
|
36
38
|
type: 'text',
|
|
37
39
|
name: 'query',
|
|
38
|
-
message: '
|
|
40
|
+
message: chalk.bgHex(PRIMARY_COLOR)(' Busqueda '),
|
|
39
41
|
};
|
|
40
42
|
export const searchResultPrompt = (mangaList, count) => {
|
|
41
43
|
return {
|
|
42
44
|
type: 'autocomplete',
|
|
43
45
|
name: 'manga',
|
|
44
|
-
hint: `
|
|
45
|
-
message: '
|
|
46
|
+
hint: `seleciona tu resultado: ${count}`,
|
|
47
|
+
message: 'Resultados de busqueda',
|
|
46
48
|
choices: mangaList,
|
|
47
49
|
};
|
|
48
50
|
};
|
|
@@ -64,7 +66,7 @@ const BasicChapterOptions = [
|
|
|
64
66
|
export const terminalReaderChapterOptions = {
|
|
65
67
|
type: 'select',
|
|
66
68
|
name: 'opt',
|
|
67
|
-
message: 'Opciones',
|
|
69
|
+
message: chalk.bgHex(PRIMARY_COLOR)(' Opciones '),
|
|
68
70
|
choices: [
|
|
69
71
|
{
|
|
70
72
|
title: 'Capitulo Anterior',
|
|
@@ -83,7 +85,7 @@ export const terminalReaderChapterOptions = {
|
|
|
83
85
|
};
|
|
84
86
|
export const searchChapterSelectedOptions = {
|
|
85
87
|
type: 'select',
|
|
86
|
-
message: '
|
|
88
|
+
message: 'Que quieres hacer?',
|
|
87
89
|
name: 'opt',
|
|
88
90
|
choices: BasicChapterOptions
|
|
89
91
|
};
|
|
@@ -118,7 +120,7 @@ export const historyCahpterSelectedOptions = (title) => {
|
|
|
118
120
|
export const PopularMangaSelectOptions = {
|
|
119
121
|
type: 'select',
|
|
120
122
|
name: 'opt',
|
|
121
|
-
message: '
|
|
123
|
+
message: chalk.bgHex(PRIMARY_COLOR)(' Opciones '),
|
|
122
124
|
choices: [
|
|
123
125
|
...BasicChapterOptions,
|
|
124
126
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/frontend/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/frontend/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import os from 'os';
|
|
|
5
5
|
import sanitize from 'sanitize-filename';
|
|
6
6
|
import ora from 'ora';
|
|
7
7
|
import PDFDocument from 'pdfkit';
|
|
8
|
+
import { DOWNLOADS_DEFAULT_DIR } from '../const.js';
|
|
8
9
|
const spin = ora();
|
|
9
10
|
const PDFOptions = {
|
|
10
11
|
margin: '0',
|
|
@@ -55,8 +56,7 @@ export async function downloadChapter(mangaTitle, chapterTitle, srcs) {
|
|
|
55
56
|
}
|
|
56
57
|
export function makeDir(...name) {
|
|
57
58
|
try {
|
|
58
|
-
const
|
|
59
|
-
const targetDir = path.join(basedir, 'download', ...(name.map((n) => sanitize(n).replaceAll(' ', '-'))));
|
|
59
|
+
const targetDir = path.join(DOWNLOADS_DEFAULT_DIR, ...(name.map((n) => sanitize(n).replaceAll(' ', '-'))));
|
|
60
60
|
if (!fs.existsSync(targetDir)) {
|
|
61
61
|
fs.mkdir(targetDir, { recursive: true, }, (err) => {
|
|
62
62
|
if (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../src/functions/downloader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"downloader.js","sourceRoot":"","sources":["../../src/functions/downloader.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@ import fs from 'node:fs';
|
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import fsp from 'node:fs/promises';
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
|
|
5
|
+
import { DATA_DEFAULT_DIR } from "../const.js";
|
|
6
|
+
const historyPath = path.resolve(DATA_DEFAULT_DIR, 'read_history.json');
|
|
6
7
|
const memory = new Map();
|
|
7
8
|
export class History {
|
|
8
9
|
static fetch() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/functions/history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,GAAG,MAAM,kBAAkB,CAAA;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/functions/history.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,GAAG,MAAM,kBAAkB,CAAA;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAA;AAEvE,MAAM,MAAM,GAAG,IAAK,GAAG,EAAuB,CAAA;AAO9C,MAAM,OAAO,OAAO;IAEhB,MAAM,CAAC,KAAK;QACV,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QACrC,OAAO,GAAG,CAAC;IACb,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI;QACb,IAAG,CAAC;YACA,IAAG,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAC,CAAC;gBAC5B,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,EAAC,OAAO,EAAE,EAAE,EAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAE,CAAA;gBACpG,OAAO,IAAI,CAAA;YACf,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;YAC/C,MAAM,GAAG,GAAuB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;YACrE,IAAG,CAAC,GAAG,EAAE,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAA;YACnD,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA,EAAE;gBACnB,IAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAC,CAAC;oBAC7B,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;gBAChC,CAAC;YACL,CAAC,CAAC,CAAA;YACF,OAAO,IAAI,CAAC;QAChB,CAAC;QAAA,OAAM,CAAC,EAAC,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACd,OAAO,KAAK,CAAA;QAChB,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,SAAsB;QAChC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,SAAsB;QAC/B,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;QAC3C,IAAI,CAAC,KAAK,EAAE,CAAA;IACf,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK;QACd,IAAI,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC;gBAAE,OAAO;YAE5B,MAAM,UAAU,GAAsB;gBAClC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;gBACvB,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aACvC,CAAA;YAED,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;QAE5E,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;IACL,CAAC;CACJ"}
|
package/dist/index.js
CHANGED
|
@@ -1,62 +1,58 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import os from 'os';
|
|
3
2
|
import fs from 'fs';
|
|
4
3
|
import fsp from 'fs/promises';
|
|
5
4
|
import chalk from 'chalk';
|
|
6
5
|
import path from 'path';
|
|
7
|
-
import { firefox } from "playwright";
|
|
6
|
+
import { firefox, request } from "playwright";
|
|
8
7
|
import ora from "ora";
|
|
9
8
|
import ansiEscapes from 'ansi-escapes';
|
|
10
9
|
import { History } from "./functions/history.js";
|
|
11
10
|
import { MangaServerClient } from "./server/leerCapitulo.js";
|
|
12
11
|
import { init } from "./frontend/menu.js";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (!fs.existsSync(
|
|
17
|
-
await fsp.mkdir(
|
|
12
|
+
import { BASE_DIR, DATA_DEFAULT_DIR, DOWNLOADS_DEFAULT_DIR, LAUNCH_OPTIONS, TEMP_DIR } from './const.js';
|
|
13
|
+
let spin = ora();
|
|
14
|
+
console.log(ansiEscapes.clearTerminal);
|
|
15
|
+
if (!fs.existsSync(BASE_DIR)) {
|
|
16
|
+
await fsp.mkdir(BASE_DIR, { recursive: true });
|
|
18
17
|
}
|
|
19
|
-
if (!fs.existsSync(
|
|
20
|
-
await fsp.mkdir(
|
|
18
|
+
if (!fs.existsSync(DOWNLOADS_DEFAULT_DIR)) {
|
|
19
|
+
await fsp.mkdir(DOWNLOADS_DEFAULT_DIR, { recursive: true });
|
|
21
20
|
}
|
|
22
|
-
if (!fs.existsSync(
|
|
23
|
-
await fsp.mkdir(
|
|
24
|
-
await fsp.writeFile(path.resolve(
|
|
21
|
+
if (!fs.existsSync(DATA_DEFAULT_DIR)) {
|
|
22
|
+
await fsp.mkdir(DATA_DEFAULT_DIR, { recursive: true });
|
|
23
|
+
await fsp.writeFile(path.resolve(DATA_DEFAULT_DIR, 'read_history.json'), JSON.stringify({ last_update: Date.now(), History: [] }));
|
|
25
24
|
}
|
|
26
|
-
const browserStorage = {
|
|
27
|
-
"cookies": [],
|
|
28
|
-
"origins": [
|
|
29
|
-
{
|
|
30
|
-
"origin": "https://www.leercapitulo.co",
|
|
31
|
-
"localStorage": [
|
|
32
|
-
{
|
|
33
|
-
"name": "display_mode",
|
|
34
|
-
"value": "1"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"name": "pic_style",
|
|
38
|
-
"value": "0"
|
|
39
|
-
}
|
|
40
|
-
]
|
|
41
|
-
}
|
|
42
|
-
]
|
|
43
|
-
};
|
|
44
|
-
console.log(ansiEscapes.clearTerminal);
|
|
45
|
-
let spin = ora('cargando...');
|
|
46
25
|
spin.start("init browser...");
|
|
47
26
|
try {
|
|
48
|
-
|
|
49
|
-
|
|
27
|
+
History.load();
|
|
28
|
+
const context = await firefox.launchPersistentContext(path.join(TEMP_DIR, 'tanko', 'browser'), LAUNCH_OPTIONS);
|
|
29
|
+
await context.addInitScript(() => {
|
|
30
|
+
const storageData = [
|
|
31
|
+
{ name: "display_mode", value: "1" },
|
|
32
|
+
{ name: "pic_style", value: "0" }
|
|
33
|
+
];
|
|
34
|
+
if (window.location.hostname.includes('leercapitulo.co')) {
|
|
35
|
+
storageData.forEach(item => {
|
|
36
|
+
window.localStorage.setItem(item.name, item.value);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
50
39
|
});
|
|
51
|
-
const
|
|
52
|
-
|
|
53
|
-
|
|
40
|
+
const page = context.pages()[0] || await context.newPage();
|
|
41
|
+
page.route('**/*', route => {
|
|
42
|
+
const requestType = route.request().resourceType();
|
|
43
|
+
if (requestType === 'script' && route.request().frame() !== page.mainFrame()) {
|
|
44
|
+
return route.abort();
|
|
45
|
+
}
|
|
46
|
+
if (['font', 'image', 'media', 'beacon'].includes(requestType)) {
|
|
47
|
+
route.abort();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
route.continue();
|
|
51
|
+
}
|
|
54
52
|
});
|
|
55
|
-
History.load();
|
|
56
|
-
const page = await context.newPage();
|
|
57
53
|
const Server = new MangaServerClient(page);
|
|
58
54
|
spin.stop();
|
|
59
|
-
init(Server,
|
|
55
|
+
init(Server, context, page);
|
|
60
56
|
}
|
|
61
57
|
catch (e) {
|
|
62
58
|
if (e.message.includes("Executable doesn't exist")) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tanko",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Una herramienta para leer y descargar mangas desde la terminal",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -35,11 +35,12 @@
|
|
|
35
35
|
"@types/pdfkit": "^0.17.5"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@alex_521/prompts": "^0.
|
|
38
|
+
"@alex_521/prompts": "^0.1.1",
|
|
39
39
|
"ansi-escapes": "^7.2.0",
|
|
40
40
|
"boxen": "8.0.1",
|
|
41
41
|
"chalk": "^5.6.2",
|
|
42
42
|
"cheerio": "1.2.0",
|
|
43
|
+
"gradient-string": "^3.0.0",
|
|
43
44
|
"ora": "9.3.0",
|
|
44
45
|
"pdfkit": "0.17.2",
|
|
45
46
|
"playwright": "^1.58.2",
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
},
|
|
50
51
|
"scripts": {
|
|
51
52
|
"build": "tsc",
|
|
52
|
-
"dev": "bun run ./src/index.ts"
|
|
53
|
+
"dev": "bun run ./src/index.ts",
|
|
54
|
+
"start": "node ./dist/index.js"
|
|
53
55
|
}
|
|
54
56
|
}
|
package/readme.md
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Tanko
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/tanko)
|
|
4
4
|
[](https://github.com/Alexandro521/tanko/LICENSE)
|
|
5
5
|
|
|
6
6
|
tanko es una pequeña app de terminal para leer y descargar mangas de forma simple y directa.
|
|
7
7
|
|
|
8
|
-

|
|
8
|
+

|
|
9
|
+

|
|
10
|
+

|
|
12
11
|
|
|
13
12
|
## 1. Instalar tanko
|
|
14
13
|
|
|
@@ -41,6 +40,10 @@ npx playwright install firefox
|
|
|
41
40
|
```bash
|
|
42
41
|
tanko
|
|
43
42
|
```
|
|
43
|
+
> [!IMPORTANT]
|
|
44
|
+
> **Directorio de descargas:** los capitulos descargados actualmente se guardan en `$HOME/tanko/downloads/`
|
|
45
|
+
>
|
|
46
|
+
> En Windows,se utiliza la variable de entorno `USERPROFILE` si está definida. De lo contrario,se utiliza la ruta al directorio de perfil del usuario actual.
|
|
44
47
|
|
|
45
48
|
> [!IMPORTANT]
|
|
46
49
|
> **Experiencia Visual:** Para disfrutar del manga con imágenes reales, se recomienda usar una terminal con soporte para protocolos de imagen.
|