Add reverse proxy for local debugging
This commit is contained in:
@@ -1,42 +1,42 @@
|
||||
function Toolbar(viewer) {
|
||||
this.viewer = viewer
|
||||
this.visible = false
|
||||
this.sharebarVisible = false
|
||||
this.currentFile = null
|
||||
this.editWindow = null
|
||||
this.viewer = viewer
|
||||
this.visible = false
|
||||
this.sharebarVisible = false
|
||||
this.currentFile = null
|
||||
this.editWindow = null
|
||||
|
||||
this.views = 0
|
||||
this.downloads = 0
|
||||
this.statsWebsocket = null
|
||||
this.views = 0
|
||||
this.downloads = 0
|
||||
this.statsWebsocket = null
|
||||
|
||||
this.divToolbar = document.getElementById("toolbar")
|
||||
this.divFilePreview = document.getElementById("filepreview")
|
||||
this.downloadFrame = document.getElementById("download_frame")
|
||||
this.spanViews = document.getElementById("stat_views")
|
||||
this.spanDownloads = document.getElementById("stat_downloads")
|
||||
this.spanSize = document.getElementById("stat_size")
|
||||
this.divToolbar = document.getElementById("toolbar")
|
||||
this.divFilePreview = document.getElementById("filepreview")
|
||||
this.downloadFrame = document.getElementById("download_frame")
|
||||
this.spanViews = document.getElementById("stat_views")
|
||||
this.spanDownloads = document.getElementById("stat_downloads")
|
||||
this.spanSize = document.getElementById("stat_size")
|
||||
|
||||
this.btnToggleToolbar = document.getElementById("btn_toggle_toolbar")
|
||||
this.btnDownload = document.getElementById("btn_download")
|
||||
this.btnCopyLink = document.getElementById("btn_copy")
|
||||
this.spanCopyLink = document.querySelector("#btn_copy > span")
|
||||
this.btnShare = document.getElementById("btn_share")
|
||||
this.divSharebar = document.getElementById("sharebar")
|
||||
this.btnDownload = document.getElementById("btn_download")
|
||||
this.btnCopyLink = document.getElementById("btn_copy")
|
||||
this.spanCopyLink = document.querySelector("#btn_copy > span")
|
||||
this.btnShare = document.getElementById("btn_share")
|
||||
this.divSharebar = document.getElementById("sharebar")
|
||||
|
||||
this.btnToggleToolbar.addEventListener("click", () => { this.toggle() })
|
||||
this.btnDownload.addEventListener("click", () => { this.download() })
|
||||
this.btnCopyLink.addEventListener("click", () => { this.copyUrl() })
|
||||
this.btnShare.addEventListener("click", () => { this.toggleSharebar() })
|
||||
this.btnDownload.addEventListener("click", () => { this.download() })
|
||||
this.btnCopyLink.addEventListener("click", () => { this.copyUrl() })
|
||||
this.btnShare.addEventListener("click", () => { this.toggleSharebar() })
|
||||
}
|
||||
|
||||
Toolbar.prototype.setFile = function(file) {
|
||||
Toolbar.prototype.setFile = function (file) {
|
||||
this.currentFile = file
|
||||
this.spanSize.innerText = formatDataVolume(file.size, 3)
|
||||
|
||||
this.setStats()
|
||||
}
|
||||
|
||||
Toolbar.prototype.setStats = function() {
|
||||
Toolbar.prototype.setStats = function () {
|
||||
let size = this.currentFile.size
|
||||
|
||||
this.spanViews.innerText = "loading..."
|
||||
@@ -47,19 +47,19 @@ Toolbar.prototype.setStats = function() {
|
||||
}
|
||||
|
||||
this.statsWebsocket = new WebSocket(
|
||||
location.origin.replace(/^http/, 'ws')+"/api/file/"+this.currentFile.id+"/stats"
|
||||
location.origin.replace(/^http/, 'ws') + "/api/file/" + this.currentFile.id + "/stats"
|
||||
)
|
||||
this.statsWebsocket.onmessage = (msg) => {
|
||||
let j = JSON.parse(msg.data)
|
||||
console.debug("WS update", j)
|
||||
|
||||
this.views = j.views
|
||||
this.downloads = Math.round(j.bandwidth/size)
|
||||
this.downloads = Math.round(j.bandwidth / size)
|
||||
this.spanViews.innerText = formatThousands(this.views)
|
||||
this.spanDownloads.innerText = formatThousands(this.downloads)
|
||||
}
|
||||
this.statsWebsocket.onerror = (err) => {
|
||||
log.error("WS error", err)
|
||||
console.error("WS error", err)
|
||||
this.statsWebsocket.close()
|
||||
this.statsWebsocket = null
|
||||
|
||||
@@ -74,7 +74,7 @@ Toolbar.prototype.setStats = function() {
|
||||
}
|
||||
}
|
||||
|
||||
Toolbar.prototype.toggle = function() {
|
||||
Toolbar.prototype.toggle = function () {
|
||||
if (this.visible) {
|
||||
if (this.sharebarVisible) { this.toggleSharebar() }
|
||||
|
||||
@@ -90,7 +90,7 @@ Toolbar.prototype.toggle = function() {
|
||||
}
|
||||
}
|
||||
|
||||
Toolbar.prototype.toggleSharebar = function() {
|
||||
Toolbar.prototype.toggleSharebar = function () {
|
||||
if (navigator.share) {
|
||||
navigator.share({
|
||||
title: this.viewer.title,
|
||||
@@ -100,19 +100,19 @@ Toolbar.prototype.toggleSharebar = function() {
|
||||
return
|
||||
}
|
||||
|
||||
if(this.sharebarVisible){
|
||||
if (this.sharebarVisible) {
|
||||
this.divSharebar.style.left = "-8em"
|
||||
this.btnShare.classList.remove("button_highlight")
|
||||
this.sharebarVisible = false
|
||||
}else{
|
||||
} else {
|
||||
this.divSharebar.style.left = "8em"
|
||||
this.btnShare.classList.add("button_highlight")
|
||||
this.sharebarVisible = true
|
||||
}
|
||||
}
|
||||
|
||||
Toolbar.prototype.download = function() {
|
||||
if (captchaKey === "none" || captchaKey === ""){
|
||||
Toolbar.prototype.download = function () {
|
||||
if (captchaKey === "none" || captchaKey === "") {
|
||||
console.debug("Server doesn't support captcha, starting download")
|
||||
this.downloadFrame.src = this.currentFile.download_href
|
||||
return
|
||||
@@ -140,7 +140,7 @@ Toolbar.prototype.download = function() {
|
||||
// Set the callback function
|
||||
recaptchaCallback = token => {
|
||||
// Download the file using the recaptcha token
|
||||
this.downloadFrame.src = this.currentFile.download_href+"&recaptcha_response="+token
|
||||
this.downloadFrame.src = this.currentFile.download_href + "&recaptcha_response=" + token
|
||||
this.captchaModal.close()
|
||||
}
|
||||
|
||||
@@ -158,25 +158,25 @@ Toolbar.prototype.download = function() {
|
||||
console.debug("Showing rate limiting captcha")
|
||||
showCaptcha(
|
||||
"Rate limiting enabled!",
|
||||
"This file is using a suspicious amount of bandwidth relative "+
|
||||
"to its popularity. To continue downloading this file you "+
|
||||
"This file is using a suspicious amount of bandwidth relative " +
|
||||
"to its popularity. To continue downloading this file you " +
|
||||
"will have to prove that you're a human first.",
|
||||
)
|
||||
} else if (this.currentFile.availability === "virus_detected_captcha_required") {
|
||||
console.debug("Showing virus captcha")
|
||||
showCaptcha(
|
||||
"Malware warning!",
|
||||
"According to our scanning systems this file may contain a "+
|
||||
"virus of type '"+this.currentFile.availability_name+"'. You "+
|
||||
"can continue downloading this file at your own risk, but you "+
|
||||
"According to our scanning systems this file may contain a " +
|
||||
"virus of type '" + this.currentFile.availability_name + "'. You " +
|
||||
"can continue downloading this file at your own risk, but you " +
|
||||
"will have to prove that you're a human first.",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Toolbar.prototype.copyUrl = function() {
|
||||
if(copyText(window.location.href)) {
|
||||
Toolbar.prototype.copyUrl = function () {
|
||||
if (copyText(window.location.href)) {
|
||||
console.log('Text copied')
|
||||
this.spanCopyLink.innerText = "Copied!"
|
||||
this.btnCopyLink.classList.add("button_highlight")
|
||||
@@ -194,9 +194,9 @@ Toolbar.prototype.copyUrl = function() {
|
||||
}
|
||||
|
||||
// Called by the google recaptcha script
|
||||
let recaptchaElement = null
|
||||
let recaptchaElement = null
|
||||
let recaptchaCallback = null
|
||||
function loadCaptcha(){
|
||||
function loadCaptcha() {
|
||||
grecaptcha.render(recaptchaElement, {
|
||||
sitekey: captchaKey,
|
||||
theme: "dark",
|
||||
|
Reference in New Issue
Block a user