diff --git a/discogs_importer.user.js b/discogs_importer.user.js index 18bc547..c750f2d 100644 --- a/discogs_importer.user.js +++ b/discogs_importer.user.js @@ -26,33 +26,33 @@ if (!unsafeWindow) unsafeWindow = window; $(document).ready(function(){ - // On Musicbrainz website - if (window.location.href.match(/(musicbrainz\.org)/)) { - - $add_disc_dialog = $('div.add-disc-dialog'); - //$add_disc_dialog.find('div.tabs ul.tabs').append('
  • Discogs import
  • '); + // On Musicbrainz website + if (window.location.href.match(/(musicbrainz\.org)/)) { + + $add_disc_dialog = $('div.add-disc-dialog'); + //$add_disc_dialog.find('div.tabs ul.tabs').append('
  • Discogs import
  • '); - var innerHTML = ''; - //$add_disc_dialog.find('div.add-disc-tab:last').after(innerHTML); + var innerHTML = ''; + //$add_disc_dialog.find('div.add-disc-tab:last').after(innerHTML); - // On Discogs website - } else { + // On Discogs website + } else { magnifyLinks(); // Release page? if (window.location.href.match( /discogs\.com\/(.*\/?)release\/(\d+)$/) ) { - // Discogs Webservice URL + // Discogs Webservice URL var discogsReleaseId = window.location.href.match( /discogs\.com\/(.*\/?)release\/(\d+)$/)[2]; var discogsWsUrl = 'http://api.discogs.com/releases/' + discogsReleaseId; - mylog(discogsWsUrl); + mylog(discogsWsUrl); // Swith JQuery to MB's one, and save GreaseMonkey one var GM_JQuery = $; @@ -79,7 +79,7 @@ $(document).ready(function(){ } - } + } }); function magnifyLinks() { @@ -98,7 +98,7 @@ function magnifyLinks() { // Ignore empty links if (!elem.href || trim(elem.textContent) == '' || elem.textContent.substring(4,0) == 'http') continue; - + //~ // Check if the link matches if (m = re.exec(elem.href)) { var type = m[2]; @@ -119,9 +119,9 @@ function parseDiscogsRelease(data) { var discogsRelease = data.data; var release = new Object(); - release.discs = []; + release.discs = []; - // Release artist credit + // Release artist credit release.artist_credit = new Array(); $.each(discogsRelease.artists, function(index, artist) { var ac = { @@ -132,8 +132,8 @@ function parseDiscogsRelease(data) { release.artist_credit.push(ac); }); - // Release title - release.title = discogsRelease.title; + // Release title + release.title = discogsRelease.title; // Release date if (discogsRelease.released) { @@ -201,19 +201,19 @@ function parseDiscogsRelease(data) { }); } - // Inspect tracks - var tracks = []; + // Inspect tracks + var tracks = []; - $.each(discogsRelease.tracklist, function(index, discogsTrack) { - // TODO: dectect disc title and set disc.title + $.each(discogsRelease.tracklist, function(index, discogsTrack) { + // TODO: dectect disc title and set disc.title - var track = new Object(); - - track.title = discogsTrack.title; - track.duration = discogsTrack.duration; - - // Track artist credit - track.artist_credit = new Array(); + var track = new Object(); + + track.title = discogsTrack.title; + track.duration = discogsTrack.duration; + + // Track artist credit + track.artist_credit = new Array(); if (discogsTrack.artists) { $.each(discogsTrack.artists, function(index, artist) { var ac = { @@ -224,25 +224,25 @@ function parseDiscogsRelease(data) { track.artist_credit.push(ac); }); } - - // Track position and release number - var trackPosition = discogsTrack.position; - var releaseNumber = 1; + + // Track position and release number + var trackPosition = discogsTrack.position; + var releaseNumber = 1; // Skip special tracks if (trackPosition.toLowerCase().match("^(video|mp3)")) { trackPosition = ""; } - // Remove "CD" prefix - trackPosition = trackPosition.replace(/^CD/i, ""); + // Remove "CD" prefix + trackPosition = trackPosition.replace(/^CD/i, ""); // Multi discs e.g. 1.1 or 1-1 - var tmp = trackPosition.match(/^(\d+)(?=(-|\.)\d*)/); + var tmp = trackPosition.match(/^(\d+)(?=(-|\.)\d*)/); - if (tmp && tmp[0]) { - releaseNumber = tmp[0]; - } else { + if (tmp && tmp[0]) { + releaseNumber = tmp[0]; + } else { // Vinyls disc numbering: A1, B3, ... tmp = trackPosition.match(/^([A-Za-z])\d*/); if (tmp && tmp[0] && tmp[0] != "V") { @@ -258,46 +258,46 @@ function parseDiscogsRelease(data) { } } - // Create release if needed - if ( !release.discs[releaseNumber-1] ) { - release.discs.push(new Object()); - release.discs[releaseNumber-1].tracks = []; + // Create release if needed + if ( !release.discs[releaseNumber-1] ) { + release.discs.push(new Object()); + release.discs[releaseNumber-1].tracks = []; release.discs[releaseNumber-1].format = release_format; - } + } - // Trackposition is empty e.g. for release title - if (trackPosition != "" && trackPosition != null) - release.discs[releaseNumber-1].tracks.push(track); - - }); + // Trackposition is empty e.g. for release title + if (trackPosition != "" && trackPosition != null) + release.discs[releaseNumber-1].tracks.push(track); + + }); mylog(release); - return release; + return release; } // Insert links in Discogs page function insertLink(release) { - var mbUI = document.createElement('div'); + var mbUI = document.createElement('div'); mbUI.innerHTML = "

    MusicBrainz

    "; - mbUI.className = "section"; + mbUI.className = "section"; - var mbContentBlock = document.createElement('div'); + var mbContentBlock = document.createElement('div'); mbContentBlock.className = "section_content"; mbUI.appendChild(mbContentBlock); - // Form parameters + // Form parameters var edit_note = 'Imported from ' + window.location.href.replace(/http:\/\/(www\.|)discogs\.com\/(.*\/|)release\//, 'http://www.discogs.com/release/'); - var parameters = MBReleaseImportHelper.buildFormParameters(release, edit_note); + var parameters = MBReleaseImportHelper.buildFormParameters(release, edit_note); - // Build form - var innerHTML = MBReleaseImportHelper.buildFormHTML(parameters); + // Build form + var innerHTML = MBReleaseImportHelper.buildFormHTML(parameters); // Append search link - innerHTML += ' (' + MBReleaseImportHelper.buildSearchLink(release) + ')'; + innerHTML += ' (' + MBReleaseImportHelper.buildSearchLink(release) + ')'; - mbContentBlock.innerHTML = innerHTML; - var prevNode = document.body.querySelector("div.section.ratings"); - prevNode.parentNode.insertBefore(mbUI, prevNode); + mbContentBlock.innerHTML = innerHTML; + var prevNode = document.body.querySelector("div.section.ratings"); + prevNode.parentNode.insertBefore(mbUI, prevNode); } function decodeDiscogsJoinphrase(join) {