UNPKG

@getsolara/solara.voice

Version:

Optional voice functionality for @getsolara/solara.js using @discordjs/voice

32 lines 1.59 kB
module.exports = { name: "$search", description: "Searches YouTube for a video. Returns JSON string of first result. Args: query", takesBrackets: true, execute: async (context, args) => { if (context.client.voiceInitialized === false && !context.client.solaraOptions?.allowSearchWithoutVoice) { return "[Error: $search (for voice) requires voice features to be enabled, or 'allowSearchWithoutVoice' to be true in solaraOptions.]"; } if (!args[0]) return "[Error: $search requires a query]"; const query = args[0]; try { const play = require('play-dl'); const results = await play.search(query, { limit: 1, source: { youtube : "video" } }); if (!results || results.length === 0) return JSON.stringify([]); const first = results[0]; return JSON.stringify({ title: first.title || "", url: first.url || "", duration: first.durationRaw || "N/A", thumbnail: first.thumbnails?.[0]?.url || "", channelName: first.channel?.name || "", channelUrl: first.channel?.url || "" }); } catch (e) { if (e.code === 'MODULE_NOT_FOUND' && e.message.includes('play-dl')) { return "[Error: $search - play-dl module not found. Please install it.]"; } console.error(`Solara.voice Error ($search for query "${query}"):`, e); return "[Error searching YouTube]"; } } };