Module:Nap

From Wikisource
Jump to navigation Jump to search

Utilizzato dal template {{Nap}}.

  1. pagina Index: Inserito senza parametri nel campo Remarks legge i valori del template MediaWiki:Proofreadpage_index_template e ne permette l'utilizzo a fini di categorizzazione.
  2. pagina Page: categorizza la pagina in una categoria ottenuta dalla radice del nome pagina (senza estensione: es. Page:Tuttiavvelenati.djvu/13 -> Category:Tuttiavvelenati)

Negli altri namespaces e nelle pagine di progetti linguistici diversi da nap non ha alcun effetto.

Codice da utilizzare: {{nap}}


local p = {}
--local ok,dati=pcall(mw.loadData,"Module:Nap/Dati")

-- funzione test sui dati ricevuti da Module:Nap/Dati
function p.test(frame)
	return dati["'A morte.djvu"]
	end

function p.indexCat( frame )
	local title=mw.title.getCurrentTitle()
	local text=title:getContent()
	if title.namespace~=106 and title.namespace~=104 and title.namespace~=0 then
		return
	end
	
	-- local codedText=string.gsub(text,'<div class="pagetext">','(div class="pagetext")')
	--local codedText=string.gsub(codedText,"</noinclude>","")
	-- local result= '<pre style="display:none;" class="rawcode">'..mw.text.jsonEncode(codedText)..'</pre>'
	local author=""
	local result=""
	local genere=""
	-- ricerca di indexName (nome base di file, index e page, chiave per dati)
	local indexName=""
	if title.namespace==106 or title.namespace==104 then
		indexName=title.rootText
	end
	if title.namespace==0 then
		indexName=string.match(text,'index="(.-)"')
	end
	
	local pagename=string.gsub(title.rootText,"%.djvu","")
	pagename=string.gsub(pagename,"%.pdf","")
	-- caso namespace=Index (106)
	if title.namespace==106 then
		
		local language=string.match(text,"|Language=(.-)\n")
		if string.find(language,"[Nn]ap")~=nil then

			author=string.match(text,"|Author=(.-)\n")
			
			-- caso link autore piuttosto che nome autore
			if string.find(author,"Author:")~=nil then
				author=string.match(author,'Author:(.-)[|%]]')
			end
			-- trasformazione in tabella per gli autori multipli
			author=mw.text.split(author,"/")
			local year=string.match(text,"|Year=(.-)\n")
			local editor=string.match(text,"|Publisher=(.-)\n")
			if editor=="" then 
				editor=string.match(text,"|Editor=(.-)\n") 
				-- caso link autore piuttosto che nome autore
				if string.find(editor,"Author:")~=nil then
					editor=string.match(editor,'Author:(.-)[|%]]')
				end
			end
			local progress=string.match(text,"|Progress=(.-)\n")
			
			if string.find(editor,"?")==nil then
				result=result.."[[Category:Editore "..editor.."]]"
			else
				result=result.."[[Category:Editore incertu]]"
			end
			for k,aut in ipairs(author) do 
				if string.find(aut,"?")==nil then
					result=result.."[[Category:Fatiche 'e "..aut.."]]"
				else
					result=result.."[[Category:Fatiche 'e autore incertu]]"
				end
			end
			if progress=="OCR" then 
				result=result.."[[Category:Innece napulitane co' OCR da ffa']]"
			elseif progress=="T" then
				result=result.."[[Category:Innece napulitane fernute]]"
			elseif progress=="V" then
				result=result.."[[Category:Innece napulitane rileggiute]]"
			elseif progress=="C" then
				result=result.."[[Category:Innece napulitane da rileggere]]"
			elseif progress=="MS" then
				result=result.."[[Category:Innece napulitane co' M&S da ffa']]"
			elseif progress=="L" then
				result=result.."[[Category:Innece napulitane co' immaggine da sistemare]]"
			elseif progress=="X" then
				result=result.."[[Category:Innece napulitane co' stato sconosciuto]]"
			else
				result=result.."[[Category:Innece napulitane co' stato sconosciuto]]"
			end
			-- aggiungo categorizzazione per opera
			if string.find(pagename,"Spassatiempo")==1 then
				pagename="Spassatiempo"
			elseif string.find(pagename,"Lo cuorpo de Napole e lo Sebbeto")==1 then
				pagename="Lo cuorpo de Napole e lo Sebbeto"
			end
			result=result.."[[Category:"..pagename.."]]".."[[Category:Tipo Index]]"
			--return result
		end
	elseif title.namespace==104 then
	-- caso namespace Page (104)
	
		
		local level=string.match(text,'level="([0-4])"')
		result=result.."[[Category:"..pagename.."]]".."[[Category:Paggine napulitane level "..level.."]]".."[[Category:Tipo Page]]"
		--result=result.."[[Category:Paggine napulitane level "..level.."]]"
		--return result
	--else
		--return result
	elseif title.namespace==0 then
		result=result.."[[Category:Tipo ns0]]"
		local indexref=string.match(text,'index="(.-)"')
		
	
		if indexref~=nil then
			local indexPage=mw.title.new("Index:"..indexref)
			
			
			local indexPageData={}
			
			local indexPageText=indexPage:getContent()
			indexPageData.Title=string.match(indexPageText,"Title=(.-)\n|")
			indexPageData.Author=mw.text.split(string.match(indexPageText,"Author=(.-)\n|"),"/")
			indexPageData.Translator=string.match(indexPageText,"Translator=(.-)\n|")
			indexPageData.Editor=string.match(indexPageText,"Editor=(.-)\n|")
			indexPageData.Publisher=string.match(indexPageText,"Publisher=(.-)\n|")
			indexPageData.Address=string.match(indexPageText,"Address=(.-)\n|")
			indexPageData.Year=string.match(indexPageText,"Year=(.-)\n|")
			indexPageData.Source=string.match(indexPageText,"Source=(.-)\n|")
			indexPageData.Progress=string.match(indexPageText,"Progress=(.-)\n|")
			indexPageData.Volumes=string.match(indexPageText,"Volumes=(.-)\n|")
			indexPageData.Pages=string.match(indexPageText,"Pages=(.-)\n|")
			indexPageData.Remarks=string.match(indexPageText,"Remarks=(.-)\n|")
			indexPageData.Base=string.gsub(indexref,".djvu","")
			indexPageData.Base=string.gsub(indexPageData.Base,".pdf","")
			result=result.."[[Category:"..indexPageData.Base.."]]"
			for k,aut in ipairs(indexPageData.Author) do 
				if string.find(aut,"?")==nil then
					result=result.."[[Category:Fatiche 'e "..aut.."]]"
				else
					result=result.."[[Category:Fatiche 'e autore incertu]]"
				end
			end
		
		
		end
	else 		
		
		result=""
	end
	return result
end
return p