@uimaxbai/am-lyrics 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bun.lock +1 -0
- package/dist/src/AmLyrics.d.ts +1 -0
- package/dist/src/AmLyrics.d.ts.map +1 -1
- package/dist/src/am-lyrics.js +65 -3
- package/dist/src/am-lyrics.js.map +1 -1
- package/dist/src/react.js +65 -3
- package/dist/src/react.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/AmLyrics.ts +83 -3
package/bun.lock
CHANGED
package/dist/src/AmLyrics.d.ts
CHANGED
|
@@ -84,6 +84,7 @@ export declare class AmLyrics extends LitElement {
|
|
|
84
84
|
* Uses search endpoint, prefers synced lyrics.
|
|
85
85
|
*/
|
|
86
86
|
private static fetchLyricsFromLrclib;
|
|
87
|
+
private static fetchLyricsFromGenius;
|
|
87
88
|
private static convertKPoeLyrics;
|
|
88
89
|
private static toMilliseconds;
|
|
89
90
|
firstUpdated(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmLyrics.d.ts","sourceRoot":"","sources":["../../src/AmLyrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAO,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"AmLyrics.d.ts","sourceRoot":"","sources":["../../src/AmLyrics.ts"],"names":[],"mappings":"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"}
|
package/dist/src/am-lyrics.js
CHANGED
|
@@ -309,7 +309,7 @@ class GoogleService {
|
|
|
309
309
|
}
|
|
310
310
|
}
|
|
311
311
|
|
|
312
|
-
const VERSION = '1.1.
|
|
312
|
+
const VERSION = '1.1.2';
|
|
313
313
|
const INSTRUMENTAL_THRESHOLD_MS = 7000; // Show dots for gaps >= 7s
|
|
314
314
|
const KPOE_SERVERS = [
|
|
315
315
|
'https://lyricsplus.binimum.org',
|
|
@@ -332,6 +332,7 @@ const TIDAL_SERVERS = [
|
|
|
332
332
|
'https://hifi-one.spotisaver.net',
|
|
333
333
|
'https://hifi-two.spotisaver.net',
|
|
334
334
|
];
|
|
335
|
+
const GENIUS_WORKER_URL = 'https://fetch-genius.samidy.workers.dev/';
|
|
335
336
|
class AmLyrics extends i {
|
|
336
337
|
constructor() {
|
|
337
338
|
super(...arguments);
|
|
@@ -505,9 +506,20 @@ class AmLyrics extends i {
|
|
|
505
506
|
});
|
|
506
507
|
}
|
|
507
508
|
}
|
|
509
|
+
if (collectedSources.length === 0 && resolvedMetadata?.metadata) {
|
|
510
|
+
const geniusResult = await AmLyrics.fetchLyricsFromGenius(resolvedMetadata.metadata);
|
|
511
|
+
if (geniusResult && geniusResult.lines.length > 0) {
|
|
512
|
+
collectedSources.push({
|
|
513
|
+
lines: geniusResult.lines,
|
|
514
|
+
source: 'Genius',
|
|
515
|
+
});
|
|
516
|
+
}
|
|
517
|
+
}
|
|
508
518
|
this.hasFetchedAllProviders =
|
|
509
519
|
collectedSources.length === 0 ||
|
|
510
|
-
collectedSources.some(s => s.source === 'LRCLIB' ||
|
|
520
|
+
collectedSources.some(s => s.source === 'LRCLIB' ||
|
|
521
|
+
s.source === 'Tidal' ||
|
|
522
|
+
s.source === 'Genius');
|
|
511
523
|
if (collectedSources.length > 0) {
|
|
512
524
|
this.availableSources = AmLyrics.mergeAndSortSources(collectedSources);
|
|
513
525
|
this.currentSourceIndex = 0;
|
|
@@ -584,6 +596,8 @@ class AmLyrics extends i {
|
|
|
584
596
|
return 14;
|
|
585
597
|
if (lower.includes('lrclib') && isUnsynced)
|
|
586
598
|
return 15;
|
|
599
|
+
if (lower.includes('genius'))
|
|
600
|
+
return 16;
|
|
587
601
|
return 20;
|
|
588
602
|
}
|
|
589
603
|
static mergeAndSortSources(collectedSources) {
|
|
@@ -627,6 +641,12 @@ class AmLyrics extends i {
|
|
|
627
641
|
newSources.push({ lines: lrclibResult.lines, source: 'LRCLIB' });
|
|
628
642
|
}
|
|
629
643
|
}
|
|
644
|
+
if (!this.availableSources.some(s => s.source.toLowerCase().includes('genius'))) {
|
|
645
|
+
const geniusResult = await AmLyrics.fetchLyricsFromGenius(resolvedMetadata.metadata);
|
|
646
|
+
if (geniusResult && geniusResult.lines.length > 0) {
|
|
647
|
+
newSources.push({ lines: geniusResult.lines, source: 'Genius' });
|
|
648
|
+
}
|
|
649
|
+
}
|
|
630
650
|
if (newSources.length > 0) {
|
|
631
651
|
this.availableSources = AmLyrics.mergeAndSortSources([
|
|
632
652
|
...this.availableSources,
|
|
@@ -1032,7 +1052,7 @@ class AmLyrics extends i {
|
|
|
1032
1052
|
if (!title || !artist)
|
|
1033
1053
|
return null;
|
|
1034
1054
|
try {
|
|
1035
|
-
const searchQuery = `${
|
|
1055
|
+
const searchQuery = `${artist} ${title}`;
|
|
1036
1056
|
const params = new URLSearchParams({ q: searchQuery });
|
|
1037
1057
|
const response = await fetch(`https://lrclib.net/api/search?${params.toString()}`, {
|
|
1038
1058
|
headers: {
|
|
@@ -1085,6 +1105,48 @@ class AmLyrics extends i {
|
|
|
1085
1105
|
}
|
|
1086
1106
|
return null;
|
|
1087
1107
|
}
|
|
1108
|
+
static async fetchLyricsFromGenius(metadata) {
|
|
1109
|
+
const title = metadata.title?.trim();
|
|
1110
|
+
const artist = metadata.artist?.trim();
|
|
1111
|
+
if (!title || !artist)
|
|
1112
|
+
return null;
|
|
1113
|
+
try {
|
|
1114
|
+
const params = new URLSearchParams({ title, artist });
|
|
1115
|
+
const response = await fetch(`${GENIUS_WORKER_URL}?${params.toString()}`);
|
|
1116
|
+
if (!response.ok)
|
|
1117
|
+
return null;
|
|
1118
|
+
const data = await response.json();
|
|
1119
|
+
if (data.lyrics) {
|
|
1120
|
+
const plainLines = data.lyrics
|
|
1121
|
+
.split('\n')
|
|
1122
|
+
.map((l) => l.trim())
|
|
1123
|
+
.filter((l) => l && !l.startsWith('['));
|
|
1124
|
+
if (plainLines.length > 0) {
|
|
1125
|
+
const lines = plainLines.map((text) => ({
|
|
1126
|
+
text: [
|
|
1127
|
+
{
|
|
1128
|
+
text,
|
|
1129
|
+
part: false,
|
|
1130
|
+
timestamp: 0,
|
|
1131
|
+
endtime: 0,
|
|
1132
|
+
},
|
|
1133
|
+
],
|
|
1134
|
+
background: false,
|
|
1135
|
+
backgroundText: [],
|
|
1136
|
+
oppositeTurn: false,
|
|
1137
|
+
timestamp: 0,
|
|
1138
|
+
endtime: 0,
|
|
1139
|
+
isWordSynced: false,
|
|
1140
|
+
}));
|
|
1141
|
+
return { lines, source: 'Genius' };
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
catch {
|
|
1146
|
+
console.error('No Genius lyrics found');
|
|
1147
|
+
}
|
|
1148
|
+
return null;
|
|
1149
|
+
}
|
|
1088
1150
|
static convertKPoeLyrics(payload) {
|
|
1089
1151
|
if (!payload) {
|
|
1090
1152
|
return null;
|