Spaces:
Running
Running
Update router/api.js
Browse files- router/api.js +13 -1
router/api.js
CHANGED
@@ -3,6 +3,7 @@ import axios from 'axios';
|
|
3 |
import crypto from 'crypto';
|
4 |
import FormData from 'form-data'; // Import modul form-data untuk menghandle multipart
|
5 |
import Groq from 'groq-sdk';
|
|
|
6 |
|
7 |
import { feloAI } from '../lib/feloAI.js';
|
8 |
import { toAnime } from '../lib/toanime.js';
|
@@ -264,4 +265,15 @@ function generateApiKey(secret) {
|
|
264 |
|
265 |
// Kembalikan hash dalam format hexadecimal
|
266 |
return hmac.digest('hex');
|
267 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
import crypto from 'crypto';
|
4 |
import FormData from 'form-data'; // Import modul form-data untuk menghandle multipart
|
5 |
import Groq from 'groq-sdk';
|
6 |
+
import bytes from 'bytes';
|
7 |
|
8 |
import { feloAI } from '../lib/feloAI.js';
|
9 |
import { toAnime } from '../lib/toanime.js';
|
|
|
265 |
|
266 |
// Kembalikan hash dalam format hexadecimal
|
267 |
return hmac.digest('hex');
|
268 |
+
};
|
269 |
+
|
270 |
+
|
271 |
+
function formatSize(num) {
|
272 |
+
return bytes(+num || 0, { unitSeparator: ' ' })
|
273 |
+
}
|
274 |
+
function isBase64(str) {
|
275 |
+
try {
|
276 |
+
return btoa(atob(str)) === str
|
277 |
+
} catch {
|
278 |
+
return false
|
279 |
+
}
|