Módulo:Zona de pruebas/Miguillen/Parse
Este módulo no tiene página de documentación[crear]
-- Módulo de prueba
local p = {}
local columna = {}
local cont = 0
local wikibase = require 'Module:Wikibase'
local Coor = require 'Module:Coordenadas'
function p.wb(frame)
--local ent = wikibase.getEntityObject (frame.args[1])
--local wb = ent:getProperty (frame.args[2])
local w = mw.wikibase.entity:getProperties()
return w
--return wb
end
function p.imagenc(frame)
local respuesta = {}
local comprobar = frame.args[1]
local patron = frame.args[2]
local cadena = string.find(comprobar,patron)
if cadena ~= nil then
respuesta = ('encontrado')
else
respuesta = ('no encontrado')
end
return respuesta
end
function p.formatnum(frame)
local s = frame.args[1]
local idioma = {}
if s ~= '' or s ~= nil then
if frame.args[2] then
idioma = frame.args[2]
else
idioma = 'es'
end
local num = string.gsub(string.gsub(s,',',''),' ','') -- cambiamo coma por punto y quitamos espacio bruto
local formatnum = {}
if type(tonumber(num)) == 'number' then
if string.len(num) == 4 or mw.ustring.find(num,'%.') == 5 then
if idioma == 'es' then
formatnum = string.gsub(num,'%.',',')
else
formatnum = mw.language.new(idioma):formatNum(tonumber(num))
end
else
formatnum = mw.language.new(idioma):formatNum(tonumber(num))
end
return formatnum
else
return s --'<strong class="error">Número no válido</strong> [[Categoría:Wikipedia:Errores de formatnum]]'
end
else
return ''
end
end
function p.coordenadas(frame)
local par = {}
par.args = { frame.args[1], frame.args[2], frame.args[3], frame.args[4], frame.args[5], frame.args[6], frame.args[7], frame.args[8],
display='inline,title',format="dms",'type:city',gf=frame}
return Coor.coord2(par)
--return par[1]
end
function p.existe(frame) --Comprueba si una página existe
local existente = {}
if mw.title.new(frame.args[1]).exists then
existente = '[['.. frame.args[1] .. ']]'
else
existente = 'no encontrado'
end
return existente
end
function p.wikidata(frame) -- Enlazar propiedad de Wikidata
local tabla = {}
funcion = mw.wikibase.getEntity()
--local propiedad = funcion[frame.args[1]]
if funcion ~= nil then
--return funcion.id
--local v = 1
tabla1 = funcion.claims.p131[1]
tabla2 = tabla1.qualifiers.p132
tabla3 = tabla2[0]
tabla4 = tabla3.datavalue.value
tabla = mw.wikibase.label('q' .. tabla4['numeric-id'])
--local cont = 0
--local formato = {}
--for k, v in pairs(tabla) do
-- cont = cont + 1
-- formato[cont] = v
-- table.insert(formato,tabla)
-- end
-- local devolver1 = formato[2]
--local devolver = devolver1[1]
-- local devolver = devolver.datavalue.value
--formato[1] = mw.wikibase.label('q' .. formato[1])
return tabla-- mw.text.listToText(formato)
--return mw.wikibase.label('q' .. tabla['numeric-id'])
else
return '<strong class="error">Página no enlazada a Wikidata</strong>'
end
end
function p.mayuscula(frame) -- Convierte en mayúnculas la primera letra que aparece en la edición de una cadena
local cadena = frame.args[1]
local cambio = {}
local modo = {}
if string.find(cadena, '|') ~= nil then -- Enlaces con etiqueta
modo = string.upper(string.match(cadena,'(|%a)'))
cambio = string.gsub(cadena,'|%a', modo,1)
elseif string.find(cadena, '[[]') ~= nil then -- Enlaces sin etiqueta
modo = string.upper(string.match(cadena,'^(..%a)'))
cambio = string.gsub(cadena,'^..%a', modo,1)
else -- Sin enlace
modo = string.upper(string.match(cadena,'^(%a)'))
cambio = string.gsub(cadena,'^%a', modo,1)
end
return cambio
end
function p.sinD(frame) -- Convierte en mayúnculas la primera letra que aparece en la edición de una cadena
local cadena = frame.args[1]
local cambio = {}
if string.find(cadena, '|') ~= nil then -- Enlaces con etiqueta
cambio = string.gsub(cadena,'|%a+%sde%d(%D+)', '%1')
elseif string.find(cadena, '[[]') ~= nil then -- Enlaces sin etiqueta
cambio = string.gsub(cadena,'(^..%a+%sde%s)(%D+)', '%1%2|%2')
else -- Sin enlace
cambio = string.gsub(cadena,'^%a+%sde%s%(%D+)','%1')
end
return cambio
end
function p.imagen(frame)
local s = frame.args[1]
local imagen = {}
if s ~= nil then
if string.find(s, '[Aa]rchivo') then
imagen = string.gsub(s,'..[Aa]rchivo:(.*\.%a%a%a)|.*','%1')
elseif string.find(s, '[Ff]ile') then
imagen = string.gsub(s,'..[Ff]ile:(.*\.%a%a%a)|.*','%1')
elseif string.find(s, '[Ii]magen') then
imagen = string.gsub(s,'..[Ii]magen:(.*\.%a%a%a)|.*','%1')
elseif string.find(s, '[Ii]mage') then
imagen = string.gsub(s,'..[Ii]mage:(.*\.%a%a%a)|.*','%1')
else
imagen = s
end
else
imagen = ''
end
return imagen
end
function p.si(frame)
local condicion = frame.args[1]
local parametro = frame.args[2]
local verdadero = frame.args[3]
local espacio = string.rep (' ', 17 - mw.ustring.len(parametro))
if condicion ~= '' then
local vuelta = '\n| ' .. parametro .. espacio .. '= ' .. verdadero
return vuelta
end
end
function p.url(frame)
local s = frame.args[1]
local cambio = {}
if string.find(s, '%[') then
local cambio1 = string.gsub(s,'[%[ | %]]','')
cambio = string.gsub(cambio1,'http:%/%/','')
elseif string.find(s, 'http:%/%/') then
cambio = string.gsub(s,'http:%/%/','')
else
cambio = s
end
return cambio
end
function p.pruebaNum(frame)
local s = frame.args[1]
local num = {}
local nums = mw.ustring.gcodepoint( s,1, mw.ustring.len( s,mw.ustring.match(s, '%d*')))
for codepoint in nums do
num[codepoint] = nums
end
return next(num)
end
function p.ordenar(frame)
local ordenar = frame.args[1]
if ordenar then
local nombreParametro = {}
mw.ustring.sub(ordenar, 1, mw.ustring.find(ordenar,',')-1)
local cont = 0
--for w in string.gmatch(ordenar, '%a+') do
--cont = cont + 1
-- nombreParametro[cont] = w
--end
nombreParametro = mw.text.split (ordenar,',')
return table.concat(nombreParametro,'<br>')
end
end
function p.firma(frame)
local enlace = frame:preprocess('~~~')
return enlace
end
function p.usuario(frame)
local usuario = mw.ustring.gsub(frame.args[1],'%[%[Usuario:([a-z A-Z 0-9]*)|.*','%1')
return usuario
end
wikibase.getEntity = function ()
local id = php.getEntityId( tostring( mw.title.getCurrentTitle().prefixedText ) )
if id == nil then return nil end
local entity = php.getEntity( id )
return entity
end
function p.item(frame)
item = function()
return item
end
end
function p.wikidata2(frame) -- Enlazar propiedad de Wikidata
local tabla = {}
funcion = mw.wikibase.getEntity()
--local propiedad = funcion[frame.args[1]]
if funcion ~= nil then
--return funcion.id
--local v = 1
tabla1 = funcion.claims.p1082[1]
tabla = tabla1.mainsnak.datavalue.value
--tabla = tabla2['unit']
local cont = 0
local formato = {}
for k, v in pairs(tabla) do
cont = cont + 1
formato[cont] = k ..'='.. v
--table.insert(formato,tabla)
end
-- local devolver1 = formato[2]
--local devolver = devolver1[1]
-- local devolver = devolver.datavalue.value
--formato[1] = mw.wikibase.label('q' .. formato[1])
return mw.text.listToText(formato,', ')
--return mw.wikibase.label('q' .. tabla['numeric-id'])
else
return '<strong class="error">Página no enlazada a Wikidata</strong>'
end
end
return p