From c1eec6654940ad9776416d21c95e728adfa73ae2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Mino?= Date: Sat, 18 Jul 2015 22:59:15 +0200 Subject: [PATCH] [relationship_shortcuts] Remove Windows EOL from code. --- mb_relationship_shortcuts.user.js | 324 +++++++++++++++--------------- 1 file changed, 162 insertions(+), 162 deletions(-) diff --git a/mb_relationship_shortcuts.user.js b/mb_relationship_shortcuts.user.js index d3d83af..fbfe6f9 100644 --- a/mb_relationship_shortcuts.user.js +++ b/mb_relationship_shortcuts.user.js @@ -1,162 +1,162 @@ -// ==UserScript== -// @name Display shortcut for relationships on MusicBrainz -// @description Display icon shortcut for relationships of release-group, release, recording and work: e.g. Amazon, Discogs, Wikipedia, ... links. This allows to access some relationships without opening the entity page. -// @version 2013.01.30.1 -// @author Aurelien Mino -// @licence GPL (http://www.gnu.org/copyleft/gpl.html) -// @downloadURL https://raw.github.com/murdos/musicbrainz-userscripts/master/mb_relationship_shortcuts.user.js -// @updateURL https://raw.github.com/murdos/musicbrainz-userscripts/master/mb_relationship_shortcuts.user.js -// @include http*://*musicbrainz.org/artist/* -// @include http*://*musicbrainz.org/release-group/* -// @include http*://*musicbrainz.org/label/* -// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js -// ==/UserScript== - -// Definitions: relations-type and corresponding icons we are going to treat -var relationsIconsURLs = { - 'url': { - "amazon asin": "http://amazon.fr/favicon.ico", - "discogs": "http://static.discogs.com/images/favicon.ico", - "wikidata": "https://bits.wikimedia.org/favicon/wikidata.ico", - "imdb": "http://www.imdb.com/favicon.ico", - "creative commons licensed download": "http://creativecommons.org/favicon.ico", - "cover art link": "http://cdcovers.to/favicon.ico", - "secondhandsongs": "http://secondhandsongs.com/art/favicon.png", - "lyrics": "http://www.nomy.nu/img/lyrics-icon.gif" - }, - 'release-group': { - "single from": "http://www.amaesingtools.com/images/left_arrow_icon.gif" - }, - 'release': { - "part of set": "http://web.archive.org/web/20060709091901/http://wiki.musicbrainz.org/-/musicbrainz/img/moin-inter.png", - "remaster": "http://web.archive.org/web/20060708200714/http://wiki.musicbrainz.org/-/musicbrainz/img/moin-www.png", - } -}; - -var incOptions = { - 'release-group': [ 'release-group-rels', 'url-rels' ], - 'release': [ 'release-rels', 'url-rels', 'discids' ], - 'recording': [ 'work-rels' ], - 'work': [ 'url-rels' ] -}; - -// prevent JQuery conflicts, see http://wiki.greasespot.net/@grant -this.$ = this.jQuery = jQuery.noConflict(true); - -if (!unsafeWindow) unsafeWindow = window; - -$(document).ready(function(){ - - // Get pageType (label or artist) - var parent = new Object(); - var child = new Object(); - if (m = window.location.href.match("\/artist\/(.{36})[^\/]*$")) { - parent.type = 'artist'; - parent.mbid = m[1]; - child.type = 'release-group'; - } else if (m = window.location.href.match("\/(release-group|label)\/(.{36})$")) { - parent.type = m[1]; - parent.mbid = m[2]; - child.type = 'release'; - } else if (m = window.location.href.match("\/artist/(.{36})\/(releases|recordings|works)")) { - parent.type = 'artist'; - parent.mbid = m[1]; - child.type = m[2].replace(/s$/, ''); - } else { - // Not supported - return; - } - - var mbidRE = /(release|release-group|work)\/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})/; - - // Determine target column - var columnindex = 0; - $("table.tbl tbody tr[class!='subh']").each(function() { - $(this).children("td").each(function() { - if ($(this).find("a").attr("href") !== undefined && $(this).find("a").attr("href").match(mbidRE)) { return false }; - columnindex++; - }); - return false; - }); - - // Set MBID to row in tables to get easiest fastest access - $("table.tbl tr[class!='subh']").each(function() { - var $tr = $(this); - - $tr.children("th:eq("+columnindex+")").after("Relationships"); - $tr.children("td:eq("+columnindex+")").after(""); - - $(this).find("a").each(function() { - var href = $(this).attr("href"); - if (m = href.match(mbidRE)) { - $tr.attr("id", m[2]); - return false; - } - }); - }); - - // Call the MB webservice - var url = '/ws/2/' + child.type + '?' + parent.type + "=" + parent.mbid + '&inc=' + incOptions[child.type].join("+") + '&limit=100'; - mylog('wsurl: ' + url); - - $.get(url, function(data, textStatus, jqXHR) { - - // Parse each child - $(data).find(child.type).each(function() { - var mbid = $(this).attr("id"); - - // URL relationships - $(this).find("relation-list[target-type='url'] relation").each(function() { - var reltype = $(this).attr("type"); - var target = $(this).children("target").text(); - if (relationsIconsURLs['url'].hasOwnProperty(reltype)) { - $("#" + mbid + " td.relationships").append( - "" - + " " - + "" - ); - } - }); - - // Other relationships - $(this).find("relation-list[target-type!='url']").each(function() { - var targettype = $(this).attr("target-type").replace("release_group", "release-group"); - var relations = {}; - - $(this).children("relation").each(function() { - var reltype = $(this).attr("type"); - var target = $(this).children("target").text(); - var url = (targettype == 'url') ? target : "/" + targettype + "/" + target; - - if (relationsIconsURLs[targettype].hasOwnProperty(reltype)) { - - if (!relations.hasOwnProperty(reltype)) relations[reltype] = [url]; - else relations[reltype].push(url); - } - }); - - $.each(relations, function(reltype, urls) { - var html = ""; - if (urls.length < -1) { - html += "(" + urls.length + ") " - } else { - $.each(urls, function(index, url) { - html += " "; - }); - } - $("#" + mbid + " td.relationships").append(html); - - }); - }); - - }); - - }); - -}); - -function mylog(text) { - if (unsafeWindow.console) { - unsafeWindow.console.log(text); - } -} +// ==UserScript== +// @name Display shortcut for relationships on MusicBrainz +// @description Display icon shortcut for relationships of release-group, release, recording and work: e.g. Amazon, Discogs, Wikipedia, ... links. This allows to access some relationships without opening the entity page. +// @version 2013.01.30.1 +// @author Aurelien Mino +// @licence GPL (http://www.gnu.org/copyleft/gpl.html) +// @downloadURL https://raw.github.com/murdos/musicbrainz-userscripts/master/mb_relationship_shortcuts.user.js +// @updateURL https://raw.github.com/murdos/musicbrainz-userscripts/master/mb_relationship_shortcuts.user.js +// @include http*://*musicbrainz.org/artist/* +// @include http*://*musicbrainz.org/release-group/* +// @include http*://*musicbrainz.org/label/* +// @require https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js +// ==/UserScript== + +// Definitions: relations-type and corresponding icons we are going to treat +var relationsIconsURLs = { + 'url': { + "amazon asin": "http://amazon.fr/favicon.ico", + "discogs": "http://static.discogs.com/images/favicon.ico", + "wikidata": "https://bits.wikimedia.org/favicon/wikidata.ico", + "imdb": "http://www.imdb.com/favicon.ico", + "creative commons licensed download": "http://creativecommons.org/favicon.ico", + "cover art link": "http://cdcovers.to/favicon.ico", + "secondhandsongs": "http://secondhandsongs.com/art/favicon.png", + "lyrics": "http://www.nomy.nu/img/lyrics-icon.gif" + }, + 'release-group': { + "single from": "http://www.amaesingtools.com/images/left_arrow_icon.gif" + }, + 'release': { + "part of set": "http://web.archive.org/web/20060709091901/http://wiki.musicbrainz.org/-/musicbrainz/img/moin-inter.png", + "remaster": "http://web.archive.org/web/20060708200714/http://wiki.musicbrainz.org/-/musicbrainz/img/moin-www.png", + } +}; + +var incOptions = { + 'release-group': [ 'release-group-rels', 'url-rels' ], + 'release': [ 'release-rels', 'url-rels', 'discids' ], + 'recording': [ 'work-rels' ], + 'work': [ 'url-rels' ] +}; + +// prevent JQuery conflicts, see http://wiki.greasespot.net/@grant +this.$ = this.jQuery = jQuery.noConflict(true); + +if (!unsafeWindow) unsafeWindow = window; + +$(document).ready(function(){ + + // Get pageType (label or artist) + var parent = new Object(); + var child = new Object(); + if (m = window.location.href.match("\/artist\/(.{36})[^\/]*$")) { + parent.type = 'artist'; + parent.mbid = m[1]; + child.type = 'release-group'; + } else if (m = window.location.href.match("\/(release-group|label)\/(.{36})$")) { + parent.type = m[1]; + parent.mbid = m[2]; + child.type = 'release'; + } else if (m = window.location.href.match("\/artist/(.{36})\/(releases|recordings|works)")) { + parent.type = 'artist'; + parent.mbid = m[1]; + child.type = m[2].replace(/s$/, ''); + } else { + // Not supported + return; + } + + var mbidRE = /(release|release-group|work)\/([a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12})/; + + // Determine target column + var columnindex = 0; + $("table.tbl tbody tr[class!='subh']").each(function() { + $(this).children("td").each(function() { + if ($(this).find("a").attr("href") !== undefined && $(this).find("a").attr("href").match(mbidRE)) { return false }; + columnindex++; + }); + return false; + }); + + // Set MBID to row in tables to get easiest fastest access + $("table.tbl tr[class!='subh']").each(function() { + var $tr = $(this); + + $tr.children("th:eq("+columnindex+")").after("Relationships"); + $tr.children("td:eq("+columnindex+")").after(""); + + $(this).find("a").each(function() { + var href = $(this).attr("href"); + if (m = href.match(mbidRE)) { + $tr.attr("id", m[2]); + return false; + } + }); + }); + + // Call the MB webservice + var url = '/ws/2/' + child.type + '?' + parent.type + "=" + parent.mbid + '&inc=' + incOptions[child.type].join("+") + '&limit=100'; + mylog('wsurl: ' + url); + + $.get(url, function(data, textStatus, jqXHR) { + + // Parse each child + $(data).find(child.type).each(function() { + var mbid = $(this).attr("id"); + + // URL relationships + $(this).find("relation-list[target-type='url'] relation").each(function() { + var reltype = $(this).attr("type"); + var target = $(this).children("target").text(); + if (relationsIconsURLs['url'].hasOwnProperty(reltype)) { + $("#" + mbid + " td.relationships").append( + "" + + " " + + "" + ); + } + }); + + // Other relationships + $(this).find("relation-list[target-type!='url']").each(function() { + var targettype = $(this).attr("target-type").replace("release_group", "release-group"); + var relations = {}; + + $(this).children("relation").each(function() { + var reltype = $(this).attr("type"); + var target = $(this).children("target").text(); + var url = (targettype == 'url') ? target : "/" + targettype + "/" + target; + + if (relationsIconsURLs[targettype].hasOwnProperty(reltype)) { + + if (!relations.hasOwnProperty(reltype)) relations[reltype] = [url]; + else relations[reltype].push(url); + } + }); + + $.each(relations, function(reltype, urls) { + var html = ""; + if (urls.length < -1) { + html += "(" + urls.length + ") " + } else { + $.each(urls, function(index, url) { + html += " "; + }); + } + $("#" + mbid + " td.relationships").append(html); + + }); + }); + + }); + + }); + +}); + +function mylog(text) { + if (unsafeWindow.console) { + unsafeWindow.console.log(text); + } +}