@alufi/lyrics-api
Advanced tools
Comparing version 0.0.7-dev to 0.0.8-dev
{ | ||
"name": "@alufi/lyrics-api", | ||
"version": "0.0.7-dev", | ||
"version": "0.0.8-dev", | ||
"description": "Official Lyrics API wrapper of Alufi Bot", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
@@ -6,13 +6,29 @@ const SearchLyrics = require('lyrics-finder'); | ||
async function LyricsAPI(song, options=false, title='', thumbnails='', artist='', artistToSearch='', optionalTitle='') { | ||
if (!song) throw new Error('[SongTitle] is not provided!'); | ||
if (typeof(song) !== 'string') throw new TypeError('[SongTitle] type must valid String!'); | ||
if (typeof(options)!=='boolean') throw new TypeError('[OptionalData] type must valid Boolean! default is false'); | ||
const LyricsAPI = async(songTitle, options=false) => { | ||
let title = String; | ||
let thumbnails = String; | ||
let artist = String; | ||
let artistToSearch = String; | ||
let optionalTitle = String; | ||
if (!songTitle) throw new Error('[SongTitle] is not provided!'); | ||
if (typeof(songTitle) !== 'string') throw new TypeError('[SongTitle] Type must valid String!'); | ||
if (typeof(options)!=='boolean') throw new TypeError('[OptionalData] Type must valid Boolean! default is false'); | ||
await Api.initalize(); | ||
const music = await Api.search(song,'song'); | ||
const mdata = music.content[0]; | ||
const yt = await YtsrData(song, { safeSearch: true, limit: 1 }); | ||
let music = await Api.search(songTitle, 'song'); | ||
let mdata = music.content[0]; | ||
let mtest = await Api.search(songTitle, 'video'); | ||
mtest = mtest.content[0]; | ||
if (!mdata) { | ||
try { | ||
mdata = yt.data[0]; | ||
mdata.artist = new Object(); | ||
} catch(Error) { throw Error; }; | ||
} | ||
let yt = await YtsrData(songTitle, { safeSearch: true, limit: 1 }); | ||
title = mdata.name; | ||
@@ -29,5 +45,11 @@ title = mathString(title); | ||
} | ||
if (!songTitle.toLowerCase().includes(artist.toLowerCase().split(',')[0])) { | ||
artist = ''; | ||
mdata = yt.data[0]; | ||
artistToSearch = ''; | ||
} | ||
thumbnails = await (async(url)=>{ | ||
url = await YtsrData(title,{ safeSearch:true, limit: 1}); | ||
url = await YtsrData(title, { safeSearch:true, limit: 1 }); | ||
url = url.data[0].thumbnail; | ||
@@ -40,26 +62,29 @@ return url; | ||
try { return new Promise(async(result, reject) => { | ||
const ping = await Date.now() | ||
let lyrics = await SearchLyrics(artistToSearch, title); | ||
if (!lyrics) { | ||
lyrics = await SearchLyrics('', optionalTitle); | ||
if (!lyrics) reject(new Error("Could not find the lyrics!")); | ||
thumbnails = mathThumb(yt.data[0].thumbnail); | ||
} | ||
try { | ||
return new Promise(async(result, reject) => { | ||
let create = await Date.now() | ||
let lyrics = null; | ||
lyrics = await SearchLyrics(artistToSearch, title); | ||
if (!lyrics) { | ||
title = optionalTitle; | ||
artist = ''; | ||
lyrics = await SearchLyrics('', title); | ||
if (!lyrics) reject(new Error("Could not find the lyrics!")); | ||
thumbnails = mathThumb(yt.data[0].thumbnail); | ||
} | ||
if (options) { | ||
return result({ | ||
data: { | ||
title, | ||
artist, | ||
thumbnails, | ||
lyrics, | ||
}, | ||
response: `${Date.now()-ping} ms`, | ||
}); | ||
} else | ||
return result(lyrics); | ||
}); } catch(Error) { | ||
if (options) { | ||
return result({ | ||
data: { title, artist, thumbnails, lyrics, }, | ||
response: `${Date.now()-create} ms`, | ||
}); | ||
} else | ||
return result(lyrics); | ||
}); | ||
} catch(Error) { | ||
reject(new Error('[OriginAPIError] '+Error.message)); | ||
} | ||
}; | ||
}; | ||
@@ -66,0 +91,0 @@ |
Sorry, the diff of this file is not supported yet
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
17432
8
104