Moduuli:Elon
Moduulia voi käyttää vanhojen http://www.elonet.fi/title/ek- ja http://www.elonet.fi/name/he-tyyppisten Elonet-linkkien korvaamiseen nykyaikaisilla Elonet-linkeillä. Moduuli muuttaa ainoastaan kokonaisia linkkejä, ei siis esimerkiksi mallinekutsujen sisällä olevia tunnisteita.
Käyttö:
Napsauta vanhaa tyyppiä olevia Elonet-linkkejä sisältävän artikkelin muokkaa wikitekstiä -linkkiä, korvaa sivun sisältö tekstillä
{{subst:#invoke:Elon|korjuu}}
ja tallenna sivu. Muista täyttää yhteenvetokenttä esimerkiksi tekstillä Elonet-linkin päivitys tai Elonet-linkkien päivitystä. Ennen sivun tallentamista tarkista Näytä muutokset -painikkeen avulla, että moduuli toimii oikein. Moduulin käyttäjän vastuulla on myös varmistaa moduulin muokkaamien Elonet-linkkien toimivuus napsauttamalla ne kertaalleen läpi ja katsomalla, että linkit johtavat oikealle sivulle.
local p = {}
-- muodostaa uudentyyppisen Elonet-elokuvalinkin
local function eklinkki( merkkijono )
local mjono = merkkijono
local tunniste = string.sub( mjono, 1, -2 )
local tulos
tulos = 'https://www.elonet.fi/fi/elokuva/'..tonumber(tunniste,36)
if string.sub(mjono, -1) ~= '/' then
tulos = tulos .. string.sub(mjono, -1)
end
return tulos
end
-- muodostaa uudentyyppisen Elonet-henkilölinkin
local function helinkki( merkkijono )
local mjono = merkkijono
local tunniste = string.sub( mjono, 1, -2 )
local tulos
tulos = 'https://www.elonet.fi/fi/henkilo/'..tonumber(tunniste,36)
if string.sub(mjono, -1) ~= '/' then
tulos = tulos .. string.sub(mjono, -1)
end
return tulos
end
-- Vanhoilla Elonet-tunnisteilla varustettuja linkkejä korjaava funktio.
function p.korjuu(frame)
local title = mw.title.getCurrentTitle()
local s = title:getContent()
assert(s, 'Valitettavasti sivun sisällön hakeminen ei onnistunut')
-- Karsitaan ensin viimeisen /-merkin jälkeinen osa pois vanhoista
-- http?://????elonet.fi/title/ek???/???-tyyppisistä linkeistä,
-- koska noilla loppuosilla ei ole merkitystä nykyään.
if string.find(s,'https?://.?.?.?.?elonet.fi/title/ek[%a%d][%a%d]-/[%a%d%#][%a%d%#]-[%s|<%]]') ~= nil then
s = string.gsub(s, '(https?://.?.?.?.?elonet.fi/title/ek[%a%d][%a%d]-/)[%a%d%#][%a%d%#]-([%s|<%]])',
'%1'..'%2')
end
-- Korjataan ek-tunnisteen sisältävät Elonet-linkit
if string.find(s,'https?://.?.?.?.?elonet.fi/title/ek[%a%d][%a%d]-[/|\n%s%]<]') ~= nil then
s = string.gsub(s, 'https?://.?.?.?.?elonet.fi/title/ek([%a%d][%a%d]-[/|\n%s%]<])',
eklinkki)
end
-- Karsitaan ensin viimeisen /-merkin jälkeinen osa pois vanhoista
-- http?://www.elonet.fi/name/he???/???-tyyppisistä
-- linkeistä, koska noilla loppuosilla ei ole merkitystä nykyään.
if string.find(s,'https?://.?.?.?.?elonet.fi/name/he[%a%d][%a%d]-/[%a%d%#][%a%d%#]-[%s|<%]]') ~= nil then
s = string.gsub(s, '(https?://.?.?.?.?elonet.fi/name/he[%a%d][%a%d]-/)[%a%d%#][%a%d%#]-([%s|<%]])',
'%1'..'%2')
end
-- Korjataan he-tunnisteen sisältävät Elonet-linkit
if string.find(s,'https?://.?.?.?.?elonet.fi/name/he[%a%d][%a%d]-[/|\n%s%]<]') ~= nil then
s = string.gsub(s, 'https?://.?.?.?.?elonet.fi/name/he([%a%d][%a%d]-[/|\n%s%]<])',
helinkki)
end
return s
end
return p