Diferencia entre revisiones de «Módulo:Categorizar»
Contenido eliminado Contenido añadido
Añado una corrección de idioma |
Según d:Q645928 |
||
Línea 10: | Línea 10: | ||
local arreglarCategorias = { |
local arreglarCategorias = { |
||
['géneros película'] = { |
['géneros película'] = { |
||
['Películas de cine bélico'] = 'Películas de guerra' |
['Películas de cine bélico'] = 'Películas de guerra' |
||
,['Películas de cine de acción'] = 'Películas de acción' |
,['Películas de cine de acción'] = 'Películas de acción' |
||
,['Películas de cine de artes marciales'] = 'Películas de artes marciales' |
,['Películas de cine de artes marciales'] = 'Películas de artes marciales' |
||
,['Películas de cine de aventuras'] = 'Películas de aventuras' |
,['Películas de cine de aventuras'] = 'Películas de aventuras' |
||
,['Películas de cine de ciencia ficción'] |
,['Películas de cine de ciencia ficción'] = 'Películas de ciencia ficción' |
||
,['Películas de cine de monstruos'] = 'Películas de monstruos' |
,['Películas de cine de monstruos'] = 'Películas de monstruos' |
||
,['Películas de cine de terror'] = 'Películas de terror' |
,['Películas de cine de terror'] = 'Películas de terror' |
||
Línea 20: | Línea 20: | ||
,['Películas de cine documental'] = 'Películas de documental' |
,['Películas de cine documental'] = 'Películas de documental' |
||
,['Películas de cine dramático'] = 'Películas dramáticas' |
,['Películas de cine dramático'] = 'Películas dramáticas' |
||
,['Películas de cine fantásticas'] |
,['Películas de cine fantásticas'] = 'Películas fantásticas' |
||
,['Películas de cine policíaco'] = 'Películas policíacas' |
,['Películas de cine policíaco'] = 'Películas policíacas' |
||
,['Películas de cine romántico'] = 'Películas románticas' |
,['Películas de cine romántico'] = 'Películas románticas' |
||
Línea 26: | Línea 26: | ||
,['Películas de comedia romántica'] = 'Comedias románticas' |
,['Películas de comedia romántica'] = 'Comedias románticas' |
||
,['Películas de cortometraje'] = 'Cortometrajes' |
,['Películas de cortometraje'] = 'Cortometrajes' |
||
,['Películas de |
,['Películas de cine biográfico'] = 'Películas biográficas' |
||
,['Películas de película infantil'] = 'Películas infantiles' |
,['Películas de película infantil'] = 'Películas infantiles' |
||
,['Películas de western'] = 'Wéstern' |
,['Películas de western'] = 'Wéstern' |
Revisión del 17:57 28 mar 2017
A continuación se muestra la documentación transcluida desde la subpágina /doc. [salta a la caja de código]
Uso
Esta documentación está transcluida desde Módulo:Categorizar/doc.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.
local z = {}
local argumento = {} -- Argumentos eliminando argumentos sin datos
local procesador = {}
-- Módulos utilizados
local ModuloArgumentos = require('Módulo:Argumentos')
local ModuloTablas = require('Módulo:Tablas')
local arreglarCategorias = {
['géneros película'] = {
['Películas de cine bélico'] = 'Películas de guerra'
,['Películas de cine de acción'] = 'Películas de acción'
,['Películas de cine de artes marciales'] = 'Películas de artes marciales'
,['Películas de cine de aventuras'] = 'Películas de aventuras'
,['Películas de cine de ciencia ficción'] = 'Películas de ciencia ficción'
,['Películas de cine de monstruos'] = 'Películas de monstruos'
,['Películas de cine de terror'] = 'Películas de terror'
,['Películas de cine de vampiros'] = 'Películas de vampiros'
,['Películas de cine documental'] = 'Películas de documental'
,['Películas de cine dramático'] = 'Películas dramáticas'
,['Películas de cine fantásticas'] = 'Películas fantásticas'
,['Películas de cine policíaco'] = 'Películas policíacas'
,['Películas de cine romántico'] = 'Películas románticas'
,['Películas de comedia dramática'] = ''
,['Películas de comedia romántica'] = 'Comedias románticas'
,['Películas de cortometraje'] = 'Cortometrajes'
,['Películas de cine biográfico'] = 'Películas biográficas'
,['Películas de película infantil'] = 'Películas infantiles'
,['Películas de western'] = 'Wéstern'
,['Películas de wéstern'] = 'Wéstern'
,['de drama'] = 'dramáticas'
,['de comedia'] = 'cómicas'
,['de musical'] = 'musicales'
,['de suspenso'] = 'de suspense'
,['de thriller'] = 'de suspense'
,['de fantasía'] = 'fantásticas'
,['de fantástico'] = 'fantásticas'
,['de histórico'] = 'históricas'
,['de romance'] = 'románticas'
,['de horror'] = 'de terror'
,['de aventura'] = 'de aventuras'
,['de aventurass'] = 'de aventuras'
,['de infantil'] = 'infantiles'
,['de policial'] = 'policíacas'
,['de histórica'] = 'históricas'
,['de romántica'] = 'románticas'
,['de bélico'] = 'de guerra'
,['de biográfica'] = 'biográficas'
,['de biográfico'] = 'biográficas'
,['de bélica'] = 'de guerra'
},
['nombre país'] = {
['USA'] = 'Estados Unidos'
,['E. E. U. U.'] = 'Estados Unidos'
,['Estados Unidos de América'] = 'Estados Unidos'
,['Canada'] = 'Canadá'
,['EE.UU.'] = 'Estados Unidos'
,['Estados unidos'] = 'Estados Unidos'
,['EE. UU.'] = 'Estados Unidos'
,['URSS'] = 'Unión Soviética'
,['United States'] = 'Estados Unidos'
,['Swazilandia'] = 'Suazilandia'
,['Cote d\'Ivoire'] = 'Costa de Marfil'
,['Niger'] = 'Níger'
,['Nígeria'] = 'Nigeria'
,['Benin'] = 'Benín'
,['Gabon'] = 'Gabón'
,['Alemania del Oeste'] = 'Alemania Occidental'
,['Haiti'] = 'Haití'
,['Panama'] = 'Panamá'
,['República Bolivariana de Venezuela'] = 'Venezuela'
},
['nombre idioma'] = {
['castellano'] = 'español'
,['no aplica (cine mudo)'] = 'mudas'
}
}
function z.Categorizar( frame )
-- Obtener una copia de los argumentos eliminando los argumentos sin valor
argumento = ModuloArgumentos.obtenerArgumentosConValor( frame )
procesador = frame
local patron = argumento['patrón'] or false -- Patrón que debe cumplir la categoría
local separador = argumento['separador'] or '<br />' -- Separador utilizado en la categoría
local datos = argumento
-- Comprueba si el parámetro test está definido
local opciones = {}
opciones['test'] = (argumento["test"] and argumento["test"] == "sí") or false
opciones['enlace'] = (argumento["enlace"] and argumento["enlace"] == "sí") or false
opciones['filtrar'] = not argumento["filtrar"] or argumento["filtrar"] ~= "no"
opciones['formato'] = argumento["formato"] or ''
opciones['subst'] = (argumento["arreglar"] and arreglarCategorias[argumento["arreglar"]]) or {}
-- Categoriza y devuelve el resultado
return z.categoriza(patron, separador, datos, opciones)
end
function z.categoriza(patron, separador, datos, opciones)
-- Variable donde se van almacenando las categorías válidas
categorias = ''
-- Sólo categoriza si tanto el patrón como el separador están definidos
-- (aunque el separador no tiene porque estár contenido en el resto de parámetros)
if (patron and separador) then
-- Creo las tablas que almacenarán el resultado final y el valor temporal
resultado = {}
tmp = {}
-- Inicializo el resultado al patrón original
resultado[1] = patron
-- Elimino los parámetros que no tienen valor numérico y divido los numéricos
-- en el separador indicado como parámetro
hayDatos = false
datosLimpios = {}
for k, v in pairs(datos) do
if k and type(k) == 'number' and type(k) ~= 'function' then
datosLimpios[k] = v and mw.text.gsplit(v, '%s*'..separador..'%s*') or ''
hayDatos = true
end
end
if not hayDatos then
return '';
end
-- Recorro todos los argumentos
for parametro, v in pairs(datosLimpios) do
actualizo = false
tmp = {}
-- Actualiza los parámetros en caso de que sea necesario
for trozo in datosLimpios[parametro] or {} do
for clave,cat in pairs(resultado) do
if not trozo:match('^%s*$') then
tmp[#tmp+1] = string.gsub(cat, "$"..parametro, trozo)
actualizo = true
end
end
end
-- Si se ha realizado algún cambio vuelco los valores nuevos en resultado
if actualizo then
resultado = {}
resultado = tmp
end
end
local prefijo = ''
local sufijo = ''
if opciones['test'] then
prefijo = '«'
sufijo = '»'
elseif opciones['enlace'] then
prefijo = '[[:'
sufijo = ']]'
else
prefijo = '[['
sufijo = ']]'
end
if opciones['formato'] == 'lista' and (opciones['test'] or opciones['enlace']) then
prefijo = '\n* ' .. prefijo
end
-- Compruebo si existen los nombres de las categorías y los añado a la salida
for clave,cat in pairs(resultado) do
if not cat:find("%$") and not cat:find("%[%[:d:") then
cat = procesador:preprocess('{{Desenlazar|' .. cat .. '}}')
-- Aplico el grupo de correcciones correspondiente a los nombres
if opciones["subst"][cat] then
cat = opciones["subst"][cat]
else
for antiguo,nuevo in pairs(opciones["subst"]) do
cat = string.gsub(cat, antiguo, nuevo)
end
end
categoria = mw.title.new("Categoría:" .. cat)
if categoria and (not opciones['filtrar'] or categoria.exists) then
categorias = categorias .. prefijo .. categoria.fullText .. sufijo
elseif not categoria and opciones['test'] then
categorias = categorias .. '<span class="error">Error en nombre de categoría: «Categoría:' .. cat .. '»</span>'
end
end
end
end
return categorias
end
return z