mirror of
				https://github.com/kenzok8/openwrt-packages.git
				synced 2025-10-30 07:50:37 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			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
 | 
![github-actions[bot]](/assets/img/avatar_default.png)