Schallplatten digitalisieren finde ich recht mühsam, aber es macht verdammt viel Laune. Andererseits, warum aus analog digital machen, wenn das schon andere gemacht haben. Jeder gute Mensch verwaltet seine Plattensammlung online bei Discogs, und bei vielen Blogspot-Blogs kann man Musik herunterladen, man muss sie nur finden.
Lange Rede, kurzer Sinn. Mein Skript bastelt unter jedes Release auf Discogs einen direkten Link zur Google-Suche nach Blogs, die evtl. einen Download zu dem Release enthalten könnten. Das sieht wie folgt aus.
Zunächst das Release auf Discogs suchen und finden:
City Rats, eine israelische Punkband |
Google ist dein Freund |
Achso, das Skript, kommt gleich, nur der Hinweis, man kann das natürlich eleganter programmieren und so, aber es tut, was es soll. Verbesserungsvorschläge und alles, gerne an mich.
// ==UserScript== // @name Discogs2BlogspotSearch // @namespace http://www.jmizv.de/ // @description Adds a link to Discogs releases to search them on Blogspot pages. // @include http://www.discogs.com/*release* // ==/UserScript== function addLink(artist, title) { var srch, el; srch = document.evaluate('//div[@class="profile"]/h1', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for(var i = 0 ; i < srch.snapshotLength; i++) { el = srch.snapshotItem(i); break; } el = el.parentNode; artist = artist.trim().replace(/\s+/g, "+"); title = title.replace(/\s+/g, "+"); var nuEl = document.createElement("div"); var aEl = document.createElement("a"); var textEl = document.createTextNode("Search@Blogspots"); nuEl.appendChild(aEl); aEl.setAttribute("href", "https://www.google.de/search?q=site:blogspot.com+"+artist+"+"+title); aEl.appendChild(textEl); el.appendChild(nuEl); } function getText( obj ) { return obj.textContent ? obj.textContent : obj.innerText; } function getTextContent(xpath){ var name, ths, result; name = document.evaluate(xpath,document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for(var i = 0; i < name.snapshotLength; i++) { ths = name.snapshotItem(i); result = getText(ths); break; } return result; } addLink( getTextContent('//span[@itemprop="byArtist"]/span/a/text()'), getTextContent('//div[@class="profile"]/h1/span[@itemprop="name"]/text()') );