

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://fa.imamatpedia.com/w/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3AInternet_Archive</id>
	<title>پودمان:Internet Archive - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://fa.imamatpedia.com/w/index.php?action=history&amp;feed=atom&amp;title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86%3AInternet_Archive"/>
	<link rel="alternate" type="text/html" href="https://fa.imamatpedia.com/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Internet_Archive&amp;action=history"/>
	<updated>2026-04-20T11:18:15Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://fa.imamatpedia.com/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Internet_Archive&amp;diff=955&amp;oldid=prev</id>
		<title>Admin: ۱ نسخه واردشده</title>
		<link rel="alternate" type="text/html" href="https://fa.imamatpedia.com/w/index.php?title=%D9%BE%D9%88%D8%AF%D9%85%D8%A7%D9%86:Internet_Archive&amp;diff=955&amp;oldid=prev"/>
		<updated>2016-01-25T11:25:22Z</updated>

		<summary type="html">&lt;p&gt;۱ نسخه واردشده&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[ &lt;br /&gt;
&lt;br /&gt;
For functions related to Internet Archive&lt;br /&gt;
&lt;br /&gt;
Notes: &lt;br /&gt;
&lt;br /&gt;
1. Internet Archive runs Lucene search engine (old site). The Beta (new site) runs Elasticsearch. &lt;br /&gt;
   The search strategies will be updated when the switch occurs, the current strategy is based on Lucene.&lt;br /&gt;
&lt;br /&gt;
2. Program flowchart:&lt;br /&gt;
&lt;br /&gt;
     Check if author has birth-death data on Wikidata&lt;br /&gt;
       If birth-death data&lt;br /&gt;
         Check number of words in name&lt;br /&gt;
           Create URL for a 1,2,3,4 or 5+ word name. Include birth-death data.&lt;br /&gt;
           If accented characters in name append wildcard search to end.&lt;br /&gt;
       If not birth-death data &lt;br /&gt;
         Repeat same as above but exclude birth-death data.&lt;br /&gt;
&lt;br /&gt;
3. Lucene has a number of known issues with searching&lt;br /&gt;
&lt;br /&gt;
   A. Names with accented letters (é) - aka extended ascii - are problematic. There are records on IA in which the accent has been&lt;br /&gt;
      dropped thus é is e in the record. Thus a search strategy has to use wildcards in place of extended ascii characters. The &amp;quot;?&amp;quot;&lt;br /&gt;
      wildcard does not work correctly on Lucene and thus recommend &amp;quot;*&amp;quot;. Wildcards severely slow down search times and after about &lt;br /&gt;
      5 or 8 wildcards it may even time out. Thus, only use wildcards in a single expression within a search string.&lt;br /&gt;
   B. Extended ascii doesn&amp;#039;t work correctly if 1. not surrounded in quotes and 2. search string contains numbers and/or wildcards&lt;br /&gt;
      somewhere in it and 3. multiple () statements. The extended ascii character becomes interpreted as ascii eg. é -&amp;gt; Ã© &lt;br /&gt;
      Try for example : (Évariste Régis Huc) OR (Évariste Régis Huc 1813-1860) OR (É. R. Huc) OR (É. R. Huc 1813-1860) OR (Évariste R. Huc) OR (Évariste R. Huc 1813-1860) OR (Évariste Huc) OR (Évariste Huc 1813-1860)&lt;br /&gt;
   C. B can be nullified by enclosing the string in quotes, but this creates a literal string and many permutations must be searched&lt;br /&gt;
      on (&amp;quot;John Smith&amp;quot; OR &amp;quot;Smith, John&amp;quot; etc). For names longer than 2 words it could exceed URL limits. URLs are limited to about 2000&lt;br /&gt;
      characters to account for most browsers (IE is 2083). Thus, search strategies used are a balance between possibilities &lt;br /&gt;
      and URL length.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[ &lt;br /&gt;
&lt;br /&gt;
For Template:Internet Archive author&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function p.author(frame)&lt;br /&gt;
&lt;br /&gt;
  local pframe = frame:getParent()&lt;br /&gt;
  local args = pframe.args&lt;br /&gt;
&lt;br /&gt;
  local tname = &amp;quot;Internet Archive author&amp;quot; -- name of calling template. Change if template rename.&lt;br /&gt;
  &lt;br /&gt;
  local name = nil -- article name (default: current page)&lt;br /&gt;
  local dname = nil -- display name (default: current page name)&lt;br /&gt;
  local sname = nil -- search name (default: current page name)&lt;br /&gt;
  local byabout = &amp;quot;آثار نوشته‌شده یا دربارهٔ&amp;quot;&lt;br /&gt;
  local tagline = &amp;quot;در [[بایگانی اینترنتی]]&amp;quot;&lt;br /&gt;
  local urlhead = &amp;quot;//archive.org/search.php?query=&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  --- Determine name&lt;br /&gt;
  if args.name == &amp;quot;&amp;quot; or args.name == nil then&lt;br /&gt;
    name = mw.title.getCurrentTitle().text&lt;br /&gt;
    dname = name&lt;br /&gt;
    sname = dname&lt;br /&gt;
  else&lt;br /&gt;
    name = mw.text.trim(args.name)&lt;br /&gt;
    dname = name&lt;br /&gt;
    sname = dname&lt;br /&gt;
  end&lt;br /&gt;
  if args.sname ~= nil and args.sname ~= &amp;quot;&amp;quot; then&lt;br /&gt;
    sname = mw.text.trim(args.sname)&lt;br /&gt;
  end&lt;br /&gt;
  if args.dname ~= nil and args.dname ~= &amp;quot;&amp;quot; then&lt;br /&gt;
    dname = mw.text.trim(args.dname)&lt;br /&gt;
  end&lt;br /&gt;
  dname = mw.ustring.gsub(dname,&amp;quot;%s%(.*%)&amp;quot;, &amp;quot;&amp;quot;) -- remove disambiguation () &lt;br /&gt;
  sname = mw.ustring.gsub(sname,&amp;quot;%s%(.*%)&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  --- Determine tagline&lt;br /&gt;
  if args.coda ~= &amp;quot;&amp;quot; and args.coda ~= nil then&lt;br /&gt;
    tagline = tagline .. &amp;quot; &amp;quot; .. mw.text.trim(args.coda)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  --- Custom search. Do early to avoid unnecessary processing. &lt;br /&gt;
  if args.search ~= &amp;quot;&amp;quot; and args.search ~= nil then&lt;br /&gt;
    local search = p.ia_url_encode(mw.text.trim(args.search))&lt;br /&gt;
    return &amp;quot;[&amp;quot; .. urlhead .. search .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  -- Determine media string&lt;br /&gt;
  local media = p.mediaTypes(args.media)&lt;br /&gt;
&lt;br /&gt;
  -- Determine date of birth and death string&lt;br /&gt;
  local temp = mw.text.split(p.bdDate(args.birth, args.death, name), &amp;quot; &amp;quot;)&lt;br /&gt;
  local birth = temp[1]&lt;br /&gt;
  local death = temp[2]&lt;br /&gt;
  if birth == &amp;quot;Error&amp;quot; or death == &amp;quot;Error&amp;quot; then&lt;br /&gt;
    return &amp;quot;Error in [[:Template:&amp;quot;..tname..&amp;quot;]]: [[&amp;quot; ..name.. &amp;quot;]] doesn&amp;#039;t exist.&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
    &lt;br /&gt;
  --- Split sname into words and count words&lt;br /&gt;
  local N = mw.text.split(sname, &amp;quot; &amp;quot;)&lt;br /&gt;
  local l, count = mw.ustring.gsub(sname, &amp;quot;%S+&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  --[[ &lt;br /&gt;
&lt;br /&gt;
      Format URL&lt;br /&gt;
&lt;br /&gt;
  ]]&lt;br /&gt;
&lt;br /&gt;
  -- If no dob and dod&lt;br /&gt;
  if birth == &amp;quot;none&amp;quot; or death == &amp;quot;none&amp;quot; then&lt;br /&gt;
&lt;br /&gt;
    if count == 1 then&lt;br /&gt;
&lt;br /&gt;
      local nameurl = p.ia_url_encode(sname)&lt;br /&gt;
      local search = &amp;quot;%28subject%3A%22&amp;quot;..nameurl..&amp;quot;%22%20OR%20creator%3A%22&amp;quot;..nameurl..&amp;quot;%22%20OR%20description%3A%22&amp;quot;..nameurl..&amp;quot;%22%20OR%20title%3A%22&amp;quot;..nameurl..&amp;quot;%22&amp;quot;&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname))&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. search .. wild .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. search .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if count == 2 then&lt;br /&gt;
      local FIRST  = 1&lt;br /&gt;
      local LAST   = 2&lt;br /&gt;
&lt;br /&gt;
      local firstinitial  = mw.ustring.sub(N[FIRST], 1, 1)&lt;br /&gt;
&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local S1 = &amp;quot;%28subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local S3 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local SALL = S1..S3&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local C1 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local C3 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, F.&lt;br /&gt;
      local C5 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..firstinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      local CALL = C1..C3..C5&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local T1 = &amp;quot;%22%20OR%20title%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local TALL = T1&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local D1 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local D3 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local DALL = D1..D3..&amp;quot;%22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname)) &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. SALL .. CALL .. TALL .. DALL .. wild .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. SALL .. CALL .. TALL .. DALL .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
      &lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if count == 3 then&lt;br /&gt;
&lt;br /&gt;
      local myurl = p.threeWords(N)&lt;br /&gt;
&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname)) &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. myurl .. wild .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. myurl .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if count == 4 then&lt;br /&gt;
      local FIRST  = 1&lt;br /&gt;
      local SECOND = 2&lt;br /&gt;
      local THIRD  = 3&lt;br /&gt;
      local LAST   = 4&lt;br /&gt;
&lt;br /&gt;
      local firstinitial  = mw.ustring.sub(N[FIRST], 1, 1)&lt;br /&gt;
      local secondinitial  = mw.ustring.sub(N[SECOND], 1, 1)&lt;br /&gt;
      local thirdinitial = mw.ustring.sub(N[THIRD], 1, 1)&lt;br /&gt;
 &lt;br /&gt;
      -- Last, First Second Third&lt;br /&gt;
      local S1 = &amp;quot;%28subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]&lt;br /&gt;
      -- First Second Third Last&lt;br /&gt;
      local S2 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, First Second Third&lt;br /&gt;
      local C1 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]&lt;br /&gt;
      -- First Second Third Last&lt;br /&gt;
      local C2 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, F. S. T.&lt;br /&gt;
      local C3 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..secondinitial..&amp;quot;%2E%20&amp;quot;..thirdinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      -- First Second Third Last&lt;br /&gt;
      local T1 = &amp;quot;%22%20OR%20title%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- First Second Third Last&lt;br /&gt;
      local D1 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local SALL = S1..S2..C1..C2..C3..T1..D1..&amp;quot;%22&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname)) &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. SALL .. wild .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else&lt;br /&gt;
        local X1 = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(sname)&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. SALL .. X1 .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if count &amp;gt; 4 then&lt;br /&gt;
&lt;br /&gt;
      local nameurl = p.ia_url_encode(sname)&lt;br /&gt;
      local search = &amp;quot;%28&amp;quot; .. nameurl .. &amp;quot;%29&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname))&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. search .. wild .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. search .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  else -- Date available&lt;br /&gt;
&lt;br /&gt;
    if count == 1 then&lt;br /&gt;
&lt;br /&gt;
      local nameurl = p.ia_url_encode(sname)&lt;br /&gt;
      local search = &amp;quot;%28subject%3A%22&amp;quot;..nameurl..&amp;quot;%22%20OR%20creator%3A%22&amp;quot;..nameurl..&amp;quot;%22%20OR%20description%3A%22&amp;quot;..nameurl..&amp;quot;%22%20OR%20title%3A%22&amp;quot;..nameurl..&amp;quot;%22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname))&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. search .. wild .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. search .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if count == 2 then&lt;br /&gt;
      local FIRST  = 1&lt;br /&gt;
      local LAST   = 2&lt;br /&gt;
&lt;br /&gt;
      local firstinitial  = mw.ustring.sub(N[FIRST], 1, 1)&lt;br /&gt;
&lt;br /&gt;
      -- Last, First, birthyear-deathyear&lt;br /&gt;
      local S1 = &amp;quot;%28subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%2C%20&amp;quot;..birth..&amp;quot;-&amp;quot;..death&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local S2 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      -- First Last, birthyear-deathyear&lt;br /&gt;
      local S3 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..birth..&amp;quot;-&amp;quot;..death&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local S4 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local SALL = S1..S2..S3..S4&lt;br /&gt;
      -- Last, First, birthyear-deathyear&lt;br /&gt;
      local C1 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%2C%20&amp;quot;..birth..&amp;quot;-&amp;quot;..death&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local C2 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      -- First Last, birthyear-deathyear&lt;br /&gt;
      local C3 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..birth..&amp;quot;-&amp;quot;..death&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local C4 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, F.&lt;br /&gt;
      local C5 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..firstinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      local CALL = C1..C2..C3..C4..C5&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local T1 = &amp;quot;%22%20OR%20title%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local TALL = T1&lt;br /&gt;
      -- Last, First, birthyear-deathyear&lt;br /&gt;
      local D1 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%2C%20&amp;quot;..birth..&amp;quot;-&amp;quot;..death&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local D2 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      -- First Last, birthyear-deathyear&lt;br /&gt;
      local D3 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..birth..&amp;quot;-&amp;quot;..death&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local D4 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local DALL = D1..D2..D3..D4..&amp;quot;%22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname)) &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. SALL .. CALL .. TALL .. DALL .. wild .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. SALL .. CALL .. TALL .. DALL .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if count == 3 then&lt;br /&gt;
&lt;br /&gt;
      local myurl = p.threeWords(N)&lt;br /&gt;
      local mydate = &amp;quot;%20OR%20%28%22&amp;quot;..birth..&amp;quot;-&amp;quot;..death..&amp;quot;%22%20AND%20&amp;quot;..N[3]..&amp;quot;%29&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname)) &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. myurl .. wild .. &amp;quot;%29&amp;quot; .. mydate .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. myurl .. &amp;quot;%29&amp;quot; .. mydate .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if count == 4 then&lt;br /&gt;
      local FIRST  = 1&lt;br /&gt;
      local SECOND = 2&lt;br /&gt;
      local THIRD  = 3&lt;br /&gt;
      local LAST   = 4&lt;br /&gt;
&lt;br /&gt;
      local firstinitial  = mw.ustring.sub(N[FIRST], 1, 1)&lt;br /&gt;
      local secondinitial  = mw.ustring.sub(N[SECOND], 1, 1)&lt;br /&gt;
      local thirdinitial = mw.ustring.sub(N[THIRD], 1, 1)&lt;br /&gt;
&lt;br /&gt;
      -- Last, First Second Third, birthyear-deathyear&lt;br /&gt;
      local S1 = &amp;quot;%28subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%2C%20&amp;quot;..birth..&amp;quot;-&amp;quot;..death&lt;br /&gt;
      -- First Second Third Last&lt;br /&gt;
      local S2 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, First Second Third, birthyear-deathyear&lt;br /&gt;
      local C1 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%2C%20&amp;quot;..birth..&amp;quot;-&amp;quot;..death&lt;br /&gt;
      -- First Second Third Last&lt;br /&gt;
      local C2 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, F. S. T.&lt;br /&gt;
      local C3 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..secondinitial..&amp;quot;%2E%20&amp;quot;..thirdinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      -- First Second Third Last&lt;br /&gt;
      local T1 = &amp;quot;%22%20OR%20title%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- First Second Third Last&lt;br /&gt;
      local D1 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[SECOND]..&amp;quot;%20&amp;quot;..N[THIRD]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local SALL = S1..S2..C1..C2..C3..T1..D1..&amp;quot;%22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname)) &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. SALL .. wild .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else&lt;br /&gt;
        local X1 = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(sname)&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. SALL .. X1 .. &amp;quot;%29&amp;quot; .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if count &amp;gt; 4 then&lt;br /&gt;
&lt;br /&gt;
      local nameurl = p.ia_url_encode(sname)&lt;br /&gt;
      local search = &amp;quot;%28&amp;quot; .. nameurl .. &amp;quot;%29&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      if p.ia_extendedascii(sname) == 1 then&lt;br /&gt;
        local wild = &amp;quot;%20OR%20&amp;quot; .. p.ia_url_encode(p.ia_extendedasciireplace(sname))&lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. search .. wild .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      else &lt;br /&gt;
        return &amp;quot;[&amp;quot; .. urlhead .. media .. search .. &amp;quot; &amp;quot; .. byabout .. &amp;quot; &amp;quot; .. dname .. &amp;quot;] &amp;quot; .. tagline&lt;br /&gt;
      end&lt;br /&gt;
&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
  end&lt;br /&gt;
  return &amp;quot;Unknown error (1). Please check documentation for [[Template:&amp;quot;..tname..&amp;quot;]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.threeWords(N)&lt;br /&gt;
&lt;br /&gt;
      local FIRST  = 1&lt;br /&gt;
      local MIDDLE = 2&lt;br /&gt;
      local LAST   = 3&lt;br /&gt;
    &lt;br /&gt;
      local firstinitial  = mw.ustring.sub(N[FIRST], 1, 1)&lt;br /&gt;
      local middleinitial = mw.ustring.sub(N[MIDDLE], 1, 1)&lt;br /&gt;
&lt;br /&gt;
      -- CAUTION: This is near the max 2000 character URL limit for most browsers when using long names &lt;br /&gt;
      --          such as &amp;quot;René-Nicolas Dufriche Desgenettes&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
      -- Last, First Middle&lt;br /&gt;
      local S1 = &amp;quot;%28subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[MIDDLE]&lt;br /&gt;
      -- Last, First M.&lt;br /&gt;
      local S2 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..middleinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      -- Last, F. M.&lt;br /&gt;
      local S3 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..middleinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      -- First Middle Last&lt;br /&gt;
      local S4 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[MIDDLE]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- First M. Last&lt;br /&gt;
      local S5 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..middleinitial..&amp;quot;%2E%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- F. M. Last&lt;br /&gt;
      local S6 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..middleinitial..&amp;quot;%2E%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local S7 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local S8 = &amp;quot;%22%20OR%20subject%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local SALL = S1..S2..S3..S4..S5..S6..S7..S8&lt;br /&gt;
      -- First Middle Last&lt;br /&gt;
      local C1 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[MIDDLE]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- First M. Last&lt;br /&gt;
      local C2 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..middleinitial..&amp;quot;%2E%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- F. M. Last&lt;br /&gt;
      local C3 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..middleinitial..&amp;quot;%2E%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- F. Middle Last&lt;br /&gt;
      local C4 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..N[MIDDLE]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, First Middle&lt;br /&gt;
      local C5 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[MIDDLE]&lt;br /&gt;
      -- Last, First M.&lt;br /&gt;
      local C6 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..middleinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      -- Last, F. M.&lt;br /&gt;
      local C7 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..middleinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      -- Last, F. M.&lt;br /&gt;
      local C8 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..N[MIDDLE]&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local C9 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local C10 = &amp;quot;%22%20OR%20creator%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      local CALL = C1..C2..C3..C4..C5..C6..C7..C8..C9..C10&lt;br /&gt;
      -- First Middle Last&lt;br /&gt;
      local T1 = &amp;quot;%22%20OR%20title%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[MIDDLE]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- First M. Last&lt;br /&gt;
      local T2 = &amp;quot;%22%20OR%20title%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..middleinitial..&amp;quot;%2E%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- F. M. Last&lt;br /&gt;
      local T3 = &amp;quot;%22%20OR%20title%3A%22&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..middleinitial..&amp;quot;%2E%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local T4 = &amp;quot;%22%20OR%20title%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      local TALL = T1..T2..T3..T4&lt;br /&gt;
      -- First Middle Last&lt;br /&gt;
      local D1 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[MIDDLE]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- First M. Last&lt;br /&gt;
      local D2 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..middleinitial..&amp;quot;%2E%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- F. M. Last&lt;br /&gt;
      local D3 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..firstinitial..&amp;quot;%2E%20&amp;quot;..middleinitial..&amp;quot;%2E%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, First Middle&lt;br /&gt;
      local D4 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[MIDDLE]&lt;br /&gt;
      -- Last, First M.&lt;br /&gt;
      local D5 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..middleinitial..&amp;quot;%2E&amp;quot;&lt;br /&gt;
      -- First Last&lt;br /&gt;
      local D6 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[FIRST]..&amp;quot;%20&amp;quot;..N[LAST]&lt;br /&gt;
      -- Last, First&lt;br /&gt;
      local D7 = &amp;quot;%22%20OR%20description%3A%22&amp;quot;..N[LAST]..&amp;quot;%2C%20&amp;quot;..N[FIRST]&lt;br /&gt;
      local DALL = D1..D2..D3..D4..D5..D6..D7..&amp;quot;%22&amp;quot;&lt;br /&gt;
&lt;br /&gt;
      return SALL .. CALL .. TALL .. DALL&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.mediaTypes(argsmedia)&lt;br /&gt;
&lt;br /&gt;
  local media = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  if argsmedia ~=&amp;quot;&amp;quot; and argsmedia ~=nil then&lt;br /&gt;
    local medialist = mw.text.split(mw.text.trim(argsmedia), &amp;quot; &amp;quot;)&lt;br /&gt;
    local al, acount = mw.ustring.gsub(mw.text.trim(argsmedia), &amp;quot;%S+&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    local i = 0&lt;br /&gt;
    repeat -- the following could be condensed but repetitive for clarity &lt;br /&gt;
      i = i + 1&lt;br /&gt;
      if(mw.ustring.lower(medialist[i]) == &amp;quot;text&amp;quot; or mw.ustring.lower(medialist[i]) == &amp;quot;texts&amp;quot;) then&lt;br /&gt;
        if(i == 1) then&lt;br /&gt;
          media = media .. p.ia_url_encode(&amp;quot;(mediatype:texts&amp;quot;)        &lt;br /&gt;
        else&lt;br /&gt;
          media = media .. p.ia_url_encode(&amp;quot; OR mediatype:texts&amp;quot;)         &lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      if(mw.ustring.lower(medialist[i]) == &amp;quot;audio&amp;quot;) then&lt;br /&gt;
        if(i == 1) then&lt;br /&gt;
          media = media .. p.ia_url_encode(&amp;quot;(mediatype:audio&amp;quot;)&lt;br /&gt;
        else&lt;br /&gt;
          media = media .. p.ia_url_encode(&amp;quot; OR mediatype:audio&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
      if(mw.ustring.lower(medialist[i]) == &amp;quot;video&amp;quot;) then&lt;br /&gt;
        if(i == 1) then&lt;br /&gt;
          media = media .. p.ia_url_encode(&amp;quot;(mediatype:video&amp;quot;)&lt;br /&gt;
        else&lt;br /&gt;
          media = media .. p.ia_url_encode(&amp;quot; OR mediatype:video&amp;quot;)&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
    until i == acount&lt;br /&gt;
    if media ~= nil then&lt;br /&gt;
      media = media .. &amp;quot;)%20AND%20&amp;quot;&lt;br /&gt;
    else&lt;br /&gt;
      media = &amp;quot;&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
  else&lt;br /&gt;
    media = &amp;quot;&amp;quot;&lt;br /&gt;
  end&lt;br /&gt;
  return media&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Alt way to get b/d dates via getContent()&lt;br /&gt;
function p.bdDateAlt(argsbirth, argsdeath, name)&lt;br /&gt;
&lt;br /&gt;
    local pagetext = nil&lt;br /&gt;
    local birth = &amp;quot;none&amp;quot;&lt;br /&gt;
    local death = &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    -- Load the page&lt;br /&gt;
    local t = mw.title.new(name)&lt;br /&gt;
    if(t.exists) then&lt;br /&gt;
      pagetext = t:getContent()&lt;br /&gt;
    end&lt;br /&gt;
    if pagetext == nil then &lt;br /&gt;
      return &amp;quot;Error&amp;quot;     &lt;br /&gt;
    end&lt;br /&gt;
 &lt;br /&gt;
    -- Remove false positives&lt;br /&gt;
    pagetext = mw.ustring.gsub( mw.ustring.gsub(pagetext, &amp;quot;&amp;lt;!--.---&amp;gt;&amp;quot;, &amp;quot;&amp;quot;), &amp;quot;&amp;lt;nowiki&amp;gt;.-&amp;lt;/nowiki&amp;gt;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
    -- &amp;quot;Category:1900 births&amp;quot; &lt;br /&gt;
    if argsbirth == &amp;quot;&amp;quot; or argsbirth == nil then&lt;br /&gt;
      local birthcheck = mw.ustring.match(pagetext, &amp;quot;%[%[%s-[Cc]ategory:%s-%d+%.?%d*%s-births%s-%]%]&amp;quot; )&lt;br /&gt;
      if birthcheck ~= nil then&lt;br /&gt;
        birth = mw.ustring.match(birthcheck, &amp;quot;%d+%.?%d*&amp;quot;)&lt;br /&gt;
      else&lt;br /&gt;
        birth = &amp;quot;none&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      birth = mw.text.trim(argsbirth)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    -- &amp;quot;Category:2000 deaths&amp;quot; &lt;br /&gt;
    if argsdeath == &amp;quot;&amp;quot; or argsdeath == nil then&lt;br /&gt;
      local deathcheck = mw.ustring.match(pagetext, &amp;quot;%[%[%s-[Cc]ategory:%s-%d+%.?%d*%s-deaths%s-%]%]&amp;quot; )&lt;br /&gt;
      if deathcheck ~= nil then&lt;br /&gt;
        death = mw.ustring.match(deathcheck, &amp;quot;%d+%.?%d*&amp;quot;)&lt;br /&gt;
      else&lt;br /&gt;
        death = &amp;quot;none&amp;quot;&lt;br /&gt;
      end&lt;br /&gt;
    else&lt;br /&gt;
      death = mw.text.trim(argsdeath)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return birth .. &amp;quot; &amp;quot; .. death&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Get b/d dates via Wikidata.&lt;br /&gt;
-- ‎ &lt;br /&gt;
function p.bdDate(argsbirth, argsdeath, name)&lt;br /&gt;
&lt;br /&gt;
  local pagetext = nil&lt;br /&gt;
  local birth = &amp;quot;none&amp;quot;&lt;br /&gt;
  local death = &amp;quot;none&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
  entity = mw.wikibase.getEntityObject()&lt;br /&gt;
  if not entity or not entity.claims then &lt;br /&gt;
    -- Alternative if template not on a page in mainspace. This is needed since Wikidata can only be retrieved&lt;br /&gt;
    -- for the article where the template is located.&lt;br /&gt;
    return p.bdDateAlt(argsbirth, argsdeath, name)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  -- Note: The below uses formatPropertyValues() to get and format the date from Wikidata.&lt;br /&gt;
  --       For an alternative method, see sandbox revision dated 5:58 am, 15 October 2014&lt;br /&gt;
  if argsbirth == &amp;quot;&amp;quot; or argsbirth == nil then&lt;br /&gt;
    local birthtable = entity:formatPropertyValues( &amp;#039;P569&amp;#039; )&lt;br /&gt;
    local birthsplit = mw.text.split(birthtable[&amp;quot;value&amp;quot;], &amp;quot; &amp;quot;)&lt;br /&gt;
    local l, count = mw.ustring.gsub(birthtable[&amp;quot;value&amp;quot;], &amp;quot;%S+&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    if count &amp;gt; 0 then&lt;br /&gt;
      if string.find(birthsplit[count], &amp;quot;^%d&amp;quot;) then&lt;br /&gt;
        birth = birthsplit[count]&lt;br /&gt;
      elseif string.find(birthsplit[count], &amp;quot;BCE&amp;quot;) then&lt;br /&gt;
        birth = birthsplit[count - 1]&lt;br /&gt;
      elseif string.find(birthsplit[count], &amp;quot;BC&amp;quot;) then&lt;br /&gt;
        birth = birthsplit[count - 1]&lt;br /&gt;
      elseif string.find(birthsplit[count], &amp;quot;AD&amp;quot;) then&lt;br /&gt;
        birth = birthsplit[count - 1]&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  else&lt;br /&gt;
    birth = mw.text.trim(argsbirth)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if argsdeath == &amp;quot;&amp;quot; or argsdeath == nil then&lt;br /&gt;
    local deathtable = entity:formatPropertyValues( &amp;#039;P570&amp;#039; )&lt;br /&gt;
    local deathsplit = mw.text.split(deathtable[&amp;quot;value&amp;quot;], &amp;quot; &amp;quot;)&lt;br /&gt;
    local l, count = mw.ustring.gsub(deathtable[&amp;quot;value&amp;quot;], &amp;quot;%S+&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
    if count &amp;gt; 0 then&lt;br /&gt;
      if string.find(deathsplit[count], &amp;quot;^%d&amp;quot;) then&lt;br /&gt;
        death = deathsplit[count]&lt;br /&gt;
      elseif string.find(deathsplit[count], &amp;quot;BCE&amp;quot;) then&lt;br /&gt;
        death = deathsplit[count - 1]&lt;br /&gt;
      elseif string.find(deathsplit[count], &amp;quot;BC&amp;quot;) then&lt;br /&gt;
        death = deathsplit[count - 1]&lt;br /&gt;
      elseif string.find(deathsplit[count], &amp;quot;AD&amp;quot;) then&lt;br /&gt;
        death = deathsplit[count - 1]&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
  else&lt;br /&gt;
    death = mw.text.trim(argsdeath)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  if birth == &amp;quot;none&amp;quot; and death == &amp;quot;none&amp;quot; then &lt;br /&gt;
    -- Alternative if Wikidata is missing data&lt;br /&gt;
    -- return p.bdDateAlt(name)&lt;br /&gt;
    return birth .. &amp;quot; &amp;quot; .. death&lt;br /&gt;
  else&lt;br /&gt;
    return birth .. &amp;quot; &amp;quot; .. death&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- URL-encode a string&lt;br /&gt;
--- http://lua-users.org/wiki/StringRecipes&lt;br /&gt;
---&lt;br /&gt;
function p.ia_url_encode(str)&lt;br /&gt;
  if (str) then&lt;br /&gt;
    str = mw.ustring.gsub (str, &amp;quot;\n&amp;quot;, &amp;quot;\r\n&amp;quot;)&lt;br /&gt;
    str = mw.ustring.gsub (str, &amp;quot;([^%w %-%_%.%~])&amp;quot;,&lt;br /&gt;
        function (c) return mw.ustring.format (&amp;quot;%%%02X&amp;quot;, string.byte(c)) end)&lt;br /&gt;
    str = mw.ustring.gsub (str, &amp;quot; &amp;quot;, &amp;quot;+&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
  return str	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Does str contain extended ascii? 1 = yes&lt;br /&gt;
function p.ia_extendedascii(str)&lt;br /&gt;
    for i = 1, str:len() do&lt;br /&gt;
      if (str:byte(i) &amp;gt;= 32 and str:byte(i) &amp;lt;= 126) and str:byte(i) ~= 39 then&lt;br /&gt;
        --do nothing&lt;br /&gt;
      else&lt;br /&gt;
        return 1&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Replace all extended ascii characters with wildcard &amp;#039;*&amp;#039;&lt;br /&gt;
function p.ia_extendedasciireplace(str)&lt;br /&gt;
    local s = &amp;quot;&amp;quot;&lt;br /&gt;
    local j = 0&lt;br /&gt;
    local k = 0    &lt;br /&gt;
    for i = 1, str:len() do&lt;br /&gt;
      k = str:byte(i)&lt;br /&gt;
      if k &amp;gt;= 32 and k &amp;lt;= 126 then&lt;br /&gt;
-- For list of Lucene special characters needing to be escaped: &lt;br /&gt;
-- http://lucene.apache.org/core/4_10_0/queryparser/org/apache/lucene/queryparser/classic/package-summary.html#Escaping_Special_Characters&lt;br /&gt;
-- We only worry about - (45) and &amp;quot; (34) since the others are unlikely to appear in a proper name.&lt;br /&gt;
-- Also &amp;#039; (39) since it is sometimes the extended character ’&lt;br /&gt;
        if k == 45 or k == 34 or k == 39 then &lt;br /&gt;
          s = s .. &amp;quot;*&amp;quot; &lt;br /&gt;
        else&lt;br /&gt;
          s = s .. str:sub(i,i)&lt;br /&gt;
        end&lt;br /&gt;
      else&lt;br /&gt;
        if j == 1 then&lt;br /&gt;
          s = s .. &amp;quot;*&amp;quot;&lt;br /&gt;
          j = 2&lt;br /&gt;
        end&lt;br /&gt;
        if j == 0 then j = 1 end&lt;br /&gt;
        if j == 2 then j = 0 end&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
    return s&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>