diff --git a/filebrowser/Makefile b/filebrowser/Makefile index 4478c31b5..51bde4c89 100644 --- a/filebrowser/Makefile +++ b/filebrowser/Makefile @@ -5,8 +5,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=filebrowser -PKG_VERSION:=2.24.0 -PKG_RELEASE:=58 +PKG_VERSION:=2.24.1 +PKG_RELEASE:=59 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/filebrowser/filebrowser/tar.gz/v$(PKG_VERSION)? diff --git a/luci-app-passwall/root/usr/share/passwall/0_default_config b/luci-app-passwall/root/usr/share/passwall/0_default_config index cadfb634e..51d9eda59 100644 --- a/luci-app-passwall/root/usr/share/passwall/0_default_config +++ b/luci-app-passwall/root/usr/share/passwall/0_default_config @@ -169,6 +169,10 @@ config shunt_rules 'BT' option remarks 'BT' option protocol 'bittorrent' +config shunt_rules 'OpenAI' + option remarks 'OpenAI' + option domain_list 'geosite:openai' + config shunt_rules 'Proxy' option remarks 'Proxy' option domain_list 'geosite:geolocation-!cn' @@ -199,10 +203,6 @@ config shunt_rules 'Proxy' config shunt_rules 'Netflix' option remarks 'Netflix' option domain_list 'geosite:netflix' - -config shunt_rules 'OpenAI' - option remarks 'OpenAI' - option domain_list 'geosite:openai' config shunt_rules 'Direct' option remarks 'Direct' diff --git a/luci-app-store/Makefile b/luci-app-store/Makefile index 4d9c46b5c..d1ad071f9 100644 --- a/luci-app-store/Makefile +++ b/luci-app-store/Makefile @@ -11,12 +11,12 @@ LUCI_DEPENDS:=@(x86_64||aarch64) +curl +opkg +luci-lib-ipkg +tar +coreutils +cor LUCI_EXTRA_DEPENDS:=luci-lib-taskd (>=1.0.17) LUCI_PKGARCH:=all -PKG_VERSION:=0.1.13-3 +PKG_VERSION:=0.1.14-1 # PKG_RELEASE MUST be empty for luci.mk -PKG_RELEASE:=65 +PKG_RELEASE:=66 -ISTORE_UI_VERSION:=0.1.13 -ISTORE_UI_RELEASE:=3 +ISTORE_UI_VERSION:=0.1.14 +ISTORE_UI_RELEASE:=1 PKG_HASH:=skip PKG_SOURCE_URL_FILE:=v$(ISTORE_UI_VERSION)-$(ISTORE_UI_RELEASE).tar.gz @@ -30,6 +30,7 @@ TARGET_CONFIGURE_OPTS+= SED="$(SED)" define Package/luci-app-store/conffiles /etc/.app_store.id +/etc/config/istore endef include $(TOPDIR)/feeds/luci/luci.mk diff --git a/luci-app-store/luasrc/controller/store.lua b/luci-app-store/luasrc/controller/store.lua index e0879f0d1..297fdfa67 100644 --- a/luci-app-store/luasrc/controller/store.lua +++ b/luci-app-store/luasrc/controller/store.lua @@ -24,6 +24,7 @@ function index() entry({"admin", "store", "upload"}, post("store_upload")) entry({"admin", "store", "check_self_upgrade"}, call("check_self_upgrade")) entry({"admin", "store", "do_self_upgrade"}, post("do_self_upgrade")) + entry({"admin", "store", "toggle_docker"}, post("toggle_docker")) for _, action in ipairs({"update", "install", "upgrade", "remove"}) do store_api(action, true) @@ -67,6 +68,16 @@ local function user_id() return id end +local function user_config() + local uci = require "luci.model.uci".cursor() + + local data = { + hide_docker = uci:get("istore", "istore", "hide_docker") == "1", + channel = uci:get("istore", "istore", "channel") + } + return data +end + local function vue_lang() local i18n = require("luci.i18n") local lang = i18n.translate("istore_vue_lang") @@ -131,11 +142,14 @@ function store_index() if luci.sys.call("[ -d /ext_overlay ] >/dev/null 2>&1") == 0 then features[#features+1] = "sandbox" end - luci.template.render("store/main", {prefix=luci.dispatcher.build_url(unpack(page_index)),id=user_id(),lang=vue_lang(),features=features}) + if luci.sys.call("[ -f /www/luci-static/resources/luci.js ] >/dev/null 2>&1") == 0 then + features[#features+1] = "luci-js" + end + luci.template.render("store/main", {prefix=luci.dispatcher.build_url(unpack(page_index)),id=user_id(),lang=vue_lang(),user_config=user_config(),features=features}) end function store_dev() - luci.template.render("store/main_dev", {prefix=luci.dispatcher.build_url(unpack({"admin", "store", "dev"})),id=user_id(),lang=vue_lang()}) + luci.template.render("store/main_dev", {prefix=luci.dispatcher.build_url(unpack({"admin", "store", "dev"})),id=user_id(),lang=vue_lang(),user_config=user_config()}) end function store_log() @@ -259,7 +273,7 @@ function store_action(param) code, out, err = _action(myopkg, action, unpack(pkgs)) else -- remove for _, dep in ipairs(meta.depends) do - if dep ~= "docker-deps" then + if dep ~= "docker-deps" and dep ~= "luci-js-deps" then pkgs[#pkgs+1] = dep end end @@ -437,7 +451,7 @@ local function update_local_backup_path(path) if path ~= local_backup_path then -- set uci config x:set("istore","istore","local_backup_path",path) - x:commit("istore") + x:commit("istore") end end @@ -612,7 +626,7 @@ end -- post set_local_backup_dir_path function set_local_backup_dir_path() local path = luci.http.formvalue("path") - local success_ret = {code = 200,msg = "Success"} + local success_ret = {code = 200, msg = "Success"} local error_ret = {code = 500, msg = "Unknown"} if path ~= "" then @@ -715,3 +729,12 @@ function get_block_devices() luci.http.write_json(error_ret) end end + +function toggle_docker() + local uci = require "luci.model.uci".cursor() + local hide = luci.http.formvalue("hide") + uci:set("istore", "istore", "hide_docker", hide == "true" and "1" or "0") + uci:commit("istore") + luci.http.prepare_content("application/json") + luci.http.write_json({code = 200, msg = "Success"}) +end diff --git a/luci-app-store/luasrc/view/store/main.htm b/luci-app-store/luasrc/view/store/main.htm index 16ff68b76..161ca3df1 100644 --- a/luci-app-store/luasrc/view/store/main.htm +++ b/luci-app-store/luasrc/view/store/main.htm @@ -20,6 +20,7 @@ window.token = "<%=token%>"; window.device_id = {arch:"<%=id.arch%>",uid:"<%=id.uid%>",version:"<%=id.version%>"}; window.istore_features = <%=jsonc.stringify(features)%>.filter(f => f !== '_lua_force_array_'); + window.istore_config = <%=jsonc.stringify(user_config or {})%>; })();

<%:iStore%> diff --git a/luci-app-store/root/etc/config/istore b/luci-app-store/root/etc/config/istore new file mode 100644 index 000000000..f04d42d16 --- /dev/null +++ b/luci-app-store/root/etc/config/istore @@ -0,0 +1,3 @@ +config istore 'istore' + option hide_docker '0' +# option channel 'istore' diff --git a/luci-app-store/root/usr/share/rpcd/acl.d/luci-app-store.json b/luci-app-store/root/usr/share/rpcd/acl.d/luci-app-store.json new file mode 100644 index 000000000..4be4f3fb9 --- /dev/null +++ b/luci-app-store/root/usr/share/rpcd/acl.d/luci-app-store.json @@ -0,0 +1,11 @@ +{ + "luci-app-store": { + "description": "Grant UCI access for luci-app-store", + "read": { + "uci": [ "istore" ] + }, + "write": { + "uci": [ "istore" ] + } + } +} diff --git a/luci-proto-xmm/htdocs/luci-static/resources/protocol/xmm.js b/luci-proto-xmm/htdocs/luci-static/resources/protocol/xmm.js index 10d88e110..ade5af4d0 100644 --- a/luci-proto-xmm/htdocs/luci-static/resources/protocol/xmm.js +++ b/luci-proto-xmm/htdocs/luci-static/resources/protocol/xmm.js @@ -73,6 +73,16 @@ return network.registerProtocol('xmm', { return true; }; + s.taboption('general', form.Value, 'username', _('PAP/CHAP username')); + + o = s.taboption('general', form.Value, 'password', _('PAP/CHAP password')); + + o = s.taboption('general', form.ListValue, 'auth', _('Auth Type')); + o.value('auto', 'Auto'); + o.value('pap', 'PAP'); + o.value('chap', 'CHAP'); + o.default = 'auto'; + o = s.taboption('advanced', form.Value, 'delay', _('Modem init timeout'), _('Maximum amount of seconds to wait for the modem to become ready')); o.placeholder = '10'; o.datatype = 'min(1)'; diff --git a/lucky/Makefile b/lucky/Makefile index fccc10875..e6f23bc9e 100644 --- a/lucky/Makefile +++ b/lucky/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=lucky -PKG_VERSION:=1.10.8 -PKG_RELEASE:=16 +PKG_VERSION:=2.1.1 +PKG_RELEASE:=17 ifeq ($(ARCH),mipsel) LUCKY_ARCH:=mipsle_softfloat diff --git a/quickstart/Makefile b/quickstart/Makefile index f78a999d5..522a10ab9 100644 --- a/quickstart/Makefile +++ b/quickstart/Makefile @@ -10,8 +10,8 @@ include $(TOPDIR)/rules.mk PKG_ARCH_quickstart:=$(ARCH) PKG_NAME:=quickstart -PKG_VERSION:=0.7.10 -PKG_RELEASE:=59 +PKG_VERSION:=0.7.12 +PKG_RELEASE:=60 PKG_SOURCE:=$(PKG_NAME)-binary-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://github.com/linkease/istore-packages/releases/download/prebuilt/ PKG_HASH:=skip diff --git a/xmm-modem/Makefile b/xmm-modem/Makefile index fbdb49fd8..85323d674 100644 --- a/xmm-modem/Makefile +++ b/xmm-modem/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xmm-modem -PKG_VERSION:=0.1.1 -PKG_RELEASE:=20 +PKG_VERSION:=0.1.2 +PKG_RELEASE:=21 PKG_MAINTAINER:=Konstantine Shevlakov include $(INCLUDE_DIR)/package.mk diff --git a/xmm-modem/README.md b/xmm-modem/README.md index 8847a5c86..aef67feac 100644 --- a/xmm-modem/README.md +++ b/xmm-modem/README.md @@ -9,7 +9,10 @@ config interface 'wwan' option proto 'xmm' option pdp 'ip' # Connect method IPV4/6 version option apn 'internet' # APN Cellular - option delay '10' # Delay configure interface after connect + option delay '10' # Delay interface to connect + optiom auth 'auto' # Auth type (auto, pap or chap) + option username 'username' # username + option password 'password' # password ``` # How-to configure interface via LuCi diff --git a/xmm-modem/root/etc/gcom/xmm-auth.gcom b/xmm-modem/root/etc/gcom/xmm-auth.gcom new file mode 100644 index 000000000..060598f8c --- /dev/null +++ b/xmm-modem/root/etc/gcom/xmm-auth.gcom @@ -0,0 +1,13 @@ +opengt + set com 115200n81 + set comecho off + set senddelay 0.02 + waitquiet 0.2 0.2 + + send "AT+XGAUTH=1," + send $env("AUTH") + send ",\"" + send $env("USER") + send "\",\"" + send $env("PASS") + send "\"^m" diff --git a/xmm-modem/root/lib/netifd/proto/xmm.sh b/xmm-modem/root/lib/netifd/proto/xmm.sh index 52922c20d..8390d14ae 100755 --- a/xmm-modem/root/lib/netifd/proto/xmm.sh +++ b/xmm-modem/root/lib/netifd/proto/xmm.sh @@ -13,15 +13,18 @@ proto_xmm_init_config() { proto_config_add_string "apn" proto_config_add_string "pdp" proto_config_add_string "delay" + proto_config_add_string "username" + proto_config_add_string "password" + proto_config_add_string "auth" proto_config_add_defaults } proto_xmm_setup() { local interface="$1" local devname devpath hwaddr ip4addr ip4mask dns1 dns2 defroute lladdr - local name ifname proto extendprefix - local device ifname apn pdp pincode delay $PROTO_DEFAULT_OPTIONS - json_get_vars device ifname apn pdp pincode delay $PROTO_DEFAULT_OPTIONS + local name ifname proto extendprefix auth username password + local device ifname auth username password apn pdp pincode delay $PROTO_DEFAULT_OPTIONS + json_get_vars device ifname auth username password apn pdp pincode delay $PROTO_DEFAULT_OPTIONS [ "$metric" = "" ] && metric="0" [ -z $ifname ] && { devname=$(basename $device) @@ -52,13 +55,22 @@ proto_xmm_setup() { [ "$pdp" = "IP" -o "$pdp" = "IPV6" -o "$pdp" = "IPV4V6" ] || pdp="IP" echo "Setting up $ifname" [ -n "$delay" ] && sleep "$delay" || sleep 5 - APN=$apn PDP=$pdp gcom -d $device -s /etc/gcom/xmm-connect.gcom >/dev/null 2&>1 + [ -n "$username" ] && [ -n "$password" ] && { + echo "Using auth type is: $auth" + case $auth in + pap) AUTH=1 ;; + chap) AUTH=2 ;; + *) AUTH=0 ;; + esac + AUTH=$AUTH USER=$username PASS=$password gcom -d "$device" -s /etc/gcom/xmm-auth.gcom >/dev/null 2>&1 + } + APN=$apn PDP=$pdp gcom -d $device -s /etc/gcom/xmm-connect.gcom >/dev/null 2>&1 proto_init_update "$ifname" 1 proto_add_data proto_close_data DATA=$(gcom -d $device -s /etc/gcom/xmm-config.gcom) - ip4addr=$(echo "$DATA" | awk -F [,] '/^\+CGPADDR/{gsub("\r|\"", ""); print $2}') >/dev/null 2&>1 - lladdr=$(echo "$DATA" | awk -F [,] '/^\+CGPADDR/{gsub("\r|\"", ""); print $3}') >/dev/null 2&>1 + ip4addr=$(echo "$DATA" | awk -F [,] '/^\+CGPADDR/{gsub("\r|\"", ""); print $2}') >/dev/null 2>&1 + lladdr=$(echo "$DATA" | awk -F [,] '/^\+CGPADDR/{gsub("\r|\"", ""); print $3}') >/dev/null 2>&1 ns=$(echo "$DATA" | awk -F [,] '/^\+XDNS: /{gsub("\r|\"",""); print $2" "$3}' | sed 's/^[[:space:]]//g') dns1=$(echo "$ns" | grep -v "0.0.0.0" | tail -1) if ! [ $ip4addr ]; then @@ -83,7 +95,7 @@ proto_xmm_setup() { if ! [ "$(echo $ip4addr | grep 0.0.0.0)" ]; then echo "Set IPv4 address: ${ip4addr}/${ip4mask}" proto_add_ipv4_address $ip4addr $ip4mask - proto_add_ipv4_route "0.0.0.0" 0 $defroute + proto_add_ipv4_route "0.0.0.0" 0 $defroute $ip4addr else echo "Failed to configure interface" proto_notify_error "$interface" CONFIGURE_FAILED @@ -99,7 +111,7 @@ proto_xmm_setup() { } [ "$pdp" = "IPV6" -o "$pdp" = "IPV4V6" ] && { - ip -6 address add ${lladdr}/64 dev $ifname >/dev/null 2&>1 + ip -6 address add ${lladdr}/64 dev $ifname >/dev/null 2>&1 json_init json_add_string name "${interface}_6" json_add_string ifname "@$interface" @@ -115,7 +127,7 @@ proto_xmm_teardown() { local interface="$1" local device device=$(uci -q get network.$interface.device) - gcom -d $device -s /etc/gcom/xmm-disconnect.gcom >/dev/null 2&>1 + gcom -d $device -s /etc/gcom/xmm-disconnect.gcom >/dev/null 2>&1 echo "Modem $device disconnected" proto_kill_command "$interface" }