yutaapis 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.
package/README.md CHANGED
@@ -1,2 +1,401 @@
1
1
  # yutaapis
2
2
  Módulo SDK TypeScript/JavaScript desenvolvido para consumo do Yuta APIs; em parceria com HutaoBot
3
+
4
+
5
+ <h1 align="center">
6
+ <p>
7
+ <img src="https://raw.githubusercontent.com/Lm-Only/yutaapis/refs/heads/main/assets/banner.jpg" alt="Yuta APIS" width="720">
8
+ </p>
9
+
10
+ ##
11
+
12
+ > [!IMPORTANT]
13
+ > **Este módulo ainda está em desenvolvimento por Lm Only, é de certeza que algumas rotas ainda não estejam configuradas,**
14
+ > **Em breve o módulo deve estar totalmente pronto**
15
+
16
+ ## Instalação
17
+
18
+ ```bash
19
+ npm i yutaapis
20
+ ```
21
+
22
+ ## Quickstart
23
+
24
+ ```javascript
25
+ // Esm - "type": "module"
26
+ import YutaApis from 'yutaapis';
27
+
28
+ const api = new YutaApis({
29
+ apiToken: process.env.TOKEN // token do Yuta obtido no site
30
+ });
31
+
32
+ const gitstalkResult = await api.pesquisas.gitstalk('Lm-Only'); // Promise<Object>
33
+
34
+ if (!gitstalkResult.status) {
35
+ console.error(gitstalkResult.msg || 'Error na API');
36
+ process.exit();
37
+ }
38
+
39
+ console.log(gitstalkResult);
40
+ ```
41
+
42
+ ## Sumário
43
+
44
+ - [Api](https://yuta-apis.xyz)
45
+ - [planos](https://yuta-apis.xyz/planos)
46
+ - [login](https://yuta-apis.xyz/login)
47
+
48
+ - [Pesquisas](#pesquisas)
49
+ - [wiki](#pesquisas-wiki)
50
+ - [ytsearch](#pesquisas-ytsearch)
51
+ - [gitstalk](#pesquisas-gitstalk)
52
+
53
+ - [Downloads](#downloads)
54
+ - [ytmp3](#downloads-ytmp3)
55
+ - [ytmp4](#downloads-ytmp4)
56
+ - [play](#downloads-play)
57
+ - [playvideo](#downloads-playvideo)
58
+ - [tiktokdl](#downloads-tiktokdl)
59
+ - [instavideo](#downloads-instavideo)
60
+ - [pinterest](#downloads-pinterest)
61
+ - [pinterestMp3](#downloads-pinterestmp3)
62
+ - [pinterestVideo](#downloads-pinterestvideo)
63
+
64
+ - [IAs](#ias)
65
+ - [gpt](#ias-gpt)
66
+ - [gemini_pro](#ias-gemini_pro)
67
+ - [perplexity_ai](#ias-perplexity_ai)
68
+ - [geminivoz](#ias-geminivoz)
69
+ - [gemini](#ias-gemini)
70
+
71
+ - [Geradores](#geradores)
72
+ - [nick](#geradores-nick)
73
+ - [qrcode](#geradores-qrcode)
74
+
75
+ - [Logos](#logos)
76
+ - [logos](#logos-logos)
77
+
78
+ - [Notícias](#notícias)
79
+ - [cnn](#notícias-cnn)
80
+ - [esportes](#notícias-esportes)
81
+ - [g1](#notícias-g1)
82
+ - [ibge](#notícias-ibge)
83
+ - [noticias_atuais](#notícias-noticias_atuais)
84
+ - [politica](#notícias-politica)
85
+ - [uol](#notícias-uol)
86
+
87
+ - [Plaquinhas](#plaquinhas)
88
+ - [plaquinhas](#plaquinhas-plaquinhas)
89
+
90
+ ---
91
+
92
+ ## Pesquisas
93
+
94
+ ### wiki
95
+ Busca informações/resumo de um termo na Wikipedia.
96
+ ```javascript
97
+ const wiki = await api.pesquisas.wiki('Typescript');
98
+ console.log(wiki);
99
+ ```
100
+
101
+ ### ytsearch
102
+ Pesquisa vídeos no YouTube por texto.
103
+ ```javascript
104
+ const ytsearch = await api.pesquisas.ytsearch('Baby Shark');
105
+ console.log(ytsearch);
106
+ ```
107
+
108
+ ### gitstalk
109
+ Consulta informações públicas de um usuário GitHub.
110
+ ```javascript
111
+ const gitstalk = await api.pesquisas.gitstalk('Lm-Only');
112
+ console.log(gitstalk);
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Downloads
118
+
119
+ ### ytmp3
120
+ Baixa áudio MP3 de um link do YouTube.
121
+ ```javascript
122
+ const ytmp3 = await api.downloads.ytmp3('https://www.youtube.com/watch?v=osPq9Yb8xm8');
123
+ // buffer
124
+ ```
125
+
126
+ Exemplo salvando em arquivo:
127
+ ```javascript
128
+ import { writeFile } from 'node:fs/promises';
129
+
130
+ const ytmp3 = await api.downloads.ytmp3('https://www.youtube.com/watch?v=osPq9Yb8xm8');
131
+ await writeFile('ytmp3.mp3', ytmp3);
132
+ ```
133
+
134
+ ### ytmp4
135
+ Baixa vídeo MP4 de um link do YouTube.
136
+ ```javascript
137
+ const ytmp4 = await api.downloads.ytmp4('https://www.youtube.com/watch?v=osPq9Yb8xm8');
138
+ // buffer
139
+ ```
140
+
141
+ Exemplo salvando em arquivo:
142
+ ```javascript
143
+ import { writeFile } from 'node:fs/promises';
144
+
145
+ const ytmp4 = await api.downloads.ytmp4('https://www.youtube.com/watch?v=osPq9Yb8xm8');
146
+ await writeFile('ytmp4.mp4', ytmp4);
147
+ ```
148
+
149
+ ### play
150
+ Busca uma música por nome e retorna o resultado em áudio.
151
+ ```javascript
152
+ const play = await api.downloads.play('Nuts');
153
+ // buffer
154
+ ```
155
+
156
+ Exemplo salvando em arquivo:
157
+ ```javascript
158
+ import { writeFile } from 'node:fs/promises';
159
+
160
+ const play = await api.downloads.play('Nuts');
161
+ await writeFile('play.mp3', play);
162
+ ```
163
+
164
+ ### playvideo
165
+ Busca um vídeo por nome e retorna o vídeo.
166
+ ```javascript
167
+ const playvideo = await api.downloads.playvideo('Hutao Edit');
168
+ // buffer
169
+ ```
170
+
171
+ Exemplo salvando em arquivo:
172
+ ```javascript
173
+ import { writeFile } from 'node:fs/promises';
174
+
175
+ const playvideo = await api.downloads.playvideo('Hutao Edit');
176
+ await writeFile('playvideo.mp4', playvideo);
177
+ ```
178
+
179
+ ### tiktokdl
180
+ Baixa mídia de um link do TikTok.
181
+ ```javascript
182
+ const tiktokdl = await api.downloads.tiktokdl('https://vt.tiktok.com/ZSqRRu4Dn/');
183
+ console.log(tiktokdl);
184
+ ```
185
+
186
+ ### instavideo
187
+ Baixa vídeo a partir de link do Instagram.
188
+ ```javascript
189
+ const instavideo = await api.downloads.instavideo('https://www.instagram.com/p/Dc1iG74Fkgt/');
190
+ console.log(instavideo);
191
+ ```
192
+
193
+ ### pinterest
194
+ Pesquisa conteúdo no Pinterest por texto.
195
+ ```javascript
196
+ const pinterest = await api.downloads.pinterest('Hutao Icon');
197
+ // buffer
198
+ ```
199
+
200
+ Exemplo salvando em arquivo:
201
+ ```javascript
202
+ import { writeFile } from 'node:fs/promises';
203
+
204
+ const pinterest = await api.downloads.pinterest('Hutao Icon');
205
+ await writeFile('pinterest.jpg', pinterest);
206
+ ```
207
+
208
+ ### pinterestMp3
209
+ Retorna áudio relacionado a conteúdo do Pinterest (quando suportado).
210
+ ```javascript
211
+ const pinterestMp3 = await api.downloads.pinterestMp3('https://pin.it/5decaQP2P');
212
+ // buffer
213
+ ```
214
+
215
+ Exemplo salvando em arquivo:
216
+ ```javascript
217
+ import { writeFile } from 'node:fs/promises';
218
+
219
+ const pinterestMp3 = await api.downloads.pinterestMp3('https://pin.it/5decaQP2P');
220
+ await writeFile('pinterest.mp3', pinterestMp3);
221
+ ```
222
+
223
+ ### pinterestVideo
224
+ Retorna vídeo a partir de link do Pinterest.
225
+ ```javascript
226
+ const pinterestVideo = await api.downloads.pinterestVideo('https://pin.it/5decaQP2P');
227
+ console.log(pinterestVideo);
228
+ ```
229
+
230
+ ---
231
+
232
+ ## IAs
233
+
234
+ ### gpt
235
+ Envia um prompt e retorna resposta gerada por IA (modelo GPT).
236
+ ```javascript
237
+ const gpt = await api.ias.gpt('Oii tudo bem?');
238
+ console.log(gpt);
239
+ ```
240
+
241
+ ### gemini_pro
242
+ Envia prompt para modelo Gemini Pro.
243
+ ```javascript
244
+ const geminiPro = await api.ias.gemini_pro('Oii tudo bem?');
245
+ console.log(geminiPro);
246
+ ```
247
+
248
+ ### perplexity_ai
249
+ Envia prompt para integração Perplexity AI.
250
+ ```javascript
251
+ const perplexityAi = await api.ias.perplexity_ai('Oii tudo bem?');
252
+ console.log(perplexityAi);
253
+ ```
254
+
255
+ ### geminivoz
256
+ Endpoint Gemini com foco em recursos de voz (depende da implementação).
257
+ ```javascript
258
+ const geminiVoz = await api.ias.geminivoz('Oii tudo bem?');
259
+ // buffer
260
+ ```
261
+
262
+ Exemplo salvando em arquivo:
263
+ ```javascript
264
+ import { writeFile } from 'node:fs/promises';
265
+
266
+ const geminiVoz = await api.ias.geminivoz('Oii tudo bem?');
267
+ await writeFile('geminivoz.mp3', geminiVoz);
268
+ ```
269
+
270
+ ### gemini
271
+ Endpoint padrão do Gemini para respostas por prompt.
272
+ ```javascript
273
+ const gemini = await api.ias.gemini('Oii tudo bem?');
274
+ console.log(gemini);
275
+ ```
276
+
277
+ ---
278
+
279
+ ## Geradores
280
+
281
+ ### nick
282
+ Gera sugestões de nickname com base no nome informado.
283
+ ```javascript
284
+ const nick = await api.geradores.nick('Lm Only');
285
+ console.log(nick);
286
+ ```
287
+
288
+ ### qrcode
289
+ Gera um QR Code com o texto/link enviado.
290
+ ```javascript
291
+ const qrcode = await api.geradores.qrcode('https://github.com/Lm-Only/HutaoBot');
292
+ // buffer
293
+ ```
294
+
295
+ Exemplo salvando em arquivo:
296
+ ```javascript
297
+ import { writeFile } from 'node:fs/promises';
298
+
299
+ const qrcode = await api.geradores.qrcode('https://github.com/Lm-Only/HutaoBot');
300
+ await writeFile('qrcode.png', qrcode);
301
+ ```
302
+
303
+ ---
304
+
305
+ ## Logos
306
+
307
+ ### logos
308
+ Cria logos com estilo e texto informados.
309
+ ```javascript
310
+ const logos = await api.logos('glitch', 'LmOnly');
311
+ // buffer
312
+ ```
313
+
314
+ Exemplo salvando em arquivo:
315
+ ```javascript
316
+ import { writeFile } from 'node:fs/promises';
317
+
318
+ const logos = await api.logos('glitch', 'LmOnly');
319
+ await writeFile('logo.png', logos);
320
+ ```
321
+
322
+ ---
323
+
324
+ ## Notícias
325
+
326
+ ### cnn
327
+ Retorna notícias da CNN.
328
+ ```javascript
329
+ const cnn = await api.noticias.cnn();
330
+ console.log(cnn);
331
+ ```
332
+
333
+ ### esportes
334
+ Retorna notícias da categoria esportes.
335
+ ```javascript
336
+ const esportes = await api.noticias.esportes();
337
+ console.log(esportes);
338
+ ```
339
+
340
+ ### g1
341
+ Retorna notícias do G1.
342
+ ```javascript
343
+ const g1 = await api.noticias.g1();
344
+ console.log(g1);
345
+ ```
346
+
347
+ ### ibge
348
+ Retorna notícias/conteúdos relacionados ao IBGE.
349
+ ```javascript
350
+ const ibge = await api.noticias.ibge();
351
+ console.log(ibge);
352
+ ```
353
+
354
+ ### noticias_atuais
355
+ Retorna notícias gerais atuais.
356
+ ```javascript
357
+ const noticiasAtuais = await api.noticias.noticias_atuais();
358
+ console.log(noticiasAtuais);
359
+ ```
360
+
361
+ ### politica
362
+ Retorna notícias de política.
363
+ ```javascript
364
+ const politica = await api.noticias.politica();
365
+ console.log(politica);
366
+ ```
367
+
368
+ ### uol
369
+ Retorna notícias da UOL.
370
+ ```javascript
371
+ const uol = await api.noticias.uol();
372
+ console.log(uol);
373
+ ```
374
+
375
+ ---
376
+
377
+ ## Plaquinhas
378
+
379
+ ### plaquinhas
380
+ Gera uma plaquinha com modelo (`type`) e texto.
381
+ ```javascript
382
+ const plaquinha = await api.plaquinhas('plaq1', 'LmOnly');
383
+ // buffer
384
+ ```
385
+
386
+ Exemplo salvando em arquivo:
387
+ ```javascript
388
+ import { writeFile } from 'node:fs/promises';
389
+
390
+ const plaquinha = await api.plaquinhas('plaq1', 'LmOnly');
391
+ await writeFile('plaquinha.png', plaquinha);
392
+ ```
393
+ > Também vai até plaq10
394
+
395
+ ---
396
+
397
+ * By [Yuta Apis](https://yuta-apis.xyz)
398
+ * Criado por: Lm Only
399
+ * Versão: beta
400
+
401
+ License MIT
@@ -0,0 +1,3 @@
1
+ import { DataTypeDefault, DefaultParamsFunc, OtherOpts } from "../../Types/types.js";
2
+ export default function defaultRequest(opts: DefaultParamsFunc, dataType?: DataTypeDefault, otherOpts?: OtherOpts): Promise<any>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Routes/default/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAErF,wBAA8B,cAAc,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,GAAE,eAAwB,EAAE,SAAS,GAAE,SAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAQnJ"}
@@ -0,0 +1,10 @@
1
+ import { request } from "../../request.js";
2
+ export default async function defaultRequest(opts, dataType = 'JSON', otherOpts = null) {
3
+ return request(opts.url, {
4
+ requestOptions: {
5
+ method: 'GET',
6
+ ...(otherOpts ? { query: otherOpts } : {})
7
+ },
8
+ dataType
9
+ }, 0, opts);
10
+ }
@@ -0,0 +1,143 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright 2026 Yuta & Hutao bot community
5
+ * Yuta APIs - Em parceria com HutaoBot
6
+ *
7
+ * @author Lm Only and Nk Petrov
8
+ */
9
+ /** Opções de HTTP adcionais */
10
+ export declare interface HttpOptions {
11
+ baseUrl?: string;
12
+ headers?: Record<string, string>;
13
+ /** Numero maximo de tentativas em caso de erro */
14
+ maxRetry?: number;
15
+ }
16
+ export declare interface ParamsQuery {
17
+ apitoken?: string;
18
+ /** Ok Nk,
19
+ * sofri por que achava que tudo era query kkkk
20
+ * 😡😡😡
21
+ */
22
+ query?: string;
23
+ url?: string;
24
+ text?: string;
25
+ username?: string;
26
+ /** Esse é exclusivo da rota de logos */
27
+ texto?: string;
28
+ }
29
+ /**
30
+ * O gemini voz retorna buffer
31
+ * Mas o resto retorna JSON
32
+ * cuidado
33
+ */
34
+ export declare type DataTypeDefault = 'JSON' | 'BUFFER';
35
+ export declare type OtherOpts = Record<string, string> | null;
36
+ export declare interface RequestOptions {
37
+ method: 'GET' | 'POST';
38
+ headers?: Record<string, string>;
39
+ /**
40
+ * Query params para url, exemplo: ?query= e etc
41
+ */
42
+ query?: ParamsQuery;
43
+ }
44
+ export declare interface RequestOptsConfig {
45
+ requestOptions: RequestOptions;
46
+ dataType: 'JSON' | 'BUFFER' | 'TEXT';
47
+ }
48
+ export declare interface DefaultParamsFunc {
49
+ query?: string;
50
+ /**
51
+ * Seria como https://yuta-apis.xyz/api
52
+ */
53
+ baseUrl: string;
54
+ /**
55
+ * Tipo: pesquisa
56
+ */
57
+ route: string;
58
+ /**
59
+ * Exemplo: yt-search
60
+ */
61
+ url: string;
62
+ /**
63
+ * Token do Yuta
64
+ */
65
+ apitoken: string;
66
+ headers?: Record<string, string>;
67
+ }
68
+ export declare interface DefaultResultJSON {
69
+ status?: boolean;
70
+ msg?: string;
71
+ resposta?: string;
72
+ total?: number;
73
+ fonte?: string;
74
+ criador?: '@NkPetrøv' | '@LmOnly';
75
+ creator?: '@NkPetrøv' | '@LmOnly';
76
+ resultado?: Array<any>;
77
+ result?: Array<any>;
78
+ }
79
+ export declare interface PesquisasRota {
80
+ ytsearch: (query: string) => Promise<DefaultResultJSON>;
81
+ gitstalk: (query: string) => Promise<DefaultResultJSON>;
82
+ wiki: (query: string) => Promise<DefaultResultJSON>;
83
+ }
84
+ export declare interface DownloadsRota {
85
+ play: (query: string) => Promise<ArrayBuffer>;
86
+ playvideo: (query: string) => Promise<ArrayBuffer>;
87
+ ytmp3: (url: string) => Promise<ArrayBuffer>;
88
+ ytmp4: (url: string) => Promise<ArrayBuffer>;
89
+ tiktokdl: (url: string) => Promise<DefaultResultJSON>;
90
+ tiktokMp3: (url: string) => Promise<ArrayBuffer>;
91
+ tiktokMp4: (url: string) => Promise<ArrayBuffer>;
92
+ instavideo: (url: string) => Promise<DefaultResultJSON>;
93
+ pinterest: (query: string) => Promise<ArrayBuffer>;
94
+ pinterestVideo: (url: string) => Promise<DefaultResultJSON>;
95
+ pinterestMp3: (url: string) => Promise<ArrayBuffer>;
96
+ pinterestMp4: (url: string) => Promise<ArrayBuffer>;
97
+ }
98
+ export declare interface IaRota {
99
+ gpt: (query: string) => Promise<DefaultResultJSON>;
100
+ gemini: (query: string) => Promise<DefaultResultJSON>;
101
+ gemini_pro: (query: string) => Promise<DefaultResultJSON>;
102
+ perplexity_ai: (query: string) => Promise<DefaultResultJSON>;
103
+ geminivoz: (query: string) => Promise<ArrayBuffer>;
104
+ }
105
+ export declare interface GeradoresRota {
106
+ nick: (query: string) => Promise<DefaultResultJSON>;
107
+ qrcode: (query: string) => Promise<any>;
108
+ }
109
+ export declare interface AnimesRota {
110
+ hentai_video: () => Promise<DefaultResultJSON>;
111
+ hentai_video2: () => Promise<DefaultResultJSON>;
112
+ metadinha: () => Promise<DefaultResultJSON>;
113
+ quotesanimes: () => Promise<DefaultResultJSON>;
114
+ }
115
+ export type LogosOptions = 'glitch' | 'write' | 'advancedglow' | 'typography' | 'pixelglitch' | 'neonglitch' | 'flag' | 'flag3d' | 'deleting' | 'glowing' | 'underwater' | 'logomaker' | 'cartoon' | 'papercut' | 'watercolor' | 'effectclouds' | 'blackpinklogo' | 'gradient' | 'summerbeach' | 'luxurygold' | 'multicoloredneon' | 'sandsummer' | 'galaxywallpaper' | '1917' | 'makingneon' | 'royal' | 'freecreate' | 'galaxy' | 'darkgreen' | 'lighteffects' | 'dragonball' | 'neondevil' | 'frozen' | 'wooden3d' | 'metal3d' | 'ligatures' | '3druby' | 'sunset' | 'cemetery' | 'halloween' | 'horror' | 'blood' | 'joker' | 'clouds';
116
+ export declare type PlaqParams = 'plaq1' | 'plaq2' | 'plaq3' | 'plaq4' | 'plaq5' | 'plaq6' | 'plaq7' | 'plaq8' | 'plaq9' | 'plaq10';
117
+ export declare type PlaqTextExample = 'Lm amor' | 'Nk Domina';
118
+ export declare interface LogosRota {
119
+ generate: (nomeDoEfeito: LogosOptions, textoPraLogo: string) => Promise<ArrayBuffer>;
120
+ }
121
+ export declare interface PlaqRoutes {
122
+ generate: (Plaq: PlaqParams, TextinhoRs: PlaqTextExample) => Promise<ArrayBuffer>;
123
+ }
124
+ export declare interface NoticiasRota {
125
+ cnn: () => Promise<DefaultResultJSON>;
126
+ esportes: () => Promise<DefaultResultJSON>;
127
+ g1: () => Promise<DefaultResultJSON>;
128
+ ibge: () => Promise<DefaultResultJSON>;
129
+ noticias_atuais: () => Promise<DefaultResultJSON>;
130
+ politica: () => Promise<DefaultResultJSON>;
131
+ uol: () => Promise<DefaultResultJSON>;
132
+ }
133
+ export declare interface RouteNames {
134
+ pesquisas: PesquisasRota;
135
+ downloads: DownloadsRota;
136
+ ias: IaRota;
137
+ geradores: GeradoresRota;
138
+ animes: AnimesRota;
139
+ logos: LogosRota;
140
+ noticias: NoticiasRota;
141
+ plaquinhas: PlaqRoutes;
142
+ }
143
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/Types/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright 2026 Yuta & Hutao bot community
5
+ * Yuta APIs - Em parceria com HutaoBot
6
+ *
7
+ * @author Lm Only and Nk Petrov
8
+ */
9
+ ;
10
+ ;
11
+ ;
12
+ ;
13
+ export {};
@@ -0,0 +1,2 @@
1
+ export * from './validation.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function urlFormatString(...args: string[]): string;
2
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/Utils/url.ts"],"names":[],"mappings":"AAAA,wBAAgB,eAAe,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAOzD"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Analisa se o token tem as características da API token do yuta.
3
+ * Ele vai checar se a string tem o tamnho adequado
4
+ * Se o começo é previsto igual o do token e etc
5
+ *
6
+ * @param apiToken Suposta API Token do Yuta
7
+ */
8
+ export declare function isYutaApiToken(apiToken: string): boolean;
9
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/Utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright 2026 Yuta & Hutao bot community
5
+ * Yuta APIs - Em parceria com HutaoBot
6
+ *
7
+ * @author Lm Only and Nk Petrov
8
+ */
9
+ import { AnimesRota, DownloadsRota, GeradoresRota, HttpOptions, IaRota, LogosOptions, NoticiasRota, PesquisasRota, PlaqParams, PlaqTextExample } from "./Types/types.js";
10
+ /**
11
+ * YutaApis opções de configuração
12
+ */
13
+ export interface YutaApisOptions {
14
+ /**
15
+ * API Token do Yuta APIS localizado na parte da
16
+ * sua conta
17
+ *
18
+ * É obrigatorio
19
+ */
20
+ apiToken: string;
21
+ /**
22
+ * Opções de HTTP adcionais
23
+ */
24
+ httpOptions?: HttpOptions;
25
+ }
26
+ export declare class YutaApis {
27
+ private readonly apiToken?;
28
+ private readonly url?;
29
+ private __routeCache;
30
+ readonly config: Readonly<{
31
+ headers: Record<string, string>;
32
+ apitoken: string;
33
+ baseUrl: string;
34
+ }>;
35
+ readonly httpOptions?: HttpOptions;
36
+ private getRoutes;
37
+ get ias(): IaRota;
38
+ get geradores(): GeradoresRota;
39
+ get plaquinhas(): (Plaq: PlaqParams, TextinhoRs: PlaqTextExample) => Promise<ArrayBuffer>;
40
+ get downloads(): DownloadsRota;
41
+ get pesquisas(): PesquisasRota;
42
+ get noticias(): NoticiasRota;
43
+ get logos(): (nomeDoEfeito: LogosOptions, textoPraLogo: string) => Promise<ArrayBuffer>;
44
+ get animes(): AnimesRota;
45
+ constructor(opts: YutaApisOptions);
46
+ }
47
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAa,YAAY,EAAE,aAAa,EAAE,UAAU,EAAc,eAAe,EAAc,MAAM,kBAAkB,CAAC;AAK5M;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,WAAW,CAAA;CAC5B;AAED,qBAAa,QAAQ;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAA0C;IAE9D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACnB,CAAC,CAAA;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IAEnC,OAAO,CAAC,SAAS;IAajB,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,IAAI,SAAS,IAAI,aAAa,CAE7B;IAED,IAAI,UAAU,WAEI,UAAU,cAAc,eAAe,0BACxD;IAED,IAAI,SAAS,IAAI,aAAa,CAE7B;IAED,IAAI,SAAS,IAAI,aAAa,CAE7B;IAED,IAAI,QAAQ,IAAI,YAAY,CAE3B;IAED,IAAI,KAAK,mBAEiB,YAAY,gBAAgB,MAAM,0BAC3D;IAED,IAAI,MAAM,IAAI,UAAU,CAEvB;gBAEW,IAAI,EAAE,eAAe;CAcpC"}
package/lib/client.js CHANGED
@@ -33,19 +33,27 @@ export class YutaApis {
33
33
  get geradores() {
34
34
  return this.getRoutes('geradores').geradores;
35
35
  }
36
+ get plaquinhas() {
37
+ const generate = this.getRoutes('plaquinhas').plaquinhas.generate;
38
+ return (Plaq, TextinhoRs) => generate(Plaq, TextinhoRs);
39
+ }
36
40
  get downloads() {
37
41
  return this.getRoutes('downloads').downloads;
38
42
  }
39
43
  get pesquisas() {
40
44
  return this.getRoutes('pesquisas').pesquisas;
41
45
  }
42
- async logos(nomeDoEfeito, textoPraLogo) {
43
- return await this.getRoutes('logos').logos.generate(nomeDoEfeito, textoPraLogo);
46
+ get noticias() {
47
+ return this.getRoutes('noticias').noticias;
48
+ }
49
+ get logos() {
50
+ const generate = this.getRoutes('logos').logos.generate;
51
+ return (nomeDoEfeito, textoPraLogo) => generate(nomeDoEfeito, textoPraLogo);
44
52
  }
45
53
  get animes() {
46
54
  return this.getRoutes('animes').animes;
47
55
  }
48
- constructor(opts = {}) {
56
+ constructor(opts) {
49
57
  if (!opts.apiToken || !isYutaApiToken(String(opts.apiToken))) {
50
58
  throw new Error('apiToken is not defined');
51
59
  }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright 2026 Yuta & Hutao bot community
5
+ * Yuta APIs - Em parceria com HutaoBot
6
+ *
7
+ * @author Lm Only and Nk Petrov
8
+ */
9
+ export interface RequestErrorOpts {
10
+ message?: string;
11
+ statusCode: number;
12
+ }
13
+ export declare class RequestError extends Error {
14
+ statusCode: number;
15
+ constructor(opts: RequestErrorOpts);
16
+ }
17
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,YAAa,SAAQ,KAAK;IACnC,UAAU,EAAE,MAAM,CAAC;gBAEP,IAAI,EAAE,gBAAgB;CAMrC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright 2026 Yuta & Hutao bot community
5
+ * Yuta APIs - Em parceria com HutaoBot
6
+ *
7
+ * @author Lm Only and Nk Petrov
8
+ */
9
+ import { YutaApis } from './client.js';
10
+ export type { YutaApisOptions } from './client.js';
11
+ export default YutaApis;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright 2026 Yuta & Hutao bot community
5
+ * Yuta APIs - Em parceria com HutaoBot
6
+ *
7
+ * @author Lm Only and Nk Petrov
8
+ */
9
+ import { RequestOptsConfig } from './Types/types.js';
10
+ import { Opts } from './routes.js';
11
+ export declare function request<T = unknown>(url: string, opts: RequestOptsConfig, redirectCount: number | undefined, otherOpts: Opts): Promise<T>;
12
+ //# sourceMappingURL=request.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAiBnC,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,oBAAY,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAoDvI"}
package/lib/request.js CHANGED
@@ -18,6 +18,9 @@ async function getBodyByType(body, dataType) {
18
18
  default: return (await body.text());
19
19
  }
20
20
  }
21
+ function errorJson(type, contentType) {
22
+ return type.toLowerCase() === 'buffer' && contentType.startsWith('application/json');
23
+ }
21
24
  export async function request(url, opts, redirectCount = 0, otherOpts) {
22
25
  if (redirectCount > 5) {
23
26
  throw new RequestError({ statusCode: 310, message: 'MAX_REDIRECTS' });
@@ -31,7 +34,9 @@ export async function request(url, opts, redirectCount = 0, otherOpts) {
31
34
  ...otherOpts.headers,
32
35
  };
33
36
  const { statusCode, headers, body } = await httpRequest(url, opts.requestOptions);
34
- if (statusCode >= 200 && statusCode < 300) {
37
+ const contentType = String(headers?.['content-type']).toLowerCase();
38
+ const isErrorJson = errorJson(opts.dataType, contentType);
39
+ if (statusCode >= 200 && statusCode < 300 && !isErrorJson) {
35
40
  return await getBodyByType(body, opts.dataType);
36
41
  }
37
42
  const locationHeader = headers.location;
@@ -47,7 +52,7 @@ export async function request(url, opts, redirectCount = 0, otherOpts) {
47
52
  * Segue pra erro desconhecido .
48
53
  */
49
54
  try {
50
- const responseError = await getBodyByType(body, opts.dataType);
55
+ const responseError = await getBodyByType(body, isErrorJson ? 'JSON' : 'TEXT');
51
56
  const hasResponseApi = Array.isArray(responseError) || typeof responseError !== 'undefined';
52
57
  if (hasResponseApi) {
53
58
  return responseError;
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @license MIT
3
+ *
4
+ * Copyright 2026 Yuta & Hutao bot community
5
+ * Yuta APIs - Em parceria com HutaoBot
6
+ *
7
+ * @author Lm Only and Nk Petrov
8
+ */
9
+ import { RouteNames } from "./Types/types.js";
10
+ export type Opts = {
11
+ baseUrl: string;
12
+ apitoken: string;
13
+ route: string;
14
+ query?: string;
15
+ headers?: Record<string, any>;
16
+ };
17
+ /**
18
+ * AVISO: Antes e adicionar um rota aqui
19
+ * é necessario registrar no types.js
20
+ *
21
+ * @param opts nothing-zero
22
+ * @returns Todas as rotas do Yuta APIS
23
+ */
24
+ export declare function routes(opts: Opts): RouteNames;
25
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA8E,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI1H,MAAM,MAAM,IAAI,GAAG;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAChC,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAmF7C"}
package/lib/routes.js CHANGED
@@ -6,95 +6,84 @@
6
6
  *
7
7
  * @author Lm Only and Nk Petrov
8
8
  */
9
- import gitstalk from "./Routes/pesquisa/github-search.js";
10
- import ytsearch from "./Routes/pesquisa/yt-search.js";
11
- import ytaudio2 from "./Routes/downloads/ytaudio2.js";
12
- import wiki from "./Routes/pesquisa/wikipedia.js";
13
9
  import { urlFormatString } from "./Utils/url.js";
14
- import ias from "./Routes/ias/index.js";
15
- import geradores from "./Routes/geradores/index.js";
16
- import animes from "./Routes/animes/index.js";
17
- import logos from "./Routes/logos/index.js";
10
+ import defaultRequest from "./Routes/default/index.js";
11
+ /**
12
+ * AVISO: Antes e adicionar um rota aqui
13
+ * é necessario registrar no types.js
14
+ *
15
+ * @param opts nothing-zero
16
+ * @returns Todas as rotas do Yuta APIS
17
+ */
18
18
  export function routes(opts) {
19
- async function executeAnimesRoute(endpoint) {
20
- return await animes({
19
+ async function executeDefaultMethod(endPoint, params = {}, dataType = 'JSON') {
20
+ return defaultRequest({
21
21
  ...opts,
22
- url: urlFormatString(opts.baseUrl, opts.route, endpoint)
23
- });
24
- }
25
- const functionsMap = {
26
- 'github-stalker': gitstalk,
27
- 'wiki-search': wiki,
28
- 'yt-search': ytsearch
29
- };
30
- async function executePesquisasRoute(query, functionName) {
31
- const executeFunction = functionsMap[functionName];
32
- return await executeFunction({
33
- ...opts, query,
34
- url: urlFormatString(opts.baseUrl, opts.route, functionName)
35
- });
22
+ url: urlFormatString(opts.baseUrl, opts.route, endPoint)
23
+ }, dataType, params);
36
24
  }
37
25
  return {
26
+ noticias: {
27
+ cnn: () => executeDefaultMethod('cnn'),
28
+ esportes: () => executeDefaultMethod('esportes'),
29
+ g1: () => executeDefaultMethod('g1'),
30
+ ibge: () => executeDefaultMethod('ibge'),
31
+ noticias_atuais: () => executeDefaultMethod('noticias-atuais'),
32
+ politica: () => executeDefaultMethod('politica'),
33
+ uol: () => executeDefaultMethod('uol'),
34
+ },
38
35
  pesquisas: {
39
- ytsearch: async (query) => await executePesquisasRoute(query, 'yt-search'),
40
- gitstalk: async (query) => await executePesquisasRoute(query, 'github-stalker'),
41
- wiki: async (query) => await executePesquisasRoute(query, 'wiki-search')
36
+ ytsearch: (query) => executeDefaultMethod('yt-search', { query }),
37
+ wiki: (query) => executeDefaultMethod('wiki-search', { query }),
38
+ gitstalk: (query) => executeDefaultMethod('github-stalker', { username: query }),
42
39
  },
43
40
  downloads: {
44
- ytaudio2: async (query) => await ytaudio2({
45
- ...opts, query,
46
- url: urlFormatString(opts.baseUrl, opts.route, 'ytaudio2')
47
- }),
41
+ play: (query) => executeDefaultMethod('play-audio2', { query }, 'BUFFER'),
42
+ playvideo: (query) => executeDefaultMethod('play-video2', { query }, 'BUFFER'),
43
+ ytmp3: (url) => executeDefaultMethod('ytaudio2', { url }, 'BUFFER'),
44
+ ytmp4: (url) => executeDefaultMethod('ytvideo2', { url }, 'BUFFER'),
45
+ tiktokdl: (url) => executeDefaultMethod('tiktok-dl', { url }),
46
+ tiktokMp3: (url) => executeDefaultMethod('tiktok-mp3', { url }, 'BUFFER'),
47
+ tiktokMp4: (url) => executeDefaultMethod('tiktok-mp4', { url }, 'BUFFER'),
48
+ instavideo: (url) => executeDefaultMethod('instagram-video', { url }),
49
+ pinterestVideo: (url) => executeDefaultMethod('pinterest-video', { url }),
50
+ pinterest: (query) => executeDefaultMethod('pinterest', { query }, 'BUFFER'),
51
+ pinterestMp3: (url) => executeDefaultMethod('pinterest-mp3', { url }, 'BUFFER'),
52
+ pinterestMp4: (url) => executeDefaultMethod('pinterest-mp4', { url }, 'BUFFER'),
48
53
  },
49
54
  ias: {
50
- gpt: async (query) => await ias({
51
- ...opts, query,
52
- url: urlFormatString(opts.baseUrl, opts.route, 'gpt')
53
- }),
54
- gemini: async (query) => await ias({
55
- ...opts, query,
56
- url: urlFormatString(opts.baseUrl, opts.route, 'gemini')
57
- }),
58
- gemini_pro: async (query) => await ias({
59
- ...opts, query,
60
- url: urlFormatString(opts.baseUrl, opts.route, 'gemini-pro')
61
- }),
62
- geminivoz: async (query) => await ias({
63
- ...opts, query,
64
- url: urlFormatString(opts.baseUrl, opts.route, 'geminivoz')
65
- }, 'BUFFER'),
66
- perplexity_ai: async (query) => await ias({
67
- ...opts, query,
68
- url: urlFormatString(opts.baseUrl, opts.route, 'perplexity-ai')
69
- })
55
+ gpt: (query) => executeDefaultMethod('gpt', { query }),
56
+ gemini: (query) => executeDefaultMethod('gemini', { query }),
57
+ gemini_pro: (query) => executeDefaultMethod('gemini-pro', { query }),
58
+ geminivoz: (query) => executeDefaultMethod('geminivoz', { query }, 'BUFFER'),
59
+ perplexity_ai: (query) => executeDefaultMethod('perplexity-ai', { query }),
70
60
  },
71
61
  geradores: {
72
- nick: async (query) => await geradores({
73
- ...opts, query,
74
- url: urlFormatString(opts.baseUrl, opts.route, 'gerar-nicks')
75
- }),
76
- qrcode: async (query) => await geradores({
77
- ...opts, query,
78
- url: urlFormatString(opts.baseUrl, opts.route, 'qrcode')
79
- }, 'BUFFER'),
62
+ nick: (query) => executeDefaultMethod('gerar-nicks', { text: query }),
63
+ qrcode: (query) => executeDefaultMethod('qrcode', { text: query }, 'BUFFER')
80
64
  },
81
65
  animes: {
82
- hentai_video: async () => await executeAnimesRoute('hentai-video'),
83
- hentai_video2: async () => await executeAnimesRoute('hentai-video2'),
84
- metadinha: async () => await executeAnimesRoute('metadinha'),
85
- quotesanimes: async () => await executeAnimesRoute('quotesanimes')
66
+ hentai_video: () => executeDefaultMethod('hentai-video'),
67
+ hentai_video2: () => executeDefaultMethod('hentai-video2'),
68
+ metadinha: () => executeDefaultMethod('metadinha'),
69
+ quotesanimes: () => executeDefaultMethod('quotesanimes')
86
70
  },
87
71
  logos: {
88
- generate: async (nomeDoEfeito, textoPraLogo) => {
72
+ generate: (nomeDoEfeito, textoPraLogo) => {
89
73
  if (!textoPraLogo) {
90
74
  console.error('Ei você errou aí na função de logos, você primeiro tem que passar o nome do efeito (tipo: glitch) e depois o texto a ser gerado: (ex: Yuta APis)');
91
75
  throw new Error('Invalid params');
92
76
  }
93
- return await logos({
94
- ...opts,
95
- query: textoPraLogo,
96
- url: urlFormatString(opts.baseUrl, opts.route, nomeDoEfeito)
97
- });
77
+ return executeDefaultMethod(nomeDoEfeito, { texto: textoPraLogo }, 'BUFFER');
78
+ }
79
+ },
80
+ plaquinhas: {
81
+ generate: (Plaq, TextinhoRs) => {
82
+ if (!TextinhoRs) {
83
+ console.error('Ei você errou aí na função de plaquinha, você primeiro tem que passar o nome da plaq (tipo: plaq1) e depois o texto a ser gerado: (ex: Yuta APis)');
84
+ throw new Error('Invalid params');
85
+ }
86
+ return executeDefaultMethod(Plaq, { query: TextinhoRs }, 'BUFFER');
98
87
  }
99
88
  }
100
89
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "yutaapis",
3
- "version": "1.0.1",
4
- "description": "Módulo TS/JavaScript que se conecta com a API Oficial do Yuta",
3
+ "version": "1.0.3",
4
+ "description": "Módulo SDK TypeScript/JavaScript desenvolvido para consumo do Yuta APIs; em parceria com HutaoBot",
5
5
  "keywords": [
6
6
  "api",
7
7
  "nodejs",
@@ -19,9 +19,10 @@
19
19
  "lib"
20
20
  ],
21
21
  "license": "MIT",
22
- "author": "Lm-Only",
22
+ "author": "lm-only",
23
23
  "type": "module",
24
24
  "main": "lib/index.js",
25
+ "types": "lib/Types/types.d.ts",
25
26
  "scripts": {
26
27
  "test": "echo \"Error: no test specified\" && exit 1"
27
28
  },
@@ -1,9 +0,0 @@
1
- import { request } from "../../request.js";
2
- export default async function animes(opts) {
3
- return await request(opts.url, {
4
- requestOptions: {
5
- method: 'GET',
6
- },
7
- dataType: 'JSON'
8
- }, 0, opts);
9
- }
@@ -1,15 +0,0 @@
1
- import { request } from "../../request.js";
2
- export default async function ytaudio2(opts) {
3
- if (!opts.query) {
4
- throw 'Parâmetro inválido - Está faltando';
5
- }
6
- return await request(opts.url, {
7
- requestOptions: {
8
- method: 'GET',
9
- query: {
10
- url: opts.query,
11
- }
12
- },
13
- dataType: 'JSON'
14
- }, 0, opts);
15
- }
@@ -1,12 +0,0 @@
1
- import { request } from "../../request.js";
2
- export default async function geradores(opts, dataType = 'JSON') {
3
- return await request(opts.url, {
4
- requestOptions: {
5
- method: 'GET',
6
- query: {
7
- text: opts.query
8
- }
9
- },
10
- dataType: dataType
11
- }, 0, opts);
12
- }
@@ -1,12 +0,0 @@
1
- import { request } from "../../request.js";
2
- export default async function ias(opts, dataType = 'JSON') {
3
- return await request(opts.url, {
4
- requestOptions: {
5
- method: 'GET',
6
- query: {
7
- query: opts.query,
8
- }
9
- },
10
- dataType: dataType
11
- }, 0, opts);
12
- }
@@ -1,12 +0,0 @@
1
- import { request } from "../../request.js";
2
- export default async function logos(opts) {
3
- return await request(opts.url, {
4
- requestOptions: {
5
- method: 'GET',
6
- query: {
7
- texto: opts.query
8
- }
9
- },
10
- dataType: 'BUFFER'
11
- }, 0, opts);
12
- }
@@ -1,21 +0,0 @@
1
- import { request } from "../../request.js";
2
- export default async function gitstalk(opts) {
3
- if (!opts.query) {
4
- throw 'Parâmetro inválido - Está faltando';
5
- }
6
- try {
7
- return await request(opts.url, {
8
- requestOptions: {
9
- method: 'GET',
10
- query: {
11
- username: opts.query,
12
- },
13
- },
14
- dataType: 'JSON'
15
- }, 0, opts);
16
- }
17
- catch (error) {
18
- throw new Error('API_ERROR: ' + error);
19
- }
20
- }
21
- ;
@@ -1,15 +0,0 @@
1
- import { request } from "../../request.js";
2
- export default async function wiki(opts) {
3
- if (!opts.query) {
4
- throw 'Parâmetro inválido - Está faltando';
5
- }
6
- return await request(opts.url, {
7
- requestOptions: {
8
- method: 'GET',
9
- query: {
10
- query: opts.query,
11
- }
12
- },
13
- dataType: 'JSON'
14
- }, 0, opts);
15
- }
@@ -1,20 +0,0 @@
1
- import { request } from "../../request.js";
2
- export default async function ytsearch(opts) {
3
- if (!opts.query) {
4
- throw 'Parâmetro inválido - Está faltando';
5
- }
6
- try {
7
- return await request(opts.url, {
8
- requestOptions: {
9
- method: 'GET',
10
- query: {
11
- query: opts.query,
12
- },
13
- },
14
- dataType: 'JSON'
15
- }, 0, opts);
16
- }
17
- catch (error) {
18
- throw new Error('API_ERROR: ' + error);
19
- }
20
- }