Sleazy Fork is available in English.
Resizes pics on Sankaku beta to full window size when you touch the left side of the window with your cursor. Uses the Magic Kernel Sharp algorithm for scaling.
// ==UserScript==
// @name Scale Sankaku Beta
// @version 0.1.3
// @description Resizes pics on Sankaku beta to full window size when you touch the left side of the window with your cursor. Uses the Magic Kernel Sharp algorithm for scaling.
// @author Octopus Hugger
// @icon https://s2.googleusercontent.com/s2/favicons?domain=https://beta.sankakucomplex.com/
// @grant GM_xmlhttpRequest
// @connect *
// @match *://beta.sankakucomplex.com/*
// @license WTFPL
// @require https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.2.0/js/bootstrap.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/lie/3.1.1/lie.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/pica/9.0.1/pica.min.js
// @namespace https://greasyfork.org/users/879890
// ==/UserScript==
// Changelog
// 0.1.3
// Improved text readout.
// 0.1.2
// Updated description and changelog and decreased rate of checking for Imagus.
// 0.1.1
// Fixed issue where the feature to always load original after it's been loaded at least once sometimes didn't work.
(function() {
'use strict';
if (window.top != window.self){ //-- Don't run on frames or iframes
return;
}
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
function base64img(i){
let canvas = document.createElement('canvas');
canvas.width = i.width;
canvas.height = i.height;
let context = canvas.getContext("2d");
context.drawImage(i, 0, 0);
let blob = canvas.toDataURL("image/png");
return blob;
}
function ImgToCanvas(i){
let canvas = document.createElement('canvas');
canvas.width = i.width;
canvas.height = i.height;
let context = canvas.getContext("2d");
context.drawImage(i, 0, 0);
return canvas;
}
let resizer;
let resizer_mode = {
js: true,
wasm: true,
cib: false,
ww: true
};
function create_resizer() {
let opts = [];
Object.keys(resizer_mode).forEach(function (k) {
if (resizer_mode[k]) opts.push(k);
});
resizer = window.pica({ features: opts });
}
create_resizer();
let cancelactiveresizes;
let cancelresize = new Promise((_, reject) => cancelactiveresizes = reject);
let currentpic = "null?"
let maindiv = null
let savedwidth = null
let imagestore = {}
let mainimg = null
let towindowsize = false
let mydiv = null
let imgfirstload = true
let purgewaittime = 15000
function purgeimage(linkvar){
if (currentpic !== linkvar&&linkvar!=inprogress){
delete imagestore[linkvar]
}
else{
imagestore[linkvar+"myexpire"] = setTimeout(purgeimage,purgewaittime,linkvar)
}
}
function getSankImageType(linkvar){
if(linkvar==null||linkvar==undefined) return null
if(linkvar.search("preview")!==-1){
return "Thumbnail"
}
else if(linkvar.search("sample")!==-1){
return "Sample"
}
else {
return "Original"
}
}
let imagereadoutcount = 0
let readoutlinkvar=null
function imagereadout(inputtext,w,linkvar,editnumber){
if(linkvar!==null&&linkvar!==undefined&&linkvar!=="null?"){
if(readoutlinkvar!==null&&linkvar!==readoutlinkvar){
return
}
if(inputtext=="Waiting for server"&&getSankImageType(linkvar)=="Original") return
}
if(imagereadoutcount>=50&&inputtext!=="Scaling Complete"){
clearimagereadout()
if(linkvar.search("sankakucomplex.com")!==-1){
imagereadout(getSankImageType(linkvar),w,linkvar)
}
}
let currentreadout
if(editnumber!==undefined&&editnumber!==null){
currentreadout = imagereadoutcount
}
else{
imagereadoutcount+=1
currentreadout = imagereadoutcount
}
let readouttext = document.createElement("readouttext"+currentreadout)
readouttext.id = "readouttext"+currentreadout
readouttext.style.pointerEvents="none"
readouttext.style.backgroundColor="black"
readouttext.style["border-color"]="black"
if(inputtext=="Original") {
readouttext.style.backgroundColor="#F70DFF"
readouttext.style["border-color"]="#F70DFF"
}
else if(inputtext=="Sample") {
readouttext.style.backgroundColor="#1C37FF"
readouttext.style["border-color"]="#1C37FF"
}
else if(inputtext=="Thumbnail") {
readouttext.style.backgroundColor="#FF0000"
readouttext.style["border-color"]="#FF0000"
}
readouttext.style.color="white"
readouttext.style["border-style"]="solid"
readouttext.innerText=inputtext
if(document.getElementById('readouttext'+currentreadout) !== null){
document.getElementById('mydiv').replaceChild(readouttext,document.getElementById('readouttext'+currentreadout))
}
else{
document.getElementById('mydiv').appendChild(readouttext)
}
if(w==window.innerWidth||imagereadoutcount>1&&document.getElementById('readouttext'+(imagereadoutcount-1)).offsetLeft>=0){
if(imagereadoutcount>1&&document.getElementById('readouttext'+(imagereadoutcount-1)).offsetLeft<0){
for(let i=1;i<imagereadoutcount;i++){
document.getElementById('readouttext'+i).style.position="relative"
document.getElementById('readouttext'+i).style.top="-20px"
document.getElementById('readouttext'+i).style.left=(3*(i-1)+"px")
}
}
readouttext.style.position="relative"
readouttext.style.top="-20px"
readouttext.style.left=(3*(imagereadoutcount-1)+"px")
}
else{
if(imagereadoutcount>1&&document.getElementById('readouttext'+(imagereadoutcount-1)).offsetLeft>=0){
for(let i=1;i<imagereadoutcount;i++){
document.getElementById('readouttext'+i).style.position="absolute"
let down = 0
for(let u=1;u<i;u++) down+=Math.floor(document.getElementById('readouttext'+u).getBoundingClientRect().height)
document.getElementById('readouttext'+i).style.left="-"+Math.floor(document.getElementById('readouttext'+i).getBoundingClientRect().width)+"px"
document.getElementById('readouttext'+i).style.top=((i-1)*2)+down+"px"
}
}
readouttext.style.position="absolute"
let down = 0
for(let i=1;i<imagereadoutcount;i++) down+=Math.floor(document.getElementById('readouttext'+i).getBoundingClientRect().height)
readouttext.style.left="-"+(Math.floor(readouttext.getBoundingClientRect().width))+"px"
readouttext.style.top=((imagereadoutcount-1)*(2))+down+"px"
}
}
function clearimagereadout(){
if (imagereadoutcount>0){
for (let i=1;i<=imagereadoutcount;i++){
document.getElementById('readouttext'+i).setAttribute("style","display:none")
}
imagereadoutcount=0
readoutlinkvar=null
}
}
function resizenow(linkvar,width,height){
cancelactiveresizes();
let cancelresize = new Promise((_, reject) => cancelactiveresizes = reject);
if(towindowsize){
if (window.innerWidth/imagestore[linkvar].width<window.innerHeight/imagestore[linkvar].height){
height=Math.round(imagestore[linkvar].height*window.innerWidth/imagestore[linkvar].width)
width=window.innerWidth
}
else{
width=Math.round(imagestore[linkvar].width*window.innerHeight/imagestore[linkvar].height)
height=window.innerHeight
}
}
let imgbtmp = null
let imgCanvas = document.createElement("canvas"),
imgContext = imgCanvas.getContext("2d");
imgCanvas.width=Math.round(width);
imgCanvas.height=Math.round(height);
imgContext.drawImage(imagestore[linkvar], 0, 0, imgCanvas.width, imgCanvas.height);
let options = {cancelToken: cancelresize}
let starttime = Date.now()
resizer.resize(imagestore[linkvar], imgCanvas, options)
.then(function () {
imgCanvas.style.zIndex = 2147483648
imgCanvas.style.visibility = "visible";
imgCanvas.style.position="absolute";
imgCanvas.style.pointerEvents="none";
imgCanvas.style["box-shadow"]="0 0 100px black";
if(towindowsize){
if(mydiv==null){
mydiv=document.createElement('div')
mydiv.width="100%"
mydiv.height="100%"
}
mydiv.style.top=Math.round(getScrollTop()+window.innerHeight/2-height/2)+"px";
if(bigscreensankaku&&width>=window.innerWidth-280){
mydiv.style.left=Math.round((window.innerWidth-280)/2-width/2+280-(width-(window.innerWidth-280))/2)+"px";
}
else if(bigscreensankaku){
mydiv.style.left=Math.round((window.innerWidth-280)/2-width/2+280)+"px";
}
else{
mydiv.style.left=Math.round(window.innerWidth/2-width/2)+"px";
}
mydiv.id="mydiv"
mydiv.style.boxSizing="content-box"
mydiv.style.zIndex = 2147483648
mydiv.style.visibility = "visible";
mydiv.style.position="absolute";
mydiv.style.pointerEvents="none";
mydiv.style.display = "block"
let scaletime = Date.now()-starttime
if (scaletime < 1000){
imagereadout("Scaling Complete "+(scaletime)+"ms",width,null,2)
}
else if (scaletime <10000){
imagereadout("Scaling Complete "+(Math.round(scaletime/100)/10)+"s",width,null,2)
}
else{
imagereadout("Scaling Complete "+(Math.round(scaletime/1000))+"s",width,null,2)
}
if(document.getElementById('upscaledimgcanvas2') !== null){
mydiv.replaceChild(imgCanvas,document.getElementById('upscaledimgcanvas2'));
}
else{
document.body.parentNode.insertBefore(mydiv,null);
mydiv.insertBefore(imgCanvas,null);
}
imgCanvas.id="upscaledimgcanvas2";
setlast=2
}
else{
if(document.getElementById('upscaledimgcanvas') !== null){
maindiv.replaceChild(imgCanvas,document.getElementById('upscaledimgcanvas'));
}
else{
maindiv.insertBefore(imgCanvas,maindiv.firstChild);
}
imgCanvas.id="upscaledimgcanvas";
setlast=1
}
inprogress="null?"
currentpic = linkvar
clearTimeout(imagestore[linkvar+"myexpire"])
imagestore[linkvar+"myexpire"]=setTimeout(purgeimage,purgewaittime,linkvar)
})
.catch(function (err) {
inprogress="null?"
throw err;
});
}
function checkfordiv(){
if (maindiv==null){
let divs = document.getElementsByTagName("div")
for (let div of divs) {
if (div.style.zIndex == 2147483647) {
clearInterval(divchecking)
maindiv = div
resize_ob.observe(maindiv);
}
}
}
}
function loop(){
if (maindiv.style.display !== "none") {
}
}
let downloadstarttime = null
let bigscreensankaku = false
let thingie = null
let inprogressh = null
let inprogressw = null
let originalbutton = null
let requestcount = 0
let lastinprogress
function isCanvas(i) {
return i instanceof HTMLCanvasElement;
}
function grabimg_and_resize(linkvar,w,h){
if(linkvar!==null &&linkvar!== undefined&&linkvar!== ""&&bigscreensankaku){
if (imagestore[linkvar+"myoriginal"]){
linkvar = imagestore[linkvar+"myoriginal"]
}
let linkvarsplit=null
if(linkvar.search("sample")!==-1){
linkvarsplit=linkvar.split("-")[1].split(".")[0]
}
else if(linkvar.search("preview")!==-1){
linkvarsplit=linkvar.split("/")[7].split(".")[0]
}
else{
linkvarsplit=linkvar.split("/")[6].split(".")[0]
}
let originalfound=false
for(let key in imagestore){
if(key.search("myexpire")==-1&&key.search("myoriginal")==-1&&key.search("preview")==-1){
let keysplit=null
if(key.search("sample")!==-1){
keysplit=key.split("-")[1].split(".")[0]
}
else{
keysplit=key.split("/")[6].split(".")[0]
}
if(key.search("sample")==-1){
if(linkvarsplit==keysplit){
linkvar = key
console.log("found previously saved original key | "+key)
originalfound=true
break
}
}
}
}
if(linkvar.search("sample")==-1&&linkvar.search("preview")==-1){
originalfound=true
}
if(!originalfound){
for(let key in imagestore){
if(key.search("myexpire")==-1&&key.search("myoriginal")==-1&&key.search("preview")==-1){
let keysplit=null
if(key.search("sample")!==-1){
keysplit=key.split("-")[1].split(".")[0]
}
else{
keysplit=key.split("/")[6].split(".")[0]
}
if(linkvarsplit==keysplit){
linkvar=key
break
}
}
}
}
}
towindowsize=false
if (bigscreensankaku||w<window.innerWidth && h<window.innerHeight && w==mainimg.naturalWidth || w<window.innerWidth && h<window.innerHeight && w>window.innerWidth-30 || w<window.innerWidth && h<window.innerHeight && h>window.innerHeight-30||bigscreensankaku){
if (window.innerWidth/w<window.innerHeight/h){
h=Math.round(h*window.innerWidth/w)
w=window.innerWidth
}
else{
w=Math.round(w*window.innerHeight/h)
h=window.innerHeight
}
towindowsize = true
}
if(linkvar!==null &&linkvar!== undefined&&linkvar!== ""&&linkvar.split("?")[0]==inprogress.split("?")[0]&&inprogressh==h&&inprogressw==w){
}
else if (linkvar==currentpic&&inprogressh==h&&inprogressw==w){
if(document.getElementById('mydiv')==null){
mydiv=document.createElement('div')
mydiv.width="100%"
mydiv.height="100%"
}
else{
mydiv = document.getElementById('mydiv')
if(document.getElementById('upscaledimgcanvas2')){
w=document.getElementById('upscaledimgcanvas2').width
h=document.getElementById('upscaledimgcanvas2').height
}
}
mydiv.style.top=Math.round(getScrollTop()+window.innerHeight/2-h/2)+"px";
if(bigscreensankaku&&w>=window.innerWidth-280){
mydiv.style.left=Math.round((window.innerWidth-280)/2-w/2+280-(w-(window.innerWidth-280))/2)+"px";
}
else if(bigscreensankaku){
mydiv.style.left=Math.round((window.innerWidth-280)/2-w/2+280)+"px";
}
else{
mydiv.style.left=Math.round(window.innerWidth/2-w/2)+"px";
}
mydiv.id="mydiv"
if(document.getElementById('mydiv') !== null){
if(setlast==2){
document.getElementById('mydiv').setAttribute("style","display: block;visibility: visible;z-index: 2147483647;box-sizing: content-box;position: absolute;pointer-events: none;top:"+document.getElementById('mydiv').style.top+";left:"+document.getElementById('mydiv').style.left+";")
document.getElementById('mydiv').style.top=Math.floor(getScrollTop()+window.innerHeight/2-h/2)+"px";
}
}
if(document.getElementById('upscaledimgcanvas') !== null){
if(setlast==1){
document.getElementById('upscaledimgcanvas').setAttribute("style","z-index: 2147483647;display:block;position:absolute;visibility:visible;")
}
}
}
else{
if(linkvar!==null &&linkvar!== undefined&&linkvar!== ""){
if(linkvar.search(".mp4")==-1&&linkvar.search(".webm")==-1&&linkvar.search(".flv")==-1){
if(inprogress.split("?")[0]!== linkvar.split("?")[0]){
cancelactiveresizes();
if(linkvar.search("sankakucomplex.com")!==-1){
let linkvarsplit
if(linkvar.search("sample")!==-1){
linkvarsplit=linkvar.split("-")[1].split(".")[0]
}
else if(linkvar.search("preview")!==-1){
linkvarsplit=linkvar.split("/")[7].split(".")[0]
}
else{
linkvarsplit=linkvar.split("/")[6].split(".")[0]
}
let lastinprogresssplit
if(lastinprogress&&lastinprogress!=="null?"){
if(lastinprogress.search("sample")!==-1){
lastinprogresssplit=lastinprogress.split("-")[1].split(".")[0]
}
else if(lastinprogress.search("preview")!==-1){
lastinprogresssplit=lastinprogress.split("/")[7].split(".")[0]
}
else{
lastinprogresssplit=lastinprogress.split("/")[6].split(".")[0]
}
}
}
if(towindowsize){
let tempimage = document.createElement('img');
tempimage.setAttribute("src", linkvar);
tempimage.width = Math.round(w)
tempimage.height = Math.round(h)
tempimage.style.zIndex = 2147483648
tempimage.style.visibility = "visible";
tempimage.style.position="absolute";
tempimage.style.pointerEvents="none";
tempimage.style["box-shadow"]="0 0 100px black";
if(document.getElementById('mydiv')==null){
mydiv=document.createElement('div')
mydiv.width="100%"
mydiv.height="100%"
}
else{
mydiv = document.getElementById('mydiv')
}
mydiv.style.top=Math.round(getScrollTop()+window.innerHeight/2-h/2)+"px";
if(bigscreensankaku&&w>=window.innerWidth-280){
mydiv.style.left=Math.round((window.innerWidth-280)/2-w/2+280-(w-(window.innerWidth-280))/2)+"px";
}
else if(bigscreensankaku){
mydiv.style.left=Math.round((window.innerWidth-280)/2-w/2+280)+"px";
}
else{
mydiv.style.left=Math.round(window.innerWidth/2-w/2)+"px";
}
mydiv.id="mydiv"
mydiv.style.boxSizing="content-box"
mydiv.style.zIndex = 2147483648
mydiv.style.visibility = "visible";
mydiv.style.position="absolute";
mydiv.style.pointerEvents="none";
mydiv.style.display = "block"
if(document.getElementById('mydiv')==null){
document.body.parentNode.insertBefore(mydiv,null);
}
if(document.getElementById('upscaledimgcanvas2') !== null){
mydiv.replaceChild(tempimage,document.getElementById('upscaledimgcanvas2'));
}
else{
mydiv.insertBefore(tempimage,null)
}
tempimage.id="upscaledimgcanvas2";
clearimagereadout()
if(linkvar.search("sankakucomplex.com")!==-1){
imagereadout(getSankImageType(linkvar),w,linkvar)
}
}
lastinprogress=linkvar
inprogress = linkvar
inprogressh=h
inprogressw=w
let spin =0
function spinselect(input){
if(input==1) return "-"
if(input==2) return "\\"
if(input==3) return "|"
if(input==4) return "/"
}
function loadFailed(){
imagereadout("Failed to load image",w)
}
if(linkvar.search(".gif")==-1){
if (imagestore[linkvar]==null||imagestore[linkvar]==undefined){
requestcount+=1
let startsource = linkvar
let starttime = Date.now()
downloadstarttime = Date.now()
setTimeout(function() {
imgfirstload = true
GM_xmlhttpRequest({
method: 'GET',
url: startsource,
responseType: 'blob',
onload: function(resp) {
let requesttime = Date.now()-downloadstarttime
if (requesttime < 1000){
imagereadout("Image Request "+(requesttime)+"ms",w,linkvar,2)
}
else if (requesttime <10000){
imagereadout("Image Request "+(Math.round(requesttime/100)/10)+"s",w,linkvar,2)
}
else{
imagereadout("Image Request "+(Math.round(requesttime/1000))+"s",w,linkvar,2)
}
imagereadout("Scaling... ",w)
starttime = Date.now()
if (resp.response.type !== "image/gif"){
const img = new Image()
img.onload = (event) => {
URL.revokeObjectURL(event.target.src)
imagestore[startsource] = document.createElement("canvas")
imagestore[startsource].width = img.width
imagestore[startsource].height = img.height
let ctx = imagestore[startsource].getContext("2d")
ctx.drawImage(event.target, 0, 0)
imagestore[startsource+"myexpire"]=setTimeout(purgeimage,purgewaittime,startsource)
if(mainimg!==null&&mainimg!==undefined){
if(startsource == mainimg.src && w!==imagestore[startsource].width) {
resizenow(linkvar,w,h);
}
else inprogress="null?"
}
if(thingie!==null){
if(startsource==thingie.src&&bigscreensankaku) {
resizenow(linkvar,w,h);
}
else inprogress="null?"
}
}
img.src = URL.createObjectURL(resp.response)
}
},
onerror: loadFailed,
onabort: loadFailed,
onprogress: function(){
spin+=1
imagereadout("Requesting Image "+spinselect(spin)+" ",w,linkvar,2)
if (spin>=4) spin=0
},
onloadstart: function(){
starttime = Date.now()
imagereadout("Requesting Image / ",w,linkvar)
}
});
}, 0);
}
else {
imagereadout("Scaling... ",w)
resizenow(linkvar,w,h);
}
}
else {
imagereadout("HQ Gif Scaling Not Supported")
inprogress="null?"
}
}
}
else{
cancelactiveresizes();
if(document.getElementById('mydiv') !== null){
if(document.getElementById('mydiv').style.display !== "none"){
document.getElementById('mydiv').setAttribute("style","display:none;top:"+document.getElementById('mydiv').style.top+";left:"+document.getElementById('mydiv').style.left+";")
}
}
if(document.getElementById('upscaledimgcanvas') !== null){
if(document.getElementById('upscaledimgcanvas').style.display !== "none" && document.getElementById('upscaledimgcanvas').style.display !== null){
document.getElementById('upscaledimgcanvas').setAttribute("style","display:none;top:"+document.getElementById('upscaledimgcanvas').style.top+";left:"+document.getElementById('upscaledimgcanvas').style.left+";")
}
}
}
}
else{
cancelactiveresizes();
if(document.getElementById('mydiv') !== null){
if(document.getElementById('mydiv').style.display !== "none"){
document.getElementById('mydiv').setAttribute("style","display:none;top:"+document.getElementById('mydiv').style.top+";left:"+document.getElementById('mydiv').style.left+";")
}
}
if(document.getElementById('upscaledimgcanvas') !== null){
if(document.getElementById('upscaledimgcanvas').style.display !== "none" && document.getElementById('upscaledimgcanvas').style.display !== null){
document.getElementById('upscaledimgcanvas').setAttribute("style","display:none;top:"+document.getElementById('upscaledimgcanvas').style.top+";left:"+document.getElementById('upscaledimgcanvas').style.left+";")
}
}
}
}
}
const resize_ob = new ResizeObserver(function(entries) {
if(bigscreensankaku==false){
cancelactiveresizes();
let rect = entries[0].contentRect;
let w = rect.width;
let h = rect.height;
if(document.getElementById('upscaledimgcanvas') !== null){
document.getElementById('upscaledimgcanvas').setAttribute("style","display:none;top:"+document.getElementById('upscaledimgcanvas').style.top+";left:"+document.getElementById('upscaledimgcanvas').style.left+";")
}
if(document.getElementById('upscaledimgcanvas2') !== null){
document.getElementById('mydiv').setAttribute("style","display:none;top:"+document.getElementById('mydiv').style.top+";left:"+document.getElementById('mydiv').style.left+";")
}
if (h !== 0){
if(mainimg == null){
function checkforimg(input){
for (let elem of input){
if (elem.nodeName.toLowerCase() == "img") {
return elem;
}
}
return "wtf didn't find img"
}
mainimg = checkforimg(Array.from(maindiv.children))
mainimg.style.position="relative";
mainimg.style.zIndex=2147483646
}
grabimg_and_resize(mainimg.src,w,h)
}
}
});
let divchecking = setInterval(checkfordiv,300)
function getScrollTop() {
if (typeof window.pageYOffset !== "undefined" ) {
return window.pageYOffset;
}
let d = document.documentElement;
if (typeof d.clientHeight !== "undefined") {
return d.scrollTop;
}
return document.body.scrollTop;
}
let lastthingietop = null
let setlast = 0
let thingietop = null
let inprogress = "null?"
const sankobservob = new MutationObserver(function(mutationsList, observer){
if (bigscreensankaku){
for (let elem of document.getElementsByClassName("swiper-slide swiper-slide-active")){
if (elem.className.endsWith("active")){
thingietop = elem
thingie = elem.firstChild.firstChild.firstChild.firstChild
if(thingie!==null&&thingie!==undefined){
sankobservob.disconnect()
sankobservob.observe(thingietop, {attributes: true});
psankobservob.disconnect()
psankobservob.observe(thingie, {attributes: true, attributeOldValue: true});
grabimg_and_resize(thingie.src,thingie.naturalWidth,thingie.naturalHeight)
break
}
}
}
lastthingietop = thingietop
}
})
const psankobservob = new MutationObserver(function(mutationsList, observer){
for(const mutation of mutationsList) {
if (mutation.type=='attributes'&&mutation.attributeName=="src"&&bigscreensankaku&&thingietop.firstChild.firstChild.firstChild.firstChild==thingie){
if(mutation.oldValue!==null&&mutation.oldValue!==undefined){
if (mutation.oldValue.search("sample")!==-1||mutation.oldValue.search("preview")!==-1){
if(thingie.src.search("sample")==-1&&thingie.src.search("preview")==-1){
imagestore[mutation.oldValue+"myoriginal"] = thingie.src
}
}
}
grabimg_and_resize(thingie.src,thingie.naturalWidth,thingie.naturalHeight)
}
}
})
const buttonob = new MutationObserver(function(){
originalbutton.click();
})
document.addEventListener('keydown', function (zEvent) {
if (zEvent.key == "m"){
if(document.getElementById('mydiv') !== null){
if(document.getElementById('mydiv').style.display !== "none"){
document.getElementById('mydiv').setAttribute("style","display:none;top:"+document.getElementById('mydiv').style.top+";left:"+document.getElementById('mydiv').style.left+";")
setlast = 2
}
else if(setlast==2){
document.getElementById('mydiv').setAttribute("style","display: block;visibility: visible;z-index: 2147483647;box-sizing: content-box;position: absolute;pointer-events: none;top:"+document.getElementById('mydiv').style.top+";left:"+document.getElementById('mydiv').style.left+";")
}
}
if(document.getElementById('upscaledimgcanvas') !== null){
if(document.getElementById('upscaledimgcanvas').style.display !== "none" && document.getElementById('upscaledimgcanvas').style.display !== null){
document.getElementById('upscaledimgcanvas').setAttribute("style","display:none;top:"+document.getElementById('upscaledimgcanvas').style.top+";left:"+document.getElementById('upscaledimgcanvas').style.left+";")
setlast = 1
}
else if(setlast==1){
document.getElementById('upscaledimgcanvas').setAttribute("style","z-index: 2147483647;display:block;position:absolute;visibility:visible;")
}
}
}
else if (zEvent.key == "n"){
bigscreensankaku = !bigscreensankaku
if (bigscreensankaku){
for (let elem of document.getElementsByClassName("swiper-slide swiper-slide-active")){
if (elem.className.endsWith("active")){
thingietop = elem
thingie = elem.firstChild.firstChild.firstChild.firstChild
if(thingie!==null&&thingie!==undefined){
sankobservob.disconnect()
sankobservob.observe(thingietop, {attributes: true});
psankobservob.disconnect()
psankobservob.observe(thingie, {attributes: true, attributeOldValue: true});
grabimg_and_resize(thingie.src)
break
}
}
}
}
else{
psankobservob.disconnect()
sankobservob.disconnect()
}
if(document.getElementById('mydiv') !== null){
if(document.getElementById('mydiv').style.display !== "none"){
document.getElementById('mydiv').setAttribute("style","display:none;top:"+document.getElementById('mydiv').style.top+";left:"+document.getElementById('mydiv').style.left+";")
}
}
}
else if(zEvent.key == "0"){
imagereadout("Waiting for server",null,inprogress!=="null?"?inprogress:currentpic)
let originalsearch = document.getElementsByName("post_mode")
if(originalsearch){
for (let i = 0; i < originalsearch.length; i++) {
if(originalsearch[i].getAttribute("value") == "original"){
if(window.getComputedStyle(originalsearch[i]).getPropertyValue('color') !== "rgb(255, 140, 0)") {
originalsearch[i].click();
originalbutton = originalsearch[i]
let textsearch =document.getElementsByClassName('MuiTypography-root')
}
}
}
}
}
});
let leftareasize = 20
document.addEventListener('click', function (e) {
if (e.button==0&&e.mozInputSource==1&&e.pageX <=leftareasize&&window.location.href.includes("/post/")){
let listofel = document.getElementsByClassName("MuiButtonBase-root MuiFab-root")
if(listofel){
for (let i = 0; i < listofel.length; i++) {
if(listofel[i].getAttribute("aria-label") == "Prev"){
listofel[i].click();
break
}
}
}
}
});
document.addEventListener('mousemove', e => {
if(window.location.href.includes("https://beta.sankakucomplex.com")){
if (e.pageX <=leftareasize&&!bigscreensankaku&&window.location.href.includes("/post/")){
bigscreensankaku = !bigscreensankaku
if (bigscreensankaku){
for (let elem of document.getElementsByClassName("swiper-slide swiper-slide-active")){
if (elem.className.endsWith("active")){
thingietop = elem
thingie = elem.firstChild.firstChild.firstChild.firstChild
if(thingie!==null&&thingie!==undefined){
sankobservob.disconnect()
sankobservob.observe(thingietop, {attributes: true});
psankobservob.disconnect()
psankobservob.observe(thingie, {attributes: true, attributeOldValue: true});
grabimg_and_resize(thingie.src,thingie.naturalWidth,thingie.naturalHeight)
}
}
}
}
}
else if(e.pageX >leftareasize&&bigscreensankaku){
bigscreensankaku = !bigscreensankaku
cancelactiveresizes();
psankobservob.disconnect()
sankobservob.disconnect()
if(document.getElementById('mydiv') !== null){
if(document.getElementById('mydiv').style.display !== "none"){
document.getElementById('mydiv').setAttribute("style","display:none;top:"+document.getElementById('mydiv').style.top+";left:"+document.getElementById('mydiv').style.left+";")
}
}
}
}
});
})();