From a380e3a2cf70730f4e0a95c8eb434e7135b562c6 Mon Sep 17 00:00:00 2001 From: SuperSaltyGamer Date: Sun, 3 Dec 2023 18:29:21 +0200 Subject: [PATCH] Update MusicBrainz and Apple Music scripts --- dist/applemusic.user.js | 6 +++--- dist/musicbrainz.user.js | 6 +++--- src/applemusic/main.ts | 2 +- src/musicbrainz/main.ts | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dist/applemusic.user.js b/dist/applemusic.user.js index 1a5bd04..abfe510 100644 --- a/dist/applemusic.user.js +++ b/dist/applemusic.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @namespace ame-applemusic // @name Ame (Apple Music) -// @version 1.10.0 +// @version 1.10.1 // @author SuperSaltyGamer // @run-at document-start // @match https://music.apple.com/* @@ -266,12 +266,12 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
Album Info
- `);const i=lr.querySelector("#ame-dock-title"),o=lr.querySelector("#ame-dock-control-storefront"),a=lr.querySelector("#ame-dock-control-isrc2mb"),s=lr.querySelector("#ame-dock-control-lyrics"),l=lr.querySelector("#ame-dock-table");i.addEventListener("click",()=>{cg()}),a.addEventListener("click",async()=>{if(!t)return;const y=t.attributes.upc.replace(/^0+/,""),S=await(await Ln(`https://musicbrainz.org/ws/2/release/?fmt=json&query=barcode:${y}%20AND%20format:digitalmedia`)).json(),_=new URLSearchParams;S.releases.length&&_.set("mbid",S.releases[0].id),t.relationships.tracks.data.forEach((O,R)=>{_.set(`isrc${R+1}`,O.attributes.isrc)}),open(`https://magicisrc.kepstin.ca/?${_.toString()}`,"_blank")});let u=!1;s.addEventListener("click",async()=>{if(!u){u=!0;try{await _ce(e)}catch(y){console.error(y)}u=!1}});let c=JSON.parse(localStorage.getItem("ame-info-columns")||"[]");c.length!==DA.length&&(c=DA),document.body.appendChild(lr);const h=new Cr(l,{licenseKey:"non-commercial-and-evaluation",data:[],rowHeaders:!0,columns:c.map(y=>({data:y,title:NA[y]})),editor:!1,manualColumnMove:!0,height:Math.max(320,Math.floor(innerHeight/3)),stretchH:"all",wordWrap:!1,renderer(y,m,S,_,O,R,T){const D=y.getSourceDataAtRow(S);switch(S%2&&m.classList.add("ame-table-band"),c[_]){case"trackDate":D.albumDate!==D.trackDate&&(m.style.textDecoration="underline"),m.innerText=R;break;default:m.innerText=R;break}},afterColumnMove(y,m,S,_,O){if(!O)return;const R=Array.from({length:h.countCols()},(T,D)=>Oce[h.getColHeader(D)]);localStorage.setItem("ame-info-columns",JSON.stringify(R))}}),d=document.querySelector(".app-container");d.style.paddingBottom=lr.clientHeight+"px";async function f(){const y=await ca(e,r);if(!y)return;t=y,console.log("Album Info:",y);let m="Album Info";y.attributes.isComplete||(m+=` (Incomplete - ${y.relationships.tracks.data.length}/${y.attributes.trackCount})`),i.innerText=m,a.style.display=y.attributes.isComplete?"":"none";const S=y.relationships.tracks.data.map(_=>({id:_.id,discNumber:_.attributes.discNumber,trackNumber:_.attributes.trackNumber,duration:Rce(_.attributes.durationInMillis),isrc:_.attributes.isrc,upc:y.attributes.upc,albumDate:y.attributes.releaseDate,trackDate:_.attributes.releaseDate,locale:_.attributes.audioLocale,lyrics:_.attributes.hasLyrics?_.attributes.hasTimeSyncedLyrics?"S":"U":"",genres:_.attributes.genreNames.join("\\\\"),composer:_.attributes.composerName,artist:_.attributes.artistName,title:_.attributes.name,label:y.attributes.recordLabel,copyright:y.attributes.copyright,albumArtist:y.attributes.artistName,albumTitle:y.attributes.name}));h.updateData(S)}await f(),o.addEventListener("change",async y=>{r=y.target.value,localStorage.setItem("ame-info-storefront",r),await f()})}function cg(){ug=!1,lr==null||lr.remove(),lr=null;const e=document.querySelector(".app-container");e&&(e.style.paddingBottom="")}function Rce(e){let t=Math.floor(e/1e3);const r=Math.floor(t/60);return t=t%60,`${r}:${t.toString().padStart(2,"0")}`}document.addEventListener("keydown",e=>{e.target.matches("input.search-input__text-field")&&(e.stopPropagation(),e.stopImmediatePropagation())}),sx(()=>MusicKit==null?void 0:MusicKit.getInstance()).then(e=>{e.addEventListener(MusicKit.Events.playbackStateDidChange,async t=>{e.isAuthorized||t.state===MusicKit.PlaybackStates.ended&&await e.skipToNextItem()})});const Ece=`.ame-color-primary{color:var(--systemPrimary)}.ame-color-secondary{color:var(--systemSecondary)}.ame-color-tertiary{color:var(--systemTertiary)}.ame-color-warning{color:var(--systemYellow)}.upsell-banner,.banner-container,.navigation__native-cta{display:none!important}div[slot=artwork]{height:fit-content}.page-error{width:100%!important;max-width:960px!important}.headings__title,.headings__subtitles *,.description *{user-select:text;-moz-user-select:text;-webkit-user-select:text}.navigation-items__header[data-ame]{border-radius:6px;font-size:10px;font-weight:600;letter-spacing:0;line-height:1.3;margin:0 20px -3px;padding:4px 6px;color:var(--systemSecondary)}.navigation-items__list[data-ame]{font-size:15px;padding:0 25px 9px;font-weight:400;letter-spacing:0}.navigation-item[data-ame]{margin-bottom:1px;height:32px;padding:4px;position:relative;border-radius:6px;--linkHoverTextDecoration: none}.navigation-item__link[data-ame]{align-items:center;border-radius:6px;box-sizing:content-box;-moz-column-gap:8px;column-gap:8px;display:flex;height:100%;margin:-3px;padding:3px;width:100%;font-size:.8rem}.navigation-item__link[data-ame] svg{width:24px;height:24px;fill:var(--systemSecondary);background-color:transparent;display:inline-block;flex-shrink:0}.ame-album-badges-container>svg{margin-right:1em;margin-top:1em;fill:var(--systemSecondary)}.ame-album-storefronts-header{margin:0 var(--bodyGutter);font-size:1.1em}.ame-album-storefronts-container{display:flex;margin:0 var(--bodyGutter);margin-bottom:var(--bodyGutter);padding-top:1em;line-height:2.2;text-align:justify;flex-direction:column}.ame-album-storefronts-container>div:not(:last-child):not(:empty){padding-bottom:1em}.ame-album-storefronts-container *{-webkit-user-select:text;user-select:text}.ame-table-band{background-color:#eee!important}#ame-dock{z-index:999999;position:fixed;left:0;bottom:0;width:100%;background-color:#fff}#ame-dock-title{width:100%;padding:.5rem;background-color:var(--keyColorBG);color:#fff;font-weight:700;cursor:pointer}#ame-dock-control{display:flex;padding:.5rem;background-color:var(--pageBG);align-items:center;gap:1rem}#ame-dock-control input,#ame-dock-control select{padding:.1rem}#ame-dock-control button{margin-top:1px;padding:.1rem} + `);const i=lr.querySelector("#ame-dock-title"),o=lr.querySelector("#ame-dock-control-storefront"),a=lr.querySelector("#ame-dock-control-isrc2mb"),s=lr.querySelector("#ame-dock-control-lyrics"),l=lr.querySelector("#ame-dock-table");i.addEventListener("click",()=>{cg()}),a.addEventListener("click",async()=>{if(!t)return;const y=t.attributes.upc.replace(/^0+/,""),S=await(await Ln(`https://musicbrainz.org/ws/2/release/?fmt=json&query=barcode:${y}%20AND%20format:digitalmedia`)).json(),_=new URLSearchParams;S.releases.length&&_.set("mbid",S.releases[0].id),t.relationships.tracks.data.forEach((O,R)=>{_.set(`isrc${R+1}`,O.attributes.isrc)}),open(`https://magicisrc.kepstin.ca/?${_.toString()}`,"_blank")});let u=!1;s.addEventListener("click",async()=>{if(!u){u=!0;try{await _ce(e)}catch(y){console.error(y)}u=!1}});let c=JSON.parse(localStorage.getItem("ame-info-columns")||"[]");c.length!==DA.length&&(c=DA),document.body.appendChild(lr);const h=new Cr(l,{licenseKey:"non-commercial-and-evaluation",data:[],rowHeaders:!0,columns:c.map(y=>({data:y,title:NA[y]})),editor:!1,manualColumnMove:!0,height:Math.max(320,Math.floor(innerHeight/3)),stretchH:"all",wordWrap:!1,renderer(y,m,S,_,O,R,T){const D=y.getSourceDataAtRow(S);switch(S%2&&m.classList.add("ame-table-band"),c[_]){case"trackDate":D.albumDate!==D.trackDate&&(m.style.textDecoration="underline"),m.innerText=R;break;default:m.innerText=R;break}},afterColumnMove(y,m,S,_,O){if(!O)return;const R=Array.from({length:h.countCols()},(T,D)=>Oce[h.getColHeader(D)]);localStorage.setItem("ame-info-columns",JSON.stringify(R))}}),d=document.querySelector(".app-container");d.style.paddingBottom=lr.clientHeight+"px";async function f(){const y=await ca(e,r);if(!y)return;t=y,console.log("Album Info:",y);let m="Album Info";y.attributes.isComplete||(m+=` (Incomplete - ${y.relationships.tracks.data.length}/${y.attributes.trackCount})`),i.innerText=m,a.style.display=y.attributes.isComplete?"":"none";const S=y.relationships.tracks.data.map(_=>({id:_.id,discNumber:_.attributes.discNumber,trackNumber:_.attributes.trackNumber,duration:Rce(_.attributes.durationInMillis),isrc:_.attributes.isrc??"",upc:y.attributes.upc??"",albumDate:y.attributes.releaseDate??"",trackDate:_.attributes.releaseDate??"",locale:_.attributes.audioLocale??"",lyrics:_.attributes.hasLyrics?_.attributes.hasTimeSyncedLyrics?"S":"U":"",genres:_.attributes.genreNames.join("\\\\"),composer:_.attributes.composerName??"",artist:_.attributes.artistName,title:_.attributes.name,label:y.attributes.recordLabel??"",copyright:y.attributes.copyright??"",albumArtist:y.attributes.artistName,albumTitle:y.attributes.name}));h.updateData(S)}await f(),o.addEventListener("change",async y=>{r=y.target.value,localStorage.setItem("ame-info-storefront",r),await f()})}function cg(){ug=!1,lr==null||lr.remove(),lr=null;const e=document.querySelector(".app-container");e&&(e.style.paddingBottom="")}function Rce(e){let t=Math.floor(e/1e3);const r=Math.floor(t/60);return t=t%60,`${r}:${t.toString().padStart(2,"0")}`}document.addEventListener("keydown",e=>{e.target.matches("input.search-input__text-field")&&(e.stopPropagation(),e.stopImmediatePropagation())}),sx(()=>MusicKit==null?void 0:MusicKit.getInstance()).then(e=>{e.addEventListener(MusicKit.Events.playbackStateDidChange,async t=>{e.isAuthorized||t.state===MusicKit.PlaybackStates.ended&&await e.skipToNextItem()})});const Ece=`.ame-color-primary{color:var(--systemPrimary)}.ame-color-secondary{color:var(--systemSecondary)}.ame-color-tertiary{color:var(--systemTertiary)}.ame-color-warning{color:var(--systemYellow)}.upsell-banner,.banner-container,.navigation__native-cta{display:none!important}div[slot=artwork]{height:fit-content}.page-error{width:100%!important;max-width:960px!important}.headings__title,.headings__subtitles *,.description *{user-select:text;-moz-user-select:text;-webkit-user-select:text}.navigation-items__header[data-ame]{border-radius:6px;font-size:10px;font-weight:600;letter-spacing:0;line-height:1.3;margin:0 20px -3px;padding:4px 6px;color:var(--systemSecondary)}.navigation-items__list[data-ame]{font-size:15px;padding:0 25px 9px;font-weight:400;letter-spacing:0}.navigation-item[data-ame]{margin-bottom:1px;height:32px;padding:4px;position:relative;border-radius:6px;--linkHoverTextDecoration: none}.navigation-item__link[data-ame]{align-items:center;border-radius:6px;box-sizing:content-box;-moz-column-gap:8px;column-gap:8px;display:flex;height:100%;margin:-3px;padding:3px;width:100%;font-size:.8rem}.navigation-item__link[data-ame] svg{width:24px;height:24px;fill:var(--systemSecondary);background-color:transparent;display:inline-block;flex-shrink:0}.ame-album-badges-container>svg{margin-right:1em;margin-top:1em;fill:var(--systemSecondary)}.ame-album-storefronts-header{margin:0 var(--bodyGutter);font-size:1.1em}.ame-album-storefronts-container{display:flex;margin:0 var(--bodyGutter);margin-bottom:var(--bodyGutter);padding-top:1em;line-height:2.2;text-align:justify;flex-direction:column}.ame-album-storefronts-container>div:not(:last-child):not(:empty){padding-bottom:1em}.ame-album-storefronts-container *{-webkit-user-select:text;user-select:text}.ame-table-band{background-color:#eee!important}#ame-dock{z-index:999999;position:fixed;left:0;bottom:0;width:100%;background-color:#fff}#ame-dock-title{width:100%;padding:.5rem;background-color:var(--keyColorBG);color:#fff;font-weight:700;cursor:pointer}#ame-dock-control{display:flex;padding:.5rem;background-color:var(--pageBG);align-items:center;gap:1rem}#ame-dock-control input,#ame-dock-control select{padding:.1rem}#ame-dock-control button{margin-top:1px;padding:.1rem} `;GM.addStyle(zl),GM.addStyle(Ece),Ul("iframe[src^='/includes/commerce/subscribe']",{timeout:0}).then(e=>{e==null||e.remove()})}); diff --git a/dist/musicbrainz.user.js b/dist/musicbrainz.user.js index 4925a5c..854b18b 100644 --- a/dist/musicbrainz.user.js +++ b/dist/musicbrainz.user.js @@ -1,7 +1,7 @@ // ==UserScript== // @namespace ame-musicbrainz // @name Ame (MusicBrainz) -// @version 1.6.3 +// @version 1.6.4 // @author SuperSaltyGamer // @run-at document-end // @match https://musicbrainz.org/* @@ -15,13 +15,13 @@ (function(ue){typeof define=="function"&&define.amd?define(ue):ue()})(function(){"use strict";function ue(k){const N=document.createElement("template");return N.innerHTML=k,N.content.firstElementChild}function Oe(k){return k.trim().replace(/[\/\?<>\\:\*\|":]/g,"_").replace(/\.+$/,"_")}function qe(k){const[N,i]=k.split(":").map(Number);return N*60+i}var ve=(k=>(k.Incompatible="incompatible",k.Deduced="deduced",k.Exact="exact",k))(ve||{});function Be(k){return k=k.toLowerCase().replace(/[^a-z+]/g,""),k.includes("digitalmedia")||k.includes("cd")||k.includes("disc")}function Le(){return location.pathname.split("/")[2]}function Ie(){var s;const k=Le();let N=(s=document.querySelector(".barcode"))==null?void 0:s.innerText;N==="[none]"&&(N=void 0);const i=document.querySelector("dd.format").innerText,S=document.querySelector(".tabs a[href$='/discids']"),d=S&&S.textContent!=="Disc IDs (0)";return{id:k,title:document.querySelector("h1 a").innerText,artist:document.querySelector(".subheader bdi").innerText,barcode:N,catalogs:Array.from(document.querySelectorAll(".catalog-number")).map(c=>c.innerText).filter(c=>c!="[none]"),tocType:d?"exact":Be(i)?"deduced":"incompatible"}}async function Re(k){if(k.tocType==="incompatible")return null;if(k.tocType==="deduced"){const N=Me();if(N)return N}try{const N=await fetch(`https://musicbrainz.org/ws/2/release/${k.id}?fmt=json&inc=recordings+discids`).then(d=>d.json()),i=N.media.flatMap(d=>d.discs).filter(d=>d.offsets.length)[0];if(i)return[1,i.offsets.length,i.sectors].concat(i.offsets).join(" ");const S=N.media.filter(d=>Be(d.format))[0];if(S){let d="0",s=0;for(const c of S.tracks)s+=c.length/1e3*75,d+=`:${s}`;return d}}catch(N){console.error(N)}return Me()}function Me(){const k=[];let N=0;for(const i of document.querySelectorAll("table.medium")){k.push("0");for(const S of i.querySelectorAll("td.treleases"))N+=qe(S.innerHTML)*75,k[k.length-1]+=`:${N}`}return k.length?k[0]:null}const xe=document.querySelector("form[action='/search']"),me=document.querySelector("#headerid-query"),ge=document.querySelector("#headerid-type"),Ge=document.querySelector("form[action='/search'] button");me.focus(),me.placeholder="Enhanced search",ge.options.add(ue('')),ge.options.add(ue('')),ge.options.add(ue('')),ge.options.add(ue('')),me.addEventListener("input",()=>{const k=Ke(me.value);switch(k&&(me.value=k),Ue(me.value)){case"barcode":ge.value="barcode";break;case"catalog":ge.value="catalog";break;case"isrc":ge.value="isrc";break;case"toc":ge.value="toc";break}}),xe.addEventListener("dragover",k=>{k.preventDefault();const N=k.dataTransfer;N&&(N.dropEffect="link")}),xe.addEventListener("drop",async k=>{k.preventDefault();const N=k.dataTransfer;if(!N)return;const i=N.files.item(0);if(!(i!=null&&i.name.match(/\.log$/)))return;const S=new FileReader;S.readAsText(i),S.onload=()=>{me.value=S.result,me.dispatchEvent(new Event("input")),Ge.click()}}),xe.addEventListener("submit",k=>{const i=new FormData(xe).get("query").trim(),S=Ue(i);if(S!=="unknown")switch(k.preventDefault(),S){case"barcode":location.href=`https://musicbrainz.org/search?type=release&method=advanced&query=barcode:${encodeURIComponent(i)}`;break;case"catalog":location.href=`https://musicbrainz.org/search?type=release&method=advanced&query=catno:${encodeURIComponent(Xe(i))}`;break;case"isrc":location.href=`https://musicbrainz.org/search?type=recording&method=advanced&query=isrc:${encodeURIComponent(i)}`;break;case"toc":let d=`?toc=${i}`;location.pathname.startsWith("/release/")&&(d+=`&filter-release.query=${Le()}`),location.href=`https://musicbrainz.org/cdtoc/attach${d}`;break}});function Ue(k){return/^(\d{8}|\d{12}|\d{13}|\d{14})$/.test(k)?"barcode":/^[a-zA-Z]{5}[0-9]{7}$/.test(k)?"isrc":k===k.toUpperCase()&&/\d/.test(k)&&/[a-zA-Z]/.test(k)&&/[ ~-]/.test(k)?"catalog":k.split(" ").filter(Number).length>=4?"toc":"unknown"}function Xe(k){return/^(.+)([1-9][0-9]*)~([0-9]+)$/.test(k)?k.split("~")[0]:k}function Ke(k){const N=[[]];if(k.includes("Exact Audio Copy")||k.includes("X Lossless Decoder")){let d=0;for(const s of k.matchAll(/ *\d+:\d+.\d+ *\| *\d+:\d+.\d+ *\| *(\d+) *\| *(\d+)/g)){const c={startSector:Number(s[1]),endSector:Number(s[2])};c.startSector=2)for(let d=1;dd.startSector).concat([i[i.length-1].endSector+1]);return[1,S.length-1,S[S.length-1]+150].concat(S.slice(0,-1).map(d=>d+150)).join(" ")}const Ne=new Map;function je(k,N){return new Promise((i,S)=>{const d=Ne.get(k);if(d){i(d.clone());return}GM.xmlHttpRequest({url:k,method:(N==null?void 0:N.method)??"GET",headers:Object.fromEntries(new Headers(N==null?void 0:N.headers)),responseType:"blob",onload(s){if((s.status<200||s.status>299)&&s.status!==404){S(new Error(`Fetching "${k}" responded with an erroneous status code.`));return}const c=s.responseHeaders.split(`\r `).slice(0,-1).map(u=>u.split(": ")),r=new Response(s.response,{headers:Object.fromEntries(c),status:s.status,statusText:s.statusText});Object.defineProperty(r,"url",{value:k}),Ne.set(k,r.clone()),i(r)},onerror(){S(new Error("Network request errored."))},ontimeout(){S(new Error("Network request timed out."))}})})}const _e=(unsafeWindow==null?void 0:unsafeWindow.wrappedJSObject)??unsafeWindow,Qe=typeof cloneInto=="function"?cloneInto:k=>k,Je=typeof exportFunction=="function"?exportFunction:k=>k;function $e(k){return Qe(k,_e,{cloneFunctions:!0,wrapReflectors:!0})}function et(k){return Je(k,_e)}function tt(k,N){return N??(N=_e),function(...i){return k.call(N,...$e(i))}}const Pe={},rt=tt(_e.history.pushState,_e.history);_e.history.pushState=et(nt);function nt(k,N,i){rt(k,N,i),Fe()}addEventListener("popstate",()=>{Fe()});function Fe(){for(const k of Object.values(Pe)){const N=k.pattern.test(location.pathname)?k.onCallbacks:k.offCallbacks;for(const i of N)i()}}function it(k){const N=new RegExp(`^/${k.replaceAll("/","\\/")}$`);let i=Pe[k];return i||(i={pattern:N,onCallbacks:[],offCallbacks:[]},Pe[k]=i,i)}function De(k,N){const i=it(k),S=i.pattern.test(location.pathname);i.onCallbacks.push(N),S&&N()}const at="release/[0-9a-f-]+",st="release/[0-9a-f-]+/cover-art",ot="release/[0-9a-f-]+/add-cover-art";function At(k){De(at,k)}function ct(k){De(st,k)}function ut(k){De(ot,k)}ut(()=>{const k=document.querySelector(".fileinput-button.buttons");if(!k)return;const N=Ie();if(!N)return;const i=ue(` - `);i.addEventListener("input",async()=>{await lt(N,i.value)}),k.appendChild(i)});async function lt(k,N){const i=new URLSearchParams;switch(i.set("remote.port","browser"),i.set("remote.agent","Ame - MusicBrainz"),i.set("remote.text","Pick cover for MusicBrainz release."),N){case"search":i.set("artist",k.artist),i.set("album",k.title);break;case"barcode":if(!k.barcode)return;i.set("barcode",k.barcode);break;case"catalog":if(!k.catalogs.length)return;i.set("catalog",k.catalogs[0]);break;case"toc":const d=await Re(k);if(!d)return;i.set("toc",d);break;default:return}const S=open(`https://covers.musichoarders.xyz?${i}`,"_blank");S&&(addEventListener("beforeunload",()=>{S.close()}),addEventListener("message",async d=>{try{if(d.source!==S)return;const s=JSON.parse(d.data);switch(s.action){case"primary":case"secondary":S==null||S.close(),await ht(s);break}}catch{}},!1))}async function ht(k){var u;const i=await(await je(k.bigCoverUrl)).blob(),S=new DataTransfer;Object.defineProperty(S,"files",{value:[i]});const d=new DragEvent("drop",{dataTransfer:S});(u=document.querySelector("#drop-zone"))==null||u.dispatchEvent(d);const s=document.querySelector("#add-cover-art tr:last-of-type");if(!s)return;const c=s.querySelector('input[type="checkbox"]');c&&c.click();const r=document.body.querySelector(".edit-note");if(r){let _="Seeded with Ame through https://covers.musichoarders.xyz";k.releaseInfo.url&&(_+=` for ${k.releaseInfo.url}`),_+=` from ${k.bigCoverUrl}`,r.value=_}}var He=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ft(k){return k&&k.__esModule&&Object.prototype.hasOwnProperty.call(k,"default")?k.default:k}function Se(k){throw new Error('Could not dynamically require "'+k+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var We={exports:{}};/*! + `);i.addEventListener("input",async()=>{const S=i.value;i.value="",await lt(N,S)}),k.appendChild(i)});async function lt(k,N){const i=new URLSearchParams;switch(i.set("remote.port","browser"),i.set("remote.agent","Ame - MusicBrainz"),i.set("remote.text","Pick cover for MusicBrainz release."),N){case"search":i.set("artist",k.artist),i.set("album",k.title);break;case"barcode":if(!k.barcode)return;i.set("barcode",k.barcode);break;case"catalog":if(!k.catalogs.length)return;i.set("catalog",k.catalogs[0]);break;case"toc":const d=await Re(k);if(!d)return;i.set("toc",d);break;default:return}const S=open(`https://covers.musichoarders.xyz?${i}`,"_blank");S&&(addEventListener("beforeunload",()=>{S.close()}),addEventListener("message",async d=>{try{if(d.source!==S)return;const s=JSON.parse(d.data);switch(s.action){case"primary":case"secondary":S==null||S.close(),await ht(s);break}}catch{}},!1))}async function ht(k){var u;const i=await(await je(k.bigCoverUrl)).blob(),S=new DataTransfer;Object.defineProperty(S,"files",{value:[i]});const d=new DragEvent("drop",{dataTransfer:S});(u=document.querySelector("#drop-zone"))==null||u.dispatchEvent(d);const s=document.querySelector("#add-cover-art tr:last-of-type");if(!s)return;const c=s.querySelector('input[type="checkbox"]');c&&c.click();const r=document.body.querySelector(".edit-note");if(r){let _="Seeded with Ame through https://covers.musichoarders.xyz";k.releaseInfo.url&&(_+=` for ${k.releaseInfo.url}`),_+=` from ${k.bigCoverUrl}`,r.value=_}}var He=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ft(k){return k&&k.__esModule&&Object.prototype.hasOwnProperty.call(k,"default")?k.default:k}function Se(k){throw new Error('Could not dynamically require "'+k+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var We={exports:{}};/*! JSZip v3.9.1 - A JavaScript class for generating and reading zip files diff --git a/src/applemusic/main.ts b/src/applemusic/main.ts index f2b199d..c30e90d 100644 --- a/src/applemusic/main.ts +++ b/src/applemusic/main.ts @@ -1,7 +1,7 @@ // ==UserScript== // @namespace ame-applemusic // @name Ame (Apple Music) -// @version 1.10.0 +// @version 1.10.1 // @author SuperSaltyGamer // @run-at document-start // @match https://music.apple.com/* diff --git a/src/musicbrainz/main.ts b/src/musicbrainz/main.ts index 78bc19a..ee51413 100644 --- a/src/musicbrainz/main.ts +++ b/src/musicbrainz/main.ts @@ -1,7 +1,7 @@ // ==UserScript== // @namespace ame-musicbrainz // @name Ame (MusicBrainz) -// @version 1.6.3 +// @version 1.6.4 // @author SuperSaltyGamer // @run-at document-end // @match https://musicbrainz.org/*