Files
openwrt-packages/luci-app-clash/luasrc/model/cbi/clash/logs/log.lua
2022-04-11 16:22:56 +08:00

51 lines
1.1 KiB
Lua

local NXFS = require "nixio.fs"
local SYS = require "luci.sys"
local HTTP = require "luci.http"
local DISP = require "luci.dispatcher"
local UTIL = require "luci.util"
local uci = require("luci.model.uci").cursor()
local fs = require "luci.clash"
local http = luci.http
m = Map("clash")
s = m:section(TypedSection, "clash")
m.pageaction = false
s.anonymous = true
s.addremove=false
log = s:option(TextValue, "clog")
log.template = "clash/status_log"
o = s:option(Button, "Download")
o.inputtitle = translate("Download logs")
o.inputstyle = "apply"
o.write = function ()
local sPath, sFile, fd, block
sPath = "/usr/share/clash/clash.txt"
sFile = NXFS.basename(sPath)
if fs.isdirectory(sPath) then
fd = io.popen('txt -C "%s" -cz .' % {sPath}, "r")
sFile = sFile .. ".txt"
else
fd = nixio.open(sPath, "r")
end
if not fd then
return
end
HTTP.header('Content-Disposition', 'attachment; filename="%s"' % {sFile})
HTTP.prepare_content("application/octet-stream")
while true do
block = fd:read(nixio.const.buffersize)
if (not block) or (#block ==0) then
break
else
HTTP.write(block)
end
end
fd:close()
HTTP.close()
end
return m