| const axios = require("axios"); |
| const path = require("path"); |
| const fs = require("fs-extra"); |
|
|
| module.exports.config = { |
| name: "lyrics", |
| version: "1.0", |
| hasPermission: 0, |
| description: "Get lyrics and artist image", |
| credits: "Jonell Magallanes", |
| usePrefix: true, |
| commandCategory: "Search", |
| usages: "[song title]", |
| cooldowns: 0, |
| }; |
|
|
| module.exports.run = async function ({ api, event, args }) { |
| try { |
| const title = args.join(" "); |
|
|
| if (!title) { |
| return api.sendMessage( |
| "β Invalid Usage\nβββββββββββββββ\n\nPlease provide a song title to search for lyrics.", |
| event.threadID, |
| event.messageID |
| ); |
| } |
| api.sendMessage("π Searching for lyrics", event.threadID, event.messageID); |
| const apiUrl = `https://aemt.me/lirik?text=${encodeURIComponent(title)}`; |
| console.log(`Fetching data from API: ${apiUrl}`); |
|
|
| const res = await axios.get(apiUrl); |
| const data = res.data.result; |
|
|
| if (!data || !data.lyrics) { |
| return api.sendMessage( |
| `No lyrics found for "${title}". Please try with a different song.`, |
| event.threadID, |
| event.messageID |
| ); |
| } |
|
|
| const artistImageResponse = await axios.get(data.artistImage, { responseType: "arraybuffer" }); |
| const imageFileName = `${data.title.replace(/\s/g, "_").toLowerCase()}_image.jpg`; |
| const imagePath = path.join(__dirname, "images", imageFileName); |
| await fs.outputFile(imagePath, artistImageResponse.data); |
|
|
| const message = `π΅ Lyrics for "${data.title}" by ${data.artist}\nβββββββββββββββ\n\n${data.lyrics}`; |
|
|
| const imgData = fs.createReadStream(imagePath); |
|
|
| await api.sendMessage({ |
| body: message, |
| attachment: imgData, |
| }, event.threadID); |
|
|
| console.log(`Lyrics and image successfully sent for "${data.title}"`); |
|
|
| await fs.remove(imagePath); |
| console.log(`Image file ${imagePath} removed.`); |
|
|
| } catch (error) { |
| console.error("Error fetching lyrics:", error); |
| return api.sendMessage( |
| "An error occurred while fetching lyrics. Please try again later.", |
| event.threadID, |
| event.messageID |
| ); |
| } |
| }; |
|
|