Această pagină este protejată de mișcare
Această pagină este protejată

Formular: Nesemnat

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Acest modul implementează funcționalitatea șablonului {{ Nesemnat }}.


 local mIpValidator = require ( 'Modul: validator IP' )

local p = {}

funcția locală getDateObject ( datetime , secunde )
returnează string.format ( '% s -% s secunde' , datetime , secunde )
Sfârșit

funcția locală getTimezoneAbbr ( data )
dacă data == ", atunci reveniți la sfârșit

local lang = mw . limba . getContentLanguage ()
luni locale = {
Ianuarie = 1 , februarie = 2 , martie = 3 , aprilie = 4 , mai = 5 , iunie = 6 ,
Iul = 7 , Aug = 8 , Sep = 9 , Oct = 10 , Nov = 11 , Dec = 12
}
local monthnum = months [ date : match ( '% a% a% a' )]

dacă lunar atunci
date = date : gsub ( '% s% a% a% a% s' , string.format ( '-% s-' , lunar ))
Sfârșit

dacă PCALL (lang. FormatDate, lang, '', dates) == false atunci returnează sfârșitul

offset local = lang : formatDate ( 'Z' , data , adevărat )
local localdate = lang : formatDate ( 'r' , getDateObject ( data , offset ), adevărat )
ora locală = lang : formatDate ( „H” , dată )
local localhour = lang : formatDate ( 'H' , localdate , true )

- verificați absența schimbărilor neașteptate de timp la conversia la ora locală
if hour ~ = localhour then
local unix = lang : formatDate ( 'U' , data )
local localunix = lang : formatDate ( 'U' , localdate , true )
local difftime = os.difftime ( unix , localunix )
localdate = lang : formatDate ( 'r' , getDateObject ( localdate , difftime ), true )
Sfârșit

- nu returnează abrevierea dacă există ambiguitate cu schimbarea din timp în ora solară
if localhour ~ = lang : formatDate ( 'H' , localdate .. '-1 hour' , true ) atunci
timezoneabbr local = lang : formatDate ( 'T' , localdate , true )
returnează string.format ( '(% s)' , timezoneabbr )
Sfârșit
Sfârșit

funcția p. principal ( cadru )
argumente locale = cadru : getParent (). argumente
locală data, numele de utilizator, userpage, talkpage
regex local = '% d?% d:% d% d,? % d +% a% a% a% d% d% d% d '

- dacă nu există al doilea parametru, verificați dacă data și numele de utilizator sunt împreună
dacă args [ 1 ] și nu args [ 2 ] atunci
- data și numele de utilizator pot fi separate prin U + 200E sau printr-un spațiu
local sep = args [ 1 ]: match ( regex .. '( \ 226 \ 128 \ 142 )' ) sau ''
data , nume de utilizator = args [ 1 ]: match ( string.format ( '(% s)% s (. *)' , regex , sep ))
- dacă nu există o dată, presupune că este doar numele de utilizator (obligatoriu)
dacă nu data atunci
data , nume de utilizator = "" , args [ 1 ]
Sfârșit
altfel
- presupune în mod implicit că data și numele de utilizator sunt la primul și al doilea parametru
data , nume de utilizator = args [ 1 ] sau '' , args [ 2 ] sau ''
dacă nu data : match ( regex ) și nume de utilizator : match ( regex ) atunci
data , nume de utilizator = nume de utilizator , dată
Sfârșit
Sfârșit

data , nume de utilizator = mw . text . trim ( data ), mw . text . tăiați ( nume de utilizator )

userpage = mIpValidator . _is_ip ( nume de utilizator ) și nume de utilizator sau string.format ( '[[User:% s |% s]]' , nume de utilizator , nume de utilizator )
talkpage = string.format ( '[[ Subiecte utilizator:% s | subiecte]] · [[Special: Contribuții /% s | contribuții]]' , nume de utilizator , 
mIpValidator . _is_ipv6 ( nume de utilizator ) și nume de utilizator : upper () sau nume de utilizator )

data = data .. ( getTimezoneAbbr ( date : gsub ( ' \ 226 \ 128 \ 142 ' , '' )) sau '' )

return string.format ( "<small> & mdash; '' Acest comentariu fără [[Ajutor: Semnătură | semnătura utilizatorului]] a fost introdus de% s (% s)% s ''. </small>" ,
userpage, talkpage, data == '' și '' sau '' .. data)
Sfârșit

retur p