HEX
Server: Apache/2.4.29 (Ubuntu)
System: Linux instance-1 5.4.0-1092-gcp #101~18.04.1-Ubuntu SMP Mon Oct 17 18:29:06 UTC 2022 x86_64
User: web202 (5061)
PHP: 8.1.14
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, exec, shell_exec, system, passthru, proc_open, proc_close, popen, parse_ini_file, show_source
Upload Files
File: /data0/www/clients/client33/web202/web/wp-content/plugins/virusdie/assets/js/vdws-scanner.js
const vdCircle = () => {
  let Bar = new ProgressBar.Circle("#progress", {
    color: "#00B083",
    strokeWidth: 10,
    duration: 3000,
    trailColor: "#EEEEEE",
    trailWidth: 10,
    svgStyle: null,
    easing: "easeInOut",
    from: {
      color: "#00B083",
    },
    to: {
      color: "#00B083",
    },
    text: {
      value: "",
      alignToBottom: false,
    },
    step(state, bar) {
      bar.path.setAttribute("stroke", state.color);
      var value = Math.round(bar.value() * 100);
      if (value === 0) {
        bar.setText("0%");
      } else {
        bar.setText(value + "%");
      }
      bar.text.style.color = state.color;
    },
  });
  Bar.path.style.strokeLinecap = "round";
  Bar.text.style.fontFamily = "'Open Sans', sans-serif";
  Bar.text.style.fontSize = "2rem";
  return Bar;
};

const startScan = () => {
  const request = new XMLHttpRequest();
  request.open("POST", VDWS_VIRUSDIE_AJAX_URL, true);
  request.setRequestHeader(
    "Content-type",
    "application/x-www-form-urlencoded; charset=UTF-8"
  );
  request.addEventListener("readystatechange", () => {
    if (request.readyState === 4 && request.status === 200) {
      if (!request.responseText) {
        checkScan(false);
      }
    }
  });
  request.send("action=virusdie_start_scan");
};

const checkScan = (success) => {
  if (success) {
    document.querySelector("a.vd-learn-more").innerHTML = "Go to dashboard";
    setTimeout(() => location.replace(location.href + "&scanned"), 5e3);
  } else {
    location.replace(location.href + "&scan-error");
  }
};

const checkProgress = () => {
  return new Promise((resolve) => {
    const request = new XMLHttpRequest();
    request.open("POST", VDWS_VIRUSDIE_AJAX_URL, true);
    request.setRequestHeader(
      "Content-type",
      "application/x-www-form-urlencoded; charset=UTF-8"
    );
    request.addEventListener("readystatechange", () => {
      if (request.readyState === 4 && request.status === 200) {
				resolve(+request.responseText);
			}
    });
    request.send("action=virusdie_get_progress");
  });
};

var vdBar;

const updateScanPercent = (percent) => {
  if (vdBar) {
    if (percent === 0) vdBar.set(percent);
    else vdBar.animate(percent);
  }
};

document.addEventListener("DOMContentLoaded", () => {
  let timerId = setInterval(() => {
    vdBar = vdCircle();
    startScan();
    clearTimeout(timerId);
    const progressIntervalId = setInterval(() => {
      checkProgress().then((progress) => {
				updateScanPercent(progress / 100)
				if (progress === 100) location.reload();
			});
    }, 10000);
  }, 100);
});