⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preffuncs.js

📁 属性sosuo算法
💻 JS
字号:
var pybridge = Components.classes["@participatoryculture.org/dtv/pybridge;1"].
                getService(Components.interfaces.pcfIDTVPyBridge);

var originalMoviesDir = null;

function onload() {
  document.getElementById("runonstartup").checked = pybridge.getRunAtStartup();
  setCheckEvery(pybridge.getCheckEvery());
  setMoviesDir(pybridge.getMoviesDirectory());
  originalMoviesDir = pybridge.getMoviesDirectory();
  setLimitUpstream(pybridge.getLimitUpstream());
  setMaxUpstream(pybridge.getLimitUpstreamAmount());
  setMaxManual(pybridge.getMaxManual());
  setHasMinDiskSpace(pybridge.getPreserveDiskSpace());
  setMinDiskSpace(pybridge.getPreserveDiskSpaceAmount());
  setExpire(pybridge.getExpireAfter());
  setSinglePlayMode(pybridge.getSinglePlayMode());
  setBTMinPort(pybridge.getBTMinPort());
  setBTMaxPort(pybridge.getBTMaxPort());
}

function ondialogaccept() {
  checkMoviesDirChanged();
  checkBTPorts();
  pybridge.updatePrefs()
}

/* Convert a floating point object into a string to show to the user.  We
 * round it to 2 decimal places to get arround binary to decimal conversions.
 */ 
function floatToPrintable(value) {
    value = Math.round(value * 100);
    var intPart = Math.floor(value / 100);
    var decimalPart = value % 100;
    while(decimalPart % 10 == 0) {
        if(decimalPart == 0) return intPart;
        decimalPart /= 10;
    }
    return intPart + "." + decimalPart;
}


function runOnStartupChange() {
  if (document.getElementById("runonstartup").checked)
      pybridge.setRunAtStartup(true);
  else
      pybridge.setRunAtStartup(false);
}

function setCheckEvery(minutes) {
  var check = document.getElementById("checkevery");
  if (minutes == 30) check.value = "30";
  else if (minutes == 60) check.value = "60";
  else check.value = "never";
}

function checkEveryChange(minutes) {
   pybridge.setCheckEvery(parseInt(minutes));
}

function setMoviesDir(directory) {
    var moviesDirBox = document.getElementById('movies-directory');
    moviesDirBox.abspath = directory;
    moviesDirBox.value = pybridge.shortenDirectoryName(directory);
}

function selectMoviesDirectory() {
    var fp = Components.classes["@mozilla.org/filepicker;1"]
            .createInstance(Components.interfaces.nsIFilePicker);

    fp.init(window, "Select a Directory to store Democracy downloads in",
            Components.interfaces.nsIFilePicker.modeGetFolder);
    var res = fp.show();
    if (res == Components.interfaces.nsIFilePicker.returnOK){
        setMoviesDir(fp.file.path);
    }

}

function checkMoviesDirChanged() {
    var moviesDirBox = document.getElementById('movies-directory');
    var currentMoviesDir = moviesDirBox.abspath;
    if(originalMoviesDir != null && originalMoviesDir != currentMoviesDir) {
        var params = { "out" : null }
        window.openDialog('chrome://dtv/content/migrate.xul', 'migrate',
                'chrome,dependent,centerscreen,modal', params);
        pybridge.changeMoviesDirectory(currentMoviesDir, params.out);
    }
}

function setMaxUpstream(max) {
    document.getElementById("maxupstream").value = max;
}

function setLimitUpstream(limit) {
    document.getElementById("limitupstream").checked = limit;
    document.getElementById("maxupstream").disabled = !limit;
}

function limitUpstreamChange() {
  var ret = (document.getElementById("limitupstream").checked);
  var textbox = document.getElementById("maxupstream");
  textbox.disabled = !ret;
  pybridge.setLimitUpstream(ret);
}
function maxUpstreamChange() {
  var textbox = document.getElementById("maxupstream");
  var value = parseInt(textbox.value);
  if ((value == 0) || (isNaN(value))) value = 1;
  textbox.value=value;
  pybridge.setLimitUpstreamAmount(value);
}

function setMaxManual(max) {
    document.getElementById("maxmanual").value = max;
}

function maxManualChange() {
  var textbox = document.getElementById("maxmanual");
  var value = parseInt(textbox.value);
  if ((value == 0) || (isNaN(value))) value = 1;
  textbox.value=value;
  pybridge.setMaxManual(value);
}

function setMinDiskSpace(min) {
    document.getElementById("minspace").value = floatToPrintable(min);
}

function setHasMinDiskSpace(hasit) {
    document.getElementById("hasminspace").checked = hasit;
    document.getElementById("minspace").disabled = !hasit;
}

function hasMinSpaceChange() {
  var ret = document.getElementById("hasminspace").checked;
  var textbox = document.getElementById("minspace");
  textbox.disabled = !ret;
  pybridge.setPreserveDiskSpace(ret);
}

function minSpaceChange() {
  var textbox = document.getElementById("minspace");
  var value = parseFloat(textbox.value);
  if ((value == 0) || (isNaN(value))) value = 1;
  textbox.value=value;
  pybridge.setPreserveDiskSpaceAmount(value);
}

function setExpire(days) {
  var check = document.getElementById("expiration");
  if (days == "1") check.value = "1";
  else if (days == "3") check.value = "3";
  else if (days == "6") check.value = "6";
  else if (days == "10") check.value = "10";
  else if (days == "30") check.value = "30";
  else check.value = "never";
}
function expirationChange(days) {
   pybridge.setExpireAfter(parseInt(days));
}

function singlePlayModeChange() {
  var radio = document.getElementById('single-play-mode-radio');
  pybridge.setSinglePlayMode(radio.selected);
}

function setSinglePlayMode(value) {
  if(value) {
    var button = document.getElementById('single-play-mode-radio');
  } else {
    var button = document.getElementById('continuous-play-mode-radio');
  }
  document.getElementById('play-mode-radiogroup').selectedItem = button;
}

function setBTMinPort(value) {
  document.getElementById('btminport').value = value;
}

function setBTMaxPort(value) {
  document.getElementById('btmaxport').value = value;
}

function btMinPortChange() {
  var value = document.getElementById('btminport').value;
  pybridge.setBTMinPort(value);
}

function btMaxPortChange() {
  var value = document.getElementById('btmaxport').value;
  pybridge.setBTMaxPort(value);
}

function checkBTPorts() {
  if(pybridge.getBTMaxPort() < pybridge.getBTMinPort()) {
    pybridge.setBTMaxPort(pybridge.getBTMinPort());
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -