<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2F%E9%80%86%E8%A5%B2%E7%9A%84%E5%A4%A9%E9%82%AA%E9%AC%BC%2Fvandalism</id>
	<title>Module:Sandbox/逆襲的天邪鬼/vandalism - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2F%E9%80%86%E8%A5%B2%E7%9A%84%E5%A4%A9%E9%82%AA%E9%AC%BC%2Fvandalism"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/%E9%80%86%E8%A5%B2%E7%9A%84%E5%A4%A9%E9%82%AA%E9%AC%BC/vandalism&amp;action=history"/>
	<updated>2026-05-24T09:54:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/%E9%80%86%E8%A5%B2%E7%9A%84%E5%A4%A9%E9%82%AA%E9%AC%BC/vandalism&amp;diff=146669&amp;oldid=prev</id>
		<title>imported&gt;Vanished user 1929210 at 03:02, 6 February 2017</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/%E9%80%86%E8%A5%B2%E7%9A%84%E5%A4%A9%E9%82%AA%E9%AC%BC/vandalism&amp;diff=146669&amp;oldid=prev"/>
		<updated>2017-02-06T03:02:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
  Just for fun.&lt;br /&gt;
]]--&lt;br /&gt;
&lt;br /&gt;
local func = {}&lt;br /&gt;
&lt;br /&gt;
local function rfind(s, pattern, init)&lt;br /&gt;
    local x, y&lt;br /&gt;
    local len = #s&lt;br /&gt;
    local i = init or len&lt;br /&gt;
    x, y = string.find(string.reverse(s), string.reverse(pattern), len-i+1, true)&lt;br /&gt;
    if x then&lt;br /&gt;
        return len-y+1, len-x+1&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- TODO: fix for English Wikipedia&lt;br /&gt;
function func.eatuserbox(frame)&lt;br /&gt;
    local text = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
    local output = &amp;#039;&amp;#039;&lt;br /&gt;
    &lt;br /&gt;
    output = string.gsub(text, &amp;#039;(class=&amp;quot;wikipediauserbox&amp;quot; style=&amp;quot;.-)&amp;quot;&amp;#039;, &amp;#039;%1;visibility:hidden;&amp;quot;&amp;#039;)&lt;br /&gt;
    output = string.gsub(output, &amp;#039;(style=&amp;quot;.-)(&amp;quot; class=&amp;quot;wikipediauserbox&amp;quot;)&amp;#039;, &amp;#039;%1;visibility:hidden;%2&amp;#039;)&lt;br /&gt;
    output = string.gsub(output, &amp;#039;(class=&amp;quot;wikipediauserbox%-m&amp;quot; style=&amp;quot;.-)&amp;quot;&amp;#039;, &amp;#039;%1;visibility:hidden;&amp;quot;&amp;#039;)&lt;br /&gt;
    output = string.gsub(output, &amp;#039;(&amp;lt;div style=&amp;quot;.-)(&amp;quot;&amp;gt;%s*{%|%s*cellspacing=&amp;quot;0&amp;quot;)&amp;#039;, &amp;#039;%1;visibility:hidden;%2&amp;#039;)&lt;br /&gt;
    -- 專殺{{現在}}&lt;br /&gt;
    output = string.gsub(output, &amp;#039;(&amp;lt;div style=&amp;quot;float:left; border: 1px solid orange; margin:1px; background: white; width: 238px; height:45px; text%-align: center; vertical%-align: middle;.-)(&amp;quot;&amp;gt;)&amp;#039;, &amp;#039;%1;visibility:hidden;%2&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    -- 將「坐等刪除」換成已被刪光&lt;br /&gt;
    if (not frame.args[&amp;#039;notaunt&amp;#039;]) or (mw.text.trim(frame.args[&amp;#039;notaunt&amp;#039;]) == &amp;#039;&amp;#039;) then&lt;br /&gt;
        local x, y = string.find(output, &amp;#039;這個用戶正坐等他人來刪除用戶框。&amp;lt;/td&amp;gt;&amp;#039;, 1, true)&lt;br /&gt;
        if x then&lt;br /&gt;
            local left1, left2 = rfind(output, &amp;#039;visibility:hidden;&amp;#039;, x)&lt;br /&gt;
            output = string.sub(output, 1, left1-1) .. string.sub(output, left2+1, x-1) .. &amp;#039;這個用戶的用戶框全都被人刪光啦！&amp;lt;/td&amp;gt;&amp;#039; .. string.sub(output, y+1, -1)&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if (not frame.args[&amp;#039;nocategory&amp;#039;]) or (mw.text.trim(frame.args[&amp;#039;nocategory&amp;#039;]) == &amp;#039;&amp;#039;) then&lt;br /&gt;
        output = output .. &amp;#039;[[Category:用戶框被刪光了的維基人]]&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return output&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function func.countstars(frame)&lt;br /&gt;
    local text = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
    local pattern = frame.args[2] or &amp;#039;%*&amp;#039;&lt;br /&gt;
    local count = 0&lt;br /&gt;
    for _ in string.gmatch(text, pattern) do&lt;br /&gt;
    	count = count + 1&lt;br /&gt;
    end&lt;br /&gt;
    return count&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function func.strrev(frame)&lt;br /&gt;
    local text = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
    return string.reverse(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function func.strreplace(frame)&lt;br /&gt;
    local text = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
    local i=2&lt;br /&gt;
    local from, to&lt;br /&gt;
    while frame.args[i] do&lt;br /&gt;
        from = frame.args[i]&lt;br /&gt;
        to = frame.args[i+1] or &amp;#039;&amp;#039;&lt;br /&gt;
        text = string.gsub(text, from, to)&lt;br /&gt;
        i=i+2&lt;br /&gt;
    end&lt;br /&gt;
    return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function func.nowiki(frame)&lt;br /&gt;
    local text = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
    return mw.text.nowiki(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function func.nowiki2(frame)&lt;br /&gt;
    local text = mw.title.new(frame.args[1]):getContent()&lt;br /&gt;
    return mw.text.nowiki(text)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function islinkeatable(text)&lt;br /&gt;
    local test = string.lower(text)&lt;br /&gt;
    return not (string.find(test, &amp;#039;category:&amp;#039;) == 1 or string.find(test, &amp;#039;image:&amp;#039;) == 1 or &lt;br /&gt;
           string.find(test, &amp;#039;file:&amp;#039;) == 1 or&lt;br /&gt;
           string.find(test, &amp;#039;zh:&amp;#039;) == 1 or string.find(test, &amp;#039;ja:&amp;#039;) == 1)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function func.eatlinks(frame)&lt;br /&gt;
    local text = frame.args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
    -- TODO: External links&lt;br /&gt;
    return (string.gsub(text, &amp;#039;%[%[([^\n]-)%]%]&amp;#039;, function(x)&lt;br /&gt;
        if islinkeatable(x) then&lt;br /&gt;
            local target = string.gsub(x, &amp;#039;^(.-)%|.-$&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
            local text = string.gsub(x, &amp;#039;^.-%|(.-)$&amp;#039;, &amp;#039;%1&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
            if string.find(target, &amp;#039;:&amp;#039;) == 1 then&lt;br /&gt;
                if text == target then&lt;br /&gt;
                    text = string.sub(text, 2)&lt;br /&gt;
                end&lt;br /&gt;
                return &amp;#039;&amp;lt;span style=&amp;quot;color:#36b;cursor:pointer;&amp;quot;&amp;gt;&amp;#039; .. text .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
            else&lt;br /&gt;
                if mw.title.new(target):getContent() then&lt;br /&gt;
                    return &amp;#039;&amp;lt;span style=&amp;quot;color:#0645ad;cursor:pointer;&amp;quot;&amp;gt;&amp;#039; .. text .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
                else&lt;br /&gt;
                    return &amp;#039;&amp;lt;span style=&amp;quot;color:#ba0000;cursor:pointer;&amp;quot;&amp;gt;&amp;#039; .. text .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            return &amp;#039;[[&amp;#039; .. x .. &amp;#039;]]&amp;#039;&lt;br /&gt;
        end&lt;br /&gt;
    end))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return func&lt;/div&gt;</summary>
		<author><name>imported&gt;Vanished user 1929210</name></author>
	</entry>
</feed>