<?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%2FPHansen%2FKirkeurl</id>
	<title>Module:Sandbox/PHansen/Kirkeurl - 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%2FPHansen%2FKirkeurl"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/PHansen/Kirkeurl&amp;action=history"/>
	<updated>2026-04-21T09:06:42Z</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/PHansen/Kirkeurl&amp;diff=145956&amp;oldid=prev</id>
		<title>imported&gt;PHansen: len_orig ( &quot;Lua error in Module:Sandbox/PHansen/Kirkeurl at line 24: bad argument #1 to &#039;len&#039; (string expected, got nil&quot;</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/PHansen/Kirkeurl&amp;diff=145956&amp;oldid=prev"/>
		<updated>2015-01-30T09:29:07Z</updated>

		<summary type="html">&lt;p&gt;len_orig ( &amp;quot;Lua error in Module:Sandbox/PHansen/Kirkeurl at line 24: bad argument #1 to &amp;#039;len&amp;#039; (string expected, got nil&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
-- Truncate urls too long for an infobox - should not be more than 28-30 characters&lt;br /&gt;
-- With User:PHansen/Kirkeurl&lt;br /&gt;
-- Test url : &amp;quot;www.tryggevaeldeprovsti.dk/index.php?id=1722&amp;quot;  - for the line&lt;br /&gt;
-- | website = www.tryggevaeldeprovsti.dk/index.php?id=1722  - there is no http:// in the template&lt;br /&gt;
-- Should return something like [http://www.tryggevaeldeprovsti.dk/index.php?id=1722 http://www.tryggevaeldeprovsti.dk] or with ellipsis ? (three dots)&lt;br /&gt;
-- Module:Sandbox/PHansen/Kirkeurl https://en.wikipedia.org/wiki/Module:Sandbox/PHansen/Kirkeurl&lt;br /&gt;
-- Test via https://en.wikipedia.org/wiki/User:PHansen/Kirkeurl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.main ( frame ) -- tidl kirke_url&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local len_orig = 0&lt;br /&gt;
local orig = frame.args[1] -- parameter from the template: &amp;#039;website&amp;#039; or &amp;#039;Websted&amp;#039;&lt;br /&gt;
-- orig = mw.text.trim( orig )&lt;br /&gt;
&lt;br /&gt;
local len_orig = string.len( orig ) or 0&lt;br /&gt;
&lt;br /&gt;
local return_kirkeurl = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
local done = false&lt;br /&gt;
&lt;br /&gt;
local limit = 28&lt;br /&gt;
&lt;br /&gt;
-- Most will be below the limit (28 characters)&lt;br /&gt;
-- if string.len( orig ) &amp;lt; limit then&lt;br /&gt;
if len_orig &amp;lt; limit then &lt;br /&gt;
	-- the parameter is arriving without indication of the protocol, so returning with http://&lt;br /&gt;
	return_kirkeurl = &amp;quot;[http://&amp;quot; .. orig .. &amp;quot; &amp;quot; .. orig .. &amp;quot;]&amp;quot; -- return with http://&lt;br /&gt;
	done = true&lt;br /&gt;
	return return_kirkeurl&lt;br /&gt;
&lt;br /&gt;
end -- below limit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- else : if parameter (orig = frame.args[1]) is longer than limit&lt;br /&gt;
-- some domains to look through&lt;br /&gt;
local domains = [[.ac.ad.ae.aero.af.ag.ai.al.am.an.ao.aq.ar.arpa.as.asia.at.au&lt;br /&gt;
   .aw.ax.az.ba.bb.bd.be.bf.bg.bh.bi.biz.bj.bm.bn.bo.br.bs.bt.bv.bw.by.bz.ca&lt;br /&gt;
   .cat.cc.cd.cf.cg.ch.ci.ck.cl.cm.cn.co.com.coop.cr.cs.cu.cv.cx.cy.cz.dd.de&lt;br /&gt;
   .dj.dk.dm.do.dz.ec.edu.ee.eg.eh.er.es.et.eu.fi.firm.fj.fk.fm.fo.fr.fx.ga&lt;br /&gt;
   .gb.gd.ge.gf.gh.gi.gl.gm.gn.gov.gp.gq.gr.gs.gt.gu.gw.gy.hk.hm.hn.hr.ht.hu&lt;br /&gt;
   .id.ie.il.im.in.info.int.io.iq.ir.is.it.je.jm.jo.jobs.jp.ke.kg.kh.ki.km.kn&lt;br /&gt;
   .kp.kr.kw.ky.kz.la.lb.lc.li.lk.lr.ls.lt.lu.lv.ly.ma.mc.md.me.mg.mh.mil.mk&lt;br /&gt;
   .ml.mm.mn.mo.mobi.mp.mq.mr.ms.mt.mu.museum.mv.mw.mx.my.mz.na.name.nato.nc&lt;br /&gt;
   .ne.net.nf.ng.ni.nl.no.nom.np.nr.nt.nu.nz.om.org.pa.pe.pf.pg.ph.pk.pl.pm&lt;br /&gt;
   .pn.post.pr.pro.ps.pt.pw.py.qa.re.ro.ru.rw.sa.sb.sc.sd.se.sg.sh.si.sj.sk&lt;br /&gt;
   .sl.sm.sn.so.sr.ss.st.store.su.sv.sy.sz.tc.td.tel.tf.tg.th.tj.tk.tl.tm.tn&lt;br /&gt;
   .to.tp.tr.travel.tt.tv.tw.tz.ua.ug.uk.um.us.uy.va.vc.ve.vg.vi.vn.vu.web.wf&lt;br /&gt;
   .ws.xxx.ye.yt.yu.za.zm.zr.zw]]&lt;br /&gt;
&lt;br /&gt;
-- if string.len( orig ) &amp;gt;= limit then &lt;br /&gt;
if len_orig &amp;gt;= limit then&lt;br /&gt;
-- Crucial lua pattern is by &amp;#039;hjpotter92&amp;#039; &lt;br /&gt;
-- http://stackoverflow.com/users/1190388/hjpotter92 edited May 12 &amp;#039;14 at 1:35 (i.e. 2014-05-12 at 1:35)&lt;br /&gt;
-- http://stackoverflow.com/questions/23590304/finding-a-url-in-a-string-lua-pattern : &amp;quot;finding a url in a string lua pattern&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
local tlds = {} -- topleveldomains&lt;br /&gt;
for tld in domains:gmatch&amp;#039;%w+&amp;#039; do&lt;br /&gt;
   tlds[tld] = true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local protocols = {[&amp;#039;&amp;#039;] = 0, [&amp;#039;http://&amp;#039;] = 0, [&amp;#039;https://&amp;#039;] = 0, [&amp;#039;ftp://&amp;#039;] = 0} -- of no use because the parameter arrives without&lt;br /&gt;
&lt;br /&gt;
-- for pos, url, prot, subd, tld, colon, port, slash, path in string_with_URLs:gmatch&lt;br /&gt;
for pos, url, prot, subd, tld, colon, port, slash, path in orig:gmatch&lt;br /&gt;
   &amp;#039;()(([%w_.~!*:@&amp;amp;+$/?%%#-]-)(%w[-.%w]*%.)(%w+)(:?)(%d*)(/?)([%w_.~!*:@&amp;amp;+$/?%%#=-]*))&amp;#039;&lt;br /&gt;
&lt;br /&gt;
do&lt;br /&gt;
   if protocols[prot:lower()] == (1 - #slash) * #path&lt;br /&gt;
      and (colon == &amp;#039;&amp;#039; or port ~= &amp;#039;&amp;#039; and port + 0 &amp;lt; 65536)&lt;br /&gt;
      and (tlds[tld:lower()] or tld:find&amp;#039;^%d+$&amp;#039; and subd:find&amp;#039;^%d+%.%d+%.%d+%.$&amp;#039;&lt;br /&gt;
      and math.max(tld, subd:match&amp;#039;^(%d+)%.(%d+)%.(%d+)%.$&amp;#039;) &amp;lt; 256)&lt;br /&gt;
      and not subd:find&amp;#039;%W%W&amp;#039;&lt;br /&gt;
   then&lt;br /&gt;
	return_kirkeurl = &amp;quot;[&amp;quot; .. &amp;quot;http://&amp;quot; .. orig .. &amp;quot; &amp;quot; .. subd .. tld .. &amp;quot;]&amp;quot; &lt;br /&gt;
	-- for test in terminal: print( &amp;quot;[&amp;quot; .. url .. &amp;quot; &amp;quot; .. subd .. tld .. &amp;quot;]&amp;quot; )&lt;br /&gt;
	-- gave [http://www.tryggevaeldeprovsti.dk/index.php?id=1722 www.tryggevaeldeprovsti.dk]&lt;br /&gt;
   end -- if&lt;br /&gt;
end -- for pos... do&lt;br /&gt;
&lt;br /&gt;
done = true&lt;br /&gt;
return return_kirkeurl&lt;br /&gt;
&lt;br /&gt;
end -- above limit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--Default - if still here&lt;br /&gt;
if done == false then &lt;br /&gt;
	return_kirkeurl = &amp;quot;[&amp;quot; .. &amp;quot;http://&amp;quot; .. orig .. &amp;quot; &amp;quot; .. &amp;quot;Church website&amp;quot; .. &amp;quot;]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    return return_kirkeurl&lt;br /&gt;
&lt;br /&gt;
end -- if done == false&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
end -- function p.main ( frame )&lt;br /&gt;
&lt;br /&gt;
return p  -- export table&lt;/div&gt;</summary>
		<author><name>imported&gt;PHansen</name></author>
	</entry>
</feed>