new Javascript, this now fixes:
-
bugfix in original script using link.url, instead of the correct link.pathname
-
fixes VIDEO PLAYBACK
-
fixes video thumbnails
-
fixes catalog images
-
removes cache destroying code, which caused every image to avoid getting cached and thus more traffic for 8kun
-
only applies media hack fix for the media that need it (png, gif, mp3)
You MAY have to scroll a tiny bit for the fix to get applies, especially for video playback. I found no better way to do it, event is missing, maybe Jim will add an event for me to hook in.
{
// media fixer version 9/5/2021
// for videos (and possibly others) you may have to scroll a tiny bit
var loadListener = function() {
var links = Array.from(document.querySelectorAll('a'))
var imageLinks = links.filter(l =/.media.8kun.top./ig.test(l.href))
imageLinks.forEach(link ={
var pieces = link.pathname.split('/')
var filename = pieces[pieces.length-1]
var [hash, extension] = filename.split('.')
switch (extension) {
case "mp3":
case "png":
case "gif":
var href = ${link.href.replace("media.","sys.")}/${hash}.jpg
break;
case 'php':
if (hash == 'player') {
// special handling for video thumbnail
var videoplayer = link.search.match(/media.8kun.top\/file_store\/(\w{64})./i)
if (videoplayer) {
var href = "https://sys.8kun.top/file_store/thumb/"+videoplayer[1]+".jpg";
} else {
var href = link.url;
}
}
break;
default:
var href = ${link.href.replace("media.","sys.")}
break;
}
var imgs = link.querySelectorAll('img')
imgs.forEach(i =i.src = href)
link.href = href;
});
// fix videos
links = Array.from(document.querySelectorAll('video'))
var videoLinks = links.filter(l =/.media.8kun.top./ig.test(l.src))
videoLinks.forEach(link ={
var href = ${link.src.replace("media.","sys.")}
link.src = href;
});
// images in catalog do not have a href
links = Array.from(document.querySelectorAll('img'))
var imgLinks = links.filter(l =/.media.8kun.top./ig.test(l.src))
imgLinks.forEach(link ={
var href = ${link.src.replace("media.","sys.")}
link.src = href;
});
}
$(window).on('scroll', function (e, post) {
loadListener();
});
}