ziplayer 0.1.1 → 0.1.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.
@@ -67,6 +67,9 @@ export declare class Player extends EventEmitter {
67
67
  private pluginCache;
68
68
  private readonly PLUGIN_CACHE_TTL;
69
69
  private pluginCacheTimestamps;
70
+ private searchCache;
71
+ private readonly SEARCH_CACHE_TTL;
72
+ private searchCacheTimestamps;
70
73
  /**
71
74
  * Attach an extension to the player
72
75
  *
@@ -189,6 +192,51 @@ export declare class Player extends EventEmitter {
189
192
  hitRate: number;
190
193
  expiredEntries: number;
191
194
  };
195
+ /**
196
+ * Get cached search result or null if not found/expired
197
+ * @param query The search query
198
+ * @returns Cached search result or null
199
+ */
200
+ private getCachedSearchResult;
201
+ /**
202
+ * Cache search result
203
+ * @param query The search query
204
+ * @param result The search result to cache
205
+ */
206
+ private cacheSearchResult;
207
+ /**
208
+ * Clear expired search cache entries
209
+ */
210
+ private clearExpiredSearchCache;
211
+ /**
212
+ * Clear all search cache entries
213
+ * @example
214
+ * player.clearSearchCache();
215
+ */
216
+ clearSearchCache(): void;
217
+ /**
218
+ * Get search cache statistics
219
+ * @returns Search cache statistics
220
+ * @example
221
+ * const stats = player.getSearchCacheStats();
222
+ * console.log(`Search cache size: ${stats.size}, Expired: ${stats.expiredEntries}`);
223
+ */
224
+ getSearchCacheStats(): {
225
+ size: number;
226
+ expiredEntries: number;
227
+ queries: string[];
228
+ };
229
+ /**
230
+ * Debug method to check for duplicate search calls
231
+ * @param query The search query to check
232
+ * @returns Debug information about the query
233
+ */
234
+ debugSearchQuery(query: string): {
235
+ isCached: boolean;
236
+ cacheAge?: number;
237
+ pluginCount: number;
238
+ ttsFiltered: boolean;
239
+ };
192
240
  /** Build AudioResource for a given track using the plugin pipeline */
193
241
  private resourceFromTrack;
194
242
  private generateWillNext;
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
@@ -224,14 +224,18 @@ class Player extends events_1.EventEmitter {
224
224
  this.debug(`[Player] getStream failed, trying getFallback:`, streamError);
225
225
  const allplugs = this.pluginManager.getAll();
226
226
  for (const p of allplugs) {
227
- if (typeof p.getFallback !== "function") {
227
+ if (typeof p.getFallback !== "function" && typeof p.getStream !== "function") {
228
228
  continue;
229
229
  }
230
230
  try {
231
+ streamInfo = await (0, timeout_1.withTimeout)(p.getStream(track), this.options.extractorTimeout ?? 15000, `getStream timed out for plugin ${p.name}`);
232
+ if (streamInfo?.stream) {
233
+ this.debug(`[Player] getStream succeeded with plugin ${p.name} for track: ${track.title}`);
234
+ break;
235
+ }
231
236
  streamInfo = await (0, timeout_1.withTimeout)(p.getFallback(track), this.options.extractorTimeout ?? 15000, `getFallback timed out for plugin ${p.name}`);
232
237
  if (!streamInfo?.stream)
233
238
  continue;
234
- this.debug(`[Player] getFallback succeeded with plugin ${p.name} for track: ${track.title}`);
235
239
  break;
236
240
  }
237
241
  catch (fallbackError) {
@@ -325,6 +329,10 @@ class Player extends events_1.EventEmitter {
325
329
  this.pluginCache = new Map();
326
330
  this.PLUGIN_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
327
331
  this.pluginCacheTimestamps = new Map();
332
+ // Cache for search results to avoid duplicate calls
333
+ this.searchCache = new Map();
334
+ this.SEARCH_CACHE_TTL = 2 * 60 * 1000; // 2 minutes
335
+ this.searchCacheTimestamps = new Map();
328
336
  // TTS support
329
337
  this.ttsPlayer = null;
330
338
  this.ttsQueue = [];
@@ -498,30 +506,58 @@ class Player extends events_1.EventEmitter {
498
506
  */
499
507
  async search(query, requestedBy) {
500
508
  this.debug(`[Player] Search called with query: ${query}, requestedBy: ${requestedBy}`);
509
+ // Clear expired search cache periodically
510
+ if (Math.random() < 0.1) {
511
+ // 10% chance to clean cache
512
+ this.clearExpiredSearchCache();
513
+ }
514
+ // Check cache first
515
+ const cachedResult = this.getCachedSearchResult(query);
516
+ if (cachedResult) {
517
+ return cachedResult;
518
+ }
519
+ // Try extensions first
501
520
  const extensionResult = await this.extensionsProvideSearch(query, requestedBy);
502
521
  if (extensionResult && Array.isArray(extensionResult.tracks) && extensionResult.tracks.length > 0) {
503
522
  this.debug(`[Player] Extension handled search for query: ${query}`);
523
+ this.cacheSearchResult(query, extensionResult);
504
524
  return extensionResult;
505
525
  }
506
- const plugins = this.pluginManager.getAll();
526
+ // Get plugins and filter out TTS for regular searches
527
+ const allPlugins = this.pluginManager.getAll();
528
+ const plugins = allPlugins.filter((p) => {
529
+ // Skip TTS plugin for regular searches (unless query starts with "tts:")
530
+ if (p.name.toLowerCase() === "tts" && !query.toLowerCase().startsWith("tts:")) {
531
+ this.debug(`[Player] Skipping TTS plugin for regular search: ${query}`);
532
+ return false;
533
+ }
534
+ return true;
535
+ });
536
+ this.debug(`[Player] Using ${plugins.length} plugins for search (filtered from ${allPlugins.length})`);
507
537
  let lastError = null;
538
+ let searchAttempts = 0;
508
539
  for (const p of plugins) {
540
+ searchAttempts++;
509
541
  try {
510
- this.debug(`[Player] Trying plugin for search: ${p.name}`);
542
+ this.debug(`[Player] Trying plugin for search: ${p.name} (attempt ${searchAttempts}/${plugins.length})`);
543
+ const startTime = Date.now();
511
544
  const res = await (0, timeout_1.withTimeout)(p.search(query, requestedBy), this.options.extractorTimeout ?? 15000, `Search operation timed out for ${p.name}`);
545
+ const duration = Date.now() - startTime;
512
546
  if (res && Array.isArray(res.tracks) && res.tracks.length > 0) {
513
- this.debug(`[Player] Plugin '${p.name}' returned ${res.tracks.length} tracks`);
547
+ this.debug(`[Player] Plugin '${p.name}' returned ${res.tracks.length} tracks in ${duration}ms`);
548
+ this.cacheSearchResult(query, res);
514
549
  return res;
515
550
  }
516
- this.debug(`[Player] Plugin '${p.name}' returned no tracks`);
551
+ this.debug(`[Player] Plugin '${p.name}' returned no tracks in ${duration}ms`);
517
552
  }
518
553
  catch (error) {
554
+ const errorMessage = error instanceof Error ? error.message : String(error);
555
+ this.debug(`[Player] Search via plugin '${p.name}' failed: ${errorMessage}`);
519
556
  lastError = error;
520
- this.debug(`[Player] Search via plugin '${p.name}' failed:`, error);
521
557
  // Continue to next plugin
522
558
  }
523
559
  }
524
- this.debug(`[Player] No plugins returned results for query: ${query}`);
560
+ this.debug(`[Player] No plugins returned results for query: ${query} (tried ${searchAttempts} plugins)`);
525
561
  if (lastError)
526
562
  this.emit("playerError", lastError);
527
563
  throw new Error(`No plugin found to handle: ${query}`);
@@ -695,8 +731,14 @@ class Player extends events_1.EventEmitter {
695
731
  await (0, voice_1.entersState)(ttsPlayer, voice_1.AudioPlayerStatus.Playing, 5000).catch(() => null);
696
732
  // Derive timeout from resource/track duration when available, with a sensible cap
697
733
  const md = resource?.metadata ?? {};
698
- const declared = typeof md.duration === "number" ? md.duration : typeof next?.duration === "number" ? next.duration : undefined;
699
- const declaredMs = declared ? (declared > 1000 ? declared : declared * 1000) : undefined;
734
+ const declared = typeof md.duration === "number" ? md.duration
735
+ : typeof next?.duration === "number" ? next.duration
736
+ : undefined;
737
+ const declaredMs = declared ?
738
+ declared > 1000 ?
739
+ declared
740
+ : declared * 1000
741
+ : undefined;
700
742
  const cap = this.options?.tts?.Max_Time_TTS ?? 60000;
701
743
  const idleTimeout = declaredMs ? Math.min(cap, Math.max(1000, declaredMs + 1500)) : cap;
702
744
  await (0, voice_1.entersState)(ttsPlayer, voice_1.AudioPlayerStatus.Idle, idleTimeout).catch(() => null);
@@ -794,6 +836,109 @@ class Player extends events_1.EventEmitter {
794
836
  expiredEntries,
795
837
  };
796
838
  }
839
+ /**
840
+ * Get cached search result or null if not found/expired
841
+ * @param query The search query
842
+ * @returns Cached search result or null
843
+ */
844
+ getCachedSearchResult(query) {
845
+ const cacheKey = query.toLowerCase().trim();
846
+ const now = Date.now();
847
+ const cachedTimestamp = this.searchCacheTimestamps.get(cacheKey);
848
+ if (cachedTimestamp && now - cachedTimestamp < this.SEARCH_CACHE_TTL) {
849
+ const cachedResult = this.searchCache.get(cacheKey);
850
+ if (cachedResult) {
851
+ this.debug(`[SearchCache] Using cached search result for: ${query}`);
852
+ return cachedResult;
853
+ }
854
+ }
855
+ return null;
856
+ }
857
+ /**
858
+ * Cache search result
859
+ * @param query The search query
860
+ * @param result The search result to cache
861
+ */
862
+ cacheSearchResult(query, result) {
863
+ const cacheKey = query.toLowerCase().trim();
864
+ const now = Date.now();
865
+ this.searchCache.set(cacheKey, result);
866
+ this.searchCacheTimestamps.set(cacheKey, now);
867
+ this.debug(`[SearchCache] Cached search result for: ${query} (${result.tracks.length} tracks)`);
868
+ }
869
+ /**
870
+ * Clear expired search cache entries
871
+ */
872
+ clearExpiredSearchCache() {
873
+ const now = Date.now();
874
+ for (const [key, timestamp] of this.searchCacheTimestamps.entries()) {
875
+ if (now - timestamp >= this.SEARCH_CACHE_TTL) {
876
+ this.searchCache.delete(key);
877
+ this.searchCacheTimestamps.delete(key);
878
+ this.debug(`[SearchCache] Cleared expired cache entry: ${key}`);
879
+ }
880
+ }
881
+ }
882
+ /**
883
+ * Clear all search cache entries
884
+ * @example
885
+ * player.clearSearchCache();
886
+ */
887
+ clearSearchCache() {
888
+ const cacheSize = this.searchCache.size;
889
+ this.searchCache.clear();
890
+ this.searchCacheTimestamps.clear();
891
+ this.debug(`[SearchCache] Cleared all ${cacheSize} search cache entries`);
892
+ }
893
+ /**
894
+ * Get search cache statistics
895
+ * @returns Search cache statistics
896
+ * @example
897
+ * const stats = player.getSearchCacheStats();
898
+ * console.log(`Search cache size: ${stats.size}, Expired: ${stats.expiredEntries}`);
899
+ */
900
+ getSearchCacheStats() {
901
+ const now = Date.now();
902
+ let expiredEntries = 0;
903
+ const queries = [];
904
+ for (const [key, timestamp] of this.searchCacheTimestamps.entries()) {
905
+ if (now - timestamp >= this.SEARCH_CACHE_TTL) {
906
+ expiredEntries++;
907
+ }
908
+ else {
909
+ queries.push(key);
910
+ }
911
+ }
912
+ return {
913
+ size: this.searchCache.size,
914
+ expiredEntries,
915
+ queries,
916
+ };
917
+ }
918
+ /**
919
+ * Debug method to check for duplicate search calls
920
+ * @param query The search query to check
921
+ * @returns Debug information about the query
922
+ */
923
+ debugSearchQuery(query) {
924
+ const cacheKey = query.toLowerCase().trim();
925
+ const now = Date.now();
926
+ const cachedTimestamp = this.searchCacheTimestamps.get(cacheKey);
927
+ const isCached = cachedTimestamp && now - cachedTimestamp < this.SEARCH_CACHE_TTL;
928
+ const allPlugins = this.pluginManager.getAll();
929
+ const plugins = allPlugins.filter((p) => {
930
+ if (p.name.toLowerCase() === "tts" && !query.toLowerCase().startsWith("tts:")) {
931
+ return false;
932
+ }
933
+ return true;
934
+ });
935
+ return {
936
+ isCached: !!isCached,
937
+ cacheAge: cachedTimestamp ? now - cachedTimestamp : undefined,
938
+ pluginCount: plugins.length,
939
+ ttsFiltered: allPlugins.length > plugins.length,
940
+ };
941
+ }
797
942
  /** Build AudioResource for a given track using the plugin pipeline */
798
943
  async resourceFromTrack(track) {
799
944
  this.debug(`[ResourceFromTrack] Starting resource creation for track: ${track.title} (${track.source})`);
@@ -1 +1 @@
1
- {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,45 +1,45 @@
1
- {
2
- "name": "ziplayer",
3
- "version": "0.1.1",
4
- "description": "A modular Discord voice player with plugin system",
5
- "keywords": [
6
- "ZiPlayer",
7
- "discord",
8
- "music",
9
- "player",
10
- "voice",
11
- "@ziplayer/plugin"
12
- ],
13
- "homepage": "https://player.ziji.world",
14
- "bugs": {
15
- "url": "https://github.com/ZiProject/ZiPlayer/issues"
16
- },
17
- "repository": {
18
- "type": "git",
19
- "url": "git+https://github.com/ZiProject/ZiPlayer.git"
20
- },
21
- "main": "dist/index.js",
22
- "types": "dist/index.d.ts",
23
- "scripts": {
24
- "build": "tsc",
25
- "dev": "tsc --watch",
26
- "prepare": "npm run build"
27
- },
28
- "dependencies": {
29
- "@discordjs/voice": "^0.19.0",
30
- "@snazzah/davey": "^0.1.6",
31
- "discord.js": "^14.0.0",
32
- "ffmpeg-static": "^5.2.0",
33
- "libsodium-wrappers": "^0.7.15",
34
- "opusscript": "^0.1.1"
35
- },
36
- "devDependencies": {
37
- "@types/node": "^20.0.0",
38
- "typescript": "^5.0.0"
39
- },
40
- "peerDependencies": {
41
- "@zibot/scdl": "^0.0.5",
42
- "soundcloud-scraper": "^5.0.2",
43
- "youtubei.js": "^15.0.1"
44
- }
45
- }
1
+ {
2
+ "name": "ziplayer",
3
+ "version": "0.1.3",
4
+ "description": "A modular Discord voice player with plugin system",
5
+ "keywords": [
6
+ "ZiPlayer",
7
+ "discord",
8
+ "music",
9
+ "player",
10
+ "voice",
11
+ "@ziplayer/plugin"
12
+ ],
13
+ "homepage": "https://player.ziji.world",
14
+ "bugs": {
15
+ "url": "https://github.com/ZiProject/ZiPlayer/issues"
16
+ },
17
+ "repository": {
18
+ "type": "git",
19
+ "url": "git+https://github.com/ZiProject/ZiPlayer.git"
20
+ },
21
+ "main": "dist/index.js",
22
+ "types": "dist/index.d.ts",
23
+ "scripts": {
24
+ "build": "tsc",
25
+ "dev": "tsc --watch",
26
+ "prepare": "npm run build"
27
+ },
28
+ "dependencies": {
29
+ "@discordjs/voice": "^0.19.0",
30
+ "@snazzah/davey": "^0.1.6",
31
+ "discord.js": "^14.0.0",
32
+ "ffmpeg-static": "^5.2.0",
33
+ "libsodium-wrappers": "^0.7.15",
34
+ "opusscript": "^0.1.1"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^20.0.0",
38
+ "typescript": "^5.0.0"
39
+ },
40
+ "peerDependencies": {
41
+ "@zibot/scdl": "^0.0.5",
42
+ "soundcloud-scraper": "^5.0.2",
43
+ "youtubei.js": "^15.0.1"
44
+ }
45
+ }
@@ -1,32 +1,32 @@
1
- import { BaseExtension } from "./BaseExtension";
2
-
3
- export { BaseExtension } from "./BaseExtension";
4
-
5
- // Extension factory
6
- export class ExtensionManager {
7
- private extensions: Map<string, BaseExtension> = new Map();
8
-
9
- register(extension: BaseExtension): void {
10
- this.extensions.set(extension.name, extension);
11
- }
12
-
13
- unregister(name: string): boolean {
14
- return this.extensions.delete(name);
15
- }
16
-
17
- get(name: string): BaseExtension | undefined {
18
- return this.extensions.get(name);
19
- }
20
-
21
- getAll(): BaseExtension[] {
22
- return Array.from(this.extensions.values());
23
- }
24
-
25
- findExtension(alas: any): BaseExtension | undefined {
26
- return this.getAll().find((extension) => extension.active(alas));
27
- }
28
-
29
- clear(): void {
30
- this.extensions.clear();
31
- }
32
- }
1
+ import { BaseExtension } from "./BaseExtension";
2
+
3
+ export { BaseExtension } from "./BaseExtension";
4
+
5
+ // Extension factory
6
+ export class ExtensionManager {
7
+ private extensions: Map<string, BaseExtension> = new Map();
8
+
9
+ register(extension: BaseExtension): void {
10
+ this.extensions.set(extension.name, extension);
11
+ }
12
+
13
+ unregister(name: string): boolean {
14
+ return this.extensions.delete(name);
15
+ }
16
+
17
+ get(name: string): BaseExtension | undefined {
18
+ return this.extensions.get(name);
19
+ }
20
+
21
+ getAll(): BaseExtension[] {
22
+ return Array.from(this.extensions.values());
23
+ }
24
+
25
+ findExtension(alas: any): BaseExtension | undefined {
26
+ return this.getAll().find((extension) => extension.active(alas));
27
+ }
28
+
29
+ clear(): void {
30
+ this.extensions.clear();
31
+ }
32
+ }
package/src/index.ts CHANGED
@@ -1,16 +1,16 @@
1
- import { PlayerManager, getGlobalManager } from "./structures/PlayerManager";
2
- import type { PlayerManagerOptions } from "./types";
3
-
4
- export { Player } from "./structures/Player";
5
- export { Queue } from "./structures/Queue";
6
- export { PlayerManager } from "./structures/PlayerManager";
7
- export * from "./types";
8
- export * from "./plugins";
9
- export * from "./extensions";
10
-
11
- // Default export
12
- export default PlayerManager;
13
-
14
- // Simple shared-instance accessor
15
- export const getManager = () => getGlobalManager();
16
- export const getPlayer = (guildOrId: string) => getManager()?.get(guildOrId);
1
+ import { PlayerManager, getGlobalManager } from "./structures/PlayerManager";
2
+ import type { PlayerManagerOptions } from "./types";
3
+
4
+ export { Player } from "./structures/Player";
5
+ export { Queue } from "./structures/Queue";
6
+ export { PlayerManager } from "./structures/PlayerManager";
7
+ export * from "./types";
8
+ export * from "./plugins";
9
+ export * from "./extensions";
10
+
11
+ // Default export
12
+ export default PlayerManager;
13
+
14
+ // Simple shared-instance accessor
15
+ export const getManager = () => getGlobalManager();
16
+ export const getPlayer = (guildOrId: string) => getManager()?.get(guildOrId);
@@ -1,26 +1,26 @@
1
- import { SourcePlugin, Track, SearchResult, StreamInfo } from "../types";
2
-
3
- export abstract class BasePlugin implements SourcePlugin {
4
- abstract name: string;
5
- abstract version: string;
6
-
7
- abstract canHandle(query: string): boolean;
8
- abstract search(query: string, requestedBy: string): Promise<SearchResult>;
9
- abstract getStream(track: Track): Promise<StreamInfo>;
10
-
11
- getFallback?(track: Track): Promise<StreamInfo> {
12
- throw new Error("getFallback not implemented");
13
- }
14
-
15
- getRelatedTracks?(trackURL: string, opts?: { limit?: number; offset?: number; history?: Track[] }): Promise<Track[]> {
16
- return Promise.resolve([]);
17
- }
18
-
19
- validate?(url: string): boolean {
20
- return this.canHandle(url);
21
- }
22
-
23
- extractPlaylist?(url: string, requestedBy: string): Promise<Track[]> {
24
- return Promise.resolve([]);
25
- }
26
- }
1
+ import { SourcePlugin, Track, SearchResult, StreamInfo } from "../types";
2
+
3
+ export abstract class BasePlugin implements SourcePlugin {
4
+ abstract name: string;
5
+ abstract version: string;
6
+
7
+ abstract canHandle(query: string): boolean;
8
+ abstract search(query: string, requestedBy: string): Promise<SearchResult>;
9
+ abstract getStream(track: Track): Promise<StreamInfo>;
10
+
11
+ getFallback?(track: Track): Promise<StreamInfo> {
12
+ throw new Error("getFallback not implemented");
13
+ }
14
+
15
+ getRelatedTracks?(trackURL: string, opts?: { limit?: number; offset?: number; history?: Track[] }): Promise<Track[]> {
16
+ return Promise.resolve([]);
17
+ }
18
+
19
+ validate?(url: string): boolean {
20
+ return this.canHandle(url);
21
+ }
22
+
23
+ extractPlaylist?(url: string, requestedBy: string): Promise<Track[]> {
24
+ return Promise.resolve([]);
25
+ }
26
+ }
@@ -1,32 +1,32 @@
1
- import { BasePlugin } from "./BasePlugin";
2
-
3
- export { BasePlugin } from "./BasePlugin";
4
-
5
- // Plugin factory
6
- export class PluginManager {
7
- private plugins: Map<string, BasePlugin> = new Map();
8
-
9
- register(plugin: BasePlugin): void {
10
- this.plugins.set(plugin.name, plugin);
11
- }
12
-
13
- unregister(name: string): boolean {
14
- return this.plugins.delete(name);
15
- }
16
-
17
- get(name: string): BasePlugin | undefined {
18
- return this.plugins.get(name);
19
- }
20
-
21
- getAll(): BasePlugin[] {
22
- return Array.from(this.plugins.values());
23
- }
24
-
25
- findPlugin(query: string): BasePlugin | undefined {
26
- return this.getAll().find((plugin) => plugin.canHandle(query));
27
- }
28
-
29
- clear(): void {
30
- this.plugins.clear();
31
- }
32
- }
1
+ import { BasePlugin } from "./BasePlugin";
2
+
3
+ export { BasePlugin } from "./BasePlugin";
4
+
5
+ // Plugin factory
6
+ export class PluginManager {
7
+ private plugins: Map<string, BasePlugin> = new Map();
8
+
9
+ register(plugin: BasePlugin): void {
10
+ this.plugins.set(plugin.name, plugin);
11
+ }
12
+
13
+ unregister(name: string): boolean {
14
+ return this.plugins.delete(name);
15
+ }
16
+
17
+ get(name: string): BasePlugin | undefined {
18
+ return this.plugins.get(name);
19
+ }
20
+
21
+ getAll(): BasePlugin[] {
22
+ return Array.from(this.plugins.values());
23
+ }
24
+
25
+ findPlugin(query: string): BasePlugin | undefined {
26
+ return this.getAll().find((plugin) => plugin.canHandle(query));
27
+ }
28
+
29
+ clear(): void {
30
+ this.plugins.clear();
31
+ }
32
+ }
@@ -103,6 +103,11 @@ export class Player extends EventEmitter {
103
103
  private readonly PLUGIN_CACHE_TTL = 5 * 60 * 1000; // 5 minutes
104
104
  private pluginCacheTimestamps = new Map<string, number>();
105
105
 
106
+ // Cache for search results to avoid duplicate calls
107
+ private searchCache = new Map<string, SearchResult>();
108
+ private readonly SEARCH_CACHE_TTL = 2 * 60 * 1000; // 2 minutes
109
+ private searchCacheTimestamps = new Map<string, number>();
110
+
106
111
  /**
107
112
  * Attach an extension to the player
108
113
  *
@@ -280,17 +285,25 @@ export class Player extends EventEmitter {
280
285
  this.debug(`[Player] getStream failed, trying getFallback:`, streamError);
281
286
  const allplugs = this.pluginManager.getAll();
282
287
  for (const p of allplugs) {
283
- if (typeof (p as any).getFallback !== "function") {
288
+ if (typeof (p as any).getFallback !== "function" && typeof (p as any).getStream !== "function") {
284
289
  continue;
285
290
  }
286
291
  try {
292
+ streamInfo = await withTimeout(
293
+ (p as any).getStream(track),
294
+ this.options.extractorTimeout ?? 15000,
295
+ `getStream timed out for plugin ${p.name}`,
296
+ );
297
+ if ((streamInfo as any)?.stream) {
298
+ this.debug(`[Player] getStream succeeded with plugin ${p.name} for track: ${track.title}`);
299
+ break;
300
+ }
287
301
  streamInfo = await withTimeout(
288
302
  (p as any).getFallback(track),
289
303
  this.options.extractorTimeout ?? 15000,
290
304
  `getFallback timed out for plugin ${p.name}`,
291
305
  );
292
306
  if (!(streamInfo as any)?.stream) continue;
293
- this.debug(`[Player] getFallback succeeded with plugin ${p.name} for track: ${track.title}`);
294
307
  break;
295
308
  } catch (fallbackError) {
296
309
  this.debug(`[Player] getFallback failed with plugin ${p.name}:`, fallbackError);
@@ -559,35 +572,70 @@ export class Player extends EventEmitter {
559
572
  */
560
573
  async search(query: string, requestedBy: string): Promise<SearchResult> {
561
574
  this.debug(`[Player] Search called with query: ${query}, requestedBy: ${requestedBy}`);
575
+
576
+ // Clear expired search cache periodically
577
+ if (Math.random() < 0.1) {
578
+ // 10% chance to clean cache
579
+ this.clearExpiredSearchCache();
580
+ }
581
+
582
+ // Check cache first
583
+ const cachedResult = this.getCachedSearchResult(query);
584
+ if (cachedResult) {
585
+ return cachedResult;
586
+ }
587
+
588
+ // Try extensions first
562
589
  const extensionResult = await this.extensionsProvideSearch(query, requestedBy);
563
590
  if (extensionResult && Array.isArray(extensionResult.tracks) && extensionResult.tracks.length > 0) {
564
591
  this.debug(`[Player] Extension handled search for query: ${query}`);
592
+ this.cacheSearchResult(query, extensionResult);
565
593
  return extensionResult;
566
594
  }
567
- const plugins = this.pluginManager.getAll();
595
+
596
+ // Get plugins and filter out TTS for regular searches
597
+ const allPlugins = this.pluginManager.getAll();
598
+ const plugins = allPlugins.filter((p) => {
599
+ // Skip TTS plugin for regular searches (unless query starts with "tts:")
600
+ if (p.name.toLowerCase() === "tts" && !query.toLowerCase().startsWith("tts:")) {
601
+ this.debug(`[Player] Skipping TTS plugin for regular search: ${query}`);
602
+ return false;
603
+ }
604
+ return true;
605
+ });
606
+
607
+ this.debug(`[Player] Using ${plugins.length} plugins for search (filtered from ${allPlugins.length})`);
608
+
568
609
  let lastError: any = null;
610
+ let searchAttempts = 0;
569
611
 
570
612
  for (const p of plugins) {
613
+ searchAttempts++;
571
614
  try {
572
- this.debug(`[Player] Trying plugin for search: ${p.name}`);
615
+ this.debug(`[Player] Trying plugin for search: ${p.name} (attempt ${searchAttempts}/${plugins.length})`);
616
+ const startTime = Date.now();
573
617
  const res = await withTimeout(
574
618
  p.search(query, requestedBy),
575
619
  this.options.extractorTimeout ?? 15000,
576
620
  `Search operation timed out for ${p.name}`,
577
621
  );
622
+ const duration = Date.now() - startTime;
623
+
578
624
  if (res && Array.isArray(res.tracks) && res.tracks.length > 0) {
579
- this.debug(`[Player] Plugin '${p.name}' returned ${res.tracks.length} tracks`);
625
+ this.debug(`[Player] Plugin '${p.name}' returned ${res.tracks.length} tracks in ${duration}ms`);
626
+ this.cacheSearchResult(query, res);
580
627
  return res;
581
628
  }
582
- this.debug(`[Player] Plugin '${p.name}' returned no tracks`);
629
+ this.debug(`[Player] Plugin '${p.name}' returned no tracks in ${duration}ms`);
583
630
  } catch (error) {
631
+ const errorMessage = error instanceof Error ? error.message : String(error);
632
+ this.debug(`[Player] Search via plugin '${p.name}' failed: ${errorMessage}`);
584
633
  lastError = error;
585
- this.debug(`[Player] Search via plugin '${p.name}' failed:`, error);
586
634
  // Continue to next plugin
587
635
  }
588
636
  }
589
637
 
590
- this.debug(`[Player] No plugins returned results for query: ${query}`);
638
+ this.debug(`[Player] No plugins returned results for query: ${query} (tried ${searchAttempts} plugins)`);
591
639
  if (lastError) this.emit("playerError", lastError as Error);
592
640
  throw new Error(`No plugin found to handle: ${query}`);
593
641
  }
@@ -777,8 +825,15 @@ export class Player extends EventEmitter {
777
825
  // Derive timeout from resource/track duration when available, with a sensible cap
778
826
  const md: any = (resource as any)?.metadata ?? {};
779
827
  const declared =
780
- typeof md.duration === "number" ? md.duration : typeof next?.duration === "number" ? next.duration : undefined;
781
- const declaredMs = declared ? (declared > 1000 ? declared : declared * 1000) : undefined;
828
+ typeof md.duration === "number" ? md.duration
829
+ : typeof next?.duration === "number" ? next.duration
830
+ : undefined;
831
+ const declaredMs =
832
+ declared ?
833
+ declared > 1000 ?
834
+ declared
835
+ : declared * 1000
836
+ : undefined;
782
837
  const cap = this.options?.tts?.Max_Time_TTS ?? 60_000;
783
838
  const idleTimeout = declaredMs ? Math.min(cap, Math.max(1_000, declaredMs + 1_500)) : cap;
784
839
  await entersState(ttsPlayer, AudioPlayerStatus.Idle, idleTimeout).catch(() => null);
@@ -885,6 +940,126 @@ export class Player extends EventEmitter {
885
940
  };
886
941
  }
887
942
 
943
+ /**
944
+ * Get cached search result or null if not found/expired
945
+ * @param query The search query
946
+ * @returns Cached search result or null
947
+ */
948
+ private getCachedSearchResult(query: string): SearchResult | null {
949
+ const cacheKey = query.toLowerCase().trim();
950
+ const now = Date.now();
951
+
952
+ const cachedTimestamp = this.searchCacheTimestamps.get(cacheKey);
953
+ if (cachedTimestamp && now - cachedTimestamp < this.SEARCH_CACHE_TTL) {
954
+ const cachedResult = this.searchCache.get(cacheKey);
955
+ if (cachedResult) {
956
+ this.debug(`[SearchCache] Using cached search result for: ${query}`);
957
+ return cachedResult;
958
+ }
959
+ }
960
+
961
+ return null;
962
+ }
963
+
964
+ /**
965
+ * Cache search result
966
+ * @param query The search query
967
+ * @param result The search result to cache
968
+ */
969
+ private cacheSearchResult(query: string, result: SearchResult): void {
970
+ const cacheKey = query.toLowerCase().trim();
971
+ const now = Date.now();
972
+
973
+ this.searchCache.set(cacheKey, result);
974
+ this.searchCacheTimestamps.set(cacheKey, now);
975
+ this.debug(`[SearchCache] Cached search result for: ${query} (${result.tracks.length} tracks)`);
976
+ }
977
+
978
+ /**
979
+ * Clear expired search cache entries
980
+ */
981
+ private clearExpiredSearchCache(): void {
982
+ const now = Date.now();
983
+ for (const [key, timestamp] of this.searchCacheTimestamps.entries()) {
984
+ if (now - timestamp >= this.SEARCH_CACHE_TTL) {
985
+ this.searchCache.delete(key);
986
+ this.searchCacheTimestamps.delete(key);
987
+ this.debug(`[SearchCache] Cleared expired cache entry: ${key}`);
988
+ }
989
+ }
990
+ }
991
+
992
+ /**
993
+ * Clear all search cache entries
994
+ * @example
995
+ * player.clearSearchCache();
996
+ */
997
+ public clearSearchCache(): void {
998
+ const cacheSize = this.searchCache.size;
999
+ this.searchCache.clear();
1000
+ this.searchCacheTimestamps.clear();
1001
+ this.debug(`[SearchCache] Cleared all ${cacheSize} search cache entries`);
1002
+ }
1003
+
1004
+ /**
1005
+ * Get search cache statistics
1006
+ * @returns Search cache statistics
1007
+ * @example
1008
+ * const stats = player.getSearchCacheStats();
1009
+ * console.log(`Search cache size: ${stats.size}, Expired: ${stats.expiredEntries}`);
1010
+ */
1011
+ public getSearchCacheStats(): { size: number; expiredEntries: number; queries: string[] } {
1012
+ const now = Date.now();
1013
+ let expiredEntries = 0;
1014
+ const queries: string[] = [];
1015
+
1016
+ for (const [key, timestamp] of this.searchCacheTimestamps.entries()) {
1017
+ if (now - timestamp >= this.SEARCH_CACHE_TTL) {
1018
+ expiredEntries++;
1019
+ } else {
1020
+ queries.push(key);
1021
+ }
1022
+ }
1023
+
1024
+ return {
1025
+ size: this.searchCache.size,
1026
+ expiredEntries,
1027
+ queries,
1028
+ };
1029
+ }
1030
+
1031
+ /**
1032
+ * Debug method to check for duplicate search calls
1033
+ * @param query The search query to check
1034
+ * @returns Debug information about the query
1035
+ */
1036
+ public debugSearchQuery(query: string): {
1037
+ isCached: boolean;
1038
+ cacheAge?: number;
1039
+ pluginCount: number;
1040
+ ttsFiltered: boolean;
1041
+ } {
1042
+ const cacheKey = query.toLowerCase().trim();
1043
+ const now = Date.now();
1044
+ const cachedTimestamp = this.searchCacheTimestamps.get(cacheKey);
1045
+ const isCached = cachedTimestamp && now - cachedTimestamp < this.SEARCH_CACHE_TTL;
1046
+
1047
+ const allPlugins = this.pluginManager.getAll();
1048
+ const plugins = allPlugins.filter((p) => {
1049
+ if (p.name.toLowerCase() === "tts" && !query.toLowerCase().startsWith("tts:")) {
1050
+ return false;
1051
+ }
1052
+ return true;
1053
+ });
1054
+
1055
+ return {
1056
+ isCached: !!isCached,
1057
+ cacheAge: cachedTimestamp ? now - cachedTimestamp : undefined,
1058
+ pluginCount: plugins.length,
1059
+ ttsFiltered: allPlugins.length > plugins.length,
1060
+ };
1061
+ }
1062
+
888
1063
  /** Build AudioResource for a given track using the plugin pipeline */
889
1064
  private async resourceFromTrack(track: Track): Promise<AudioResource> {
890
1065
  this.debug(`[ResourceFromTrack] Starting resource creation for track: ${track.title} (${track.source})`);
package/tsconfig.json CHANGED
@@ -1,23 +1,23 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2020",
4
- "module": "commonjs",
5
- "lib": ["ES2020"],
6
- "outDir": "./dist",
7
- "rootDir": "./src",
8
- "strict": true,
9
- "esModuleInterop": true,
10
- "skipLibCheck": true,
11
- "forceConsistentCasingInFileNames": true,
12
- "declaration": true,
13
- "declarationMap": true,
14
- "sourceMap": true,
15
- "moduleResolution": "node",
16
- "allowSyntheticDefaultImports": true,
17
- "experimentalDecorators": true,
18
- "emitDecoratorMetadata": true,
19
- "resolveJsonModule": true
20
- },
21
- "include": ["src/**/*"],
22
- "exclude": ["node_modules", "dist", "examples"]
23
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "commonjs",
5
+ "lib": ["ES2020"],
6
+ "outDir": "./dist",
7
+ "rootDir": "./src",
8
+ "strict": true,
9
+ "esModuleInterop": true,
10
+ "skipLibCheck": true,
11
+ "forceConsistentCasingInFileNames": true,
12
+ "declaration": true,
13
+ "declarationMap": true,
14
+ "sourceMap": true,
15
+ "moduleResolution": "node",
16
+ "allowSyntheticDefaultImports": true,
17
+ "experimentalDecorators": true,
18
+ "emitDecoratorMetadata": true,
19
+ "resolveJsonModule": true
20
+ },
21
+ "include": ["src/**/*"],
22
+ "exclude": ["node_modules", "dist", "examples"]
23
+ }