模块:沙盒
来自 LNN的:not(博客)?
更多操作
脚本错误:Lua错误:无法创建进程:proc_open(/dev/null): Failed to open stream: Operation not permitted
local p = {}
local libraryUtil = require("libraryUtil")
local bit32 = require("bit32")
local getArgs = require("Module:Arguments").getArgs
function p._sts(str)
libraryUtil.checkType("_sts", 1, str, "string")
local bytes = { str:byte(1, #str) }
local zero = false
for i, byte in ipairs(bytes) do
local bits
if byte >= 0xf8 then error("bad utf-8 string in 'sts'")
elseif byte >= 0xf0 then bits = bit32.band(byte, 0x07)
elseif byte >= 0xe0 then bits = bit32.band(byte, 0x0f)
elseif byte >= 0xc0 then bits = bit32.band(byte, 0x1f)
elseif byte >= 0x80 then
if zero then bits = bit32.band(byte, 0x3f)
else bits = 0x40
end
else bits = byte
end
zero = bits == 0
bits = bit32.rshift(bits, 1)
bits = bit32.bor(bits, bit32.rshift(bits, 1))
bits = bit32.bor(bits, bit32.rshift(bits, 2))
bits = bit32.bor(bits, bit32.rshift(bits, 4))
bytes[i] = bit32.bxor(byte, bits)
end
return string.char(unpack(bytes))
end
function p.sts(frame)
local args = getArgs(frame)
local input = mw.text.killMarkers(frame.args[1])
return p._sts(input)
end
function p.args(frame)
return mw.text.nowiki(mw.text.jsonEncode(frame.args))
end
return p