52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
// ==UserScript==
|
|
// @name The Old New Thing URL Rewriter
|
|
// @author Michael Becker <alcexhim@gmail.com>
|
|
// @version 1
|
|
// @grant none
|
|
// @include https://devblogs.microsoft.com/oldnewthing/*
|
|
// ==/UserScript==
|
|
|
|
var config = {
|
|
"patterns": [
|
|
{
|
|
"find": "blogs.msdn.microsoft.com",
|
|
"replaceWith": "devblogs.microsoft.com"
|
|
},
|
|
{
|
|
"find": "blogs.msdn.com/b/oldnewthing/archive",
|
|
// "redirectTo": "https://web.archive.org/*/http://%1"
|
|
redirectTo: function (originalUrl) {
|
|
var parts = originalUrl.split('/');
|
|
if (parts.length > 8) {
|
|
var datetime = parts[6] + parts[7] + parts[8];
|
|
return "https://web.archive.org/web/" + datetime + "000000/" + originalUrl;
|
|
}
|
|
return originalUrl;
|
|
}
|
|
}
|
|
]
|
|
}
|
|
|
|
window.addEventListener("load", function()
|
|
{
|
|
var links = document.getElementsByTagName("A");
|
|
console.log(links.length + " links found");
|
|
for (var i = 0; i < links.length; i++)
|
|
{
|
|
for (var j = 0; j < config.patterns.length; j++) {
|
|
if (links[i].href.indexOf(config.patterns[j].find) !== -1) {
|
|
if (typeof (config.patterns[j].replaceWith) === 'string') {
|
|
links[i].href = links[i].href.replace(config.patterns[j].find, config.patterns[j].replaceWith);
|
|
}
|
|
else if (typeof (config.patterns[j].redirectTo) === 'string') {
|
|
links[i].href = config.patterns[j].redirectTo.replace('%1', links[i].href);
|
|
}
|
|
else if (typeof (config.patterns[j].redirectTo) === 'function') {
|
|
links[i].href = config.patterns[j].redirectTo(links[i].href);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
});
|