<?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%3AURL_to_diff</id>
	<title>Module:URL to diff - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3AURL_to_diff"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:URL_to_diff&amp;action=history"/>
	<updated>2026-06-19T05:44:43Z</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:URL_to_diff&amp;diff=479836&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:URL_to_diff&amp;diff=479836&amp;oldid=prev"/>
		<updated>2021-07-16T07:43:47Z</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;-- This module converts Wikipedia diff URLs to the {{diff}} template format.&lt;br /&gt;
&lt;br /&gt;
local newBuffer = require('Module:OutputBuffer')&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function decodeUrl(url)&lt;br /&gt;
	if type(url) ~= 'string' then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	url = mw.uri.new(url)&lt;br /&gt;
	if not url or url.host ~= 'en.wikipedia.org' then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local data = {}&lt;br /&gt;
	data.title = url.query.title and mw.uri.decode(url.query.title, 'WIKI')&lt;br /&gt;
	data.diff = url.query.diff&lt;br /&gt;
	data.oldid = url.query.oldid&lt;br /&gt;
	data.diffonly = url.query.diffonly&lt;br /&gt;
	return data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function encodeDiffTemplate(data)&lt;br /&gt;
	if not data.title and not data.diff and not data.oldid then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local isNamed = false -- Track whether we need to use named parameters&lt;br /&gt;
	for k, v in pairs(data) do&lt;br /&gt;
		if string.find(v, '=') then&lt;br /&gt;
			isNamed = true&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local getBuffer, print, printf = newBuffer()&lt;br /&gt;
	print('diff')&lt;br /&gt;
	printf('%s%s', isNamed and 'page=' or '', data.title or '')&lt;br /&gt;
	printf('%s%s', isNamed and 'diff=' or '', data.diff or '')&lt;br /&gt;
	printf('%s%s', isNamed and 'oldid=' or '', data.oldid or '')&lt;br /&gt;
	if data.label then&lt;br /&gt;
		printf('%s%s', isNamed and 'label=' or '', data.label)&lt;br /&gt;
	end&lt;br /&gt;
	if data.diffonly then&lt;br /&gt;
		printf('diffonly=%s', data.diffonly)&lt;br /&gt;
	end&lt;br /&gt;
	local ret = getBuffer('|')&lt;br /&gt;
	ret = '{{' .. ret .. '}}'&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._url(args)&lt;br /&gt;
	local data = decodeUrl(args.url)&lt;br /&gt;
	if data then&lt;br /&gt;
		data.label = args.label&lt;br /&gt;
		return encodeDiffTemplate(data)&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.url(frame)&lt;br /&gt;
	local args = require('Module:Arguments').getArgs(frame, {&lt;br /&gt;
		wrappers = 'Template:URL to diff',&lt;br /&gt;
	})&lt;br /&gt;
	return p._url(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Zoran</name></author>
	</entry>
</feed>