yutaapis 1.0.0 → 1.0.1
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/lib/Routes/animes/index.js +9 -0
- package/lib/Routes/geradores/{geradores.js → index.js} +1 -1
- package/lib/Routes/ias/{ias.js → index.js} +1 -1
- package/lib/Routes/logos/index.js +12 -0
- package/lib/client.js +22 -31
- package/lib/index.js +8 -0
- package/lib/request.js +3 -0
- package/lib/routes.js +49 -19
- package/package.json +1 -1
- package/lib/Routes/downloads/instagram.js +0 -1
package/lib/client.js
CHANGED
|
@@ -12,47 +12,38 @@ const BASE_YUTA_API_URL = 'https://yuta-apis.xyz/api';
|
|
|
12
12
|
export class YutaApis {
|
|
13
13
|
apiToken;
|
|
14
14
|
url;
|
|
15
|
+
__routeCache = null;
|
|
15
16
|
config;
|
|
16
17
|
httpOptions;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
getRoutes(routeName) {
|
|
19
|
+
if (this.__routeCache)
|
|
20
|
+
return this.__routeCache;
|
|
21
|
+
if (!this.url) {
|
|
22
|
+
throw new Error('Base url is not defined');
|
|
21
23
|
}
|
|
22
|
-
|
|
24
|
+
this.__routeCache = routes({
|
|
23
25
|
...this.config,
|
|
24
|
-
route:
|
|
25
|
-
})
|
|
26
|
+
route: routeName
|
|
27
|
+
});
|
|
28
|
+
return this.__routeCache;
|
|
29
|
+
}
|
|
30
|
+
get ias() {
|
|
31
|
+
return this.getRoutes('ias').ias;
|
|
26
32
|
}
|
|
27
33
|
get geradores() {
|
|
28
|
-
|
|
29
|
-
if (!baseUrl) {
|
|
30
|
-
throw new Error('baseUrl is not defined');
|
|
31
|
-
}
|
|
32
|
-
return routes({
|
|
33
|
-
...this.config,
|
|
34
|
-
route: 'geradores'
|
|
35
|
-
}).geradores;
|
|
34
|
+
return this.getRoutes('geradores').geradores;
|
|
36
35
|
}
|
|
37
36
|
get downloads() {
|
|
38
|
-
|
|
39
|
-
if (!baseUrl) {
|
|
40
|
-
throw new Error('baseUrl is not defined');
|
|
41
|
-
}
|
|
42
|
-
return routes({
|
|
43
|
-
...this.config,
|
|
44
|
-
route: 'downloads'
|
|
45
|
-
}).downloads;
|
|
37
|
+
return this.getRoutes('downloads').downloads;
|
|
46
38
|
}
|
|
47
39
|
get pesquisas() {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}).pesquisas;
|
|
40
|
+
return this.getRoutes('pesquisas').pesquisas;
|
|
41
|
+
}
|
|
42
|
+
async logos(nomeDoEfeito, textoPraLogo) {
|
|
43
|
+
return await this.getRoutes('logos').logos.generate(nomeDoEfeito, textoPraLogo);
|
|
44
|
+
}
|
|
45
|
+
get animes() {
|
|
46
|
+
return this.getRoutes('animes').animes;
|
|
56
47
|
}
|
|
57
48
|
constructor(opts = {}) {
|
|
58
49
|
if (!opts.apiToken || !isYutaApiToken(String(opts.apiToken))) {
|
package/lib/index.js
CHANGED
package/lib/request.js
CHANGED
|
@@ -22,6 +22,9 @@ export async function request(url, opts, redirectCount = 0, otherOpts) {
|
|
|
22
22
|
if (redirectCount > 5) {
|
|
23
23
|
throw new RequestError({ statusCode: 310, message: 'MAX_REDIRECTS' });
|
|
24
24
|
}
|
|
25
|
+
if (!opts.requestOptions.query) {
|
|
26
|
+
opts.requestOptions.query = {};
|
|
27
|
+
}
|
|
25
28
|
opts.requestOptions.query.apitoken = otherOpts.apitoken;
|
|
26
29
|
opts.requestOptions.headers = {
|
|
27
30
|
...opts.requestOptions.headers,
|
package/lib/routes.js
CHANGED
|
@@ -11,23 +11,34 @@ import ytsearch from "./Routes/pesquisa/yt-search.js";
|
|
|
11
11
|
import ytaudio2 from "./Routes/downloads/ytaudio2.js";
|
|
12
12
|
import wiki from "./Routes/pesquisa/wikipedia.js";
|
|
13
13
|
import { urlFormatString } from "./Utils/url.js";
|
|
14
|
-
import ias from "./Routes/ias/
|
|
15
|
-
import geradores from "./Routes/geradores/
|
|
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";
|
|
16
18
|
export function routes(opts) {
|
|
19
|
+
async function executeAnimesRoute(endpoint) {
|
|
20
|
+
return await animes({
|
|
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
|
+
});
|
|
36
|
+
}
|
|
17
37
|
return {
|
|
18
38
|
pesquisas: {
|
|
19
|
-
ytsearch: async (query) => await
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}),
|
|
23
|
-
gitstalk: async (query) => await gitstalk({
|
|
24
|
-
...opts, query,
|
|
25
|
-
url: urlFormatString(opts.baseUrl, opts.route, 'github-stalker')
|
|
26
|
-
}),
|
|
27
|
-
wiki: async (query) => await wiki({
|
|
28
|
-
...opts, query,
|
|
29
|
-
url: urlFormatString(opts.baseUrl, opts.route, 'wiki-search')
|
|
30
|
-
})
|
|
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')
|
|
31
42
|
},
|
|
32
43
|
downloads: {
|
|
33
44
|
ytaudio2: async (query) => await ytaudio2({
|
|
@@ -39,15 +50,15 @@ export function routes(opts) {
|
|
|
39
50
|
gpt: async (query) => await ias({
|
|
40
51
|
...opts, query,
|
|
41
52
|
url: urlFormatString(opts.baseUrl, opts.route, 'gpt')
|
|
42
|
-
}
|
|
53
|
+
}),
|
|
43
54
|
gemini: async (query) => await ias({
|
|
44
55
|
...opts, query,
|
|
45
56
|
url: urlFormatString(opts.baseUrl, opts.route, 'gemini')
|
|
46
|
-
}
|
|
57
|
+
}),
|
|
47
58
|
gemini_pro: async (query) => await ias({
|
|
48
59
|
...opts, query,
|
|
49
60
|
url: urlFormatString(opts.baseUrl, opts.route, 'gemini-pro')
|
|
50
|
-
}
|
|
61
|
+
}),
|
|
51
62
|
geminivoz: async (query) => await ias({
|
|
52
63
|
...opts, query,
|
|
53
64
|
url: urlFormatString(opts.baseUrl, opts.route, 'geminivoz')
|
|
@@ -55,17 +66,36 @@ export function routes(opts) {
|
|
|
55
66
|
perplexity_ai: async (query) => await ias({
|
|
56
67
|
...opts, query,
|
|
57
68
|
url: urlFormatString(opts.baseUrl, opts.route, 'perplexity-ai')
|
|
58
|
-
}
|
|
69
|
+
})
|
|
59
70
|
},
|
|
60
71
|
geradores: {
|
|
61
72
|
nick: async (query) => await geradores({
|
|
62
73
|
...opts, query,
|
|
63
74
|
url: urlFormatString(opts.baseUrl, opts.route, 'gerar-nicks')
|
|
64
|
-
}
|
|
75
|
+
}),
|
|
65
76
|
qrcode: async (query) => await geradores({
|
|
66
77
|
...opts, query,
|
|
67
78
|
url: urlFormatString(opts.baseUrl, opts.route, 'qrcode')
|
|
68
79
|
}, 'BUFFER'),
|
|
80
|
+
},
|
|
81
|
+
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')
|
|
86
|
+
},
|
|
87
|
+
logos: {
|
|
88
|
+
generate: async (nomeDoEfeito, textoPraLogo) => {
|
|
89
|
+
if (!textoPraLogo) {
|
|
90
|
+
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
|
+
throw new Error('Invalid params');
|
|
92
|
+
}
|
|
93
|
+
return await logos({
|
|
94
|
+
...opts,
|
|
95
|
+
query: textoPraLogo,
|
|
96
|
+
url: urlFormatString(opts.baseUrl, opts.route, nomeDoEfeito)
|
|
97
|
+
});
|
|
98
|
+
}
|
|
69
99
|
}
|
|
70
100
|
};
|
|
71
101
|
}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|