@jesusacd/mediafire 1.2.0 → 1.3.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.
- package/README.md +63 -43
- package/dist/modules/files.d.ts +50 -0
- package/dist/modules/files.d.ts.map +1 -1
- package/dist/modules/files.js +222 -0
- package/dist/modules/files.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@ Complete MediaFire SDK for Node.js. **Just use your email and password** to acce
|
|
|
9
9
|
- 🔐 **Simple Authentication** - Just email and password, no API keys needed
|
|
10
10
|
- 📁 **Full Management** - Files and folders (create, move, copy, delete)
|
|
11
11
|
- 📤 **File Upload** - Supports large files
|
|
12
|
-
- 🔍 **Search** -
|
|
12
|
+
- 🔍 **Smart Search** - Advanced search with automatic keyword extraction
|
|
13
13
|
- 🔗 **Direct Links** - Get download URLs
|
|
14
14
|
- 📊 **TypeScript** - Full type definitions included
|
|
15
15
|
|
|
@@ -138,9 +138,25 @@ const fileInfo = await client.files.getInfo("quickKey");
|
|
|
138
138
|
const links = await client.files.getLinks("quickKey");
|
|
139
139
|
// { viewLink, normalDownload, directDownload }
|
|
140
140
|
|
|
141
|
-
// Search files
|
|
141
|
+
// Search files (basic)
|
|
142
142
|
const results = await client.files.search("document");
|
|
143
|
-
// {
|
|
143
|
+
// { items: [...], total }
|
|
144
|
+
|
|
145
|
+
// Smart search (recommended for complex names)
|
|
146
|
+
const results = await client.files.smartSearch(
|
|
147
|
+
"La empresa de sillas (2025) Temporada 1 [1080p] {MAX} WEB-DL",
|
|
148
|
+
);
|
|
149
|
+
// Automatically extracts unique keywords and filters results
|
|
150
|
+
|
|
151
|
+
// Smart search with filters
|
|
152
|
+
const folders = await client.files.smartSearch("My Series", {
|
|
153
|
+
filter: "folders", // 'files' | 'folders' | 'everything'
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
// Exact match
|
|
157
|
+
const exact = await client.files.smartSearch("exact name", {
|
|
158
|
+
exactMatch: true,
|
|
159
|
+
});
|
|
144
160
|
|
|
145
161
|
// Change privacy
|
|
146
162
|
await client.files.setPrivacy("quickKey", "public");
|
|
@@ -270,9 +286,12 @@ for (const file of files) {
|
|
|
270
286
|
### Search and download
|
|
271
287
|
|
|
272
288
|
```javascript
|
|
273
|
-
|
|
289
|
+
// Use smartSearch for complex file names
|
|
290
|
+
const results = await client.files.smartSearch(
|
|
291
|
+
"Prison Break (2005-2017) Temporada 1-5 [Full 1080p]",
|
|
292
|
+
);
|
|
274
293
|
|
|
275
|
-
for (const file of results.
|
|
294
|
+
for (const file of results.items.filter((i) => !i.isFolder)) {
|
|
276
295
|
const links = await client.files.getLinks(file.quickKey);
|
|
277
296
|
console.log(`📄 ${file.name}`);
|
|
278
297
|
console.log(` Download: ${links.directDownload}`);
|
|
@@ -320,44 +339,45 @@ const client = new MediaFireClient({
|
|
|
320
339
|
|
|
321
340
|
## 📋 Available Methods
|
|
322
341
|
|
|
323
|
-
| Module | Method | Description
|
|
324
|
-
| ----------- | ------------------------------- |
|
|
325
|
-
| **Auth** | `login(email, password)` | Log in
|
|
326
|
-
| | `logout()` | Log out
|
|
327
|
-
| | `isAuthenticated()` | Check authentication
|
|
328
|
-
| | `getSession()` | Get session data
|
|
329
|
-
| | `setSession(session)` | Restore session
|
|
330
|
-
| **User** | `getInfo()` | User info
|
|
331
|
-
| | `getStorage()` | Storage used
|
|
332
|
-
| **Folders** | `getContent(key, options)` | List contents
|
|
333
|
-
| | `getFiles(key, options)` | List files
|
|
334
|
-
| | `getFolders(key, options)` | List folders
|
|
335
|
-
| | `getInfo(key)` | Folder info
|
|
336
|
-
| | `create(name, parentKey)` | Create folder
|
|
337
|
-
| | `rename(key, newName)` | Rename
|
|
338
|
-
| | `move(key, destKey)` | Move
|
|
339
|
-
| | `copy(key, destKey)` | Copy
|
|
340
|
-
| | `setPrivacy(key, privacy)` | Change privacy
|
|
341
|
-
| | `delete(key)` | Delete (trash)
|
|
342
|
-
| | `purge(key)` | Permanently delete
|
|
343
|
-
| **Files** | `getInfo(quickKey)` | File info
|
|
344
|
-
| | `getLinks(quickKey)` | Get links
|
|
345
|
-
| | `search(query
|
|
346
|
-
| | `
|
|
347
|
-
| | `
|
|
348
|
-
| | `
|
|
349
|
-
| | `
|
|
350
|
-
| | `
|
|
351
|
-
| | `
|
|
352
|
-
| | `
|
|
353
|
-
| | `
|
|
354
|
-
| | `
|
|
355
|
-
| | `
|
|
356
|
-
| | `
|
|
357
|
-
|
|
|
358
|
-
|
|
|
359
|
-
| | `
|
|
360
|
-
| | `
|
|
342
|
+
| Module | Method | Description |
|
|
343
|
+
| ----------- | ------------------------------- | -------------------------- |
|
|
344
|
+
| **Auth** | `login(email, password)` | Log in |
|
|
345
|
+
| | `logout()` | Log out |
|
|
346
|
+
| | `isAuthenticated()` | Check authentication |
|
|
347
|
+
| | `getSession()` | Get session data |
|
|
348
|
+
| | `setSession(session)` | Restore session |
|
|
349
|
+
| **User** | `getInfo()` | User info |
|
|
350
|
+
| | `getStorage()` | Storage used |
|
|
351
|
+
| **Folders** | `getContent(key, options)` | List contents |
|
|
352
|
+
| | `getFiles(key, options)` | List files |
|
|
353
|
+
| | `getFolders(key, options)` | List folders |
|
|
354
|
+
| | `getInfo(key)` | Folder info |
|
|
355
|
+
| | `create(name, parentKey)` | Create folder |
|
|
356
|
+
| | `rename(key, newName)` | Rename |
|
|
357
|
+
| | `move(key, destKey)` | Move |
|
|
358
|
+
| | `copy(key, destKey)` | Copy |
|
|
359
|
+
| | `setPrivacy(key, privacy)` | Change privacy |
|
|
360
|
+
| | `delete(key)` | Delete (trash) |
|
|
361
|
+
| | `purge(key)` | Permanently delete |
|
|
362
|
+
| **Files** | `getInfo(quickKey)` | File info |
|
|
363
|
+
| | `getLinks(quickKey)` | Get links |
|
|
364
|
+
| | `search(query)` | Basic search |
|
|
365
|
+
| | `smartSearch(query, options)` | Smart search (recommended) |
|
|
366
|
+
| | `setPrivacy(quickKey, privacy)` | Change privacy |
|
|
367
|
+
| | `makePublic(quickKey)` | Make public |
|
|
368
|
+
| | `makePrivate(quickKey)` | Make private |
|
|
369
|
+
| | `rename(quickKey, newName)` | Rename |
|
|
370
|
+
| | `move(quickKey, folderKey)` | Move |
|
|
371
|
+
| | `copy(quickKey, folderKey)` | Copy |
|
|
372
|
+
| | `delete(quickKey)` | Delete (trash) |
|
|
373
|
+
| | `restore(quickKey)` | Restore |
|
|
374
|
+
| | `purge(quickKey)` | Permanently delete |
|
|
375
|
+
| | `getVersions(quickKey)` | Version history |
|
|
376
|
+
| | `getRecentlyModified()` | Recent files |
|
|
377
|
+
| **Upload** | `file(path, options)` | Upload from disk |
|
|
378
|
+
| | `buffer(buffer, name, options)` | Upload from buffer |
|
|
379
|
+
| | `check(hash, name, size)` | Check existence |
|
|
380
|
+
| | `instant(hash, name, size)` | Instant upload |
|
|
361
381
|
|
|
362
382
|
---
|
|
363
383
|
|
package/dist/modules/files.d.ts
CHANGED
|
@@ -52,6 +52,56 @@ export declare class FilesModule {
|
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
54
|
search(query: string): Promise<SearchResults>;
|
|
55
|
+
/**
|
|
56
|
+
* Búsqueda inteligente que extrae palabras clave únicas del query
|
|
57
|
+
* y filtra los resultados para coincidir con el nombre buscado.
|
|
58
|
+
*
|
|
59
|
+
* La API de MediaFire no maneja bien queries con espacios o caracteres
|
|
60
|
+
* especiales, por lo que este método:
|
|
61
|
+
* 1. Extrae las palabras más únicas/distintivas del query
|
|
62
|
+
* 2. Busca usando esas palabras simples
|
|
63
|
+
* 3. Filtra los resultados para encontrar coincidencias reales
|
|
64
|
+
*
|
|
65
|
+
* @param query - Nombre del archivo o carpeta a buscar
|
|
66
|
+
* @param options - Opciones de búsqueda
|
|
67
|
+
* @returns Resultados filtrados que coinciden con el query
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* // Buscar con nombre completo
|
|
72
|
+
* const results = await client.files.smartSearch(
|
|
73
|
+
* 'La empresa de sillas (2025) Temporada 1 [1080p] {MAX} WEB-DL'
|
|
74
|
+
* );
|
|
75
|
+
*
|
|
76
|
+
* // Buscar solo carpetas
|
|
77
|
+
* const folders = await client.files.smartSearch('Mi Serie', {
|
|
78
|
+
* filter: 'folders'
|
|
79
|
+
* });
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
smartSearch(query: string, options?: {
|
|
83
|
+
/** Filtrar por tipo: 'files', 'folders', o 'everything' */
|
|
84
|
+
filter?: 'files' | 'folders' | 'everything';
|
|
85
|
+
/** Si es true, requiere coincidencia exacta del nombre (sin case-sensitive) */
|
|
86
|
+
exactMatch?: boolean;
|
|
87
|
+
}): Promise<SearchResults>;
|
|
88
|
+
/**
|
|
89
|
+
* Extrae las palabras clave más distintivas de un query de búsqueda.
|
|
90
|
+
* Filtra palabras comunes, años, resoluciones, etc.
|
|
91
|
+
*/
|
|
92
|
+
private extractSearchKeywords;
|
|
93
|
+
/**
|
|
94
|
+
* Calcula un score de unicidad para una palabra
|
|
95
|
+
*/
|
|
96
|
+
private calculateWordScore;
|
|
97
|
+
/**
|
|
98
|
+
* Verifica si un nombre contiene todas las palabras clave
|
|
99
|
+
*/
|
|
100
|
+
private matchesAllKeywords;
|
|
101
|
+
/**
|
|
102
|
+
* Ordena los resultados por relevancia respecto al query original
|
|
103
|
+
*/
|
|
104
|
+
private sortByRelevance;
|
|
55
105
|
/**
|
|
56
106
|
* Set file privacy (public or private)
|
|
57
107
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/modules/files.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAW,eAAe,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAe,aAAa,EAAE,MAAM,UAAU,CAAC;AAG/E;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM,eAAe,GAAG,IAAI;IAE5D;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqDlD;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2BxD;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+DnD;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBnF;;;;;;;;;;OAUG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD;;;;;;;;;;OAUG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrD;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBnE;;;;;;;;;;OAUG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAahD;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAclE;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcjE;;;;;;;;;;OAUG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa/C;;;;;;;;;;OAUG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAajD;;;;;;;;;;OAUG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAuBvF;;;;;;;;;OASG;IACG,mBAAmB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;CA0BjD"}
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/modules/files.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAW,eAAe,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAe,aAAa,EAAE,MAAM,UAAU,CAAC;AAG/E;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM,eAAe,GAAG,IAAI;IAE5D;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqDlD;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2BxD;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+DnD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,2DAA2D;QAC3D,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;QAC5C,+EAA+E;QAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;KACjB,GACL,OAAO,CAAC,aAAa,CAAC;IAoGzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAkE7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBnF;;;;;;;;;;OAUG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD;;;;;;;;;;OAUG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrD;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBnE;;;;;;;;;;OAUG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAahD;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAclE;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcjE;;;;;;;;;;OAUG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa/C;;;;;;;;;;OAUG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAajD;;;;;;;;;;OAUG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAuBvF;;;;;;;;;OASG;IACG,mBAAmB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;CA0BjD"}
|
package/dist/modules/files.js
CHANGED
|
@@ -139,6 +139,228 @@ class FilesModule {
|
|
|
139
139
|
total: items.length
|
|
140
140
|
};
|
|
141
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Búsqueda inteligente que extrae palabras clave únicas del query
|
|
144
|
+
* y filtra los resultados para coincidir con el nombre buscado.
|
|
145
|
+
*
|
|
146
|
+
* La API de MediaFire no maneja bien queries con espacios o caracteres
|
|
147
|
+
* especiales, por lo que este método:
|
|
148
|
+
* 1. Extrae las palabras más únicas/distintivas del query
|
|
149
|
+
* 2. Busca usando esas palabras simples
|
|
150
|
+
* 3. Filtra los resultados para encontrar coincidencias reales
|
|
151
|
+
*
|
|
152
|
+
* @param query - Nombre del archivo o carpeta a buscar
|
|
153
|
+
* @param options - Opciones de búsqueda
|
|
154
|
+
* @returns Resultados filtrados que coinciden con el query
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```typescript
|
|
158
|
+
* // Buscar con nombre completo
|
|
159
|
+
* const results = await client.files.smartSearch(
|
|
160
|
+
* 'La empresa de sillas (2025) Temporada 1 [1080p] {MAX} WEB-DL'
|
|
161
|
+
* );
|
|
162
|
+
*
|
|
163
|
+
* // Buscar solo carpetas
|
|
164
|
+
* const folders = await client.files.smartSearch('Mi Serie', {
|
|
165
|
+
* filter: 'folders'
|
|
166
|
+
* });
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
async smartSearch(query, options = {}) {
|
|
170
|
+
const session = this.getSession();
|
|
171
|
+
if (!session) {
|
|
172
|
+
throw new Error('Not authenticated. Please call login() first.');
|
|
173
|
+
}
|
|
174
|
+
const { filter = 'everything', exactMatch = false } = options;
|
|
175
|
+
// Extraer palabras clave del query
|
|
176
|
+
const keywords = this.extractSearchKeywords(query);
|
|
177
|
+
if (keywords.length === 0) {
|
|
178
|
+
return { query, items: [], total: 0 };
|
|
179
|
+
}
|
|
180
|
+
// Usar la palabra más única/distintiva para la búsqueda API
|
|
181
|
+
const searchTerm = keywords[0];
|
|
182
|
+
const response = await (0, api_1.apiCall)('folder/search', {
|
|
183
|
+
search_text: searchTerm,
|
|
184
|
+
filter: 'everything'
|
|
185
|
+
}, session);
|
|
186
|
+
const results = response.results || [];
|
|
187
|
+
// Convertir y filtrar resultados
|
|
188
|
+
let items = results.map(item => {
|
|
189
|
+
if (item.type === 'folder') {
|
|
190
|
+
return {
|
|
191
|
+
id: item.folderkey || '',
|
|
192
|
+
folderKey: item.folderkey || '',
|
|
193
|
+
name: item.name || '',
|
|
194
|
+
created: undefined,
|
|
195
|
+
fileCount: 0,
|
|
196
|
+
folderCount: 0,
|
|
197
|
+
parentFolderKey: item.parent_folderkey,
|
|
198
|
+
parentName: item.parent_name,
|
|
199
|
+
isFolder: true
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
const size = parseInt(item.size || '0', 10);
|
|
204
|
+
return {
|
|
205
|
+
id: item.quickkey || '',
|
|
206
|
+
quickKey: item.quickkey || '',
|
|
207
|
+
name: item.filename || item.name || '',
|
|
208
|
+
size,
|
|
209
|
+
sizeFormatted: (0, utils_1.formatBytes)(size),
|
|
210
|
+
mimeType: item.mimetype,
|
|
211
|
+
parentFolderKey: item.parent_folderkey,
|
|
212
|
+
parentName: item.parent_name,
|
|
213
|
+
isFolder: false
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
// Filtrar por tipo si es necesario
|
|
218
|
+
if (filter === 'files') {
|
|
219
|
+
items = items.filter(item => !item.isFolder);
|
|
220
|
+
}
|
|
221
|
+
else if (filter === 'folders') {
|
|
222
|
+
items = items.filter(item => item.isFolder);
|
|
223
|
+
}
|
|
224
|
+
// Filtrar por coincidencia con el query original
|
|
225
|
+
if (exactMatch) {
|
|
226
|
+
// Coincidencia exacta (case-insensitive)
|
|
227
|
+
const queryLower = query.toLowerCase().trim();
|
|
228
|
+
items = items.filter(item => item.name.toLowerCase().trim() === queryLower);
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
// Verificar que todas las palabras clave estén en el nombre
|
|
232
|
+
items = items.filter(item => this.matchesAllKeywords(item.name, keywords));
|
|
233
|
+
}
|
|
234
|
+
// Ordenar por relevancia (coincidencia más cercana primero)
|
|
235
|
+
items = this.sortByRelevance(items, query);
|
|
236
|
+
return {
|
|
237
|
+
query,
|
|
238
|
+
items,
|
|
239
|
+
total: items.length
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Extrae las palabras clave más distintivas de un query de búsqueda.
|
|
244
|
+
* Filtra palabras comunes, años, resoluciones, etc.
|
|
245
|
+
*/
|
|
246
|
+
extractSearchKeywords(query) {
|
|
247
|
+
// Palabras comunes a ignorar (stop words y términos técnicos genéricos)
|
|
248
|
+
const stopWords = new Set([
|
|
249
|
+
// Resoluciones y calidad
|
|
250
|
+
'1080p', '720p', '480p', '2160p', '4k', 'full', 'hd', 'uhd',
|
|
251
|
+
'web', 'dl', 'webrip', 'bluray', 'brrip', 'bdrip', 'bdremux', 'remux',
|
|
252
|
+
'hdr', 'hdr10', 'dv', 'dolby', 'vision', 'x264', 'x265', 'hevc', 'avc',
|
|
253
|
+
// Plataformas
|
|
254
|
+
'netflix', 'ntfx', 'amazon', 'amnz', 'hbo', 'max', 'disney', 'dsny',
|
|
255
|
+
'apple', 'aptv', 'paramount', 'prmnt', 'peacock', 'hulu', 'vix',
|
|
256
|
+
'mgm', 'mgm+', 'booh', 'booh!',
|
|
257
|
+
// Idiomas
|
|
258
|
+
'latino', 'español', 'castellano', 'ingles', 'inglés', 'subtitulado',
|
|
259
|
+
'dual', 'multi', 'español', 'portugués', 'ruso',
|
|
260
|
+
// Términos comunes
|
|
261
|
+
'temporada', 'temp', 'season', 'capitulo', 'cap', 'episode', 'ep',
|
|
262
|
+
'vip', 'hdlatino', 'us', 'com', 'www',
|
|
263
|
+
// Artículos y preposiciones
|
|
264
|
+
'el', 'la', 'los', 'las', 'un', 'una', 'de', 'del', 'en', 'con', 'por',
|
|
265
|
+
'para', 'the', 'a', 'an', 'of', 'in', 'on', 'at', 'to', 'for', 'and', 'or'
|
|
266
|
+
]);
|
|
267
|
+
// Limpiar el query: remover caracteres especiales excepto letras, números y espacios
|
|
268
|
+
let cleaned = query
|
|
269
|
+
.replace(/[\[\]{}()]/g, ' ') // Remover brackets
|
|
270
|
+
.replace(/[^\w\sáéíóúñü-]/gi, ' ') // Mantener solo alfanuméricos y acentos
|
|
271
|
+
.toLowerCase();
|
|
272
|
+
// Dividir en palabras
|
|
273
|
+
const words = cleaned.split(/\s+/).filter(word => word.length > 0);
|
|
274
|
+
// Filtrar palabras
|
|
275
|
+
const filtered = words.filter(word => {
|
|
276
|
+
// Ignorar palabras muy cortas
|
|
277
|
+
if (word.length < 3)
|
|
278
|
+
return false;
|
|
279
|
+
// Ignorar stop words
|
|
280
|
+
if (stopWords.has(word))
|
|
281
|
+
return false;
|
|
282
|
+
// Ignorar años (1900-2099)
|
|
283
|
+
if (/^(19|20)\d{2}$/.test(word))
|
|
284
|
+
return false;
|
|
285
|
+
// Ignorar números puros
|
|
286
|
+
if (/^\d+$/.test(word))
|
|
287
|
+
return false;
|
|
288
|
+
// Ignorar códigos de episodio (S01E01, etc.)
|
|
289
|
+
if (/^s\d+e?\d*$/i.test(word))
|
|
290
|
+
return false;
|
|
291
|
+
return true;
|
|
292
|
+
});
|
|
293
|
+
// Ordenar por unicidad (palabras menos comunes primero)
|
|
294
|
+
// Priorizar palabras más largas y con caracteres especiales
|
|
295
|
+
const scored = filtered.map(word => ({
|
|
296
|
+
word,
|
|
297
|
+
score: this.calculateWordScore(word, filtered)
|
|
298
|
+
}));
|
|
299
|
+
scored.sort((a, b) => b.score - a.score);
|
|
300
|
+
// Retornar palabras únicas
|
|
301
|
+
const unique = [...new Set(scored.map(s => s.word))];
|
|
302
|
+
return unique.slice(0, 5); // Máximo 5 palabras clave
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Calcula un score de unicidad para una palabra
|
|
306
|
+
*/
|
|
307
|
+
calculateWordScore(word, allWords) {
|
|
308
|
+
let score = 0;
|
|
309
|
+
// Palabras más largas son más únicas
|
|
310
|
+
score += word.length * 2;
|
|
311
|
+
// Palabras con caracteres especiales/acentos son más distintivas
|
|
312
|
+
if (/[áéíóúñü]/.test(word))
|
|
313
|
+
score += 5;
|
|
314
|
+
// Palabras que aparecen una sola vez son más únicas
|
|
315
|
+
const count = allWords.filter(w => w === word).length;
|
|
316
|
+
if (count === 1)
|
|
317
|
+
score += 10;
|
|
318
|
+
// Penalizar palabras muy comunes en nombres de archivos
|
|
319
|
+
const commonWords = ['serie', 'movie', 'film', 'show', 'video'];
|
|
320
|
+
if (commonWords.includes(word))
|
|
321
|
+
score -= 5;
|
|
322
|
+
return score;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Verifica si un nombre contiene todas las palabras clave
|
|
326
|
+
*/
|
|
327
|
+
matchesAllKeywords(name, keywords) {
|
|
328
|
+
const nameLower = name.toLowerCase();
|
|
329
|
+
// Verificar que al menos la primera palabra clave (la más única) esté presente
|
|
330
|
+
if (keywords.length > 0 && !nameLower.includes(keywords[0])) {
|
|
331
|
+
return false;
|
|
332
|
+
}
|
|
333
|
+
// Para una coincidencia más flexible, verificar que al menos 60% de las palabras estén
|
|
334
|
+
const matchCount = keywords.filter(kw => nameLower.includes(kw)).length;
|
|
335
|
+
const matchRatio = matchCount / keywords.length;
|
|
336
|
+
return matchRatio >= 0.6;
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Ordena los resultados por relevancia respecto al query original
|
|
340
|
+
*/
|
|
341
|
+
sortByRelevance(items, query) {
|
|
342
|
+
const queryLower = query.toLowerCase();
|
|
343
|
+
return items.sort((a, b) => {
|
|
344
|
+
const aName = a.name.toLowerCase();
|
|
345
|
+
const bName = b.name.toLowerCase();
|
|
346
|
+
// Coincidencia exacta primero
|
|
347
|
+
if (aName === queryLower && bName !== queryLower)
|
|
348
|
+
return -1;
|
|
349
|
+
if (bName === queryLower && aName !== queryLower)
|
|
350
|
+
return 1;
|
|
351
|
+
// Luego, contiene el query completo
|
|
352
|
+
const aContains = aName.includes(queryLower);
|
|
353
|
+
const bContains = bName.includes(queryLower);
|
|
354
|
+
if (aContains && !bContains)
|
|
355
|
+
return -1;
|
|
356
|
+
if (bContains && !aContains)
|
|
357
|
+
return 1;
|
|
358
|
+
// Luego, por similitud de longitud
|
|
359
|
+
const aDiff = Math.abs(a.name.length - query.length);
|
|
360
|
+
const bDiff = Math.abs(b.name.length - query.length);
|
|
361
|
+
return aDiff - bDiff;
|
|
362
|
+
});
|
|
363
|
+
}
|
|
142
364
|
/**
|
|
143
365
|
* Set file privacy (public or private)
|
|
144
366
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/modules/files.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/modules/files.ts"],"names":[],"mappings":"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"}
|