Add base files from AME
This commit is contained in:
parent
e8f3881513
commit
e3c3bded3a
129 changed files with 19056 additions and 0 deletions
190
resources/lyrics/musixmatch.html
Normal file
190
resources/lyrics/musixmatch.html
Normal file
|
@ -0,0 +1,190 @@
|
|||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Lyrics</title>
|
||||
<script type="text/javascript" src="../js/lyrics.js"></script>
|
||||
<link rel="stylesheet" href="../css/lyricer.css">
|
||||
<link href="https://fonts.googleapis.com/css?family=M+PLUS+1p" rel="stylesheet">
|
||||
</head>
|
||||
<body style="margin: 0;">
|
||||
<img style="" id="backgroundImage" alt="Background Image"></img>
|
||||
<div style="width: 100%; height: 100%; opacity: 0.8; z-index: 1; background-color: rgba(0, 0, 0, 0.5); position: absolute;"></div>
|
||||
<div id="lyricer">
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
const { ipcRenderer } = require('electron');
|
||||
|
||||
var text = "";
|
||||
var lrcfile = "";
|
||||
var lrc = new Lyricer();
|
||||
var prevartist = '';
|
||||
var prevtrack = '';
|
||||
var prevlyrics = ['','','','','']; //track, artist, songid, lyrics, translated lyrics
|
||||
var globaltoken = '';
|
||||
function revisedRandId() {
|
||||
return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(2, 10);
|
||||
}
|
||||
/* get token */
|
||||
function getToken(mode, track, artist, songid, lang, time) {
|
||||
var url = "https://apic-desktop.musixmatch.com/ws/1.1/token.get?app_id=web-desktop-app-v1.0&t="+revisedRandId();
|
||||
var req = new XMLHttpRequest();
|
||||
req.overrideMimeType("application/json");
|
||||
req.open('GET', url, true);
|
||||
req.setRequestHeader("authority", "apic-desktop.musixmatch.com");
|
||||
req.onload = function() {
|
||||
var jsonResponse = JSON.parse(this.responseText);
|
||||
var status2 = jsonResponse["message"]["header"]["status_code"] ;
|
||||
if (status2 == 200){
|
||||
token = jsonResponse["message"]["body"]["user_token"] ?? '';
|
||||
if (token != "" && token != "UpgradeOnlyUpgradeOnlyUpgradeOnlyUpgradeOnly"){
|
||||
console.log('200 token');
|
||||
// token good
|
||||
globaltoken = token;
|
||||
if (mode == 1){
|
||||
getMXMSubs(track, artist, token, lang, time);
|
||||
} else {
|
||||
getMXMTrans(songid, lang, token);
|
||||
}
|
||||
} else {
|
||||
console.log('fake 200 token');
|
||||
if (mode == 1){
|
||||
ipcRenderer.send('LyricsMXMFailed','');
|
||||
}
|
||||
}} else {
|
||||
console.log('token 4xx');
|
||||
if (mode == 1){
|
||||
ipcRenderer.send('LyricsMXMFailed','');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
req.send();
|
||||
}
|
||||
function getMXMSubs(track, artist, token, lang, time) {
|
||||
var usertoken = encodeURIComponent(token);
|
||||
var timecustom = `&f_subtitle_length=${time}&q_duration=${time}&f_subtitle_length_max_deviation=40`;
|
||||
var url = "https://apic-desktop.musixmatch.com/ws/1.1/macro.subtitles.get?format=json&namespace=lyrics_richsynched&subtitle_format=lrc&q_artist="+artist+"&q_track="+track+"&usertoken="+usertoken+timecustom+"&app_id=web-desktop-app-v1.0&t="+revisedRandId();
|
||||
var req = new XMLHttpRequest();
|
||||
req.overrideMimeType("application/json");
|
||||
req.open('GET', url, true);
|
||||
req.setRequestHeader("authority", "apic-desktop.musixmatch.com");
|
||||
req.onload = function() {
|
||||
var jsonResponse = JSON.parse(this.responseText);
|
||||
console.log(jsonResponse);
|
||||
var status1 = jsonResponse["message"]["header"]["status_code"] ;
|
||||
|
||||
if (status1 == 200){
|
||||
var id = '';
|
||||
try{
|
||||
if (jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["header"]["status_code"] == 200 && jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["header"]["status_code"] == 200) {
|
||||
prevartist = artist;
|
||||
prevtrack = track;
|
||||
id = jsonResponse["message"]["body"]["macro_calls"]["matcher.track.get"]["message"]["body"]["track"]["track_id"] ?? '';
|
||||
lrcfile = jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["body"]["subtitle_list"][0]["subtitle"]["subtitle_body"];}
|
||||
|
||||
// /* MXM Instrumentals detection */
|
||||
// else if (jsonResponse["message"]["body"]["macro_calls"]["track.subtitles.get"]["message"]["header"]["instrumental"] == 1){
|
||||
// print('Nah');
|
||||
// ipcRenderer.send('LyricsHandlerNE','[00:00] Instrumental. / Lyrics not found.');
|
||||
// return '';
|
||||
// }
|
||||
|
||||
if (lrcfile == "" ){
|
||||
// track not found
|
||||
console.log('track not found');
|
||||
prevlyrics = [track,artist,'','',''];
|
||||
ipcRenderer.send('LyricsMXMFailed','');
|
||||
} else {
|
||||
lrcfile = lrcfile.concat("\r\n");
|
||||
var timearr = lrcfile.match(/\[([0-9]+):([0-9.]+)]/g);
|
||||
timearr.unshift('[00:00.000]');
|
||||
for (i = 0; i < timearr.length -1 ; i++){
|
||||
var rawTime = timearr[i+1].match(/(\d+:)?(\d+:)?(\d+)(\.\d+)?/);
|
||||
var hours = (rawTime[2] != null) ? (rawTime[1].replace(":", "")) : "0";
|
||||
var minutes =(rawTime[2] != null) ? (hours * 60 + rawTime[2].replace(":", "") * 1 + ":") : ((rawTime[1] != null) ? rawTime[1] : "00:");
|
||||
var seconds = (rawTime[3] != null) ? (rawTime[3]) : "00";
|
||||
var milliseconds = (rawTime[4] != null) ? (rawTime[4]) : ".000";
|
||||
var lrcTime = minutes + seconds + milliseconds;
|
||||
|
||||
var rawTime2 = timearr[i].match(/(\d+:)?(\d+:)?(\d+)(\.\d+)?/);
|
||||
var hours2 = (rawTime2[2] != null) ? (rawTime2[1].replace(":", "")) : "0";
|
||||
var minutes2 = (rawTime2[2] != null) ? (hours2 * 60 + rawTime2[2].replace(":", "") * 1 + ":") : ((rawTime2[1] != null) ? rawTime2[1] : "00:");
|
||||
var seconds2 = (rawTime2[3] != null) ? (rawTime2[3]) : "00";
|
||||
var milliseconds2 = (rawTime2[4] != null) ? (rawTime2[4]) : ".000";
|
||||
var lrcTime2 = minutes2 + seconds2 + milliseconds2;
|
||||
|
||||
if ( minutes.replace(":","") * 60 + seconds * 1 - minutes2.replace(":","") * 60 - seconds2 * 1 > 10) {
|
||||
|
||||
if (minutes2 + (seconds2*1+10) + milliseconds2 != '00:10.000'){
|
||||
lrcfile = lrcfile.concat(`[${minutes2 + (seconds2*1+10) + milliseconds2}]lrcInstrumental` + "\r\n");}
|
||||
else {lrcfile = lrcfile.concat(`[00:00.00]lrcInstrumental` + "\r\n");}
|
||||
}
|
||||
}
|
||||
console.log(lrcfile);
|
||||
ipcRenderer.send('LyricsHandlerNE',lrcfile);
|
||||
if(lrcfile != null && lrcfile != ''){
|
||||
// load translation
|
||||
getMXMTrans(id, lang, token);
|
||||
} else {
|
||||
ipcRenderer.send('LyricsMXMFailed','');
|
||||
}
|
||||
}
|
||||
} catch(e) {
|
||||
console.log(e);
|
||||
// track not found ??
|
||||
console.log('track not found ??');
|
||||
ipcRenderer.send('LyricsMXMFailed','');
|
||||
}
|
||||
} else { //4xx rejected
|
||||
getToken(1, track, artist, '', lang, time);}
|
||||
}
|
||||
req.send();
|
||||
}
|
||||
function getMXMTrans(id, lang, token){
|
||||
if (lang != "disabled" && id != ''){
|
||||
var usertoken = encodeURIComponent(token);
|
||||
var url2 = "https://apic-desktop.musixmatch.com/ws/1.1/crowd.track.translations.get?translation_fields_set=minimal&selected_language="+lang+"&track_id="+id+"&comment_format=text&part=user&format=json&usertoken="+usertoken+"&app_id=web-desktop-app-v1.0&t="+revisedRandId();
|
||||
var req2 = new XMLHttpRequest();
|
||||
req2.overrideMimeType("application/json");
|
||||
req2.open('GET', url2, true);
|
||||
req2.setRequestHeader("authority", "apic-desktop.musixmatch.com");
|
||||
req2.onload = function() {
|
||||
var jsonResponse2 = JSON.parse(this.responseText);
|
||||
console.log(jsonResponse2);
|
||||
var status2 = jsonResponse2["message"]["header"]["status_code"] ;
|
||||
if (status2 == 200){
|
||||
try{
|
||||
var lyrics = jsonResponse2["message"]["body"]["translations_list"];
|
||||
console.log(lyrics);
|
||||
if (lyrics.length > 0) {
|
||||
ipcRenderer.send('LyricsHandlerTranslation',lyrics);}
|
||||
}catch(e){
|
||||
/// not found trans -> ignore
|
||||
}
|
||||
} else { //4xx rejected
|
||||
getToken(2,'', '', id, lang, '');
|
||||
}
|
||||
}
|
||||
req2.send();
|
||||
}
|
||||
}
|
||||
|
||||
ipcRenderer.on('mxmcors', function (event, track, artist, lang, time) {
|
||||
console.log("hello");
|
||||
if (track != "" & track != "No Title Found"){
|
||||
if ( globaltoken != null && globaltoken != '' ) {
|
||||
console.log("we good");
|
||||
getMXMSubs(track, artist, token, lang, time)
|
||||
} else {
|
||||
console.log("get token");
|
||||
getToken(1,track, artist, '', lang, time);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
lrc.setLrc(text);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Add table
Add a link
Reference in a new issue