mirror of
https://github.com/coolsnowwolf/lede.git
synced 2025-04-16 04:13:31 +00:00
luci-app-qbittorrent-simple: add luci for qbittorrent simple UI
This commit is contained in:
parent
c5f12bf7aa
commit
2347b04b60
35
package/lean/luci-app-qbittorrent-simple/Makefile
Normal file
35
package/lean/luci-app-qbittorrent-simple/Makefile
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# Copyright (C) 2019 Openwrt.org
|
||||||
|
#
|
||||||
|
# This is free software, licensed under the Apache License, Version 2.0 .
|
||||||
|
#
|
||||||
|
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=luci-app-qbittorrent-simple
|
||||||
|
PKG_VERSION:=1.0.0
|
||||||
|
PKG_RELEASE:=3
|
||||||
|
|
||||||
|
LUCI_TITLE:=LuCI support for qBittorrent
|
||||||
|
LUCI_PKGARCH:=all
|
||||||
|
LUCI_DEPENDS:= \
|
||||||
|
+PACKAGE_luci-app-qbittorrent-simple_static:qBittorrent-static \
|
||||||
|
+PACKAGE_luci-app-qbittorrent-simple_dynamic:qbittorrent
|
||||||
|
|
||||||
|
define Package/$(PKG_NAME)/config
|
||||||
|
choice
|
||||||
|
prompt "Build Version Selection"
|
||||||
|
default PACKAGE_luci-app-qbittorrent-simple_dynamic
|
||||||
|
|
||||||
|
config PACKAGE_luci-app-qbittorrent-simple_static
|
||||||
|
bool "Static Build"
|
||||||
|
depends on arm||aarch64||x86_64
|
||||||
|
|
||||||
|
config PACKAGE_luci-app-qbittorrent-simple_dynamic
|
||||||
|
bool "Dynamic Build"
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
endef
|
||||||
|
|
||||||
|
include $(TOPDIR)/feeds/luci/luci.mk
|
||||||
|
|
||||||
|
# call BuildPackage - OpenWrt buildroot signature
|
@ -0,0 +1,24 @@
|
|||||||
|
module("luci.controller.qbittorrent", package.seeall)
|
||||||
|
|
||||||
|
function index()
|
||||||
|
if not nixio.fs.access("/etc/config/qbittorrent") then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
entry({"admin", "nas", "qbittorrent"}, cbi("qbittorrent"), _("qBittorrent"), 20).dependent = true
|
||||||
|
entry({"admin", "nas", "qbittorrent_status"}, call("qbittorrent_status"))
|
||||||
|
end
|
||||||
|
|
||||||
|
function qbittorrent_status()
|
||||||
|
local sys = require "luci.sys"
|
||||||
|
local uci = require "luci.model.uci".cursor()
|
||||||
|
local port = tonumber(uci:get_first("qbittorrent", "qbittorrent", "port"))
|
||||||
|
|
||||||
|
local status = {
|
||||||
|
running = (sys.call("pidof qbittorrent-nox >/dev/null") == 0),
|
||||||
|
port = (port or 8080)
|
||||||
|
}
|
||||||
|
|
||||||
|
luci.http.prepare_content("application/json")
|
||||||
|
luci.http.write_json(status)
|
||||||
|
end
|
@ -0,0 +1,15 @@
|
|||||||
|
local m, s
|
||||||
|
|
||||||
|
m = Map("qbittorrent", translate("qBittorrent"), translate("qBittorrent is a cross-platform free and open-source BitTorrent client. Default username & password: admin / adminadmin"))
|
||||||
|
|
||||||
|
m:section(SimpleSection).template = "qbittorrent_status"
|
||||||
|
|
||||||
|
s=m:section(TypedSection, "qbittorrent", translate("Global settings"))
|
||||||
|
s.addremove=false
|
||||||
|
s.anonymous=true
|
||||||
|
|
||||||
|
s:option(Flag, "enabled", translate("Enable")).rmempty=false
|
||||||
|
s:option(Value, "port", translate("WebUI Port")).rmempty=false
|
||||||
|
s:option(Value, "profile_dir", translate("Configuration files Path")).rmempty=false
|
||||||
|
|
||||||
|
return m
|
@ -0,0 +1,26 @@
|
|||||||
|
<script type="text/javascript">//<![CDATA[
|
||||||
|
XHR.poll(5, '<%=url("admin/nas/qbittorrent_status")%>', null,
|
||||||
|
function(x, st)
|
||||||
|
{
|
||||||
|
var tb = document.getElementById('qbittorrent_status');
|
||||||
|
if (st && tb)
|
||||||
|
{
|
||||||
|
if (st.running)
|
||||||
|
{
|
||||||
|
tb.innerHTML = '<em style=\"color:green\"><b>qBittorrent <%:RUNNING%></b></em>' + " <input class=\"btn cbi-button cbi-button-apply \" type=\"button\" value=\" <%:Open Web Interface%> \" onclick=\"window.open('http://" + window.location.hostname + ":" + st.port + "/')\"/>";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tb.innerHTML = '<em style=\"color:red\"><b>qBittorrent <%:NOT RUNNING%></b></em>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
);
|
||||||
|
//]]></script>
|
||||||
|
|
||||||
|
<style>.mar-10 {margin-left: 50px; margin-right: 10px;}</style>
|
||||||
|
<fieldset class="cbi-section">
|
||||||
|
<p id="qbittorrent_status">
|
||||||
|
<em><b><%:Collecting data...%></b></em>
|
||||||
|
</p>
|
||||||
|
</fieldset>
|
@ -0,0 +1,29 @@
|
|||||||
|
msgid "qBittorrent"
|
||||||
|
msgstr "qBittorrent"
|
||||||
|
|
||||||
|
msgid "Running state"
|
||||||
|
msgstr "运行状态"
|
||||||
|
|
||||||
|
msgid "Open Web Interface"
|
||||||
|
msgstr "打开管理页面"
|
||||||
|
|
||||||
|
msgid "qBittorrent is a cross-platform free and open-source BitTorrent client. Default username & password: admin / adminadmin"
|
||||||
|
msgstr "qBittorrent 是一个基于 QT 的跨平台的开源 BitTorrent 客户端。默认用户名 & 密码:admin / adminadmin"
|
||||||
|
|
||||||
|
msgid "Global settings"
|
||||||
|
msgstr "全局设置"
|
||||||
|
|
||||||
|
msgid "WebUI Port"
|
||||||
|
msgstr "WebUI 监听端口"
|
||||||
|
|
||||||
|
msgid "Configuration files Path"
|
||||||
|
msgstr "配置文件路径"
|
||||||
|
|
||||||
|
msgid "RUNNING"
|
||||||
|
msgstr "运行中"
|
||||||
|
|
||||||
|
msgid "NOT RUNNING"
|
||||||
|
msgstr "未运行"
|
||||||
|
|
||||||
|
msgid "Collecting data..."
|
||||||
|
msgstr "收集数据..."
|
@ -0,0 +1,4 @@
|
|||||||
|
config qbittorrent
|
||||||
|
option 'enabled' '0'
|
||||||
|
option 'port' '8080'
|
||||||
|
option 'profile_dir' '/etc/qbittorrent'
|
36
package/lean/luci-app-qbittorrent-simple/root/etc/init.d/qbittorrent
Executable file
36
package/lean/luci-app-qbittorrent-simple/root/etc/init.d/qbittorrent
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
|
||||||
|
START=99
|
||||||
|
USE_PROCD=1
|
||||||
|
PROG=/usr/bin/qbittorrent-nox
|
||||||
|
|
||||||
|
get_config() {
|
||||||
|
config_get_bool enabled $1 enabled 1
|
||||||
|
config_get port $1 port 8080
|
||||||
|
config_get profile_dir $1 profile_dir "/etc/qbittorrent"
|
||||||
|
}
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
config_load qbittorrent
|
||||||
|
config_foreach get_config qbittorrent
|
||||||
|
[ $enabled != 1 ] && return 1
|
||||||
|
if [ ! -f "$profile_dir/qBittorrent/config/qBittorrent.conf" ]; then
|
||||||
|
mkdir -p $profile_dir/qBittorrent/config/
|
||||||
|
cp /etc/qbittorrent/qBittorrent.conf.example $profile_dir/qBittorrent/config/qBittorrent.conf
|
||||||
|
fi
|
||||||
|
procd_open_instance
|
||||||
|
procd_set_param command $PROG
|
||||||
|
procd_append_param command --webui-port=$port --profile=$profile_dir
|
||||||
|
procd_set_param respawn
|
||||||
|
procd_close_instance
|
||||||
|
}
|
||||||
|
|
||||||
|
service_triggers() {
|
||||||
|
procd_add_reload_trigger "qbittorrent"
|
||||||
|
}
|
||||||
|
|
||||||
|
reload_service() {
|
||||||
|
stop
|
||||||
|
sleep 1
|
||||||
|
start
|
||||||
|
}
|
@ -0,0 +1,66 @@
|
|||||||
|
[AutoRun]
|
||||||
|
enabled=false
|
||||||
|
program=
|
||||||
|
|
||||||
|
[BitTorrent]
|
||||||
|
Session\DefaultSavePath=/tmp
|
||||||
|
Session\QueueingSystemEnabled=false
|
||||||
|
|
||||||
|
[Core]
|
||||||
|
AutoDeleteAddedTorrentFile=Never
|
||||||
|
|
||||||
|
[LegalNotice]
|
||||||
|
Accepted=true
|
||||||
|
|
||||||
|
[Meta]
|
||||||
|
MigrationVersion=3
|
||||||
|
|
||||||
|
[Network]
|
||||||
|
Proxy\OnlyForTorrents=false
|
||||||
|
|
||||||
|
[Preferences]
|
||||||
|
Advanced\RecheckOnCompletion=false
|
||||||
|
Advanced\trackerPort=9000
|
||||||
|
Connection\ResolvePeerCountries=true
|
||||||
|
DynDNS\DomainName=changeme.dyndns.org
|
||||||
|
DynDNS\Enabled=false
|
||||||
|
DynDNS\Password=
|
||||||
|
DynDNS\Service=DynDNS
|
||||||
|
DynDNS\Username=
|
||||||
|
General\Locale=zh
|
||||||
|
MailNotification\email=
|
||||||
|
MailNotification\enabled=false
|
||||||
|
MailNotification\password=
|
||||||
|
MailNotification\req_auth=true
|
||||||
|
MailNotification\req_ssl=false
|
||||||
|
MailNotification\sender=qBittorrent_notification@example.com
|
||||||
|
MailNotification\smtp_server=smtp.changeme.com
|
||||||
|
MailNotification\username=
|
||||||
|
WebUI\Address=*
|
||||||
|
WebUI\AlternativeUIEnabled=false
|
||||||
|
WebUI\AuthSubnetWhitelist=10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
|
||||||
|
WebUI\AuthSubnetWhitelistEnabled=true
|
||||||
|
WebUI\BanDuration=3600
|
||||||
|
WebUI\CSRFProtection=false
|
||||||
|
WebUI\ClickjackingProtection=false
|
||||||
|
WebUI\CustomHTTPHeaders=
|
||||||
|
WebUI\CustomHTTPHeadersEnabled=false
|
||||||
|
WebUI\HTTPS\CertificatePath=
|
||||||
|
WebUI\HTTPS\Enabled=false
|
||||||
|
WebUI\HTTPS\KeyPath=
|
||||||
|
WebUI\HostHeaderValidation=true
|
||||||
|
WebUI\LocalHostAuth=false
|
||||||
|
WebUI\MaxAuthenticationFailCount=20
|
||||||
|
WebUI\Port=8080
|
||||||
|
WebUI\ReverseProxySupportEnabled=false
|
||||||
|
WebUI\RootFolder=
|
||||||
|
WebUI\SecureCookie=true
|
||||||
|
WebUI\ServerDomains=*
|
||||||
|
WebUI\SessionTimeout=3600
|
||||||
|
WebUI\TrustedReverseProxiesList=
|
||||||
|
WebUI\UseUPnP=true
|
||||||
|
WebUI\Username=admin
|
||||||
|
|
||||||
|
[RSS]
|
||||||
|
AutoDownloader\DownloadRepacks=true
|
||||||
|
AutoDownloader\SmartEpisodeFilter=s(\\d+)e(\\d+), (\\d+)x(\\d+), "(\\d{4}[.\\-]\\d{1,2}[.\\-]\\d{1,2})", "(\\d{1,2}[.\\-]\\d{1,2}[.\\-]\\d{4})"
|
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
uci -q batch <<-EOF >/dev/null
|
||||||
|
delete ucitrack.@qbittorrent[-1]
|
||||||
|
add ucitrack qbittorrent
|
||||||
|
set ucitrack.@qbittorrent[-1].init=qbittorrent
|
||||||
|
commit ucitrack
|
||||||
|
EOF
|
||||||
|
|
||||||
|
rm -f /tmp/luci-indexcache*
|
||||||
|
exit 0
|
@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"luci-app-qbittorrent": {
|
||||||
|
"description": "Grant UCI access for luci-app-qbittorrent",
|
||||||
|
"read": {
|
||||||
|
"uci": [ "qbittorrent" ]
|
||||||
|
},
|
||||||
|
"write": {
|
||||||
|
"uci": [ "qbittorrent" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user