Modul:VRTS dopusnica


local p = {}

local vrts_vazece = {}
---/////////////////////--
-- OVDJE DODATI NOVE ISPRAVNE DOPUSNICE (na dno popisa) - u obliku 
 -- vrts_vazece['podnaslov'] = ID vrijednost VRTS zahtjeva
vrts_vazece['AGM d.o.o.'] = '2021020410007871'
vrts_vazece['Klobuk.info'] = '2010042710011831'
vrts_vazece['Martina Zadro'] = '2021020410008174'
vrts_vazece['Dalibor Grubačević'] = '2021030910012327'
vrts_vazece['U potrazi za Markom Polom - TV serijal'] = '2021032610006338'
vrts_vazece['Željko Luketić'] = '2021031610007856'
vrts_vazece['Marin Sabolović'] = '2021031810008066'
vrts_vazece['Vitomir Ivanjek'] = '2021032610010289'
vrts_vazece['Goran Ugrin'] = '2021032610011921'
vrts_vazece['Ante Tadić'] = '2021040610009924'
vrts_vazece['Ministarstvo kulture Republike Hrvatske'] = '2021043010005276'
vrts_vazece['Hrvatsko kulturno vijeće'] = '2021070910003946'
vrts_vazece['Mladen Burnać'] = '2021080810003811'
vrts_vazece['Petar Milić'] = '2021081910003603'
vrts_vazece['Sage Croatia'] = '2021093010009111'
vrts_vazece['Orijentacijski klub Vihor Zagreb'] = '2021102910005918'
vrts_vazece['Darija Dolanski Majdak'] = '2021102710009543'
vrts_vazece['Ivan Mance'] = '2021122810007791'
vrts_vazece['Udruženje Divanhana'] = '2022013010005396'
vrts_vazece['Hrvatsko planinarsko društvo Sniježnica'] = '2022021510005314'
vrts_vazece['Damir Rogulja'] = '2022030610001628'
vrts_vazece['Matija Jakšeković'] = '2020090110003486'
vrts_vazece['Grad Beli Manastir'] = '2022110210012421'
vrts_vazece['Dubravka Oraić Tolić'] = '2022120510007205'
vrts_vazece['Hrvatski registar tamburaša'] = '2023082310002432'
vrts_vazece['Istrapedia'] = '2023072610005239'
vrts_vazece['Milan Bošnjak'] = '2024040510007691'
vrts_vazece['Hrvatska udruga Benedikt'] = '2024060310004532'
vrts_vazece['Dijana Žilić: In memoriam dr. sc. Marini Ilakovac Kveder'] = '2024010410005691'


----------------------
local vrts_nevazece = {}
---/////////////////////--
-- OVDJE DODATI NOVE NEVAŽEĆE DOPUSNICE (na dno popisa) - u obliku 
 -- vrts_nevazece['podnaslov'] = {'a.hr', 'b.hr', 'c.hr' } (web stranice za koje nemamo dopusnicu)
vrts_nevazece['Leksikografski zavod "Miroslav Krleža"'] = {'enciklopedija.hr', 'lzmk.hr', 'croatia.eu'}
vrts_nevazece['Hrvatski državni arhiv'] = {'arhiv.hr'}
vrts_nevazece['Javna ustanova "Priroda"'] = {'ju-priroda.hr'}
vrts_nevazece['Grad Crikvenica'] = {'crikvenica.hr'}
vrts_nevazece['Primorsko-goranska županija'] = {'pgz.hr'}
vrts_nevazece['Hrvatska akademija znanosti i umjetnosti'] = {'hazu.hr'}


function v_dohvatiNaslov(id)
	for naslov, identifikator in pairs(vrts_vazece) do
		if identifikator == id then
			return naslov
		end
	end
return ''
end

function v_dohvatiID(ime)
	return vrts_vazece[ime] or ''
end

function p.ispis(frame)
	local ret = ''
	if frame.args['1'] == 'vazece' then
		ret = '{| class="wikitable sortable" style="text-align: center;"'
		.. '\n|-'
		.. '\n! Dopusnica'
		.. '\n! VRTS identifikator'
		.. '\n! Kategorija za praćenje'
		for val, param in pairs(vrts_vazece) do
			local catname = 'Dopusnica - ' .. val
			
			ret = ret .. '\n|-'
			.. '\n| ' .. val .. ' || ' .. '[[:ticket:'.. param..'|'.. param ..']]'
			ret = ret .. '|| [[:Kategorija:' .. catname .. '|' .. catname ..']]' 
				..' (' .. frame:preprocess('{{PAGESINCAT:'..catname..'|all}}') ..' stavki)'
				-- ..' (' .. frame:preprocess('{{PAGESINCAT:'..catname..'|pages}}') ..' str., '
				-- .. frame:preprocess('{{PAGESINCAT:'..catname..'|subcats}}') ..' kat., ' 
				-- .. frame:preprocess('{{PAGESINCAT:'..catname..'|files}}') .. ' dat.)'
		end
		ret = ret .. '\n|-'
		.. '\n|}'
		return ret
		else if frame.args['1'] == 'nevazece' then
		ret = '{| class="wikitable sortable" style="text-align: center;"'
		.. '\n|-'
		.. '\n! Dopusnica'
		.. '\n! poveznice'
		.. '\n! Kategorija za praćenje'
		for i, params in pairs(vrts_nevazece) do
			for j, param in ipairs(params) do
				if j == 1 then
					ret = ret .. '\n|-'
						.. '\n|  '.. i .. '|| <code>' .. param .. '</code>'
				elseif j == 2 then
					ret = ret .. '<code>' .. param .. '</code>'
				else
					ret = ret .. ', <code>' .. param .. '</code>'
				end
			end
			local catname = 'Dopusnica - ' .. i
			ret = ret .. '|| [[:Kategorija:' .. catname .. '|' .. catname ..']]' 
				..' (' .. frame:preprocess('{{PAGESINCAT:'..catname..'|all}}') ..' stavki)'
				-- ..' (' .. frame:preprocess('{{PAGESINCAT:'..catname..'|pages}}') ..' str., '
				-- .. frame:preprocess('{{PAGESINCAT:'..catname..'|subcats}}') ..' kat., ' 
				-- .. frame:preprocess('{{PAGESINCAT:'..catname..'|files}}') .. ' dat.)'
		end
		ret = ret .. '\n|-'
			.. '\n|}'
		return ret
		end
	end
end

function p.samo_kategorija(frame)
	local retval = ''
	local naslovArg = frame.args['naslov'] or ''
	local naslov = ''
	local id = frame.args['id'] or ''
	
	if string.find(naslovArg, "LZMK") 
	or string.find(naslovArg, "Hrvatsk[aeiou] enciklopedij[aeiou]") 
	or string.find(naslovArg, "Istarsk[aeiou] enciklopedij[aeiou]")
	or string.find(naslovArg, "Hrvatskog biografskog leksikona")
	or string.find(naslovArg, "Proleksis") 
	or string.find(naslovArg, "[Cc]roatia.eu")
	or string.find(naslovArg, "Hrvatska[:,] zemlja,? i ljudi") then
		naslov = 'Leksikografski zavod "Miroslav Krleža"' 
	else naslov = naslovArg
	end
	
	if naslov ~= '' then 
		retval = 'Sav sadržaj pod ovom dopusnicom  popisan je [[:Kategorija:Dopusnica - '
		.. naslov .. '|ovdje]].[[Kategorija:Dopusnica - '.. naslov .. ']]'
	
	else if v_dohvatiNaslov(id) ~= '' then
			retval = 'Sav sadržaj pod ovom dopusnicom  popisan je [[:Kategorija:Dopusnica - '
			.. v_dohvatiNaslov(id) .. '|ovdje]].[[Kategorija:Dopusnica - '.. v_dohvatiNaslov(id) .. ']]'
			else retval = '<span class="error"><b>Dopusnica nije povezana s modulom!</b></span> [[Kategorija:Dopusnice koje nisu povezane s modulom]]'
		end
	end
	

	if naslov ~= '' and id ~= '' then
		if v_dohvatiNaslov(id) ~= v_dohvatiID(naslov) then
			retval = retval .. '[[Kategorija:VRTS predlošci s nepoklapanjem u identifikatorima]]'
		end
	end
	return retval
end


function provjeri_poveznice(frame)
	local match = 'no'
	if vrts_nevazece[string.gsub(frame.args['naslov'] or '', '_', ' ')] ~= nil then
		match = 'yes'
		else 
			for val, params in pairs(vrts_nevazece) do
			for i, param in pairs(params) do
				local HTTPregex = 'https?://' .. param
				local dotregex = '%.' .. param
				if string.find(frame.args['url1'] or '', HTTPregex) or string.find(frame.args['url2'] or '', HTTPregex)
					or string.find(frame.args['url1'] or '', dotregex) or string.find(frame.args['url2'] or '', dotregex) then
				match = 'yes'
				end
			end
		end
	end
	return match
end

function p.main(frame)
	local retstring ='';
	local nocat = frame.args['nocat']
	local title = mw.title.getCurrentTitle()
	if title.nsText == 'Wikipedija' then
    	nocat = 'yes'
	end
	if provjeri_poveznice(frame) == 'yes' then
		retstring = '<span class="error"><b>Dopusnica nije važeća!</b></span>'
		if nocat ~= 'yes' then retstring = retstring .. '[[Kategorija:Članci s nevažećom dopusnicom]]' end
	
	elseif vrts_vazece[frame.args['naslov']] ~= nil then -- ako vrijednost postoji
		retstring = 'Dopusnica za korištenje materijala s ove stranice ' 
		..'arhivirana je u [[Wikipedija:VRT|VRTS-u]] pod brojem '
		.. '[[:ticket:'.. vrts_vazece[frame.args['naslov']]..'|'.. vrts_vazece[frame.args['naslov']] ..']].'
		if nocat ~= 'yes' then retstring = retstring .. '[[Kategorija:Članci s potvrđenom dopusnicom]]' end
	else 
		retstring = '<span class="error">Dopusnica nije potvrđena [[Wikipedija:VRT|VRTS-om]].</span>'
		if nocat ~= 'yes' then retstring = retstring .. '[[Kategorija:Članci s nepotvrđenom dopusnicom]]' end
	end
	return retstring..'<br />'..p.samo_kategorija(frame)
end
return p