ziplayer 0.2.7-dev.3 → 0.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.
Files changed (47) hide show
  1. package/AI-Guide.md +624 -607
  2. package/README.md +526 -524
  3. package/dist/plugins/index.d.ts +62 -12
  4. package/dist/plugins/index.d.ts.map +1 -1
  5. package/dist/plugins/index.js +497 -57
  6. package/dist/plugins/index.js.map +1 -1
  7. package/dist/structures/PersistenceManager.d.ts +96 -0
  8. package/dist/structures/PersistenceManager.d.ts.map +1 -0
  9. package/dist/structures/PersistenceManager.js +1008 -0
  10. package/dist/structures/PersistenceManager.js.map +1 -0
  11. package/dist/structures/Player.d.ts +109 -18
  12. package/dist/structures/Player.d.ts.map +1 -1
  13. package/dist/structures/Player.js +902 -182
  14. package/dist/structures/Player.js.map +1 -1
  15. package/dist/structures/PlayerManager.d.ts +1 -22
  16. package/dist/structures/PlayerManager.d.ts.map +1 -1
  17. package/dist/structures/PlayerManager.js +1 -73
  18. package/dist/structures/PlayerManager.js.map +1 -1
  19. package/dist/structures/StreamManager.d.ts +137 -0
  20. package/dist/structures/StreamManager.d.ts.map +1 -0
  21. package/dist/structures/StreamManager.js +420 -0
  22. package/dist/structures/StreamManager.js.map +1 -0
  23. package/dist/types/index.d.ts +149 -16
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/dist/types/index.js +0 -1
  26. package/dist/types/index.js.map +1 -1
  27. package/dist/types/persistence.d.ts +3 -2
  28. package/dist/types/persistence.d.ts.map +1 -1
  29. package/package.json +47 -47
  30. package/src/extensions/BaseExtension.ts +36 -36
  31. package/src/extensions/index.ts +473 -473
  32. package/src/index.ts +16 -16
  33. package/src/plugins/BasePlugin.ts +27 -27
  34. package/src/plugins/index.ts +950 -403
  35. package/src/structures/FilterManager.ts +303 -303
  36. package/src/structures/Player.ts +2797 -1970
  37. package/src/structures/PlayerManager.ts +725 -822
  38. package/src/structures/Queue.ts +599 -599
  39. package/src/structures/StreamManager.ts +524 -0
  40. package/src/types/extension.ts +129 -129
  41. package/src/types/fillter.ts +264 -264
  42. package/src/types/index.ts +548 -415
  43. package/src/types/plugin.ts +59 -59
  44. package/src/utils/timeout.ts +10 -10
  45. package/tsconfig.json +22 -22
  46. package/src/persistence/PersistenceManager.ts +0 -1077
  47. package/src/types/persistence.ts +0 -85
@@ -1,11 +1,14 @@
1
1
  import { BasePlugin } from "./BasePlugin";
2
- import type { Track, StreamInfo } from "../types";
2
+ import type { Track, StreamInfo, SearchResult, SearchScore } from "../types";
3
3
  import type { PlayerManager } from "../structures/PlayerManager";
4
4
  import type { Player } from "../structures/Player";
5
+ import { StreamManager } from "../structures/StreamManager";
5
6
  type PluginManagerOptions = {
6
7
  extractorTimeout: number | undefined;
7
8
  maxFallbackAttempts?: number;
8
9
  enableCache?: boolean;
10
+ searchCacheTTL?: number;
11
+ searchMinScore?: number;
9
12
  };
10
13
  export { BasePlugin } from "./BasePlugin";
11
14
  export declare class PluginManager {
@@ -14,8 +17,11 @@ export declare class PluginManager {
14
17
  private manager;
15
18
  private plugins;
16
19
  private streamCache;
20
+ private searchCache;
17
21
  private readonly STREAM_CACHE_TTL;
18
22
  private pendingStreams;
23
+ private pendingSearches;
24
+ private streamManager?;
19
25
  constructor(player: Player, manager: PlayerManager, options: PluginManagerOptions);
20
26
  debug(message?: any, ...optionalParams: any[]): void;
21
27
  register(plugin: BasePlugin): void;
@@ -24,25 +30,69 @@ export declare class PluginManager {
24
30
  getAll(): BasePlugin[];
25
31
  findPlugin(query: string): BasePlugin | undefined;
26
32
  clear(): void;
33
+ setStreamManager(manager: StreamManager): void;
34
+ private getSearchCacheKey;
35
+ private getCachedSearch;
36
+ private setCachedSearch;
37
+ /**
38
+ * Evaluate how well a track matches the search query
39
+ * @param track Evaluated track
40
+ * @param query Query default
41
+ * @returns SearchScore object with score and reason
42
+ */
43
+ evaluateTrackMatch(track: Track, query: string): SearchScore;
44
+ /**
45
+ * Evaluate and rank all search results from a plugin
46
+ * @param tracks List of tracks to evaluate
47
+ * @param query Original query
48
+ * @param isPlaylistResult Whether this is a playlist result (skip per-track evaluation)
49
+ * @returns List of tracks with scores, sorted by score
50
+ */
51
+ private evaluateAndRankResults;
52
+ /**
53
+ * Select the best result from multiple plugins
54
+ * @param allResults Results from various plugins
55
+ * @param query Original query
56
+ * @returns The best result
57
+ */
58
+ private selectBestResult;
59
+ /**
60
+ * Search with deduplication and evaluation of results
61
+ * @param query Search query
62
+ * @param requestedBy User who requested the search
63
+ * @returns Evaluated search result
64
+ */
65
+ search(query: string, requestedBy: string): Promise<SearchResult | null>;
66
+ private searchInternal;
67
+ /**
68
+ * Get plugin priority groups info for debugging
69
+ */
70
+ getPriorityGroupsInfo(): {
71
+ priority: number;
72
+ plugins: string[];
73
+ count: number;
74
+ }[];
75
+ /**
76
+ * Clear search cache
77
+ */
78
+ clearSearchCache(): void;
79
+ /**
80
+ * Get search cache stats
81
+ */
82
+ getSearchCacheStats(): {
83
+ size: number;
84
+ keys: string[];
85
+ };
27
86
  private getStreamCacheKey;
28
87
  private getCachedStream;
29
88
  private setCachedStream;
30
89
  private getStreamWithDedupe;
31
90
  private getStreamInternal;
32
91
  getStream(track: Track): Promise<StreamInfo | null>;
33
- /**
34
- * Get related tracks for a given track
35
- * @param {Track} track Track to find related tracks for
36
- * @returns {Promise<Track[]>} Related tracks or empty array
37
- */
38
92
  getRelatedTracks(track: Track): Promise<Track[]>;
39
- /**
40
- * Clear stream cache
41
- */
42
93
  clearStreamCache(): void;
43
- /**
44
- * Get plugin statistics
45
- */
46
94
  getStats(): object;
95
+ private validateStreamMatchesTrack;
96
+ private calculateTrackSimilarity;
47
97
  }
48
98
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,KAAK,oBAAoB,GAAG;IAC3B,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAsE1C,qBAAa,aAAa;IACzB,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAiB;IAClD,OAAO,CAAC,cAAc,CAAsD;gBAEhE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,oBAAoB;IAUjF,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,EAAE,GAAG,IAAI;IAMpD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IASlC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIzC,MAAM,IAAI,UAAU,EAAE;IAItB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAYjD,KAAK,IAAI,IAAI;IAMb,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,eAAe;YAYT,mBAAmB;YAqBnB,iBAAiB;IA+EzB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAmBzD;;;;OAIG;IACG,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IA2EtD;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAMxB;;OAEG;IACH,QAAQ,IAAI,MAAM;CAQlB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"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"}