Volafile Upload-Helper

Helps Volafile users avoid certain problematic servers when uploading files, shows what server each file was uploaded to on hover, and allows raising the parallel-upload limit, up to 10.

Author
Arnold François Lecherche
Daily installs
0
Total installs
3
Ratings
0 0 0
Version
1.01
Created
2021-05-10
Updated
2021-05-10
License
N/A
Applies to

This allows you to see keep from uploading large files (more than a million bytes) to Volafile servers that have gotten slow lately; it also allows you to see which server any file has been uploaded to by hovering over it, and to set the maximum number of parallel uploads, up to 10.

Alternatively, you can make this a bookmarklet; just bookmark this very page, change the bookmark's title to "Volafile Upload-Helper", and change its URL to this:

javascript:(function(w%2Cd%2CM)%7B%27use%20strict%27%3Bvar%20a%3Dfalse%2Cdlcss%3Dd.createElement(%27style%27)%2CnbRegEx%3D%2F%5E(%3F%3A%5Ba-zA-Z0-9-%5D%7B3%2C%7D%2C)*%5Ba-zA-Z0-9-%5D%7B3%2C%7D%7Cnone%24%7C%5E%24%2F%2CcommasRegExp%3D%2F%2C%2B%24%2F%2CcommaRegExp%3D%2F%2C%2Fg%2CextRegExp%3D%2F%5C..%2B%2F%2Cc%2Culmenu%2Cub%2Cr%2Cex%2Cup%2Cftt%2Ck%3Bfunction%20getStatusText(t)%7Bvar%20server%2Cname%2Cblocklist%2Cdl%2Cdlclass%3Bif(this.upload.currentAttempt%26%26this.upload.currentAttempt.info%26%26this.upload.file.size%3E1e3)%7Bserver%3Dthis.upload.currentAttempt.info.server%3Bname%3Dthis.file.dom.nameElement%3Bblocklist%3Dnew%20RegExp((c.ulblock%7C%7C%27none%27).replace(commasRegExp%2C%27%27).replace(commaRegExp%2C%27%5C%5C%5C.%7C%27)%2B%27%5C%5C%5C.%27)%3Bif(blocklist.test(server.replace(extRegExp%2C%27.%27)))%7Bthis.upload.tries-%3D0.9%3Bname.className%3D%27file_name%27%3Bthis.upload.currentAttempt.abort()%7Delse%7Bdl%3Dthis.upload.currentAttempt.info.server.replace(extRegExp%2C%27%27)%3Bdlclass%3D%27dl_%27%2Bdl%3Bif(!name.classList.contains(%27dlnum%27))%7Bname.classList.add(%27dlnum%27%2Cdlclass)%3Bif(dlcss.textContent.indexOf(dlclass)%3D%3D%3D-1)dlcss.textContent%2B%3D%27%5Cn.%27%2Bdlclass%2B%27%3Aafter%7Bcontent%3A%22%20%5Cu2022%20%27%2Bdl%2B%27%5CxA0%22%7D%27%7D%7D%7Dreturn%20this.getStatusText_2(t)%7Dfunction%20remove()%7Bif(%27undefined%27%3D%3D%3Dtypeof%20e)return%3Be.removeTimeout%3Dnull%3Be.forceRemove()%7Dfunction%20setRemoveTimeout(t)%7Bif(this.error)%7Bthis.file.dom.nameElement.innerHTML%2B%3D%27%20%26bull%3B%20%5B%3Cb%3EUPLOAD%20FAILED%3C%2Fb%3E%5D%27%3Breturn%7Dif(this.removeTimeout)w.clearTimeout(this.removeTimeout)%3Bthis.removeTimeout%3Dw.setTimeout(remove%2Ct)%7Dfunction%20isUploading()%7Bvar%20uppy%3D%5Bup.uploadQueue.uploadQueue%2Cup.runningUploads%5D%2Ci%3Duppy.length%2Cj%3Bwhile(i--)%7Bj%3Duppy%5Bi%5D.length%3Bwhile(j--)%7Buppy%5Bi%5D%5Bj%5D.getStatusText_2%3Duppy%5Bi%5D%5Bj%5D.getStatusText_2%7C%7Cuppy%5Bi%5D%5Bj%5D.getStatusText%3Buppy%5Bi%5D%5Bj%5D.getStatusText%3DgetStatusText%3Buppy%5Bi%5D%5Bj%5D.setRemoveTimeout%3DsetRemoveTimeout%7D%7Dreturn%20this.runningUploads.length%3E0%7C%7Cthis.uploadQueue.length()%3E0%7Dfunction%20addFileInfo(t%2Ce)%7Bvar%20dl%2Cdlclass%2Ca%2Cname%3Bif(e%26%26e.id%26%26e.thumb)%7Bdl%3De.thumb.server.replace(extRegExp%2C%27%27)%3Bdlclass%3D%27dl_%27%2Bdl%3Ba%3Dt.layout.elem%3Bname%3Da.querySelector(%27.file_name%27)%3Bif(name%26%26!name.classList.contains(%27dlnum%27))%7Bname.classList.add(%27dlnum%27%2Cdlclass)%3Bif(dlcss.textContent.indexOf(dlclass)%3D%3D%3D-1)dlcss.textContent%2B%3D%27%5Cn.%27%2Bdlclass%2B%27%3Aafter%7Bcontent%3A%22%20%5Cu2022%20%27%2Bdl%2B%27%5CxA0%22%7D%27%7D%7Dthis.addFileInfo_2(t%2Ce)%7Dfunction%20set_mcu()%7Bvar%20mcu%3DM.floor(prompt(%27config.max_concurrent_uploads%27%2Cc.max_concurrent_uploads))%3Bif(mcu!%3Dmcu%7C%7Cmcu%3C1%7C%7Cmcu%3E10)return%3Bthis.innerText%3D%27%E2%AE%85%20%27%2B(c.max_concurrent_uploads%3Dmcu)%7Dfunction%20set_block()%7Bvar%20block%3Dprompt(%27Enter%20a%20comma-separated%20list%20of%20server%20prefixes%20to%20block%2C%20e.g.%20%22dl8%22%20or%20%22dl7%2Cdl8%22%20(without%20quotes).%27%2Cc.ulblock)%3Bif(block%3D%3D%3Dnull%7C%7Cblock%3D%3D%3Dfalse%7C%7C!nbRegEx.test(block))return%3Bthis.innerText%3D%27%E2%A6%B8%20%27%2B(c.ulblock%3Dblock)%7Dfunction%20init()%7Bif(a)return%20k%26%26w.clearInterval(k)%3Belse%20k%3Dk%7C%7Cw.setInterval(init%2C1e3)%3Bc%3Dw.config%3Bif(!c)return%3Bulmenu%3Dd.getElementById(%27ulmenu%27)%7C%7Cd.createElement(%27div%27)%3Br%3Dw.RoomInstance%3Bif(!r)return%3Bex%3Dr.extensions%3Bup%3Dex.upload%3Bup.isUploading%3DisUploading%3Bftt%3Dex.fileTooltips%3Bftt.addFileInfo_2%3Dftt.addFileInfo_2%7C%7Cftt.addFileInfo%3Bftt.addFileInfo%3DaddFileInfo%3Bulmenu.id%3D%27ulmenu%27%3Bulmenu.setAttribute(%27style%27%2C%27display%3Ainline-block%3Bfont-size%3A0.9em%27)%3Bulmenu.innerHTML%3D%27%3Ca%20class%3D%22button%22%20id%3D%22ul_mcu%22%20title%3D%22set%20max%20concurrent%20uploads%22%3E%E2%AE%85%3C%2Fa%3E%20%3Ca%20class%3D%22button%22%20id%3D%22ul_block%22%20title%3D%22set%20upload%20blacklist%22%3E%E2%A6%B8%3C%2Fa%3E%20%26nbsp%3B%27%3Bub%3Dd.getElementById(%27upload_container%27)%3Bub.insertBefore(ulmenu%2Cub.firstChild)%3Bd.getElementById(%27ul_mcu%27).addEventListener(%27click%27%2Cset_mcu%2Cfalse)%3Bd.getElementById(%27ul_block%27).addEventListener(%27click%27%2Cset_block%2Cfalse)%3Ba%3Dtrue%3Bif(k)w.clearInterval(k)%7Ddlcss.textContent%3D%27.dlnum%3Aafter%7Bfont-style%3Aitalic%3Bopacity%3A0.5%7D%27%3Bd.documentElement.appendChild(dlcss)%3Binit()%3Bd.addEventListener(%27DOMContentLoaded%27%2Cinit%2Cfalse)%3Bw.addEventListener(%27load%27%2Cinit%2Cfalse)%7D)(window%2Cdocument%2CMath)


Then click the bookmarklet while in any room where you want to see where you left off.