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

Formă: Joc video

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

Modul Lua pentru a susține șablonul {{ Videogame }}, pentru a gestiona funcțiile sale automate de clasificare.

Are o subpagină de configurare: Modul: Joc video / Configurare .


 - [[
Acest modul acceptă șablonul Videogame, pentru a-și gestiona funcțiile
categorizarea automată
]]
local p = {}
local errors_msg = {}
local cfg = mw . loadData ( "Modul: Joc video / Configurare" )
local getArgs = require ( 'Modul: Argumente' ). getArgs
funcție locală build_reverse_alias ( table_name )
local reverse_alias = {}
pentru alias, nume în perechi (cfg [ 'alias_' .. nume_tabelă]) do
dacă nu reverse_alias [ name ], atunci reverse_alias [ name ] = {} end
table.insert (invers_alias [nume], alias)
Sfârșit
returnează invers_alias
Sfârșit

- ================================================== ======================
- Înlocuiește numele cu aliasul său, dacă este prezent în tabelul cu aliasuri
- apoi returnează valoarea corespunzătoare din tabelul de valori
- ================================================== ======================
Funcția locală get_category (nume, table_name)
name = cfg [ 'alias_' .. nume_tabelă] [nume] sau nume
returnează cfg [ nume_tabel ] [ nume ]
Sfârșit

- ================================================== ======================
- Înlocuiți parantezele pătrate din șir cu codurile corespunzătoare
- ascii
- ================================================== ======================
funcție locală replace_braces ( s )
new_s local = mw . ustring. gsub ( s , "% [" , "& # 91;" )
new_s = mw . ustring. gsub ( new_s , "%]" , "& # 93;" )
new_s = mw . ustring. gsub ( new_s , "" , "& nbsp;" )
returnează noi_s
Sfârșit

- ================================================== ======================
- Agățați o masă pe o altă masă
- ================================================== ======================
funcție locală append_table ( t1 , t2 )
pentru _ , el in ipairs ( t2 ) do
t1 [ # t1 + 1 ] = el
Sfârșit
Sfârșit

- ================================================== ======================
- Returnează adjectivul masculin plural al țării specificate folosind
- șablonul AggNaz
- ================================================== ======================
funcție locală get_adj ( țară )
local adj
local title = mw . titlu . nou ( „Șablon: AddN /” .. țară )
adj = titlu și titlu . există și
mw . getCurrentFrame (): expandTemplate {
titlu = title . text ,
args = { 'mp' }
}

return adj
Sfârșit

- ================================================== ======================
- Verificați dacă există o categorie de copii dintre cele de adăugat
- pentru a evita orice conflict de categorizare
- ================================================== ======================
funcție locală check_redundancy ( t , cat )
pentru _ , v în ipairs ( t ) do
dacă v == pisică atunci
întoarce-te adevărat
Sfârșit
Sfârșit
returnează fals
Sfârșit

- ================================================== ======================
- Returnează o listă de categorii pentru secvența de parametri cu
- numele de bază „nume_baza” consultând tabelul „tabel”.
- 'alias_table' este un tabel cu nume alternative pentru valorile
- parametri, „max_index” numărul maxim al indexului parametrilor
-- a verifica
- ================================================== ======================
categorisește funcții locale (args, base_name, table_name, litere mici, must_exist)
categorii locale = {}
local name_value = args [ nume_bază ] sau args [ nume_bază .. "1" ]
dacă nume_valor atunci
dacă este minusculă atunci nume_valor = mw . ustring. sfârșitul inferior ( nume_valor )
categorie locală = get_category (NAME_VALUE, table_name)
dacă categoria atunci
categories [ # categories + 1 ] = categorie
elseif trebuie  existe atunci
errors_msg [ # errors_msg + 1 ] = 'Valoare nevalidă pentru' .. nume_bază
Sfârșit
index local = 2
în timp ce adevărații
name_value = args [ base_name .. '' .. tostring ( index )]
dacă nume_valor atunci
dacă este minusculă atunci nume_valor = mw . ustring. sfârșitul inferior ( nume_valor )
local category = get_category ( name_value , table_name )
dacă categoria atunci
categories [ # categories + 1 ] = categorie
elseif trebuie  existe atunci
errors_msg [ # errors_msg + 1 ] = 'Valoare nevalidă pentru' .. nume_bază .. '' .. tostring ( index )
Sfârșit
altfel
pauză
Sfârșit
index = index + 1
Sfârșit
Sfârșit
dacă args [ nume_bază ] și args [ nume_bază .. "1" ] atunci
errors_msg [ # errors_msg + 1 ] = 'Vă rugăm să introduceți doar unul dintre' .. nume_bază .. 'și' .. nume_bază .. '' .. tostring ( index )
Sfârșit
returnează categoriile
Sfârșit
-------------------------------------------------- --------------------------------
- clasifica
-------------------------------------------------- --------------------------------
funcția p. categorii ( cadru )
local args = getArgs ( frame , { parentOnly = not frame . args . debug })
local current_page = mw . titlu . getCurrentTitle ()
local current_namespace = current_page . spațiu de nume
dacă current_namespace ~ = 0 și nu frame . argumente . depanare apoi returnare '' sfârșit
categorii locale = {}
- dacă este adevărat, apoi returnează mw.text.jsonEncode (categorii) sfârșit
append_table ( categorii , categorizare ( args , „serie” , „serie” ))
dacă arg. apoi anul
local ToNumber year = ( arg . anul)
dacă anul == zero atunci
errors_msg [ # errors_msg + 1 ] = 'an de publicare nevalid'
altfel dacă anul <= 1970 atunci
categories [ # categories + 1 ] = 'Jocuri video până în 1970'
altfel
categories [ # categories + 1 ] = 'Jocuri video' .. args . an
Sfârșit
Sfârșit
append_table ( categorii , categorizare ( args , „gen” , „gen” , adevărat , adevărat ))
append_table ( categorii , categorizare ( argumente , „temă” , „temă” , adevărat ))
pentru i = 1 , 3 fac
origine locală = args [ 'origine' .. i ] sau i == 1 și args [ 'origine' ]
dacă nu origine atunci
categories [ # categories + 1 ] = i == 1 și „Jocuri video fără naționalitate” sau zero
pauză
Sfârșit
local adj = get_adj ( origine )
dacă adj atunci
categories [ # categories + 1 ] = 'Jocuri video' .. adj
Sfârșit
Sfârșit
append_table ( categorii , categorizare ( argumente , „platformă” , „platformă” , fals , adevărat ))
append_table ( categorii , categorizare ( argumente , „dezvoltare” , „companii” ))
append_table ( categorii , categorizare ( argumente , „publicați” , „companii” ))
append_table ( categorii , categorizare ( argumente , „distribuție digitală” , „distribuție” , fals , adevărat ))
entity = mw . wikibase . getEntity ()
dacă entitate și entitate . creanțe și entitate . pretinde [ 'P3442' ] atunci
categories [ # categories + 1 ] = 'Jocuri video pentru Debian'
Sfârșit
local cache = mw . clona ( categorii )
- Categoriile mame care vor fi anulate în prezența fiicelor
local sub_cat = {
[ 'Video d \' horror '] =' Survival Horror '
}
pentru index , cat in ipairs ( categorii ) do
dacă sub_cat [ cat ] și check_redundancy ( cache , sub_cat [ cat ]) atunci
categorii [ index ] = ''
altfel
categories [ index ] = '[[Category:' .. cat .. ']]'
Sfârșit
Sfârșit
dacă # errors_msg > 0 atunci
categories [ # categories + 1 ] = '[[Categorie: erori de compilare a șabloanelor de jocuri video]]'
Sfârșit
dacă # categorii == 0 atunci returnează "' end
cadru de întoarcere . argumente . depanare și mw . text . nowiki ( table.concat ( categorii )) sau table.concat ( categorii )
Sfârșit
-------------------------------------------------- --------------------------------
- Returnări ale configurației tabelelor pentru companiile de jocuri video
-------------------------------------------------- --------------------------------
funcția p. tabel_configurare ( cadru )
argumente locale = getArgs ( cadru )
local table_name = args [ 1 ]
dacă nu ( table_name ), apoi returnează '' end
local reverse_alias = build_reverse_alias (table_name)
local root = mw . html. creat ( „tabel”)
rădăcină
: addClass ( ' sortabil wikitable ' )
: Etichetă ( „tr”)
: tag ( 'th' ): wikitext ( table_name ): done ()
: tag ( 'th' ): wikitext ( 'Alias' ): done ()
: tag ( 'th' ): wikitext ( 'Category' ): done ()
pentru nume , cat_name în perechi ( cfg [ table_name ]) faceți
local name_code = replace_braces ( nume )
local cat_code = '[[: Category:' .. cat_name .. ']]'
local alias_code = '& nbsp;'
dacă invers_alias [ nume ] atunci
pentru i, alias ipairs (invers_alias [nume]) face
invers_alias [ nume ] [ i ] = înlocuire_acolere ( alias )
Sfârșit
alias_code = table.concat (reverse_alias [name] '<br />')
Sfârșit
root : tag ( 'tr' )
: tag ( 'td' ): wikitext ( name_code ): done ()
: tag ( 'td' ): wikitext ( alias_code ): done ()
: tag ( 'td' ): wikitext ( cat_code ): done ()
Sfârșit
întoarcere toString (root)
Sfârșit
retur p