mirror of
https://notabug.org/SuperSaltyGamer/ame
synced 2026-01-15 18:02:54 -03:00
[vgmdb] Show MB seed button when uncertain match
This commit is contained in:
2
dist/vgmdb.user.js
vendored
2
dist/vgmdb.user.js
vendored
@@ -47,4 +47,4 @@
|
||||
MusicBrainz <small>(Seed)</small>
|
||||
</button>
|
||||
</form>
|
||||
`);function o(n,r){const u=document.createElement("input");u.type="hidden",u.name=n,u.value=r,G.appendChild(u)}const x=`${location.origin}${location.pathname}`;if(o("name",O.album),O.artist&&o("artist_credit.names.0.name",O.artist),O.album.match(/[ㄱ-ㅎ가-힣]/)?(o("language","kor"),o("script","Kore")):O.album.match(/[一-龯]/)?(o("language","jpn"),o("script","Jpan")):(o("language","eng"),o("script","Latn")),O.publish&&(O.publish.includes("promo")?o("status","promotion"):O.publish.includes("bootleg")?o("status","bootleg"):o("status","official")),O.tracks.length<=6?o("type","single"):o("type","album"),O.classification&&(O.classification.includes("soundtrack")?o("type","soundtrack"):O.classification.includes("drama")?o("type","audio drama"):O.classification.includes("remix")?o("type","remix"):O.classification.includes("talk")&&o("type","spokenword")),O.date)switch(O.date.length){case 3:o("events.0.date.day",O.date[2].toString());case 2:o("events.0.date.month",O.date[1].toString());case 1:o("events.0.date.year",O.date[0].toString())}switch(O.currency){case"jpy":o("events.0.country","JP");break;case"krw":o("events.0.country","KR");break;case"cny":o("events.0.country","CN");break}O.barcode&&o("barcode",O.barcode),O.catalog&&O.catalogs.forEach((n,r)=>{o(`labels.${r}.catalog_number`,n),O.label&&r!==0&&o(`labels.${r}.name`,O.label)}),O.label&&o("labels.0.name",O.label),O.mediums.forEach((n,r)=>{n&&o(`mediums.${r}.format`,n)});let g=0,a=0;for(const n of O.tracks)n.number<=a&&g++,a=n.number,o(`mediums.${g}.track.${a-1}.name`,n.title),o(`mediums.${g}.track.${a-1}.number`,n.number.toString()),o(`mediums.${g}.track.${a-1}.length`,n.duration.toString());return o("urls.0.url",x),o("urls.0.link_type","86"),O.urls.forEach((n,r)=>{let u=null;n.includes("cdjapan.co.jp/")||n.includes("yesasia.com/")||n.includes("play-asia.com/")?u="79":n.includes("mora.jp/")||n.includes("ototoy.jp/")?u="74":n.includes("y.qq.com/")||n.includes("open.qobuz.com/")||n.includes("tidal.com/")||n.includes("music.amazon.")||n.includes("music.apple.com/")?u="980":n.includes("deezer.com/")||n.includes(".spotify.")?u="85":n.includes("amazon.co.jp/")&&(u="77"),u&&(o(`urls.${r+1}.url`,n),o(`urls.${r+1}.link_type`,u))}),o("edit_note",`Seeded with Ame from VGMdb at ${x}`),document.body.appendChild(G),G}Ee(async()=>{const O=Ie();await Promise.all([ot(O),At(O),lt(O)])});async function ot(O){let G=[];if(O.catalog)for(const a of O.catalogs)G.push(`catno:${a}`);O.barcode&&G.push(`barcode:${O.barcode}`);function o(){function a(r){r.preventDefault(),at(O).submit()}const n=ge(100,ze,"MusicBrainz <small>(Seed)</small>","#");n.addEventListener("click",a),n.addEventListener("auxclick",a)}if(G.length===0){o();return}const g=await(await Be(`http://musicbrainz.org/ws/2/release/?fmt=json&query=${encodeURIComponent(G.join(" "))}`)).json();g.releases.length===0?o():g.releases.length===1?ge(100,ze,"MusicBrainz",`https://musicbrainz.org/release/${g.releases[0].id}`):ge(100,ze,"MusicBrainz <small>(Search)</small>",`https://musicbrainz.org/search?type=release&method=advanced&query=${encodeURIComponent(G.join(" "))}`)}async function At(O){const G=O.catalogs[0]??O.barcode;G&&ge(200,it,"音楽の森 <small>(Search)</small>",`https://search.minc.or.jp/product/list/?type=search-form-diskno&dn=${G}`)}async function lt(O){ge(300,st,"MH Covers <small>(Search)</small>",`https://covers.musichoarders.xyz?artist=${encodeURIComponent(O.artist)}&album=${encodeURIComponent(O.album)}`)}GM.addStyle(".ame-download-scans{display:block;margin-bottom:10px;cursor:pointer}.ame-download-scans[data-status=loading]{color:#006ad4;font-weight:700}.ame-download-scans[data-status=success]{color:#00d46a;font-weight:700}.ame-download-scans[data-status=error]{color:#d40000;font-weight:700}")});
|
||||
`);function o(n,r){const u=document.createElement("input");u.type="hidden",u.name=n,u.value=r,G.appendChild(u)}const x=`${location.origin}${location.pathname}`;if(o("name",O.album),O.artist&&o("artist_credit.names.0.name",O.artist),O.album.match(/[ㄱ-ㅎ가-힣]/)?(o("language","kor"),o("script","Kore")):O.album.match(/[一-龯]/)?(o("language","jpn"),o("script","Jpan")):(o("language","eng"),o("script","Latn")),O.publish&&(O.publish.includes("promo")?o("status","promotion"):O.publish.includes("bootleg")?o("status","bootleg"):o("status","official")),O.tracks.length<=6?o("type","single"):o("type","album"),O.classification&&(O.classification.includes("soundtrack")?o("type","soundtrack"):O.classification.includes("drama")?o("type","audio drama"):O.classification.includes("remix")?o("type","remix"):O.classification.includes("talk")&&o("type","spokenword")),O.date)switch(O.date.length){case 3:o("events.0.date.day",O.date[2].toString());case 2:o("events.0.date.month",O.date[1].toString());case 1:o("events.0.date.year",O.date[0].toString())}switch(O.currency){case"jpy":o("events.0.country","JP");break;case"krw":o("events.0.country","KR");break;case"cny":o("events.0.country","CN");break}O.barcode&&o("barcode",O.barcode),O.catalog&&O.catalogs.forEach((n,r)=>{o(`labels.${r}.catalog_number`,n),O.label&&r!==0&&o(`labels.${r}.name`,O.label)}),O.label&&o("labels.0.name",O.label),O.mediums.forEach((n,r)=>{n&&o(`mediums.${r}.format`,n)});let g=0,a=0;for(const n of O.tracks)n.number<=a&&g++,a=n.number,o(`mediums.${g}.track.${a-1}.name`,n.title),o(`mediums.${g}.track.${a-1}.number`,n.number.toString()),o(`mediums.${g}.track.${a-1}.length`,n.duration.toString());return o("urls.0.url",x),o("urls.0.link_type","86"),O.urls.forEach((n,r)=>{let u=null;n.includes("cdjapan.co.jp/")||n.includes("yesasia.com/")||n.includes("play-asia.com/")?u="79":n.includes("mora.jp/")||n.includes("ototoy.jp/")?u="74":n.includes("y.qq.com/")||n.includes("open.qobuz.com/")||n.includes("tidal.com/")||n.includes("music.amazon.")||n.includes("music.apple.com/")?u="980":n.includes("deezer.com/")||n.includes(".spotify.")?u="85":n.includes("amazon.co.jp/")&&(u="77"),u&&(o(`urls.${r+1}.url`,n),o(`urls.${r+1}.link_type`,u))}),o("edit_note",`Seeded with Ame from VGMdb at ${x}`),document.body.appendChild(G),G}Ee(async()=>{const O=Ie();await Promise.all([ot(O),At(O),lt(O)])});async function ot(O){let G=[];if(O.catalog)for(const a of O.catalogs)G.push(`catno:${a}`);O.barcode&&G.push(`barcode:${O.barcode}`);function o(){function a(r){r.preventDefault(),at(O).submit()}const n=ge(100,ze,"MusicBrainz <small>(Seed)</small>","#");n.addEventListener("click",a),n.addEventListener("auxclick",a)}if(G.length===0){o();return}const g=await(await Be(`http://musicbrainz.org/ws/2/release/?fmt=json&query=${encodeURIComponent(G.join(" "))}`)).json();g.releases.length===0?o():g.releases.some(a=>a.barcode===O.barcode)?ge(200,ze,"MusicBrainz",`https://musicbrainz.org/release/${g.releases[0].id}`):(o(),ge(200,ze,"MusicBrainz <small>(Search)</small>",`https://musicbrainz.org/search?type=release&method=advanced&query=${encodeURIComponent(G.join(" "))}`))}async function At(O){const G=O.catalogs[0]??O.barcode;G&&ge(300,it,"音楽の森 <small>(Search)</small>",`https://search.minc.or.jp/product/list/?type=search-form-diskno&dn=${G}`)}async function lt(O){ge(400,st,"MH Covers <small>(Search)</small>",`https://covers.musichoarders.xyz?artist=${encodeURIComponent(O.artist)}&album=${encodeURIComponent(O.album)}`)}GM.addStyle(".ame-download-scans{display:block;margin-bottom:10px;cursor:pointer}.ame-download-scans[data-status=loading]{color:#006ad4;font-weight:700}.ame-download-scans[data-status=success]{color:#00d46a;font-weight:700}.ame-download-scans[data-status=error]{color:#d40000;font-weight:700}")});
|
||||
|
||||
@@ -39,14 +39,15 @@ async function addMusicBrainz(album: AlbumInfo) {
|
||||
}
|
||||
|
||||
const res = await fetchCors(`http://musicbrainz.org/ws/2/release/?fmt=json&query=${encodeURIComponent(query.join(" "))}`);
|
||||
const body = await res.json<{ releases: { id: string }[] }>();
|
||||
const body = await res.json<{ releases: { id: string, barcode?: string }[] }>();
|
||||
|
||||
if (body.releases.length === 0) {
|
||||
addSeedLink();
|
||||
} else if (body.releases.length === 1) {
|
||||
addAlbumSidebarButton(100, musicbrainzIcon, "MusicBrainz", `https://musicbrainz.org/release/${body.releases[0].id}`);
|
||||
} else if (body.releases.some(release => release.barcode === album.barcode)) {
|
||||
addAlbumSidebarButton(200, musicbrainzIcon, "MusicBrainz", `https://musicbrainz.org/release/${body.releases[0].id}`);
|
||||
} else {
|
||||
addAlbumSidebarButton(100, musicbrainzIcon, "MusicBrainz <small>(Search)</small>", `https://musicbrainz.org/search?type=release&method=advanced&query=${encodeURIComponent(query.join(" "))}`);
|
||||
addSeedLink();
|
||||
addAlbumSidebarButton(200, musicbrainzIcon, "MusicBrainz <small>(Search)</small>", `https://musicbrainz.org/search?type=release&method=advanced&query=${encodeURIComponent(query.join(" "))}`);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,9 +55,9 @@ async function addOngakuNoMori(album: AlbumInfo) {
|
||||
const dn = album.catalogs[0] ?? album.barcode;
|
||||
if (!dn) return;
|
||||
|
||||
addAlbumSidebarButton(200, ongakuNoMoriIcon, "音楽の森 <small>(Search)</small>", `https://search.minc.or.jp/product/list/?type=search-form-diskno&dn=${dn}`);
|
||||
addAlbumSidebarButton(300, ongakuNoMoriIcon, "音楽の森 <small>(Search)</small>", `https://search.minc.or.jp/product/list/?type=search-form-diskno&dn=${dn}`);
|
||||
}
|
||||
|
||||
async function addMhCovers(album: AlbumInfo) {
|
||||
addAlbumSidebarButton(300, mhCoversIcon, "MH Covers <small>(Search)</small>", `https://covers.musichoarders.xyz?artist=${encodeURIComponent(album.artist)}&album=${encodeURIComponent(album.album)}`);
|
||||
addAlbumSidebarButton(400, mhCoversIcon, "MH Covers <small>(Search)</small>", `https://covers.musichoarders.xyz?artist=${encodeURIComponent(album.artist)}&album=${encodeURIComponent(album.album)}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user