<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://drl.droidbuilders.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AFacebookCite</id>
	<title>Module:FacebookCite - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://drl.droidbuilders.net/index.php?action=history&amp;feed=atom&amp;title=Module%3AFacebookCite"/>
	<link rel="alternate" type="text/html" href="https://drl.droidbuilders.net/index.php?title=Module:FacebookCite&amp;action=history"/>
	<updated>2026-06-15T19:17:15Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://drl.droidbuilders.net/index.php?title=Module:FacebookCite&amp;diff=3994&amp;oldid=prev</id>
		<title>Drl-admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://drl.droidbuilders.net/index.php?title=Module:FacebookCite&amp;diff=3994&amp;oldid=prev"/>
		<updated>2018-08-12T16:26:38Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- &amp;lt;nowiki&amp;gt;&lt;br /&gt;
-- This module implements [[Template:FacebookCite]].&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
local currentTitle = mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
local function makeCategoryLink(cat)&lt;br /&gt;
	-- &amp;quot;Category&amp;quot; is split out here so that the module isn&amp;#039;t put into the&lt;br /&gt;
	-- category &amp;quot;%s&amp;quot; when the page is saved.&lt;br /&gt;
	return string.format(&amp;#039;[[%s:%s]]&amp;#039;, &amp;#039;Category&amp;#039;, cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeWikitextError(msg)&lt;br /&gt;
	local ret = &amp;#039;&amp;#039;&lt;br /&gt;
	ret = ret .. string.format(&lt;br /&gt;
		&amp;#039;&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;[[Template:FacebookCite]] error: %s.&amp;lt;/strong&amp;gt;&amp;#039;,&lt;br /&gt;
		msg&lt;br /&gt;
	)&lt;br /&gt;
	if currentTitle.namespace == 0 then&lt;br /&gt;
		ret = ret .. makeCategoryLink(&amp;#039;Pages with template parameter errors&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatDate(format, date)&lt;br /&gt;
	local success, date = pcall(lang.formatDate, lang, format, date)&lt;br /&gt;
	if success then&lt;br /&gt;
		return date&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeLinkedDate(date)&lt;br /&gt;
	return formatDate(&amp;#039;[[F j]], [[Y]]&amp;#039;, date)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formatDateAndTime(date, time)&lt;br /&gt;
	date = makeLinkedDate(date)&lt;br /&gt;
	if not date then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if time then&lt;br /&gt;
		time = formatDate(&amp;#039;g:i a&amp;#039;, time)&lt;br /&gt;
		if not time then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if time then&lt;br /&gt;
		time = string.format(&amp;#039;,&amp;amp;nbsp;%s&amp;#039;, time)&lt;br /&gt;
	else&lt;br /&gt;
		time = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return date .. time&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeArchiveLink(archive, description)&lt;br /&gt;
	if archive:find(&amp;#039;^http&amp;#039;) then&lt;br /&gt;
		return string.format(&amp;#039;[%s %s]&amp;#039;, archive, description)&lt;br /&gt;
	else&lt;br /&gt;
		return string.format(&amp;#039;[[:File:%s|%s]]&amp;#039;, archive, description)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	-- Validate parameters that are always needed&lt;br /&gt;
	if not args.description then&lt;br /&gt;
		return makeWikitextError(&lt;br /&gt;
			&amp;quot;the &amp;#039;description&amp;#039; parameter must be specified&amp;quot;&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local ret = {}&lt;br /&gt;
&lt;br /&gt;
	-- Shortcut function for adding new strings&lt;br /&gt;
	local function add(val)&lt;br /&gt;
		ret[#ret + 1] = val&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Facebook icon&lt;br /&gt;
	add(&amp;#039;[[File:Facebook_icon.png|14px|link=https://facebook.com]]&amp;amp;nbsp;&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Start citation details. If a userpage was specified, we ignore the other&lt;br /&gt;
	-- citation details.&lt;br /&gt;
	if args.userpage then&lt;br /&gt;
		add(string.format(&lt;br /&gt;
			&amp;#039;[https://www.facebook.com/%s %s] on [https://www.facebook.com/ Facebook]&amp;#039;,&lt;br /&gt;
			args.userpage, args.description&lt;br /&gt;
		))&lt;br /&gt;
	else&lt;br /&gt;
		-- Validate parameters that are only required if args.userpage is not&lt;br /&gt;
		-- set.&lt;br /&gt;
		if not args.author or not args.dateposted then&lt;br /&gt;
			return makeWikitextError(&lt;br /&gt;
				&amp;quot;if the &amp;#039;userpage&amp;#039; parameter is not set, parameters &amp;quot; ..&lt;br /&gt;
				&amp;quot;&amp;#039;author&amp;#039; and &amp;#039;dateposted&amp;#039; must be specified&amp;quot;&lt;br /&gt;
			)&lt;br /&gt;
		elseif not args.link and not args.archive then&lt;br /&gt;
			return makeWikitextError(&lt;br /&gt;
				&amp;quot;if the &amp;#039;userpage&amp;#039; parameter is not set, either &amp;#039;link&amp;#039; or &amp;quot; ..&lt;br /&gt;
				&amp;quot;&amp;#039;archive&amp;#039; must be specified&amp;quot;&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Link or archive link&lt;br /&gt;
		if args.link then&lt;br /&gt;
			add(string.format(&lt;br /&gt;
				&amp;#039;[https://www.facebook.com/%s %s].&amp;#039;,&lt;br /&gt;
				args.link, args.description&lt;br /&gt;
			))&lt;br /&gt;
		elseif args.archive then&lt;br /&gt;
			add(makeArchiveLink(args.archive, args.description) .. &amp;#039;.&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Author&lt;br /&gt;
		add(&amp;#039; &amp;#039;)&lt;br /&gt;
		add(args.author)&lt;br /&gt;
&lt;br /&gt;
		-- Date and time posted&lt;br /&gt;
		do&lt;br /&gt;
			local date = formatDateAndTime(args.dateposted, args.timeposted)&lt;br /&gt;
			if date then&lt;br /&gt;
				add(string.format(&amp;#039; (%s).&amp;#039;, date))&lt;br /&gt;
			elseif not args.timeposted then&lt;br /&gt;
				return makeWikitextError(&lt;br /&gt;
					&amp;quot;invalid date in parameter &amp;#039;dateposted&amp;#039;&amp;quot;&lt;br /&gt;
				)&lt;br /&gt;
			else&lt;br /&gt;
				return makeWikitextError(&lt;br /&gt;
					&amp;quot;invalid date in parameters &amp;#039;dateposted&amp;#039; or &amp;#039;timeposted&amp;#039;&amp;quot;&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Date and time accessed&lt;br /&gt;
		if args.dateaccessed then&lt;br /&gt;
			local date = formatDateAndTime(args.dateaccessed, args.timeaccessed)&lt;br /&gt;
			if date then&lt;br /&gt;
				add(string.format(&amp;#039; Retrieved on %s.&amp;#039;, date))&lt;br /&gt;
			elseif not args.timeaccessed then&lt;br /&gt;
				return makeWikitextError(&lt;br /&gt;
					&amp;quot;invalid date in parameter &amp;#039;dateaccessed&amp;#039;&amp;quot;&lt;br /&gt;
				)&lt;br /&gt;
			else&lt;br /&gt;
				return makeWikitextError(&lt;br /&gt;
					&amp;quot;invalid date in parameters &amp;#039;dateaccessed&amp;#039; or &amp;#039;timeaccessed&amp;#039;&amp;quot;&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Quote&lt;br /&gt;
		if args.quote then&lt;br /&gt;
			add(string.format(&amp;#039; &amp;quot;%s&amp;quot;&amp;#039;, args.quote))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Archive&lt;br /&gt;
		if args.link and args.archive then&lt;br /&gt;
			local archive = makeArchiveLink(args.archive, &amp;#039;archive copy&amp;#039;)&lt;br /&gt;
			if args.archivedate then&lt;br /&gt;
				local date = makeLinkedDate(args.archivedate)&lt;br /&gt;
				if not date then&lt;br /&gt;
					return makeWikitextError(&lt;br /&gt;
						&amp;quot;invalid date in parameter &amp;#039;archivedate&amp;#039;&amp;quot;&lt;br /&gt;
					)&lt;br /&gt;
				end&lt;br /&gt;
				archive = archive .. &amp;#039; created on &amp;#039; .. date&lt;br /&gt;
			end&lt;br /&gt;
			add(string.format(&amp;#039; &amp;lt;small&amp;gt;(%s)&amp;lt;/small&amp;gt;&amp;#039;, archive))&lt;br /&gt;
		elseif args.archivedate and not args.link then&lt;br /&gt;
			local date = makeLinkedDate(args.archivedate)&lt;br /&gt;
			if not date then&lt;br /&gt;
				return makeWikitextError(&lt;br /&gt;
					&amp;quot;invalid date in parameter &amp;#039;archivedate&amp;#039;&amp;quot;&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
			add(string.format(&lt;br /&gt;
				&amp;#039; &amp;lt;small&amp;gt;(archive copy created on %s)&amp;lt;/small&amp;gt;&amp;#039;,&lt;br /&gt;
				date&lt;br /&gt;
			))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Image&lt;br /&gt;
	if args.image then&lt;br /&gt;
		add(string.format(&amp;#039; &amp;lt;small&amp;gt;([[:%s|screenshot]])&amp;lt;/small&amp;gt;&amp;#039;, args.image))&lt;br /&gt;
	end&lt;br /&gt;
	if args.noimage then&lt;br /&gt;
		add(string.format(&amp;#039; &amp;lt;small&amp;gt;(Content no longer available)&amp;lt;/small&amp;gt;&amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Screenshot tracking category&lt;br /&gt;
	if not args.userpage &lt;br /&gt;
		and not args.archive &lt;br /&gt;
		and not args.image&lt;br /&gt;
		and not args.noimage&lt;br /&gt;
		and currentTitle.namespace == 0&lt;br /&gt;
	then&lt;br /&gt;
		add(&amp;#039;[[Category:Social media citations without screenshots]]&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs(frame:getParent().args) do&lt;br /&gt;
		v = v:match(&amp;#039;^%s*(.-)%s*$&amp;#039;) -- trim whitespace&lt;br /&gt;
		if v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;br /&gt;
&lt;br /&gt;
-- &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Drl-admin</name></author>
	</entry>
</feed>