mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
add docker all feeds soft
This commit is contained in:
parent
4ff1102a1a
commit
4b2ee656b7
178 changed files with 15534 additions and 0 deletions
130
luci-app-usb-printer/luasrc/model/cbi/usb_printer.lua
Normal file
130
luci-app-usb-printer/luasrc/model/cbi/usb_printer.lua
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
--[[
|
||||
LuCI - Lua Configuration Interface
|
||||
|
||||
Copyright 2008 Steven Barth <steven@midlink.org>
|
||||
Copyright 2005-2013 hackpascal <hackpascal@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
|
||||
|
||||
$Id$
|
||||
]]--
|
||||
|
||||
require "luci.util"
|
||||
local uci = luci.model.uci.cursor_state()
|
||||
local net = require "luci.model.network"
|
||||
|
||||
m = Map("usb_printer", translate("USB Printer Server"),
|
||||
translate("Shares multiple USB printers via TCP/IP.<br />When modified bingings, re-plug usb connectors to take effect.<br />This module requires kmod-usb-printer."))
|
||||
|
||||
function hex_align(hex, num)
|
||||
local len = num - string.len(hex)
|
||||
|
||||
return string.rep("0", len) .. hex
|
||||
end
|
||||
|
||||
function detect_usb_printers()
|
||||
local data = {}
|
||||
|
||||
local lps = luci.util.execi("/usr/bin/detectlp")
|
||||
|
||||
for value in lps do
|
||||
local row = {}
|
||||
|
||||
--[[
|
||||
detectlp 的输出格式:
|
||||
设备名,VID/PID/?,描述,型号
|
||||
]]--
|
||||
|
||||
local pos = string.find(value, ",")
|
||||
|
||||
local devname = string.sub(value, 1, pos - 1)
|
||||
|
||||
local value = string.sub(value, pos + 1, string.len(value))
|
||||
|
||||
pos = string.find(value, ",")
|
||||
local product = string.sub(value, 1, pos - 1)
|
||||
|
||||
value = string.sub(value, pos + 1, string.len(value))
|
||||
|
||||
pos = string.find(value, ",")
|
||||
local model = string.sub(value, 1, pos - 1)
|
||||
|
||||
local name = string.sub(value, pos + 1, string.len(value))
|
||||
|
||||
pos = string.find(product, "/");
|
||||
|
||||
local vid = string.sub(product, 1, pos - 1)
|
||||
|
||||
local pid = string.sub(product, pos + 1, string.len(product))
|
||||
|
||||
pos = string.find(pid, "/")
|
||||
pid = string.sub(pid, 1, pos - 1)
|
||||
|
||||
row["description"] = name
|
||||
row["model"] = model
|
||||
row["id"] = hex_align(vid, 4) .. ":" .. hex_align(pid, 4)
|
||||
row["name"] = devname
|
||||
row["product"] = product
|
||||
|
||||
table.insert(data, row)
|
||||
end
|
||||
|
||||
return data
|
||||
end
|
||||
|
||||
local printers = detect_usb_printers()
|
||||
|
||||
v = m:section(Table, printers, translate("Detected printers"))
|
||||
|
||||
v:option(DummyValue, "description", translate("Description"))
|
||||
v:option(DummyValue, "model", translate("Printer Model"))
|
||||
v:option(DummyValue, "id", translate("VID/PID"))
|
||||
v:option(DummyValue, "name", translate("Device Name"))
|
||||
|
||||
net = net.init(m.uci)
|
||||
|
||||
s = m:section(TypedSection, "printer", translate("Bindings"))
|
||||
s.addremove = true
|
||||
s.anonymous = true
|
||||
|
||||
s:option(Flag, "enabled", translate("enable"))
|
||||
|
||||
d = s:option(Value, "device", translate("Device"))
|
||||
d.rmempty = true
|
||||
|
||||
for key, item in ipairs(printers) do
|
||||
d:value(item["product"], item["description"] .. " [" .. item["id"] .. "]")
|
||||
end
|
||||
|
||||
b = s:option(Value, "bind", translate("Interface"), translate("Specifies the interface to listen on."))
|
||||
b.template = "cbi/network_netlist"
|
||||
b.nocreate = true
|
||||
b.unspecified = true
|
||||
|
||||
function b.cfgvalue(...)
|
||||
local v = Value.cfgvalue(...)
|
||||
if v then
|
||||
return (net:get_status_by_address(v))
|
||||
end
|
||||
end
|
||||
|
||||
function b.write(self, section, value)
|
||||
local n = net:get_network(value)
|
||||
if n and n:ipaddr() then
|
||||
Value.write(self, section, n:ipaddr())
|
||||
end
|
||||
end
|
||||
|
||||
p = s:option(ListValue, "port", translate("Port"), translate("TCP listener port."))
|
||||
p.rmempty = true
|
||||
for i = 0, 9 do
|
||||
p:value(i, 9100 + i)
|
||||
end
|
||||
|
||||
s:option(Flag, "bidirectional", translate("Bidirectional mode"))
|
||||
|
||||
return m
|
||||
Loading…
Add table
Add a link
Reference in a new issue