Modulo:LinkMail

Versiokontrolo redakti

Versionomo en Vikidatumoj: 2023-12-08 Ok!


-- module variable and administrationlocal lm = {moduleInterface =  {suite  = 'LinkMail',serial = '2023-12-08',item   = 65157414}}-- module import-- require( 'strict' )local li = require( 'Module:Link utilities/i18n' )local lu = require( 'Module:Link utilities' )-- check single email addressfunction lm._isEmail( s )local result = 2if s == nil or type( s ) ~= 'string' or #s > 254 or s:find( '%s' ) ors:find( '%.%.' ) or s:find( '%.@' ) or s:find( '@[%.%-]' ) ors:find( '%-%.' ) or s:find( '%.%-' ) or s:match( '^%.' ) thenreturn 0endlocal repl, at = s:gsub( '@', '@' )    if at ~= 1 then    return 0    endat = s:find( '@' )local user = s:sub( 1, at - 1 )local domain = s:sub( at + 1, #s )    if not user or not domain or #user > 64 or #domain > 253 then    return 0    end-- handle user partif not mw.ustring.match( user, "^[%w!#&'/=_`{|}~%^%$%%%+%-%*%.%?]+$" ) thenreturn 0endif not user:match( "^[%w!#&'/=_`{|}~%^%$%%%+%-%*%.%?]+$" ) thenresult = 1end-- handle domain partif not mw.ustring.match( domain, '^[%w%.%-]+%.%a%a+$' ) thenreturn 0endif not domain:match( '^[%w%.%-]+%.%a%a+$' ) thenresult = 1end-- not yet analysed: texts in quotes in user part-- added on demandreturn resultendfunction lm._linkMail( m, isDemo, ignoreUnicode )m = mw.text.trim( m )if m == '' thenreturn ''endlocal catPrefix = '[[Category:'if isDemo thencatPrefix = ' [[:Category:'endlocal comment = ''m, comment = lu.extractComment( m )m = m:gsub( 'mailto:', '' )local isEmail = lm._isEmail( m )local tif isEmail > 0 thent = '<span class="plainlinks nourlexpansion">[mailto:' .. m .. ' ' .. m .. ']</span>'if isEmail == 1 and not ignoreUnicode thent = t .. catPrefix .. li.categories.nonASCIIendelset = m .. catPrefix .. li.categories.invalidMailendif comment ~= '' thent = t .. ' ' .. commentendreturn tendfunction lm.linkMailSet( args )args.email = args.email or args[ 1 ] or ''if args.email == '' thenreturn ''endlocal ns     = mw.title.getCurrentTitle().namespacelocal isDemo = ns == 10 or ns == 828-- split separate emaillocal items = lu.splitItems( args.email, li.delimiters )-- analyse emailslocal result = ''local i = 0local sfor j, item in ipairs( items ) dos = lm._linkMail( item, isDemo, args.ignoreUnicode )if s ~= '' thenif result == '' thenresult = selseif i == li.addMail thenresult = result .. '<span class="listing-add-contact">'endresult = result .. li.texts.comma .. sendi = i + 1endendif i > li.addMail thenresult = result .. '</span>'endreturn resultend-- #invoke callfunction lm.linkMails( frame )return lm.linkMailSet( frame.args )end-- template callfunction lm.linkMailsTemplate( frame )return lm.linkMailSet( frame:getParent().args )endreturn lm
🔥 Popular: Specialaĵo:Versio/Vikivojaĝo:ĈefpaĝoVikivojaĝo:HelpoDosiero:Flag of Azerbaijan.svgVikivojaĝo:PolitikojVikivojaĝo:Karavano/2017/09Vikivojaĝo:Karavano/2017/10Dosiero:Rapallo-villa Porticciolo2.jpgDosiero:Chassiron - Phare (1).jpgCellokojKategorio:Ŝablonaro dokumentadaModulo:VCard/ParamsUzanto:Jon Harald SøbyVikivojaĝo:Skemo por landoMezőkövesdIstanbuloVikivojaĝo:EnkondukoDosiero:San Telmo (2333452833).jpgNord-KoreioUzanto:KuboF HromoslavLukoHorzonojFinnlandoOkcidenta SaharoDuŝanbeoHelpo:HelpoBritioAŭstralioVikivojaĝo:DiskutejoKategorio:OkcidentafrikoHelpo:Saltu en la akvonDosiero:Taxis in Bucharest.jpgOceanioDosiero:Diadaliv Vac.jpgUzanto:62.19.53.182Dosiero:Notre dame de Paris vue de la tour montparnasse.JPGUzanto:93.34.148.73Dosiero:Flag of the Comoros.svgDosiero:Theth Church Albania.jpgGrenadoDosiero:Tomba 5513 Tarquinia 91a.jpgMadagaskaroKategorio:SudamerikoDosiero:Facciata Chiesa Nuova Calatafimi.jpgDosiero:Biertan 002.jpgUzanto:115.75.59.235RomoModulo:Klakebla butonoDosiero:Zacuscă bgiu.jpgBritaj VirgulinsulojŜenĵenoDosiero:Lomé WV banner.jpgDosiero:Fabbricato interno al Ricetto di Candelo.jpgDosiero:Vercelli map.pngDosiero:Perm Russia.jpgUzanto:195.191.66.226Uzanto:80.164.177.134Dosiero:Jungle-near-Oyala,-Equatorial-Guinea-banner.jpgDosiero:Tifariti (Western Sahara) banner Navarra hospital.jpgCentra federacia regionoHelpo:RedaktiKaŭkazoDosiero:ET Gondar asv2018-02 img10a BANNER.jpgDosiero:Cataluna in Spain.svgDosiero:Somalia regions map.pngDosiero:VAR Terminal2.jpgKabuloSenpaĝaj esperantigitaj loknomoj de SkandinavioŜablono:Skemo por frazlibroVikivojaĝo:Pri la projektoDosiero:Peru banner.jpgDosiero:Lecco banner.jpgTurkioDosiero:Templo Wat Arun, Bangkok, Tailandia, 2013-08-22, DD 30-crop.jpgDosiero:Arezzo banner 1.jpgSvedioKazaĥioDosiero:Kiskunhalas-református templom.JPGPanamo