<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ACiteConversionTest</id>
	<title>Module:CiteConversionTest - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ACiteConversionTest"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:CiteConversionTest&amp;action=history"/>
	<updated>2026-06-13T04:56:41Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:CiteConversionTest&amp;diff=471268&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:CiteConversionTest&amp;diff=471268&amp;oldid=prev"/>
		<updated>2021-07-15T21:01:26Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;c = {}&lt;br /&gt;
&lt;br /&gt;
function c.test( frame )&lt;br /&gt;
    local target = frame.args[1] or frame.args.target;&lt;br /&gt;
    &lt;br /&gt;
    local tt = mw.title.new( target );&lt;br /&gt;
    &lt;br /&gt;
    local content = tt:getContent();&lt;br /&gt;
    &lt;br /&gt;
    local result = '';&lt;br /&gt;
    local template;&lt;br /&gt;
    local i = 1;&lt;br /&gt;
    for template in string.gmatch( content, '%b{}' ) do&lt;br /&gt;
        local mode, param;&lt;br /&gt;
        mode, param = string.match( template, '{{%s*cite (%w*)%s*|([^}]*)}}' );&lt;br /&gt;
        if mode ~= nil and mode ~= 'quick' then&lt;br /&gt;
            result = result .. '\n{{cite compare|mode=' .. mode .. &amp;quot; | &amp;quot; .. param .. &amp;quot;}}\n&amp;quot;;&lt;br /&gt;
            i = i + 1;&lt;br /&gt;
        end        &lt;br /&gt;
        mode, param = string.match( template, '{{%s*cite quick%s*|%s*(%w*)%s*|([^}]*)}}' );&lt;br /&gt;
        if mode ~= nil then&lt;br /&gt;
            result = result .. '\n{{cite compare|mode=' .. mode .. &amp;quot; | &amp;quot; .. param .. &amp;quot;}}\n&amp;quot;;&lt;br /&gt;
            i = i + 1;&lt;br /&gt;
        end        &lt;br /&gt;
        if i &amp;gt; 90 then break; end --prevent time outs&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    return frame:preprocess(result);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function c.gather( frame )&lt;br /&gt;
    local typ = frame.args[1] or frame.args.mode;&lt;br /&gt;
    local start = frame.args[2] or frame.args.start;&lt;br /&gt;
    local required = frame.args[3] or frame.args.require;&lt;br /&gt;
&lt;br /&gt;
    local tt = mw.title.new( start );&lt;br /&gt;
    local content = tt:getContent();&lt;br /&gt;
&lt;br /&gt;
    local targets = {};&lt;br /&gt;
    for w in string.gmatch( content, '%[%[(%w-)%]%]' ) do&lt;br /&gt;
        targets[w] = true;&lt;br /&gt;
    end   &lt;br /&gt;
    &lt;br /&gt;
    local targets2 = {}&lt;br /&gt;
    for k in pairs( targets ) do&lt;br /&gt;
        tt = mw.title.new( k );&lt;br /&gt;
        if tt ~= nil then&lt;br /&gt;
            content = tt:getContent() or &amp;quot;&amp;quot;;&lt;br /&gt;
        else&lt;br /&gt;
            content = nil;&lt;br /&gt;
        end        &lt;br /&gt;
        if content ~= nil then &lt;br /&gt;
            for w in string.gmatch( content, '%[%[(%w-)%]%]' ) do&lt;br /&gt;
                targets2[w] = true;&lt;br /&gt;
            end   &lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    targets = targets2;&lt;br /&gt;
&lt;br /&gt;
    local result = '';&lt;br /&gt;
    local cnt = 0;&lt;br /&gt;
    local param_list = {};&lt;br /&gt;
    for k in pairs( targets ) do    &lt;br /&gt;
        local tt = mw.title.new( k );&lt;br /&gt;
        cnt = cnt + 1;&lt;br /&gt;
        &lt;br /&gt;
        if tt ~= nil then            &lt;br /&gt;
            local content = tt:getContent() or '';&lt;br /&gt;
            local template;&lt;br /&gt;
            local i = 1;&lt;br /&gt;
            &lt;br /&gt;
            for template in string.gmatch( content, '%b{}' ) do&lt;br /&gt;
                local param;   &lt;br /&gt;
                if typ == 'citation' then&lt;br /&gt;
                    param = string.match( template, '{{%s*' .. typ .. '%s*|([^}]*)}}' );&lt;br /&gt;
                else&lt;br /&gt;
                    param = string.match( template, '{{%s*[cC]ite ' .. typ .. '%s*|([^}]*)}}' );&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                if param ~= nil then&lt;br /&gt;
                    local good = false;&lt;br /&gt;
                    for kw in string.gmatch( param, &amp;quot;[%s|](%w-)%s*=&amp;quot; ) do&lt;br /&gt;
                        if required ~= nil then&lt;br /&gt;
                            if kw == required then&lt;br /&gt;
                                good = true;&lt;br /&gt;
                            end&lt;br /&gt;
                        else                            &lt;br /&gt;
                            if param_list[kw] == nil then&lt;br /&gt;
                                good = true;&lt;br /&gt;
                                param_list[kw] = true;&lt;br /&gt;
                            end&lt;br /&gt;
                        end                        &lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    if good or (required==nil and math.random(50) == 1) then &lt;br /&gt;
                        result = result .. frame:preprocess( '&amp;lt;nowiki&amp;gt;{{cite compare|mode=' .. typ .. &amp;quot; | &amp;quot; .. param .. &amp;quot;}}&amp;lt;/nowiki&amp;gt;&amp;quot; ) .. &amp;quot;\n&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
                    end&lt;br /&gt;
                end        &lt;br /&gt;
            end &lt;br /&gt;
        end        &lt;br /&gt;
        if cnt &amp;gt; 150 then break; end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function c.casing( frame )&lt;br /&gt;
    local start = frame.args[1] or frame.args.start;&lt;br /&gt;
&lt;br /&gt;
    local tt = mw.title.new( start );&lt;br /&gt;
    local content = tt:getContent();&lt;br /&gt;
&lt;br /&gt;
    local targets = {};&lt;br /&gt;
    for w in string.gmatch( content, '%[%[(%w-)%]%]' ) do&lt;br /&gt;
        targets[w] = true;&lt;br /&gt;
    end   &lt;br /&gt;
    &lt;br /&gt;
    local targets2 = {}&lt;br /&gt;
    for k in pairs( targets ) do&lt;br /&gt;
        tt = mw.title.new( k );&lt;br /&gt;
        content = tt:getContent();&lt;br /&gt;
        for w in string.gmatch( content, '%[%[(%w-)%]%]' ) do&lt;br /&gt;
            targets2[w] = true;&lt;br /&gt;
        end   &lt;br /&gt;
    end&lt;br /&gt;
    targets = targets2;&lt;br /&gt;
&lt;br /&gt;
    local result = '';&lt;br /&gt;
    local cnt = 0;&lt;br /&gt;
    local param_list = {};&lt;br /&gt;
    for k in pairs( targets ) do    &lt;br /&gt;
        local tt = mw.title.new( k );&lt;br /&gt;
        cnt = cnt + 1;&lt;br /&gt;
        &lt;br /&gt;
        if tt ~= nil then            &lt;br /&gt;
            local content = tt:getContent() or '';&lt;br /&gt;
            local template;&lt;br /&gt;
            local i = 1;&lt;br /&gt;
            &lt;br /&gt;
            for template in string.gmatch( content, '%b{}' ) do&lt;br /&gt;
                local mode, param;                &lt;br /&gt;
                mode, param = string.match( template, '{{%s*cite (%w-)%s*|([^}]*)}}' );&lt;br /&gt;
                if param ~= nil then&lt;br /&gt;
                    local good = false;&lt;br /&gt;
                    for kw in string.gmatch( param, &amp;quot;[%s|](%w-)%s*=&amp;quot; ) do&lt;br /&gt;
                        if kw:match('[A-Z]') ~= nil then good = true; end&lt;br /&gt;
                    end&lt;br /&gt;
                    &lt;br /&gt;
                    if good then &lt;br /&gt;
                        result = result .. frame:preprocess( '&amp;lt;nowiki&amp;gt;{{cite compare|mode=' .. mode .. &amp;quot; | &amp;quot; .. param .. &amp;quot;}}&amp;lt;/nowiki&amp;gt;&amp;quot; ) .. &amp;quot;\n&amp;lt;br /&amp;gt;&amp;quot;;&lt;br /&gt;
                    end&lt;br /&gt;
                end        &lt;br /&gt;
            end &lt;br /&gt;
        end        &lt;br /&gt;
        if cnt &amp;gt; 150 then break; end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return c;&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>