mirror of
https://github.com/imsyy/home.git
synced 2025-05-21 05:30:13 +09:00
对网易云返回的令人费解的时间轴为负数等逐字歌词做点措施
This commit is contained in:
parent
7c4d4c0c47
commit
d0db2f3d75
@ -4,13 +4,12 @@
|
|||||||
* @returns {[number,number,[[number,number],string,number,number][]]}
|
* @returns {[number,number,[[number,number],string,number,number][]]}
|
||||||
*/
|
*/
|
||||||
export function decodeYrc(i) {
|
export function decodeYrc(i) {
|
||||||
let x = 0;
|
|
||||||
return i
|
return i
|
||||||
.trim()
|
.trim()
|
||||||
.split("\n")
|
.split("\n")
|
||||||
.filter((it) => it != "[ch:0]")
|
.filter((it) => it != "[ch:0]")
|
||||||
.map((i) => {
|
.map((rawLine, lineIndex) => {
|
||||||
const line = i.split(/\[([0-9]+),([0-9]+)\](.+)/).slice(1, -1);
|
const line = rawLine.split(/\[([0-9]+),([0-9]+)\](.+)/).slice(1, -1);
|
||||||
const start = parseInt(line[0]);
|
const start = parseInt(line[0]);
|
||||||
const dur = parseInt(line[1]);
|
const dur = parseInt(line[1]);
|
||||||
let frame = [];
|
let frame = [];
|
||||||
@ -18,24 +17,26 @@ export function decodeYrc(i) {
|
|||||||
let y = 0;
|
let y = 0;
|
||||||
if (line[2] == undefined) {
|
if (line[2] == undefined) {
|
||||||
return;
|
return;
|
||||||
}
|
};
|
||||||
|
if (line.every((it) => it == undefined)) {
|
||||||
|
return;
|
||||||
|
};
|
||||||
line[2]
|
line[2]
|
||||||
.split(/(\([0-9]+,[0-9]+,[0-9]+\))/)
|
.split(/(\([0-9]+,[0-9]+,[0-9]+\))/)
|
||||||
.slice(1)
|
.slice(1)
|
||||||
.forEach((it) => {
|
.forEach((it, rowIndex) => {
|
||||||
if (frame.length == 0) {
|
if (frame.length == 0) {
|
||||||
const ir = it.split(/\(([0-9]+),([0-9]+),[0-9]+\)/).slice(1, -1);
|
const ir = it.split(/\(([0-9]+),([0-9]+),[0-9]+\)/).slice(1, -1);
|
||||||
frame.push([parseInt(ir[0]), parseInt(ir[1])]);
|
frame.push([parseInt(ir[0]), parseInt(ir[1])]);
|
||||||
return;
|
return;
|
||||||
}
|
};
|
||||||
frame.push(it.replace(' '," "));
|
frame.push(it.replace(' '," "));
|
||||||
frame.push(x);
|
frame.push(lineIndex);
|
||||||
frame.push(y);
|
frame.push(rowIndex);
|
||||||
y += 1;
|
|
||||||
stack.push(frame);
|
stack.push(frame);
|
||||||
frame = [];
|
frame = [];
|
||||||
});
|
});
|
||||||
x += 1;
|
|
||||||
return [start, dur, stack];
|
return [start, dur, stack];
|
||||||
});
|
})
|
||||||
|
.filter((i) => i != undefined);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user