luci-app-aria2: Refactor, new views and more options
This commit contains: * Refactor package code. * Add options for RPC, HTTP/HTTPS and BT. * Improve descriptions for some options. * New views for config files and log files. * Also updated translation for simplified Chinese. Signed-off-by: Xingwang Liao <kuoruan@gmail.com>
This commit is contained in:
parent
9a979e6db5
commit
f90de782a7
17 changed files with 5953 additions and 1441 deletions
|
@ -1,39 +1,18 @@
|
|||
#
|
||||
# Copyright (C) 2016 Openwrt.org
|
||||
# Copyright (C) 2017-2019 Xingwang Liao <kuoruan@gmail.com>
|
||||
#
|
||||
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||
# This is free software, licensed under the MIT License.
|
||||
#
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-aria2
|
||||
|
||||
# Version == major.minor.patch
|
||||
# increase "minor" on new functionality and "patch" on patches/optimization
|
||||
PKG_VERSION:=1.0.1
|
||||
|
||||
# Release == build
|
||||
# increase on changes of translation files
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
PKG_MAINTAINER:=Hsing-Wang Liao <kuoruan@gmail.com>
|
||||
|
||||
# LuCI specific settings
|
||||
LUCI_TITLE:=LuCI Support for Aria2
|
||||
LUCI_DEPENDS:=+luci-lib-ipkg +aria2
|
||||
LUCI_DEPENDS:=+aria2 +luci-lib-ipkg
|
||||
LUCI_PKGARCH:=all
|
||||
|
||||
define Package/$(PKG_NAME)/config
|
||||
# shown in make menuconfig <Help>
|
||||
help
|
||||
$(LUCI_TITLE)
|
||||
.
|
||||
Version: $(PKG_VERSION)-$(PKG_RELEASE)
|
||||
$(PKG_MAINTAINER)
|
||||
endef
|
||||
PKG_MAINTAINER:=Xingwang Liao <kuoruan@gmail.com>
|
||||
PKG_LICENSE:=MIT
|
||||
|
||||
include ../../luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
||||
|
||||
|
|
|
@ -1,15 +1,11 @@
|
|||
--[[
|
||||
LuCI - Lua Configuration Interface - aria2 support
|
||||
-- Copyright 2016-2019 Xingwang Liao <kuoruan@gmail.com>
|
||||
-- Licensed to the public under the MIT License.
|
||||
|
||||
Copyright 2014-2015 nanpuyue <nanpuyue@gmail.com>
|
||||
Modified by kuoruan <kuoruan@gmail.com>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
]]--
|
||||
local fs = require "nixio.fs"
|
||||
local sys = require "luci.sys"
|
||||
local http = require "luci.http"
|
||||
local util = require "luci.util"
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
||||
module("luci.controller.aria2", package.seeall)
|
||||
|
||||
|
@ -18,26 +14,48 @@ function index()
|
|||
return
|
||||
end
|
||||
|
||||
local page = entry({"admin", "services", "aria2"}, cbi("aria2"), _("Aria2 Settings"))
|
||||
page.dependent = true
|
||||
entry({"admin", "services", "aria2"},
|
||||
firstchild(), _("Aria2")).dependent = false
|
||||
|
||||
entry({"admin", "services", "aria2", "status"}, call("status")).leaf = true
|
||||
entry({"admin", "services", "aria2", "config"},
|
||||
cbi("aria2/config"), _("Configuration"), 1)
|
||||
|
||||
entry({"admin", "services", "aria2", "file"},
|
||||
form("aria2/files"), _("Files"), 2)
|
||||
|
||||
entry({"admin", "services", "aria2", "log"},
|
||||
firstchild(), _("Log"), 3)
|
||||
|
||||
entry({"admin", "services", "aria2", "log", "view"},
|
||||
template("aria2/log_template"))
|
||||
|
||||
entry({"admin", "services", "aria2", "log", "read"},
|
||||
call("action_log_read"))
|
||||
|
||||
entry({"admin", "services", "aria2", "status"},
|
||||
call("action_status"))
|
||||
|
||||
end
|
||||
|
||||
function status()
|
||||
local sys = require "luci.sys"
|
||||
local ipkg = require "luci.model.ipkg"
|
||||
local http = require "luci.http"
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
||||
function action_status()
|
||||
local status = {
|
||||
running = (sys.call("pidof aria2c > /dev/null") == 0),
|
||||
yaaw = ipkg.installed("yaaw"),
|
||||
webui = ipkg.installed("webui-aria2"),
|
||||
ariang = (ipkg.installed("ariang") or ipkg.installed("ariang-nginx"))
|
||||
running = (sys.call("pidof aria2c >/dev/null") == 0)
|
||||
}
|
||||
|
||||
http.prepare_content("application/json")
|
||||
http.write_json(status)
|
||||
end
|
||||
|
||||
function action_log_read()
|
||||
local data = { log = "", syslog = "" }
|
||||
|
||||
local log_file = uci:get("aria2", "main", "log") or "/var/log/aria2.log"
|
||||
if fs.access(log_file) then
|
||||
data.log = util.trim(sys.exec("tail -n 50 %s | sed 'x;1!H;$!d;x'" % log_file))
|
||||
end
|
||||
|
||||
data.syslog = util.trim(sys.exec("logread | grep aria2 | tail -n 50 | sed 'x;1!H;$!d;x'"))
|
||||
|
||||
http.prepare_content("application/json")
|
||||
http.write_json(data)
|
||||
end
|
||||
|
|
|
@ -1,211 +0,0 @@
|
|||
--[[
|
||||
LuCI - Lua Configuration Interface - Aria2 support
|
||||
|
||||
Copyright 2014-2016 nanpuyue <nanpuyue@gmail.com>
|
||||
Modified by maz-1 <ohmygod19993@gmail.com>
|
||||
Modified by kuoruan <kuoruan@gmail.com>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
]]--
|
||||
|
||||
local sys = require "luci.sys"
|
||||
local util = require "luci.util"
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
||||
local cfgbtn = "<input type=\"button\" value=\"" .. translate("Generate Randomly") .. "\" onclick=\"randomSecret(32);\" />"
|
||||
local sessionbtn = "<input class=\"cbi-button mar-10\" type=\"button\" value=\"" .. translate("View Json-RPC URL") .. "\" onclick=\"showRPCURL();\" />"
|
||||
local aria2rpctxt = "<input class=\"mar-10\" id=\"aria2rpcpath\" onmouseover=\"obj=document.getElementById(this.id);obj.focus();obj.select()\" />"
|
||||
local use_websocket = "<input id=\"use_websocket\" type=\"checkbox\" /><label for=\"use_websocket\">" .. translate("Use WebSocket") .. "</label>"
|
||||
|
||||
function ipkg_ver(pkg)
|
||||
local version = nil
|
||||
local control = io.open("/usr/lib/opkg/info/%s.control" % pkg, "r")
|
||||
if control then
|
||||
local ln
|
||||
repeat
|
||||
ln = control:read("*l")
|
||||
if ln and ln:match("^Version: ") then
|
||||
version = ln:gsub("^Version: ", ""):gsub("-%d", "")
|
||||
break
|
||||
end
|
||||
until not ln
|
||||
control:close()
|
||||
end
|
||||
return version
|
||||
end
|
||||
|
||||
function ipkg_ver_lined(pkg)
|
||||
return ipkg_ver(pkg):gsub("%.", "-")
|
||||
end
|
||||
|
||||
m = Map("aria2", translate("Aria2"), translate("Aria2 is a multi-protocol & multi-source download utility, here you can configure the settings."))
|
||||
|
||||
m:section(SimpleSection).template = "aria2/overview_status"
|
||||
|
||||
s = m:section(TypedSection, "aria2", translate("Aria2 Settings"))
|
||||
s.addremove = false
|
||||
s.anonymous = true
|
||||
|
||||
s:tab("general", translate("General Settings"))
|
||||
s:tab("file", translate("Files and Locations"))
|
||||
s:tab("task", translate("Task Settings"))
|
||||
s:tab("bittorrent", translate("BitTorrent Settings"))
|
||||
|
||||
o = s:taboption("general", Flag, "enabled", translate("Enabled"))
|
||||
o.rmempty = false
|
||||
|
||||
user = s:taboption("general", ListValue, "user", translate("Run daemon as user"))
|
||||
local p_user
|
||||
for _, p_user in util.vspairs(util.split(sys.exec("cat /etc/passwd | cut -f 1 -d :"))) do
|
||||
user:value(p_user)
|
||||
end
|
||||
|
||||
o = s:taboption("general", Value, "rpc_listen_port", translate("RPC port"))
|
||||
o.datatype = "port"
|
||||
o.placeholder = "6800"
|
||||
|
||||
rpc_auth_method = s:taboption("general", ListValue, "rpc_auth_method", translate("RPC authentication method"))
|
||||
rpc_auth_method:value("none", translate("No Authentication"))
|
||||
rpc_auth_method:value("user_pass", translate("Username & Password"))
|
||||
rpc_auth_method:value("token", translate("Token"))
|
||||
|
||||
o = s:taboption("general", Value, "rpc_user", translate("RPC username"))
|
||||
o:depends("rpc_auth_method", "user_pass")
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("general", Value, "rpc_passwd", translate("RPC password"))
|
||||
o:depends("rpc_auth_method", "user_pass")
|
||||
o.password = true
|
||||
o.rmempty = true
|
||||
|
||||
o = s:taboption("general", Value, "rpc_secret", translate("RPC Token"), "<br/>" .. cfgbtn)
|
||||
o:depends("rpc_auth_method", "token")
|
||||
o.rmempty = true
|
||||
|
||||
o = s:taboption("file", Value, "config_dir", translate("Config file directory"))
|
||||
o.placeholder = "/var/etc/aria2"
|
||||
|
||||
o = s:taboption("file", Flag, "enable_logging", translate("Enable log"), translate("The default log file is /var/log/aria2.log"))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
|
||||
o = s:taboption("file", ListValue, "log_level", translate("Log level"))
|
||||
o:depends("enable_logging", "true")
|
||||
o:value("debug", translate("Debug"))
|
||||
o:value("info", translate("Info"))
|
||||
o:value("notice", translate("Notice"))
|
||||
o:value("warn", translate("Warn"))
|
||||
o:value("error", translate("Error"))
|
||||
|
||||
o = s:taboption("file", Value, "dir", translate("Default download directory"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("file", Value, "disk_cache", translate("Disk cache"), translate("in bytes, You can append K or M."))
|
||||
o.rmempty = true
|
||||
|
||||
o = s:taboption("file", ListValue, "file_allocation", translate("Preallocation"), translate("\"Falloc\" is not available in all cases."))
|
||||
o:value("none", translate("Off"))
|
||||
o:value("prealloc", translate("Prealloc"))
|
||||
o:value("trunc", translate("Trunc"))
|
||||
o:value("falloc", translate("Falloc"))
|
||||
|
||||
overall_speed_limit = s:taboption("task", Flag, "overall_speed_limit", translate("Overall speed limit enabled"))
|
||||
overall_speed_limit.rmempty = true
|
||||
|
||||
o = s:taboption("task", Value, "max_overall_download_limit", translate("Overall download limit"), translate("in bytes/sec, You can append K or M."))
|
||||
o:depends("overall_speed_limit", "1")
|
||||
|
||||
o = s:taboption("task", Value, "max_overall_upload_limit", translate("Overall upload limit"), translate("in bytes/sec, You can append K or M."))
|
||||
o:depends("overall_speed_limit", "1")
|
||||
|
||||
task_speed_limit = s:taboption("task", Flag, "task_speed_limit", translate("Per task speed limit enabled"))
|
||||
task_speed_limit.rmempty = true
|
||||
|
||||
o = s:taboption("task", Value, "max_download_limit", translate("Per task download limit"), translate("in bytes/sec, You can append K or M."))
|
||||
o:depends("task_speed_limit", "1")
|
||||
|
||||
o = s:taboption("task", Value, "max_upload_limit", translate("Per task upload limit"), translate("in bytes/sec, You can append K or M."))
|
||||
o:depends("task_speed_limit", "1")
|
||||
|
||||
o = s:taboption("task", Value, "max_concurrent_downloads", translate("Max concurrent downloads"))
|
||||
o.placeholder = "5"
|
||||
|
||||
o = s:taboption("task", Value, "max_connection_per_server", translate("Max connection per server"), "1-16")
|
||||
o.datatype = "range(1, 16)"
|
||||
o.placeholder = "1"
|
||||
|
||||
o = s:taboption("task", Value, "min_split_size", translate("Min split size"), "1M-1024M")
|
||||
o.placeholder = "20M"
|
||||
|
||||
o = s:taboption("task", Value, "split", translate("Max number of split"))
|
||||
o.placeholder = "5"
|
||||
|
||||
o = s:taboption("task", Value, "save_session_interval", translate("Autosave session interval"), translate("Sec"))
|
||||
o.default = "30"
|
||||
|
||||
o = s:taboption("task", Value, "user_agent", translate("User agent value"))
|
||||
o.placeholder = "aria2/" .. ipkg_ver("aria2")
|
||||
|
||||
o = s:taboption("bittorrent", Flag, "enable_dht", translate("<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
|
||||
o = s:taboption("bittorrent", Flag, "bt_enable_lpd", translate("<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
|
||||
o = s:taboption("bittorrent", Flag, "follow_torrent", translate("Follow torrent"))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
|
||||
o = s:taboption("bittorrent", Value, "listen_port", translate("BitTorrent listen port"))
|
||||
o.placeholder = "6881-6999"
|
||||
|
||||
o = s:taboption("bittorrent", Value, "bt_max_peers", translate("Max number of peers per torrent"))
|
||||
o.placeholder = "55"
|
||||
|
||||
bt_tracker_enable = s:taboption("bittorrent", Flag, "bt_tracker_enable", translate("Additional Bt tracker enabled"))
|
||||
bt_tracker = s:taboption("bittorrent", DynamicList, "bt_tracker", translate("List of additional Bt tracker"))
|
||||
bt_tracker:depends("bt_tracker_enable", "1")
|
||||
bt_tracker.rmempty = true
|
||||
|
||||
function bt_tracker.cfgvalue(self, section)
|
||||
local rv = {}
|
||||
local val = Value.cfgvalue(self, section)
|
||||
if type(val) == "table" then
|
||||
val = table.concat(val, ",")
|
||||
elseif not val then
|
||||
val = ""
|
||||
end
|
||||
for v in val:gmatch("[^,%s]+") do
|
||||
rv[#rv+1] = v
|
||||
end
|
||||
return rv
|
||||
end
|
||||
|
||||
function bt_tracker.write(self, section, value)
|
||||
local rv = {}
|
||||
for v in util.imatch(value) do
|
||||
rv[#rv+1] = v
|
||||
end
|
||||
Value.write(self, section, table.concat(rv, ","))
|
||||
end
|
||||
|
||||
o = s:taboption("bittorrent", Value, "peer_id_prefix", translate("Prefix of peer ID"))
|
||||
o.placeholder = "A2-" .. ipkg_ver_lined("aria2") .. "-"
|
||||
|
||||
s = m:section(TypedSection, "aria2", translate("Extra Settings"))
|
||||
s.addremove = false
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(DynamicList, "extra_settings", translate("List of extra settings"))
|
||||
o.placeholder = "option=value"
|
||||
o.rmempty = true
|
||||
|
||||
m:section(SimpleSection, nil, sessionbtn .. use_websocket .. aria2rpctxt)
|
||||
|
||||
return m
|
491
applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua
Normal file
491
applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua
Normal file
|
@ -0,0 +1,491 @@
|
|||
-- Copyright 2017-2019 Xingwang Liao <kuoruan@gmail.com>
|
||||
-- Licensed to the public under the MIT License.
|
||||
|
||||
local sys = require "luci.sys"
|
||||
local util = require "luci.util"
|
||||
|
||||
local m, s, o
|
||||
|
||||
local function aria2_info()
|
||||
if sys.call("command -v aria2c >/dev/null") ~= 0 then
|
||||
return nil
|
||||
end
|
||||
|
||||
local info = {}
|
||||
local line
|
||||
for line in util.execi("aria2c -v 2>/dev/null | grep -E '^(aria2 version|Enabled Features)'") do
|
||||
if line:match("^aria2 version") then
|
||||
local _, _, v = line:find("([%d%.]+)$")
|
||||
info.version = v
|
||||
elseif line:match("^Enabled Features") then
|
||||
info.gzip = line:find("GZip") ~= nil
|
||||
info.https = line:find("HTTPS") ~= nil
|
||||
info.bt = line:find("BitTorrent") ~= nil
|
||||
info.sftp = line:find("SFTP") ~= nil
|
||||
info.adns = line:find("Async DNS") ~= nil
|
||||
info.cookie = line:find("Firefox3 Cookie") ~= nil
|
||||
end
|
||||
end
|
||||
|
||||
return info
|
||||
end
|
||||
|
||||
local aria2 = aria2_info()
|
||||
|
||||
m = Map("aria2", "%s - %s" % { translate("Aria2"), translate("Settings") },
|
||||
"<p>%s</p><p>%s</p>" % {
|
||||
translate("Aria2 is a lightweight multi-protocol & multi-source, cross platform download utility."),
|
||||
translatef("For more information, please visit: %s",
|
||||
"<a href=\"https://aria2.github.io\" target=\"_blank\">https://aria2.github.io</a>")
|
||||
})
|
||||
|
||||
if not aria2 then
|
||||
m:section(SimpleSection, nil, "<span style=\"color: red;\">%s</span>" %
|
||||
translate("Error: Can't find aria2c in PATH, please reinstall aria2."))
|
||||
m.reset = false
|
||||
m.submit = false
|
||||
return m
|
||||
end
|
||||
|
||||
m:append(Template("aria2/settings_header"))
|
||||
|
||||
s = m:section(NamedSection, "main", "aria2")
|
||||
s.addremove = false
|
||||
s.anonymous = true
|
||||
|
||||
s:tab("basic", translate("Basic Options"))
|
||||
|
||||
o = s:taboption("basic", Flag, "enabled", translate("Enabled"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("basic", ListValue, "user", translate("Run daemon as user"),
|
||||
translate("Leave blank to use default user."))
|
||||
o:value("")
|
||||
local user
|
||||
for user in util.execi("cat /etc/passwd | cut -d':' -f1") do
|
||||
o:value(user)
|
||||
end
|
||||
|
||||
o = s:taboption("basic", Value, "dir", translate("Download directory"),
|
||||
translate("The directory to store the downloaded file. eg. <code>/mnt/sda1</code>"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("basic", Value, "config_dir", translate("Config file directory"),
|
||||
translate("The directory to store the config file, session file and DHT file."))
|
||||
o.placeholder = "/var/etc/aria2"
|
||||
|
||||
o = s:taboption("basic", Flag, "enable_logging", translate("Enable logging"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("basic", Value, "log", translate("Log file"),
|
||||
translate("The file name of the log file."))
|
||||
o:depends("enable_logging", "1")
|
||||
o.placeholder = "/var/log/aria2.log"
|
||||
|
||||
o = s:taboption("basic", ListValue, "log_level", translate("Log level"))
|
||||
o:depends("enable_logging", "1")
|
||||
o:value("debug", translate("Debug"))
|
||||
o:value("info", translate("Info"))
|
||||
o:value("notice", translate("Notice"))
|
||||
o:value("warn", translate("Warn"))
|
||||
o:value("error", translate("Error"))
|
||||
o.default = "warn"
|
||||
|
||||
o = s:taboption("basic", Value, "max_concurrent_downloads", translate("Max concurrent downloads"))
|
||||
o.placeholder = "5"
|
||||
|
||||
s:tab("rpc", translate("RPC Options"))
|
||||
|
||||
o = s:taboption("rpc", Flag, "pause", translate("Pause"), translate("Pause download after added."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("rpc", Flag, "pause_metadata", translate("Pause metadata"),
|
||||
translate("Pause downloads created as a result of metadata download."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("rpc", Value, "rpc_listen_port", translate("RPC port"))
|
||||
o.datatype = "range(1024,65535)"
|
||||
o.placeholder = "6800"
|
||||
|
||||
o = s:taboption("rpc", ListValue, "rpc_auth_method", translate("RPC authentication method"))
|
||||
o:value("none", translate("No Authentication"))
|
||||
o:value("user_pass", translate("Username & Password"))
|
||||
o:value("token", translate("Token"))
|
||||
|
||||
o = s:taboption("rpc", Value, "rpc_user", translate("RPC username"))
|
||||
o:depends("rpc_auth_method", "user_pass")
|
||||
|
||||
o = s:taboption("rpc", Value, "rpc_passwd", translate("RPC password"))
|
||||
o:depends("rpc_auth_method", "user_pass")
|
||||
o.password = true
|
||||
|
||||
o = s:taboption("rpc", Value, "rpc_secret", translate("RPC token"))
|
||||
o:depends("rpc_auth_method", "token")
|
||||
o.template = "aria2/value_with_btn"
|
||||
o.btntext = translate("Generate Randomly")
|
||||
o.btnclick = "randomToken();"
|
||||
|
||||
if aria2.https then
|
||||
o = s:taboption("rpc", Flag, "rpc_secure", translate("RPC secure"),
|
||||
translate("RPC transport will be encrypted by SSL/TLS. The RPC clients must use https"
|
||||
.. " scheme to access the server. For WebSocket client, use wss scheme."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("rpc", Value, "rpc_certificate", translate("RPC certificate"),
|
||||
translate("Use the certificate in FILE for RPC server. The certificate must be either"
|
||||
.. " in PKCS12 (.p12, .pfx) or in PEM format.<br/>PKCS12 files must contain the"
|
||||
.. " certificate, a key and optionally a chain of additional certificates. Only PKCS12"
|
||||
.. " files with a blank import password can be opened!<br/>When using PEM, you have to"
|
||||
.. " specify the \"RPC private key\" as well."))
|
||||
o:depends("rpc_secure", "true")
|
||||
o.datatype = "file"
|
||||
|
||||
o = s:taboption("rpc", Value, "rpc_private_key", translate("RPC private key"),
|
||||
translate("Use the private key in FILE for RPC server. The private key must be"
|
||||
.. " decrypted and in PEM format."))
|
||||
o:depends("rpc_secure", "true")
|
||||
o.datatype = "file"
|
||||
end
|
||||
|
||||
o = s:taboption("rpc", Flag, "_use_ws", translate("Use WebSocket"))
|
||||
|
||||
o = s:taboption("rpc", Value, "_rpc_url", translate("Json-RPC URL"))
|
||||
o.template = "aria2/value_with_btn"
|
||||
o.onmouseover = "this.focus();this.select();"
|
||||
o.btntext = translate("Show URL")
|
||||
o.btnclick = "showRPCURL();"
|
||||
|
||||
s:tab("http", translate("HTTP/FTP/SFTP Options"))
|
||||
|
||||
o = s:taboption("http", Flag, "enable_proxy", translate("Enable proxy"))
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("http", Value, "all_proxy", translate("All proxy"),
|
||||
translate("Use a proxy server for all protocols."))
|
||||
o:depends("enable_proxy", "1")
|
||||
o.placeholder = "[http://][USER:PASSWORD@]HOST[:PORT]"
|
||||
|
||||
o = s:taboption("http", Value, "all_proxy_user", translate("Proxy user"))
|
||||
o:depends("enable_proxy", "1")
|
||||
|
||||
o = s:taboption("http", Value, "all_proxy_passwd", translate("Proxy password"))
|
||||
o:depends("enable_proxy", "1")
|
||||
o.password = true
|
||||
|
||||
if aria2.https then
|
||||
o = s:taboption("http", Flag, "check_certificate", translate("Check certificate"),
|
||||
translate("Verify the peer using certificates specified in \"CA certificate\" option."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "true"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("http", Value, "ca_certificate", translate("CA certificate"),
|
||||
translate("Use the certificate authorities in FILE to verify the peers. The certificate"
|
||||
.. " file must be in PEM format and can contain multiple CA certificates."))
|
||||
o:depends("check_certificate", "true")
|
||||
o.datatype = "file"
|
||||
|
||||
o = s:taboption("http", Value, "certificate", translate("Certificate"),
|
||||
translate("Use the client certificate in FILE. The certificate must be either in PKCS12"
|
||||
.. " (.p12, .pfx) or in PEM format.<br/>PKCS12 files must contain the certificate, a"
|
||||
.. " key and optionally a chain of additional certificates. Only PKCS12 files with a"
|
||||
.. " blank import password can be opened!<br/>When using PEM, you have to specify the"
|
||||
.. " \"Private key\" as well."))
|
||||
o.datatype = "file"
|
||||
|
||||
o = s:taboption("http", Value, "private_key", translate("Private key"),
|
||||
translate("Use the private key in FILE. The private key must be decrypted and in PEM"
|
||||
.. " format. The behavior when encrypted one is given is undefined."))
|
||||
o.datatype = "file"
|
||||
end
|
||||
|
||||
if aria2.gzip then
|
||||
o = s:taboption("http", Flag, "http_accept_gzip", translate("HTTP accept gzip"),
|
||||
translate("Send <code>Accept: deflate, gzip</code> request header and inflate response"
|
||||
.. " if remote server responds with <code>Content-Encoding: gzip</code> or"
|
||||
.. " <code>Content-Encoding: deflate</code>."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
end
|
||||
|
||||
o = s:taboption("http", Flag, "http_no_cache", translate("HTTP no cache"),
|
||||
translate("Send <code>Cache-Control: no-cache</code> and <code>Pragma: no-cache</code>"
|
||||
.. " header to avoid cached content. If disabled, these headers are not sent and you"
|
||||
.. " can add Cache-Control header with a directive you like using \"Header\" option."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("http", DynamicList, "header", translate("Header"),
|
||||
translate("Append HEADERs to HTTP request header."))
|
||||
|
||||
o = s:taboption("http", Value, "connect_timeout", translate("Connect timeout"),
|
||||
translate("Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy server." ..
|
||||
" After the connection is established, this option makes no effect and \"Timeout\" option is used instead."))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "60"
|
||||
|
||||
o = s:taboption("http", Value, "timeout", translate("Timeout"))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "60"
|
||||
|
||||
o = s:taboption("http", Value, "lowest_speed_limit", translate("Lowest speed limit"),
|
||||
"%s %s" % {
|
||||
translate("Close connection if download speed is lower than or equal to this value(bytes per sec). " ..
|
||||
"0 means has no lowest speed limit."),
|
||||
translate("You can append K or M.")
|
||||
})
|
||||
o.placeholder = "0"
|
||||
|
||||
o = s:taboption("http", Value, "max_connection_per_server", translate("Max connection per server"),
|
||||
translate("The maximum number of connections to one server for each download."))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "1"
|
||||
|
||||
o = s:taboption("http", Value, "split", translate("Max number of split"),
|
||||
translate("Download a file using N connections."))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "5"
|
||||
|
||||
o = s:taboption("http", Value, "min_split_size", translate("Min split size"),
|
||||
translate("Don't split less than 2*SIZE byte range. Possible values: 1M-1024M."))
|
||||
o.placeholder = "20M"
|
||||
|
||||
o = s:taboption("http", Value, "max_tries", translate("Max tries"))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "5"
|
||||
|
||||
o = s:taboption("http", Value, "retry_wait", translate("Retry wait"),
|
||||
translate("Set the seconds to wait between retries."))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "0"
|
||||
|
||||
o = s:taboption("http", Value, "user_agent", translate("User agent"),
|
||||
translate("Set user agent for HTTP(S) downloads."))
|
||||
o.placeholder = "aria2/%s" % { aria2.version and aria2.version or "$VERSION" }
|
||||
|
||||
if aria2.bt then
|
||||
s:tab("bt", translate("BitTorrent Options"))
|
||||
|
||||
o = s:taboption("bt", Flag, "enable_dht", translate("IPv4 <abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"),
|
||||
"%s %s" % {
|
||||
translate("Enable IPv4 DHT functionality. It also enables UDP tracker support."),
|
||||
translate("This option will be ignored if a private flag is set in a torrent.")
|
||||
})
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "true"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("bt", Flag, "enable_dht6", translate("IPv6 <abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"),
|
||||
"%s %s" % {
|
||||
translate("Enable IPv6 DHT functionality."),
|
||||
translate("This option will be ignored if a private flag is set in a torrent.")
|
||||
})
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
|
||||
o = s:taboption("bt", Flag, "bt_enable_lpd", translate("<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"),
|
||||
"%s %s" % {
|
||||
translate("Enable Local Peer Discovery."),
|
||||
translate("This option will be ignored if a private flag is set in a torrent.")
|
||||
})
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("bt", Flag, "enable_peer_exchange", translate("Enable peer exchange"),
|
||||
"%s %s" % {
|
||||
translate("Enable Peer Exchange extension."),
|
||||
translate("This option will be ignored if a private flag is set in a torrent.")
|
||||
})
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "true"
|
||||
o.rmempty = false
|
||||
|
||||
o = s:taboption("bt", Flag, "bt_save_metadata", translate("Sava metadata"),
|
||||
translate("Save meta data as \".torrent\" file. This option has effect only when BitTorrent"
|
||||
.. " Magnet URI is used. The file name is hex encoded info hash with suffix \".torrent\"."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("bt", Flag, "bt_remove_unselected_file", translate("Remove unselected file"),
|
||||
translate("Removes the unselected files when download is completed in BitTorrent. Please"
|
||||
.. " use this option with care because it will actually remove files from your disk."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("bt", Flag, "bt_seed_unverified", translate("Seed unverified"),
|
||||
translate("Seed previously downloaded files without verifying piece hashes."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("bt", Value, "listen_port", translate("BitTorrent listen port"),
|
||||
translate("Set TCP port number for BitTorrent downloads. Accept format: \"6881,6885\","
|
||||
.. " \"6881-6999\" and \"6881-6889,6999\". Make sure that the specified ports are open"
|
||||
.. " for incoming TCP traffic."))
|
||||
o.placeholder = "6881-6999"
|
||||
|
||||
o = s:taboption("bt", Value, "dht_listen_port", translate("DHT Listen port"),
|
||||
translate("Set UDP listening port used by DHT(IPv4, IPv6) and UDP tracker. Make sure that the "
|
||||
.. "specified ports are open for incoming UDP traffic."))
|
||||
o:depends("enable_dht", "true")
|
||||
o:depends("enable_dht6", "true")
|
||||
o.placeholder = "6881-6999"
|
||||
|
||||
o = s:taboption("bt", ListValue, "follow_torrent", translate("Follow torrent"))
|
||||
o:value("true", translate("True"))
|
||||
o:value("false", translate("False"))
|
||||
o:value("mem", translate("Keep in memory"))
|
||||
|
||||
o = s:taboption("bt", Value, "max_overall_upload_limit", translate("Max overall upload limit"),
|
||||
"%s %s" % {
|
||||
translate("Set max overall upload speed in bytes/sec. 0 means unrestricted."),
|
||||
translate("You can append K or M.")
|
||||
})
|
||||
o.placeholder = "0"
|
||||
|
||||
o = s:taboption("bt", Value, "max_upload_limit", translate("Max upload limit"),
|
||||
"%s %s" % {
|
||||
translate("Set max upload speed per each torrent in bytes/sec. 0 means unrestricted."),
|
||||
translate("You can append K or M.")
|
||||
})
|
||||
o.placeholder = "0"
|
||||
|
||||
o = s:taboption("bt", Value, "bt_max_open_files", translate("Max open files"),
|
||||
translate("Specify maximum number of files to open in multi-file BitTorrent download globally."))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "100"
|
||||
|
||||
o = s:taboption("bt", Value, "bt_max_peers", translate("Max peers"),
|
||||
translate("Specify the maximum number of peers per torrent, 0 means unlimited."))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "55"
|
||||
|
||||
o = s:taboption("bt", Value, "bt_request_peer_speed_limit", translate("Request peer speed limit"),
|
||||
"%s %s" % {
|
||||
translate("If the whole download speed of every torrent is lower than SPEED, aria2"
|
||||
.. " temporarily increases the number of peers to try for more download speed."
|
||||
.. " Configuring this option with your preferred download speed can increase your"
|
||||
.. " download speed in some cases."),
|
||||
translate("You can append K or M.")
|
||||
})
|
||||
o.placeholder = "50K"
|
||||
|
||||
o = s:taboption("bt", Value, "bt_stop_timeout", translate("Stop timeout"),
|
||||
translate("Stop BitTorrent download if download speed is 0 in consecutive N seconds. If 0 is"
|
||||
.. " given, this feature is disabled."))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "0"
|
||||
|
||||
o = s:taboption("bt", Value, "peer_id_prefix", translate("Prefix of peer ID"),
|
||||
translate("Specify the prefix of peer ID. The peer ID in BitTorrent is 20 byte length."
|
||||
.. " If more than 20 bytes are specified, only first 20 bytes are used. If less than 20"
|
||||
.. " bytes are specified, random byte data are added to make its length 20 bytes."))
|
||||
o.placeholder = "A2-%s-" % {
|
||||
aria2.version and string.gsub(aria2.version, "%.", "-") or "$MAJOR-$MINOR-$PATCH"
|
||||
}
|
||||
|
||||
o = s:taboption("bt", Value, "seed_ratio", translate("Seed ratio"),
|
||||
translate("Specify share ratio. Seed completed torrents until share ratio reaches RATIO."
|
||||
.. " You are strongly encouraged to specify equals or more than 1.0 here. Specify 0.0 if"
|
||||
.. " you intend to do seeding regardless of share ratio."))
|
||||
o.datatype = "ufloat"
|
||||
o.placeholder = "1.0"
|
||||
|
||||
o = s:taboption("bt", Value, "seed_time", translate("Seed time"),
|
||||
translate("Specify seeding time in minutes. If \"Seed ratio\" option is"
|
||||
.. " specified along with this option, seeding ends when at least one of the conditions"
|
||||
.. " is satisfied. Specifying 0 disables seeding after download completed."))
|
||||
o.datatype = "ufloat"
|
||||
|
||||
o = s:taboption("bt", DynamicList, "bt_tracker", translate("Additional BT tracker"),
|
||||
translate("List of additional BitTorrent tracker's announce URI."))
|
||||
o.placeholder = "http://tracker.example.com/announce"
|
||||
end
|
||||
|
||||
s:tab("advance", translate("Advanced Options"))
|
||||
|
||||
o = s:taboption("advance", Flag, "disable_ipv6", translate("IPv6 disabled"),
|
||||
translate("Disable IPv6. This is useful if you have to use broken DNS and want to avoid terribly"
|
||||
.. " slow AAAA record lookup."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("advance", Value, "auto_save_interval", translate("Auto save interval"),
|
||||
translate("Save a control file(*.aria2) every N seconds. If 0 is given, a control file is not"
|
||||
.. " saved during download."))
|
||||
o.datatype = "range(0, 600)"
|
||||
o.placeholder = "60"
|
||||
|
||||
o = s:taboption("advance", Value, "save_session_interval", translate("Save session interval"),
|
||||
translate("Save error/unfinished downloads to session file every N seconds. If 0 is given, file"
|
||||
.. " will be saved only when aria2 exits."))
|
||||
o.datatype = "uinteger"
|
||||
o.placeholder = "0"
|
||||
|
||||
o = s:taboption("advance", Value, "disk_cache", translate("Disk cache"),
|
||||
"%s %s" % {
|
||||
translate("Enable disk cache (in bytes), set 0 to disabled."),
|
||||
translate("You can append K or M.")
|
||||
})
|
||||
o.placeholder = "16M"
|
||||
|
||||
o = s:taboption("advance", ListValue, "file_allocation", translate("File allocation"),
|
||||
translate("Specify file allocation method. If you are using newer file systems such as ext4"
|
||||
.. " (with extents support), btrfs, xfs or NTFS(MinGW build only), \"falloc\" is your best choice."
|
||||
.. " It allocates large(few GiB) files almost instantly, but it may not be available if your system"
|
||||
.. " doesn't have posix_fallocate(3) function. Don't use \"falloc\" with legacy file systems such as"
|
||||
.. " ext3 and FAT32 because it takes almost same time as \"prealloc\" and it blocks aria2 entirely"
|
||||
.. " until allocation finishes."))
|
||||
o:value("none", translate("None"))
|
||||
o:value("prealloc", translate("prealloc"))
|
||||
o:value("trunc", translate("trunc"))
|
||||
o:value("falloc", translate("falloc"))
|
||||
o.default = "prealloc"
|
||||
|
||||
o = s:taboption("advance", Flag, "force_save", translate("Force save"),
|
||||
translate("Save download to session file even if the download is completed or removed."
|
||||
.. " This option also saves control file in that situations. This may be useful to save"
|
||||
.. " BitTorrent seeding which is recognized as completed state."))
|
||||
o.enabled = "true"
|
||||
o.disabled = "false"
|
||||
o.default = "false"
|
||||
|
||||
o = s:taboption("advance", Value, "max_overall_download_limit", translate("Max overall download limit"),
|
||||
"%s %s" % {
|
||||
translate("Set max overall download speed in bytes/sec. 0 means unrestricted."),
|
||||
translate("You can append K or M.")
|
||||
})
|
||||
o.placeholder = "0"
|
||||
|
||||
o = s:taboption("advance", Value, "max_download_limit", translate("Max download limit"),
|
||||
"%s %s" % {
|
||||
translate("Set max download speed per each download in bytes/sec. 0 means unrestricted."),
|
||||
translate("You can append K or M.")
|
||||
})
|
||||
o.placeholder = "0"
|
||||
|
||||
s = m:section(NamedSection, "main", "aria2", translate("Extra Settings"),
|
||||
translate("Settings in this section will be added to config file."))
|
||||
s.addremove = false
|
||||
s.anonymous = true
|
||||
|
||||
o = s:option(DynamicList, "extra_setting", translate("Settings list"),
|
||||
translate("List of extra settings. Format: option=value, eg. <code>netrc-path=/tmp/.netrc</code>."))
|
||||
o.placeholder = "option=value"
|
||||
|
||||
return m
|
39
applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua
Normal file
39
applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua
Normal file
|
@ -0,0 +1,39 @@
|
|||
-- Copyright 2017-2019 Xingwang Liao <kuoruan@gmail.com>
|
||||
-- Licensed to the public under the MIT License.
|
||||
|
||||
local m, s, o
|
||||
|
||||
local fs = require "nixio.fs"
|
||||
local util = require "luci.util"
|
||||
local uci = require "luci.model.uci".cursor()
|
||||
|
||||
local config_dir = uci:get("aria2", "main", "config_dir") or "/var/etc/aria2"
|
||||
local config_file = "%s/aria2.conf.main" % config_dir
|
||||
local session_file = "%s/aria2.session.main" % config_dir
|
||||
|
||||
m = SimpleForm("aria2", "%s - %s" % { translate("Aria2"), translate("Files") },
|
||||
translate("Here shows the files used by aria2."))
|
||||
m.reset = false
|
||||
m.submit = false
|
||||
|
||||
s = m:section(SimpleSection, nil, translatef("Content of config file: <code>%s</code>", config_file))
|
||||
|
||||
o = s:option(TextValue, "_config")
|
||||
o.rows = 20
|
||||
o.readonly = true
|
||||
o.cfgvalue = function()
|
||||
local v = fs.readfile(config_file) or translate("File does not exist.")
|
||||
return util.trim(v) ~= "" and v or translate("Empty file.")
|
||||
end
|
||||
|
||||
s = m:section(SimpleSection, nil, translatef("Content of session file: <code>%s</code>", session_file))
|
||||
|
||||
o = s:option(TextValue, "_session")
|
||||
o.rows = 20
|
||||
o.readonly = true
|
||||
o.cfgvalue = function()
|
||||
local v = fs.readfile(session_file) or translate("File does not exist.")
|
||||
return util.trim(v) ~= "" and v or translate("Empty file.")
|
||||
end
|
||||
|
||||
return m
|
|
@ -0,0 +1,55 @@
|
|||
<%#
|
||||
Copyright 2017-2019 Xingwang Liao <kuoruan@gmail.com>
|
||||
Licensed to the public under the MIT License.
|
||||
-%>
|
||||
|
||||
<% css = [[
|
||||
|
||||
#log_text {
|
||||
padding: 10px;
|
||||
text-align: left;
|
||||
}
|
||||
#log_text pre {
|
||||
word-break: break-all;
|
||||
margin: 0;
|
||||
}
|
||||
.description {
|
||||
background-color: #33ccff;
|
||||
}
|
||||
|
||||
]]
|
||||
-%>
|
||||
|
||||
<%+header%>
|
||||
|
||||
<script type="text/javascript" src="<%=resource%>/cbi.js"></script>
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
XHR.poll(10, '<%=url("admin/services/aria2/log/read")%>', null,
|
||||
function(x, data) {
|
||||
var logElm = document.getElementById('log_text');
|
||||
if (logElm) {
|
||||
logElm.innerHTML = data
|
||||
? String.format(
|
||||
'<pre>%s%s%s%s</pre>',
|
||||
'<span class="description"><%:Last 50 lines of log file:%></span><br/><br/>',
|
||||
data.log || '<%:No log data.%>',
|
||||
'<br/><br/><span class="description"><%:Last 50 lines of syslog:%></span><br/><br/>',
|
||||
data.syslog || '<%:No log data.%>'
|
||||
)
|
||||
: '<strong><%:Failed to load log data.%></strong>';
|
||||
}
|
||||
}
|
||||
);
|
||||
//]]></script>
|
||||
<div class="cbi-map">
|
||||
<h2 name="content"><%:Aria2%> - <%:Log Data%></h2>
|
||||
<fieldset class="cbi-section">
|
||||
<div id="log_text">
|
||||
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="vertical-align:middle" />
|
||||
<%:Collecting data...%>
|
||||
</div>
|
||||
<div style="text-align:right"><small><%:Refresh every 10 seconds.%></small></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<%+footer%>
|
|
@ -1,84 +0,0 @@
|
|||
<script type="text/javascript">//<![CDATA[
|
||||
XHR.poll(-1, '<%=luci.dispatcher.build_url("admin/services/aria2/status")%>', null,
|
||||
function(x, data) {
|
||||
var tb = document.getElementById('aria2_status');
|
||||
if (data && tb) {
|
||||
if (data.running) {
|
||||
var links = '<em><%:The Aria2 service is running.%></em>';
|
||||
if (data.yaaw) {
|
||||
links += '<input class="cbi-button mar-10" type="button" value="<%:Open YAAW%>" onclick="openWebUI(\'yaaw\');" />';
|
||||
}
|
||||
if (data.webui) {
|
||||
links += '<input class="cbi-button mar-10" type="button" value="<%:Open WebUI-Aria2%>" onclick="openWebUI(\'webui-aria2\');" />';
|
||||
}
|
||||
if (data.ariang) {
|
||||
links += '<input class="cbi-button mar-10" type="button" value="<%:Open AriaNg%>" onclick="openWebUI(\'ariang\');" />';
|
||||
}
|
||||
tb.innerHTML = links;
|
||||
} else {
|
||||
tb.innerHTML = '<em><%:The Aria2 service is not running.%></em>';
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
function randomString(len) {
|
||||
len = len || 32;
|
||||
var $chars = 'abcdefghijklmnopqrstuvwxyz1234567890';
|
||||
var maxPos = $chars.length;
|
||||
var pwd = '';
|
||||
for (var i = 0; i < len; i++) {
|
||||
pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
|
||||
}
|
||||
return pwd;
|
||||
};
|
||||
|
||||
function randomSecret() {
|
||||
var Token = document.getElementById("cbid.aria2.main.rpc_secret");
|
||||
Token.value = randomString(32);
|
||||
};
|
||||
|
||||
function showRPCURL() {
|
||||
var websocket = document.getElementById("use_websocket");
|
||||
var protocol = (websocket.checked) ? "ws" : "http";
|
||||
var newTextNode = document.getElementById("aria2rpcpath");
|
||||
var auth_method = document.getElementById("cbid.aria2.main.rpc_auth_method");
|
||||
var auth_port = document.getElementById("cbid.aria2.main.rpc_listen_port");
|
||||
var auth_port_value;
|
||||
if (window.location.protocol == "https:") {
|
||||
protocol += "s";
|
||||
}
|
||||
if (auth_port.value == "") {
|
||||
auth_port_value = "6800";
|
||||
} else {
|
||||
auth_port_value = auth_port.value;
|
||||
}
|
||||
if (auth_method.value == "token") {
|
||||
var auth_token = document.getElementById("cbid.aria2.main.rpc_secret");
|
||||
newTextNode.value = protocol + "://token:" + auth_token.value + "@" + document.domain + ":" + auth_port_value + "/jsonrpc";
|
||||
} else if (auth_method.value == "user_pass") {
|
||||
var auth_user = document.getElementById("cbid.aria2.main.rpc_user");
|
||||
var auth_passwd = document.getElementById("cbid.aria2.main.rpc_passwd");
|
||||
newTextNode.value = protocol + "://" + auth_user.value + ":" + auth_passwd.value + "@" + document.domain + ":" + auth_port_value + "/jsonrpc";
|
||||
} else {
|
||||
newTextNode.value = protocol + "://" + document.domain + ":" + auth_port_value + "/jsonrpc";
|
||||
}
|
||||
};
|
||||
|
||||
function openWebUI(path) {
|
||||
var curWwwPath = window.document.location.href;
|
||||
var pathName = window.document.location.pathname;
|
||||
var pos = curWwwPath.indexOf(pathName);
|
||||
var localhostPath = curWwwPath.substring(0, pos);
|
||||
var url = localhostPath + "/" + path;
|
||||
window.open(url);
|
||||
};
|
||||
//]]>
|
||||
</script>
|
||||
<style>.mar-10 {margin-left: 10px; margin-right: 10px;}</style>
|
||||
<fieldset class="cbi-section">
|
||||
<legend><%:Aria2 Status%></legend>
|
||||
<p id="aria2_status">
|
||||
<em><%:Collecting data...%></em>
|
||||
</p>
|
||||
</fieldset>
|
|
@ -0,0 +1,116 @@
|
|||
<%#
|
||||
Copyright 2017-2019 Xingwang Liao <kuoruan@gmail.com>
|
||||
Licensed to the public under the MIT License.
|
||||
-%>
|
||||
|
||||
<%
|
||||
local ipkg = require "luci.model.ipkg"
|
||||
local has_ui = false
|
||||
|
||||
local uilist = {
|
||||
supported = {
|
||||
["ariang"] = "AriaNg",
|
||||
["webui-aria2"] = "WebUI-Aria2",
|
||||
["yaaw"] = "YAAW"
|
||||
},
|
||||
installed = {}
|
||||
}
|
||||
|
||||
for k in pairs(uilist.supported) do
|
||||
if ipkg.installed(k) then
|
||||
uilist.installed[#uilist.installed + 1] = k
|
||||
has_ui = true
|
||||
end
|
||||
end
|
||||
%>
|
||||
|
||||
<fieldset class="cbi-section">
|
||||
<p id="aria2_status">
|
||||
<em><%:Collecting data...%></em>
|
||||
</p>
|
||||
<% if has_ui then %>
|
||||
<p>
|
||||
<%:Installed web interface: %>
|
||||
<%- for _, v in pairs(uilist.installed) do %>
|
||||
<input type="button" class="cbi-button" style="margin: 0 5px;" value="<%=uilist.supported[v]%>" onclick="openWebInterface('<%=v%>');" />
|
||||
<%- end %>
|
||||
<p>
|
||||
<% end %>
|
||||
</fieldset>
|
||||
|
||||
<script type="text/javascript">//<![CDATA[
|
||||
XHR.poll(5, '<%=url("admin/services/aria2/status")%>', null,
|
||||
function(x, data) {
|
||||
var tb = document.getElementById('aria2_status');
|
||||
if (data && tb) {
|
||||
tb.innerHTML = data.running
|
||||
? '<%:The Aria2 service is running.%>'
|
||||
: '<%:The Aria2 service is not running.%>';
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
function randomString(len) {
|
||||
var randomStr = '';
|
||||
var restLen = len;
|
||||
while ((restLen = len - randomStr.length) > 0) {
|
||||
randomStr += Math.random().toString(36).substring(2, 2 + restLen);
|
||||
}
|
||||
return randomStr;
|
||||
}
|
||||
|
||||
function randomToken() {
|
||||
var len = 32;
|
||||
var inputLength = prompt('<%:Please input token length:%>', len);
|
||||
if (inputLength === null || inputLength === '') {
|
||||
return;
|
||||
} else if (/^\d+$/.test(inputLength)) {
|
||||
len = parseInt(inputLength);
|
||||
}
|
||||
|
||||
var secretInput = document.getElementById('cbid.aria2.main.rpc_secret');
|
||||
if (secretInput) {
|
||||
secretInput.value = randomString(len);
|
||||
}
|
||||
};
|
||||
|
||||
function showRPCURL() {
|
||||
var portElm = document.getElementById('cbid.aria2.main.rpc_listen_port');
|
||||
var authMethodElm = document.getElementById('cbid.aria2.main.rpc_auth_method');
|
||||
var useWSElm = document.getElementById('cbid.aria2.main._use_ws');
|
||||
var secureElm = document.getElementById('cbid.aria2.main.rpc_secure');
|
||||
|
||||
var port = (portElm && /^\d+$/.test(portElm.value)) ? parseInt(portElm.value) : 6800;
|
||||
var authMethod = (authMethodElm && authMethodElm.value) ? authMethodElm.value : "none";
|
||||
var useWS = (useWSElm && useWSElm.checked) ? true : false;
|
||||
var secure = (secureElm && secureElm.checked) ? true : false;
|
||||
|
||||
var protocol = useWS
|
||||
? (secure ? 'wss' : 'ws')
|
||||
: (secure ? 'https' : 'http');
|
||||
var url = protocol + "://";
|
||||
|
||||
if (authMethod == 'token') {
|
||||
var authToken = document.getElementById('cbid.aria2.main.rpc_secret').value;
|
||||
url += 'token:' + authToken + '@';
|
||||
} else if (authMethod == 'user_pass') {
|
||||
var authUser = document.getElementById('cbid.aria2.main.rpc_user').value;
|
||||
var authPasswd = document.getElementById('cbid.aria2.main.rpc_passwd').value;
|
||||
url += authUser + ':' + authPasswd + '@';
|
||||
}
|
||||
url += window.location.hostname + ':' + port + '/jsonrpc';
|
||||
var rpcUrlElm = document.getElementById('cbid.aria2.main._rpc_url');
|
||||
|
||||
if (rpcUrlElm) {
|
||||
rpcUrlElm.value = url;
|
||||
} else {
|
||||
alert(url)
|
||||
}
|
||||
};
|
||||
|
||||
function openWebInterface(path) {
|
||||
var host = window.location.host;
|
||||
var protocol = window.location.protocol;
|
||||
window.open(protocol + '//' + host + '/' + path);
|
||||
};
|
||||
//]]></script>
|
|
@ -0,0 +1,22 @@
|
|||
<%#
|
||||
Copyright 2017-2019 Xingwang Liao <kuoruan@gmail.com>
|
||||
Licensed to the public under the MIT License.
|
||||
-%>
|
||||
|
||||
<%+cbi/valueheader%>
|
||||
<input data-update="change" type="text" class="cbi-input-text"<%=
|
||||
attr("id", cbid) ..
|
||||
attr("name", cbid) ..
|
||||
attr("value", self:cfgvalue(section) or self.default) ..
|
||||
ifattr(self.size, "size") ..
|
||||
ifattr(self.placeholder, "placeholder") ..
|
||||
ifattr(self.maxlength, "maxlength") ..
|
||||
ifattr(self.datatype, "data-type", self.datatype) ..
|
||||
ifattr(self.onmouseover, "onmouseover")
|
||||
%> />
|
||||
<%- if self.btntext then -%>
|
||||
<div class="cbi-button cbi-button-neutral" title="<%=self.btntext%>" aria-label="<%=self.btntext%>"<%=
|
||||
ifattr(self.btnclick, "onclick", self.btnclick)
|
||||
%>><span style="font-weight: normal;"><%=self.btntext%></span></div>
|
||||
<% end %>
|
||||
<%+cbi/valuefooter%>
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,284 +1,789 @@
|
|||
msgid ""
|
||||
msgstr "Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
|
||||
msgid "\"Falloc\" is not available in all cases."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:153
|
||||
msgid "<abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:157
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:296
|
||||
msgid "<abbr title=\"Local Peer Discovery\">LPD</abbr> enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:171
|
||||
msgid "Additional Bt tracker enabled"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:414
|
||||
msgid "Additional BT tracker"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:419
|
||||
msgid "Advanced Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:169
|
||||
msgid "All proxy"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:228
|
||||
msgid "Append HEADERs to HTTP request header."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/controller/aria2.lua:18
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:35
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:14
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:45
|
||||
msgid "Aria2"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/controller/aria2.lua:21
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:49
|
||||
msgid "Aria2 Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:80
|
||||
msgid "Aria2 Status"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:45
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:37
|
||||
msgid ""
|
||||
"Aria2 is a multi-protocol & multi-source download utility, here you can "
|
||||
"configure the settings."
|
||||
"Aria2 is a lightweight multi-protocol & multi-source, cross platform "
|
||||
"download utility."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
|
||||
msgid "Autosave session interval"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:428
|
||||
msgid "Auto save interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:56
|
||||
msgid "BitTorrent Settings"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:56
|
||||
msgid "Basic Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:165
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:276
|
||||
msgid "BitTorrent Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:335
|
||||
msgid "BitTorrent listen port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:82
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:189
|
||||
msgid "CA certificate"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:195
|
||||
msgid "Certificate"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:182
|
||||
msgid "Check certificate"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:242
|
||||
msgid ""
|
||||
"Close connection if download speed is lower than or equal to this "
|
||||
"value(bytes per sec). 0 means has no lowest speed limit."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:49
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/settings_header.htm:29
|
||||
msgid "Collecting data..."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:89
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:73
|
||||
msgid "Config file directory"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:98
|
||||
#: applications/luci-app-aria2/luasrc/controller/aria2.lua:21
|
||||
msgid "Configuration"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:230
|
||||
msgid "Connect timeout"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:19
|
||||
msgid "Content of config file: <code>%s</code>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:29
|
||||
msgid "Content of session file: <code>%s</code>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:341
|
||||
msgid "DHT Listen port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:87
|
||||
msgid "Debug"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:104
|
||||
msgid "Default download directory"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:422
|
||||
msgid ""
|
||||
"Disable IPv6. This is useful if you have to use broken DNS and want to avoid "
|
||||
"terribly slow AAAA record lookup."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:440
|
||||
msgid "Disk cache"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
|
||||
msgid "Enable log"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:259
|
||||
msgid "Don't split less than 2*SIZE byte range. Possible values: 1M-1024M."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:58
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:254
|
||||
msgid "Download a file using N connections."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:69
|
||||
msgid "Download directory"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:26
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:36
|
||||
msgid "Empty file."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:280
|
||||
msgid "Enable IPv4 DHT functionality. It also enables UDP tracker support."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:290
|
||||
msgid "Enable IPv6 DHT functionality."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:298
|
||||
msgid "Enable Local Peer Discovery."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:307
|
||||
msgid "Enable Peer Exchange extension."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:442
|
||||
msgid "Enable disk cache (in bytes), set 0 to disabled."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:77
|
||||
msgid "Enable logging"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:305
|
||||
msgid "Enable peer exchange"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:166
|
||||
msgid "Enable proxy"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:58
|
||||
msgid "Enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:102
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:91
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:201
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:44
|
||||
msgid "Error: Can't find aria2c in PATH, please reinstall aria2."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:482
|
||||
msgid "Extra Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:114
|
||||
msgid "Falloc"
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:39
|
||||
msgid "Failed to load log data."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:54
|
||||
msgid "Files and Locations"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:350
|
||||
msgid "False"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:161
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:447
|
||||
msgid "File allocation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:25
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:35
|
||||
msgid "File does not exist."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/controller/aria2.lua:24
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:14
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:348
|
||||
msgid "Follow torrent"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:53
|
||||
msgid "General Settings"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:38
|
||||
msgid "For more information, please visit: %s"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:19
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:460
|
||||
msgid "Force save"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:129
|
||||
msgid "Generate Randomly"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:99
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:210
|
||||
msgid "HTTP accept gzip"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:219
|
||||
msgid "HTTP no cache"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:164
|
||||
msgid "HTTP/FTP/SFTP Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:227
|
||||
msgid "Header"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/files.lua:15
|
||||
msgid "Here shows the files used by aria2."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:278
|
||||
msgid "IPv4 <abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:288
|
||||
msgid "IPv6 <abbr title=\"Distributed Hash Table\">DHT</abbr> enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:421
|
||||
msgid "IPv6 disabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:379
|
||||
msgid ""
|
||||
"If the whole download speed of every torrent is lower than SPEED, aria2 "
|
||||
"temporarily increases the number of peers to try for more download speed. "
|
||||
"Configuring this option with your preferred download speed can increase your "
|
||||
"download speed in some cases."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:88
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:172
|
||||
msgid "List of additional Bt tracker"
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/settings_header.htm:33
|
||||
msgid "Installed web interface:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:205
|
||||
msgid "List of extra settings"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:158
|
||||
msgid "Json-RPC URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:96
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:351
|
||||
msgid "Keep in memory"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:34
|
||||
msgid "Last 50 lines of log file:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:36
|
||||
msgid "Last 50 lines of syslog:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:62
|
||||
msgid "Leave blank to use default user."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:415
|
||||
msgid "List of additional BitTorrent tracker's announce URI."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:488
|
||||
msgid ""
|
||||
"List of extra settings. Format: option=value, eg. <code>netrc-path=/tmp/."
|
||||
"netrc</code>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:48
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/controller/aria2.lua:27
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:45
|
||||
msgid "Log Data"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:80
|
||||
msgid "Log file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:85
|
||||
msgid "Log level"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:134
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:240
|
||||
msgid "Lowest speed limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:94
|
||||
msgid "Max concurrent downloads"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:137
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:248
|
||||
msgid "Max connection per server"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:168
|
||||
msgid "Max number of peers per torrent"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:475
|
||||
msgid "Max download limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:144
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:253
|
||||
msgid "Max number of split"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:141
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:367
|
||||
msgid "Max open files"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:468
|
||||
msgid "Max overall download limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:353
|
||||
msgid "Max overall upload limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:372
|
||||
msgid "Max peers"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:262
|
||||
msgid "Max tries"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:360
|
||||
msgid "Max upload limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:258
|
||||
msgid "Min split size"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:72
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:115
|
||||
msgid "No Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:100
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:35
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:37
|
||||
msgid "No log data."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:454
|
||||
msgid "None"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:89
|
||||
msgid "Notice"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:111
|
||||
msgid "Off"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:99
|
||||
msgid "Pause"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:15
|
||||
msgid "Open AriaNg"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:99
|
||||
msgid "Pause download after added."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:12
|
||||
msgid "Open WebUI-Aria2"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:105
|
||||
msgid "Pause downloads created as a result of metadata download."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:9
|
||||
msgid "Open YAAW"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:104
|
||||
msgid "Pause metadata"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
|
||||
msgid "Overall download limit"
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/settings_header.htm:64
|
||||
msgid "Please input token length:"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:116
|
||||
msgid "Overall speed limit enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
|
||||
msgid "Overall upload limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
|
||||
msgid "Per task download limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:125
|
||||
msgid "Per task speed limit enabled"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
|
||||
msgid "Per task upload limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:112
|
||||
msgid "Prealloc"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:110
|
||||
msgid "Preallocation"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:198
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:393
|
||||
msgid "Prefix of peer ID"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:85
|
||||
msgid "RPC Token"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:203
|
||||
msgid "Private key"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:71
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:177
|
||||
msgid "Proxy password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:174
|
||||
msgid "Proxy user"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:97
|
||||
msgid "RPC Options"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:114
|
||||
msgid "RPC authentication method"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:80
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:140
|
||||
msgid "RPC certificate"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:122
|
||||
msgid "RPC password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:67
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:110
|
||||
msgid "RPC port"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:76
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:149
|
||||
msgid "RPC private key"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:133
|
||||
msgid "RPC secure"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:126
|
||||
msgid "RPC token"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:134
|
||||
msgid ""
|
||||
"RPC transport will be encrypted by SSL/TLS. The RPC clients must use https "
|
||||
"scheme to access the server. For WebSocket client, use wss scheme."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:119
|
||||
msgid "RPC username"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:61
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/log_template.htm:51
|
||||
msgid "Refresh every 10 seconds."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:322
|
||||
msgid "Remove unselected file"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:323
|
||||
msgid ""
|
||||
"Removes the unselected files when download is completed in BitTorrent. "
|
||||
"Please use this option with care because it will actually remove files from "
|
||||
"your disk."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:377
|
||||
msgid "Request peer speed limit"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:266
|
||||
msgid "Retry wait"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:61
|
||||
msgid "Run daemon as user"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:147
|
||||
msgid "Sec"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:315
|
||||
msgid "Sava metadata"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:55
|
||||
msgid "Task Settings"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:429
|
||||
msgid ""
|
||||
"Save a control file(*.aria2) every N seconds. If 0 is given, a control file "
|
||||
"is not saved during download."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:19
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:461
|
||||
msgid ""
|
||||
"Save download to session file even if the download is completed or removed. "
|
||||
"This option also saves control file in that situations. This may be useful "
|
||||
"to save BitTorrent seeding which is recognized as completed state."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:435
|
||||
msgid ""
|
||||
"Save error/unfinished downloads to session file every N seconds. If 0 is "
|
||||
"given, file will be saved only when aria2 exits."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:316
|
||||
msgid ""
|
||||
"Save meta data as \".torrent\" file. This option has effect only when "
|
||||
"BitTorrent Magnet URI is used. The file name is hex encoded info hash with "
|
||||
"suffix \".torrent\"."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:434
|
||||
msgid "Save session interval"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:330
|
||||
msgid "Seed previously downloaded files without verifying piece hashes."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:401
|
||||
msgid "Seed ratio"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:408
|
||||
msgid "Seed time"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:329
|
||||
msgid "Seed unverified"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:211
|
||||
msgid ""
|
||||
"Send <code>Accept: deflate, gzip</code> request header and inflate response "
|
||||
"if remote server responds with <code>Content-Encoding: gzip</code> or "
|
||||
"<code>Content-Encoding: deflate</code>."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:220
|
||||
msgid ""
|
||||
"Send <code>Cache-Control: no-cache</code> and <code>Pragma: no-cache</code> "
|
||||
"header to avoid cached content. If disabled, these headers are not sent and "
|
||||
"you can add Cache-Control header with a directive you like using \"Header\" "
|
||||
"option."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:336
|
||||
msgid ""
|
||||
"Set TCP port number for BitTorrent downloads. Accept format: \"6881,6885\", "
|
||||
"\"6881-6999\" and \"6881-6889,6999\". Make sure that the specified ports are "
|
||||
"open for incoming TCP traffic."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:342
|
||||
msgid ""
|
||||
"Set UDP listening port used by DHT(IPv4, IPv6) and UDP tracker. Make sure "
|
||||
"that the specified ports are open for incoming UDP traffic."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:477
|
||||
msgid ""
|
||||
"Set max download speed per each download in bytes/sec. 0 means unrestricted."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:470
|
||||
msgid "Set max overall download speed in bytes/sec. 0 means unrestricted."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:355
|
||||
msgid "Set max overall upload speed in bytes/sec. 0 means unrestricted."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:362
|
||||
msgid ""
|
||||
"Set max upload speed per each torrent in bytes/sec. 0 means unrestricted."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:231
|
||||
msgid ""
|
||||
"Set the connect timeout in seconds to establish connection to HTTP/FTP/proxy "
|
||||
"server. After the connection is established, this option makes no effect and "
|
||||
"\"Timeout\" option is used instead."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:267
|
||||
msgid "Set the seconds to wait between retries."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:272
|
||||
msgid "Set user agent for HTTP(S) downloads."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:35
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:483
|
||||
msgid "Settings in this section will be added to config file."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:487
|
||||
msgid "Settings list"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:161
|
||||
msgid "Show URL"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:448
|
||||
msgid ""
|
||||
"Specify file allocation method. If you are using newer file systems such as "
|
||||
"ext4 (with extents support), btrfs, xfs or NTFS(MinGW build only), \"falloc"
|
||||
"\" is your best choice. It allocates large(few GiB) files almost instantly, "
|
||||
"but it may not be available if your system doesn't have posix_fallocate(3) "
|
||||
"function. Don't use \"falloc\" with legacy file systems such as ext3 and "
|
||||
"FAT32 because it takes almost same time as \"prealloc\" and it blocks aria2 "
|
||||
"entirely until allocation finishes."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:368
|
||||
msgid ""
|
||||
"Specify maximum number of files to open in multi-file BitTorrent download "
|
||||
"globally."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:409
|
||||
msgid ""
|
||||
"Specify seeding time in minutes. If \"Seed ratio\" option is specified along "
|
||||
"with this option, seeding ends when at least one of the conditions is "
|
||||
"satisfied. Specifying 0 disables seeding after download completed."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:402
|
||||
msgid ""
|
||||
"Specify share ratio. Seed completed torrents until share ratio reaches "
|
||||
"RATIO. You are strongly encouraged to specify equals or more than 1.0 here. "
|
||||
"Specify 0.0 if you intend to do seeding regardless of share ratio."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:373
|
||||
msgid "Specify the maximum number of peers per torrent, 0 means unlimited."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:394
|
||||
msgid ""
|
||||
"Specify the prefix of peer ID. The peer ID in BitTorrent is 20 byte length. "
|
||||
"If more than 20 bytes are specified, only first 20 bytes are used. If less "
|
||||
"than 20 bytes are specified, random byte data are added to make its length "
|
||||
"20 bytes."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:388
|
||||
msgid ""
|
||||
"Stop BitTorrent download if download speed is 0 in consecutive N seconds. If "
|
||||
"0 is given, this feature is disabled."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:387
|
||||
msgid "Stop timeout"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/settings_header.htm:48
|
||||
msgid "The Aria2 service is not running."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/overview_status.htm:7
|
||||
#: applications/luci-app-aria2/luasrc/view/aria2/settings_header.htm:47
|
||||
msgid "The Aria2 service is running."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:92
|
||||
msgid "The default log file is /var/log/aria2.log"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:74
|
||||
msgid "The directory to store the config file, session file and DHT file."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:74
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:70
|
||||
msgid "The directory to store the downloaded file. eg. <code>/mnt/sda1</code>"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:81
|
||||
msgid "The file name of the log file."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:249
|
||||
msgid "The maximum number of connections to one server for each download."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:281
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:291
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:299
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:308
|
||||
msgid "This option will be ignored if a private flag is set in a torrent."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:236
|
||||
msgid "Timeout"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:117
|
||||
msgid "Token"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:113
|
||||
msgid "Trunc"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:349
|
||||
msgid "True"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:22
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:156
|
||||
msgid "Use WebSocket"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:150
|
||||
msgid "User agent value"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:170
|
||||
msgid "Use a proxy server for all protocols."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:73
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:190
|
||||
msgid ""
|
||||
"Use the certificate authorities in FILE to verify the peers. The certificate "
|
||||
"file must be in PEM format and can contain multiple CA certificates."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:141
|
||||
msgid ""
|
||||
"Use the certificate in FILE for RPC server. The certificate must be either "
|
||||
"in PKCS12 (.p12, .pfx) or in PEM format.<br/>PKCS12 files must contain the "
|
||||
"certificate, a key and optionally a chain of additional certificates. Only "
|
||||
"PKCS12 files with a blank import password can be opened!<br/>When using PEM, "
|
||||
"you have to specify the \"RPC private key\" as well."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:196
|
||||
msgid ""
|
||||
"Use the client certificate in FILE. The certificate must be either in PKCS12 "
|
||||
"(.p12, .pfx) or in PEM format.<br/>PKCS12 files must contain the "
|
||||
"certificate, a key and optionally a chain of additional certificates. Only "
|
||||
"PKCS12 files with a blank import password can be opened!<br/>When using PEM, "
|
||||
"you have to specify the \"Private key\" as well."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:150
|
||||
msgid ""
|
||||
"Use the private key in FILE for RPC server. The private key must be "
|
||||
"decrypted and in PEM format."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:204
|
||||
msgid ""
|
||||
"Use the private key in FILE. The private key must be decrypted and in PEM "
|
||||
"format. The behavior when encrypted one is given is undefined."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:271
|
||||
msgid "User agent"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:116
|
||||
msgid "Username & Password"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:20
|
||||
msgid "View Json-RPC URL"
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:183
|
||||
msgid ""
|
||||
"Verify the peer using certificates specified in \"CA certificate\" option."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:101
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:90
|
||||
msgid "Warn"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:107
|
||||
msgid "in bytes, You can append K or M."
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:244
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:356
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:363
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:383
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:443
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:471
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:478
|
||||
msgid "You can append K or M."
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:119
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:122
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:128
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2.lua:131
|
||||
msgid "in bytes/sec, You can append K or M."
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:457
|
||||
msgid "falloc"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:455
|
||||
msgid "prealloc"
|
||||
msgstr ""
|
||||
|
||||
#: applications/luci-app-aria2/luasrc/model/cbi/aria2/config.lua:456
|
||||
msgid "trunc"
|
||||
msgstr ""
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -7,5 +7,19 @@ uci -q batch <<-EOF >/dev/null
|
|||
commit ucitrack
|
||||
EOF
|
||||
|
||||
if [ ."$(uci -q get aria2.main)" != ."aria2" ]; then
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
add aria2 aria2
|
||||
rename aria2.@aria2[-1]="main"
|
||||
set aria2.main.enabled=0
|
||||
set aria2.main.dir="/var/run/aria2"
|
||||
set aria2.main.config_dir="/var/etc/aria2"
|
||||
add_list aria2.main.header=""
|
||||
add_list aria2.main.bt_tracker=""
|
||||
add_list aria2.main.extra_setting=""
|
||||
commit aria2
|
||||
EOF
|
||||
fi
|
||||
|
||||
rm -f /tmp/luci-indexcache
|
||||
exit 0
|
||||
|
|
Loading…
Reference in a new issue