模块:沙盒:修订间差异
来自 LNN的:not(博客)?
更多操作
创建页面,内容为“local p = {} function p.hello(param) return string.rep("Hello, world!\n\n", tonumber(param or 1)) end return p” |
小 导入1个版本:从分支站同步更改 标签:自动同步 |
||
| (未显示1个用户的9个中间版本) | |||
| 第1行: | 第1行: | ||
local p = {} | local p = {} | ||
local libraryUtil = require("libraryUtil") | |||
local bit32 = require("bit32") | |||
local getArgs = require("Module:Arguments").getArgs | |||
function p. | 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 | |||
function p.getargs(frame) | |||
return mw.text.nowiki(mw.text.jsonEncode(getArgs(frame))) | |||
end | end | ||
return p | return p | ||
2024年11月26日 (二) 21:49的最新版本
脚本错误: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
function p.getargs(frame)
return mw.text.nowiki(mw.text.jsonEncode(getArgs(frame)))
end
return p