tanko 1.0.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.
@@ -0,0 +1,2 @@
1
+ import prompts from "prompts";
2
+ //# sourceMappingURL=configutation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configutation.js","sourceRoot":"","sources":["../../src/frontend/configutation.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC"}
@@ -0,0 +1,276 @@
1
+ import esc from 'ansi-escapes';
2
+ import boxen from "boxen";
3
+ import ora from "ora";
4
+ import prompts, {} from "prompts";
5
+ import { downloadChapter } from "../functions/downloader.js";
6
+ import { History } from "../functions/history.js";
7
+ import { terminalReader } from "./reader.js";
8
+ import { SignalsCodes } from '../types.js';
9
+ import { chapterSelect, historyCahpterSelectedOptions, historyPrompt, mainPrompt, PopularMangaSelectOptions, search, searchChapterSelectedOptions, searchResultPrompt, voidPrompt } from './prompts.js';
10
+ const loading = ora();
11
+ const box = boxen('tanko reader CLI', {
12
+ padding: 1,
13
+ title: 'Welcome!',
14
+ titleAlignment: 'center',
15
+ textAlignment: 'center',
16
+ borderStyle: 'round',
17
+ borderColor: 'yellowBright',
18
+ fullscreen: false
19
+ });
20
+ export async function init(server, browser, page, context) {
21
+ try {
22
+ const closeBrowser = async () => {
23
+ loading.start('Saliendo...');
24
+ await page.close();
25
+ await browser.close();
26
+ loading.stop();
27
+ };
28
+ while (true) {
29
+ console.log(box);
30
+ const main = await prompts(mainPrompt);
31
+ if (!main?.opt) {
32
+ await closeBrowser();
33
+ break;
34
+ }
35
+ if (main.opt === SignalsCodes.search_section)
36
+ await searchBar(server);
37
+ else if (main.opt === SignalsCodes.history_section)
38
+ await history(server);
39
+ else if (main.opt === SignalsCodes.popular_section)
40
+ await populars(server);
41
+ else if (main.opt === SignalsCodes.lasted_section)
42
+ await lastedSection(server);
43
+ else if (main.opt === SignalsCodes.exit) {
44
+ closeBrowser();
45
+ break;
46
+ }
47
+ console.log(esc.clearViewport);
48
+ }
49
+ }
50
+ catch (e) {
51
+ console.log(e);
52
+ }
53
+ }
54
+ async function searchBar(server) {
55
+ try {
56
+ while (true) {
57
+ const searchQuery = await prompts(search);
58
+ if (!searchQuery?.query)
59
+ break;
60
+ loading.start(`Buscando ${searchQuery.query}...`);
61
+ const results = await server.search(searchQuery.query);
62
+ if (results.length < 1) {
63
+ loading.fail('Busqueda sin resultados');
64
+ continue;
65
+ }
66
+ const choices = results.map((res) => {
67
+ return {
68
+ title: res.label,
69
+ value: res,
70
+ };
71
+ });
72
+ if (loading.isSpinning)
73
+ loading.stop();
74
+ const selectResult = await prompts(searchResultPrompt(choices, choices.length));
75
+ if (!selectResult?.manga)
76
+ continue;
77
+ await loadMangaChapter(server, selectResult.manga.link);
78
+ console.log(esc.clearViewport);
79
+ console.log(box);
80
+ }
81
+ }
82
+ catch (e) {
83
+ console.log(e);
84
+ }
85
+ }
86
+ async function loadMangaChapter(server, mangaSrc) {
87
+ try {
88
+ loading.start(`Cargando capitulos...`);
89
+ const result = await server.getChaptersList(mangaSrc);
90
+ if (!result || result.chapters.length < 0) {
91
+ loading.fail('Error al obtener Capitulos');
92
+ return;
93
+ }
94
+ loading.stop();
95
+ const choices = result.chapters.map((e) => {
96
+ return {
97
+ title: e.title,
98
+ value: e
99
+ };
100
+ });
101
+ while (true) {
102
+ const select = await prompts(chapterSelect(result.title, choices.length, choices));
103
+ if (!select.chapter)
104
+ break;
105
+ loading.start(`cargando ${result.title}...`);
106
+ const chapterInfo = await server.getChapterPages(select.chapter.src);
107
+ if (loading.isSpinning)
108
+ loading.stop();
109
+ const options = await prompts(searchChapterSelectedOptions);
110
+ if (!options.opt)
111
+ continue;
112
+ if (options.opt === SignalsCodes.read_chapter) {
113
+ await terminalReader(chapterInfo, server);
114
+ }
115
+ else if (options.opt === SignalsCodes.download_chapter) {
116
+ await downloadChapter(chapterInfo.mangaTitle, chapterInfo.title, chapterInfo.pages);
117
+ }
118
+ }
119
+ }
120
+ catch (e) {
121
+ if (loading.isSpinning)
122
+ loading.fail();
123
+ console.log(e);
124
+ }
125
+ }
126
+ async function history(server) {
127
+ const history = History.fetch();
128
+ if (history.length < 1) {
129
+ await prompts({
130
+ type: 'invisible',
131
+ name: 'backOf',
132
+ message: 'Tu historial esta vacio! ESC para volver al menu anterior'
133
+ });
134
+ return;
135
+ }
136
+ const choices = history.map((e) => {
137
+ return {
138
+ title: e.mangaTitle,
139
+ description: e.title,
140
+ value: e
141
+ };
142
+ });
143
+ while (true) {
144
+ const selected = await prompts(historyPrompt(choices));
145
+ if (!selected?.manga)
146
+ break;
147
+ const manga = selected.manga;
148
+ const options = await prompts(historyCahpterSelectedOptions(manga.mangaTitle));
149
+ if (!options.opt)
150
+ continue;
151
+ if (options.opt === SignalsCodes.read_chapter)
152
+ await terminalReader(manga, server);
153
+ else if (options.opt === SignalsCodes.get_chapters_list)
154
+ await loadMangaChapter(server, manga.main_src);
155
+ else if (options.opt === SignalsCodes.download_chapter)
156
+ await downloadChapter(manga.mangaTitle, manga.title, manga.pages);
157
+ }
158
+ }
159
+ async function populars(server) {
160
+ try {
161
+ loading.start('cargando...');
162
+ const populars = await server.getPopulars();
163
+ loading.stop();
164
+ if (!populars || populars.length < 0) {
165
+ await prompts(voidPrompt);
166
+ return;
167
+ }
168
+ const choices = populars.map((popular) => {
169
+ return {
170
+ title: popular.title,
171
+ description: popular.last_chapter.title,
172
+ value: popular
173
+ };
174
+ });
175
+ while (true) {
176
+ const select = await prompts({
177
+ type: 'select',
178
+ message: 'Populares',
179
+ name: 'select',
180
+ choices
181
+ });
182
+ if (!select.select) {
183
+ break;
184
+ }
185
+ const info = select.select;
186
+ const option = await prompts(PopularMangaSelectOptions);
187
+ if (!option?.opt) {
188
+ console.log(esc.clearViewport);
189
+ console.log(box);
190
+ continue;
191
+ }
192
+ if (option.opt === SignalsCodes.read_chapter) {
193
+ loading.start(`cargando ${info.title} : ${info.last_chapter.title}`);
194
+ const res = await server.getChapterPages(info.last_chapter.src);
195
+ loading.stop();
196
+ await terminalReader(res, server);
197
+ }
198
+ else if (option.opt === SignalsCodes.download_chapter) {
199
+ loading.start(`cargando ${info.title} : ${info.last_chapter.title}`);
200
+ const res = await server.getChapterPages(info.last_chapter.src);
201
+ loading.stop();
202
+ await downloadChapter(res.mangaTitle, res.title, res.pages);
203
+ }
204
+ else if (option.opt === SignalsCodes.get_chapters_list) {
205
+ await loadMangaChapter(server, info.src);
206
+ }
207
+ else if (option.opt === SignalsCodes.exit) {
208
+ continue;
209
+ }
210
+ }
211
+ }
212
+ catch (e) {
213
+ if (loading.isSpinning)
214
+ loading.fail('ERROR');
215
+ console.log(e);
216
+ }
217
+ }
218
+ async function lastedSection(server) {
219
+ try {
220
+ loading.start('cargando');
221
+ const mangas = await server.getLastMangas();
222
+ loading.stop();
223
+ if (!mangas) {
224
+ await prompts(voidPrompt);
225
+ return;
226
+ }
227
+ else if (mangas.length < 1) {
228
+ await prompts(voidPrompt);
229
+ return;
230
+ }
231
+ const choices = mangas.map((e) => {
232
+ return {
233
+ title: e.title,
234
+ description: e.last_chapters[0].title,
235
+ value: e,
236
+ };
237
+ });
238
+ while (true) {
239
+ const select = await prompts({
240
+ type: 'select',
241
+ message: 'Mas recientes',
242
+ name: 'manga',
243
+ choices
244
+ });
245
+ if (!select.manga)
246
+ break;
247
+ const manga = select.manga;
248
+ const choices2 = manga.last_chapters.map((chapter) => {
249
+ return { title: chapter.title, value: chapter };
250
+ });
251
+ while (true) {
252
+ const select2 = await prompts(chapterSelect(manga.title, choices2.length, choices2));
253
+ if (!select2.chapter)
254
+ break;
255
+ const chapter = select2.chapter;
256
+ const chapterOptions = await prompts(searchChapterSelectedOptions);
257
+ if (!chapterOptions.opt)
258
+ continue;
259
+ loading.start(`cargando ${chapter.title} : ${chapter.title}`);
260
+ const res = await server.getChapterPages(chapter.src);
261
+ loading.stop();
262
+ if (chapterOptions.opt === SignalsCodes.read_chapter)
263
+ await terminalReader(res, server);
264
+ else if (chapterOptions.opt === SignalsCodes.download_chapter)
265
+ await downloadChapter(res.mangaTitle, res.title, res.pages);
266
+ else if (chapterOptions.opt === SignalsCodes.exit)
267
+ continue;
268
+ }
269
+ console.log(esc.clearViewport);
270
+ }
271
+ }
272
+ catch (e) {
273
+ console.log(e);
274
+ }
275
+ }
276
+ //# sourceMappingURL=menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../src/frontend/menu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ import { SignalsCodes } from "../types.js";
2
+ export const chapterSelect = (title, count, choices) => {
3
+ return {
4
+ type: 'select',
5
+ name: 'chapter',
6
+ message: title,
7
+ hint: `capitulos: ${count}`,
8
+ choices,
9
+ limit: 30
10
+ };
11
+ };
12
+ export const mainPrompt = {
13
+ type: 'select',
14
+ name: 'opt',
15
+ message: 'Menu principal',
16
+ choices: [
17
+ { title: 'Buscar', value: SignalsCodes.search_section },
18
+ { title: 'Populares', value: SignalsCodes.popular_section },
19
+ { title: 'Mas Recientes', value: SignalsCodes.lasted_section },
20
+ { title: 'historial', value: SignalsCodes.history_section },
21
+ { title: 'configuracion', value: SignalsCodes.configuration_section },
22
+ { title: 'salir', value: SignalsCodes.exit },
23
+ ]
24
+ };
25
+ export const historyPrompt = (choices) => {
26
+ return {
27
+ type: 'select',
28
+ name: 'manga',
29
+ message: 'Historial de lectura',
30
+ choices,
31
+ };
32
+ };
33
+ export const search = {
34
+ type: 'text',
35
+ name: 'query',
36
+ message: 'Search',
37
+ };
38
+ export const searchResultPrompt = (mangaList, count) => {
39
+ return {
40
+ type: 'autocomplete',
41
+ name: 'manga',
42
+ hint: `Resultados: ${count}`,
43
+ message: 'seleciona tu resultado',
44
+ choices: mangaList,
45
+ };
46
+ };
47
+ const BasicChapterOptions = [
48
+ {
49
+ title: 'Leer Capitulo',
50
+ description: 'Se recomienda terminal kitty para esta operacion',
51
+ value: SignalsCodes.read_chapter
52
+ },
53
+ {
54
+ title: 'Descargar Capitulo',
55
+ description: 'descargar el capitulo en formato PDF',
56
+ value: SignalsCodes.download_chapter,
57
+ }, {
58
+ title: 'Salir',
59
+ value: SignalsCodes.exit
60
+ }
61
+ ];
62
+ export const terminalReaderChapterOptions = {
63
+ type: 'select',
64
+ name: 'opt',
65
+ message: 'Opciones',
66
+ choices: [
67
+ {
68
+ title: 'Capitulo Anterior',
69
+ value: SignalsCodes.previous_chapter
70
+ },
71
+ {
72
+ title: 'Siguiente Capitulo',
73
+ value: SignalsCodes.nex_chapter
74
+ },
75
+ BasicChapterOptions[1],
76
+ {
77
+ title: 'Salir',
78
+ value: SignalsCodes.exit
79
+ }
80
+ ]
81
+ };
82
+ export const searchChapterSelectedOptions = {
83
+ type: 'select',
84
+ message: 'que quieres hacer?',
85
+ name: 'opt',
86
+ choices: BasicChapterOptions
87
+ };
88
+ export const historyCahpterSelectedOptions = (title) => {
89
+ return {
90
+ type: 'select',
91
+ name: 'opt',
92
+ message: `Accion para ${title}`,
93
+ choices: [
94
+ {
95
+ title: 'Continuar lectura',
96
+ description: 'Se recomienda usar (Kitty, !Term) terminal para esta operacion',
97
+ value: SignalsCodes.read_chapter
98
+ },
99
+ {
100
+ title: 'Ver lista de capitulos',
101
+ value: SignalsCodes.get_chapters_list
102
+ },
103
+ {
104
+ title: 'Descargar capitulo',
105
+ description: 'En formato PDF',
106
+ value: SignalsCodes.download_chapter
107
+ },
108
+ {
109
+ title: 'Salir',
110
+ description: 'a la anterior seccion',
111
+ value: SignalsCodes.download_chapter
112
+ }
113
+ ]
114
+ };
115
+ };
116
+ export const PopularMangaSelectOptions = {
117
+ type: 'select',
118
+ name: 'opt',
119
+ message: 'opciones',
120
+ choices: [
121
+ ...BasicChapterOptions,
122
+ {
123
+ title: 'Ver lista de capitulos',
124
+ value: SignalsCodes.get_chapters_list
125
+ },
126
+ {
127
+ title: 'Salir',
128
+ description: 'a la anterior seccion',
129
+ value: SignalsCodes.exit
130
+ }
131
+ ]
132
+ };
133
+ export const voidPrompt = {
134
+ type: 'invisible',
135
+ name: 'exit',
136
+ message: 'Este lugar esta vacio! \n [ESC] para volver al menu anterior'
137
+ };
138
+ //# sourceMappingURL=prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/frontend/prompts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,189 @@
1
+ import readLine from "node:readline";
2
+ import esc from "ansi-escapes";
3
+ import { loadImage } from "../functions/images.js";
4
+ import prompts from "prompts";
5
+ import { terminalReaderChapterOptions } from "./prompts.js";
6
+ import { SignalsCodes } from "../types.js";
7
+ import { ImageCache } from "../functions/images.js";
8
+ import { History } from "../functions/history.js";
9
+ import ora from "ora";
10
+ import { stdin, stdout } from "node:process";
11
+ const loading = ora();
12
+ function debounce(func, delay) {
13
+ let timer;
14
+ return async (src) => {
15
+ clearTimeout(timer);
16
+ timer = setTimeout(async () => await func(src), delay);
17
+ };
18
+ }
19
+ function PagesNavigator(pages) {
20
+ let index = 0;
21
+ return {
22
+ nextPage: () => {
23
+ if (index < pages.length - 1)
24
+ index++;
25
+ else
26
+ return undefined;
27
+ return pages[index];
28
+ },
29
+ backPage: () => {
30
+ if (index > 0)
31
+ index--;
32
+ else
33
+ return undefined;
34
+ return pages[index];
35
+ },
36
+ reset: () => {
37
+ index = 0;
38
+ },
39
+ setPages: (newPages) => {
40
+ pages = newPages;
41
+ index = 0;
42
+ },
43
+ getState: () => {
44
+ return { src: pages[index], index };
45
+ }
46
+ };
47
+ }
48
+ function TerminalControl() {
49
+ return {
50
+ exitRawMode: (keyHandler) => {
51
+ process.stdin.removeListener('keypress', keyHandler);
52
+ process.stdin.setRawMode(false);
53
+ process.stdin.pause();
54
+ process.stdout.write(esc.clearViewport);
55
+ },
56
+ openRawMode: (keyHandler = undefined) => {
57
+ readLine.emitKeypressEvents(process.stdin);
58
+ process.stdin.resume();
59
+ process.stdin.setRawMode(true);
60
+ process.stdin.setEncoding('utf8');
61
+ if (keyHandler) {
62
+ process.stdin.on('keypress', keyHandler);
63
+ }
64
+ }
65
+ };
66
+ }
67
+ function chapterNavigator(previousChapter, nextChapter, server) {
68
+ return {
69
+ nextChapter: async () => {
70
+ console.log(previousChapter, nextChapter);
71
+ if (!nextChapter)
72
+ return null;
73
+ const data = await server.getChapterPages(nextChapter);
74
+ previousChapter = data.prevChapter;
75
+ nextChapter = data.nextChapter;
76
+ return data;
77
+ },
78
+ backChapter: async () => {
79
+ console.log(previousChapter, nextChapter);
80
+ if (!previousChapter)
81
+ return null;
82
+ const data = await server.getChapterPages(previousChapter);
83
+ previousChapter = data.prevChapter;
84
+ nextChapter = data.nextChapter;
85
+ return data;
86
+ }
87
+ };
88
+ }
89
+ const renderHeader = (title, index, n) => {
90
+ process.stdout.write(esc.clearViewport);
91
+ process.stdout.write(`${title}: ${title} | Página [ ${index}/${n} ] \n`);
92
+ };
93
+ const debugLogs = (src) => {
94
+ process.stdout.write(`[DEBUG INFO] (CACHE SIZE): ${(ImageCache.cacheSize / 1000000).toFixed(2)} MB (MAX CACHE SIZE) : ${(ImageCache.MAX_SIZE / 1000000).toFixed(2)} MB (CACHE POINTER POSITION): ${ImageCache.pointer}, (PAGES IN CACHE) ${ImageCache.cache.size}, (FROM CACHE) ${ImageCache.cache.has(src)}\n\n`);
95
+ };
96
+ export async function terminalReader(props, server) {
97
+ History.save(props);
98
+ return new Promise(async (resolve) => {
99
+ const terminal = TerminalControl();
100
+ const pagesNav = PagesNavigator(props.pages);
101
+ const chapterNav = chapterNavigator(props.prevChapter, props.nextChapter, server);
102
+ terminal.openRawMode();
103
+ const renderInfo = () => {
104
+ console.log(esc.clearViewport);
105
+ renderHeader(props.title, pagesNav.getState().index + 1, props.pages.length);
106
+ };
107
+ const pageDebounce = debounce(async (e) => {
108
+ await loadImage(e);
109
+ process.stdout.write(`\n(Flechas: Navegar | Q: Salir | P: capitulo anterior | N: capitulo siguiente | ESC: pagina anterior)`);
110
+ }, 300);
111
+ renderInfo();
112
+ await loadImage(pagesNav.getState().src);
113
+ const chapterLoader = async (signal) => {
114
+ try {
115
+ if (stdin.isRaw) {
116
+ terminal.exitRawMode(handleKeypress);
117
+ }
118
+ loading.start('cargando capitulo...');
119
+ const data = signal === SignalsCodes.nex_chapter ? await chapterNav.nextChapter() : await chapterNav.backChapter();
120
+ if (!data)
121
+ throw new Error('No hay mas capitulos');
122
+ props = { ...props, ...data };
123
+ History.update(props);
124
+ pagesNav.setPages(data.pages);
125
+ loading.stop();
126
+ if (stdin.isTTY)
127
+ terminal.openRawMode(handleKeypress);
128
+ renderInfo();
129
+ await loadImage(pagesNav.getState().src);
130
+ }
131
+ catch (e) {
132
+ loading.fail('no hay mas capitulos!!!');
133
+ if (stdin.isTTY)
134
+ terminal.openRawMode(handleKeypress);
135
+ }
136
+ };
137
+ const handleKeypress = async (str, key) => {
138
+ const name = key.name;
139
+ if (key && key.ctrl && name === 'c') {
140
+ process.exit();
141
+ }
142
+ else if (name === 'left') {
143
+ let src = pagesNav.backPage();
144
+ if (!src)
145
+ return;
146
+ renderInfo();
147
+ await pageDebounce(src);
148
+ }
149
+ else if (name === 'right') {
150
+ let src = pagesNav.nextPage();
151
+ if (!src)
152
+ return;
153
+ renderInfo();
154
+ await pageDebounce(src);
155
+ }
156
+ else if (name === 'q' || key.name === 'escape') {
157
+ terminal.exitRawMode(handleKeypress);
158
+ resolve();
159
+ }
160
+ else if (name === 'c') {
161
+ process.stdout.write(esc.clearViewport);
162
+ terminal.exitRawMode(handleKeypress);
163
+ const options = await prompts(terminalReaderChapterOptions);
164
+ if (!options.opt) {
165
+ terminal.openRawMode(handleKeypress);
166
+ console.log(esc.clearViewport);
167
+ renderInfo();
168
+ await loadImage(pagesNav.getState().src);
169
+ return;
170
+ }
171
+ if (options.opt === SignalsCodes.nex_chapter)
172
+ await chapterLoader(SignalsCodes.nex_chapter);
173
+ else if (options.opt === SignalsCodes.previous_chapter)
174
+ await chapterLoader(SignalsCodes.previous_chapter);
175
+ else if (options.opt === SignalsCodes.exit) {
176
+ terminal.exitRawMode(handleKeypress);
177
+ console.log(esc.clearViewport);
178
+ resolve();
179
+ }
180
+ }
181
+ else if (name === 'p' || name === 'P')
182
+ await chapterLoader(SignalsCodes.previous_chapter);
183
+ else if (name === 'n' || name === 'N')
184
+ await chapterLoader(SignalsCodes.nex_chapter);
185
+ };
186
+ process.stdin.on('keypress', handleKeypress);
187
+ });
188
+ }
189
+ //# sourceMappingURL=reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/frontend/reader.ts"],"names":[],"mappings":"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"}