Utilizator:Andrebot/Ștergerea de imagini copiate la commons

Sunt în continuare multe imagini duplicat, care au fost încărcate la Commons, unele nefiind DP, ci sub licenţe libere, CC sau GFDL.

Ce fac eu

modificare

Verific fiecare imagine din Categoria Acum la commons şi verific să aibă formatul {{NowCommons}} în ele, fără parametri (dacă are parametri înseamnă că imaginea are alt nume la commons şi atunci mai trebuie făcute modificări prin paginile ce o folosesc). Apoi mă uit pe pagina de la Commons să văd dacă ea există, şi dacă este identică cu imaginea de aici. În plus, verific dacă imaginea este etichetată corect din punctul de vedere al drepturilor de autor (Domeniu public, GFDL sau CC; autorul fiind acelaşi cu uploaderul imaginii original).

Cine a mai programat poate înţelege şi eventual depana relativ uşor acest script Python. Autorul acestui script, Andrei, eliberează următorul cod sub licenţa GNU Public License, cu scuze că a scris codul pe genunchi (în sens şi propriu şi figurat), la 4 ani de la ultima oară când a scris cod în Python:

# coding: utf-8
import wikipedia, codecs, catlib, pagegenerators, string
site = wikipedia.getSite();
cat = catlib.Category(site, u"Categorie:Acum la commons");
gen = pagegenerators.CategorizedPageGenerator(cat);
cmsite = wikipedia.getSite('commons','commons');
print cmsite;
raport = u"Am şters următoarele pagini:\n";
imgsterse = 0;
for page in gen:
    if page.isImage():
	text = page.get();
	print repr(page.title() + ' ' + `string.count(text, u"{{NowCommons}}")`);
	nowcommons = string.count(text, u"{{NowCommons}}")
 	wikipedia.output("NowCommons:" + str(nowcommons));
 	if 0 < nowcommons:
	    cmpage = wikipedia.ImagePage(cmsite, page.title().replace(u"Imagine:", u"Image:"));
	    if cmpage.exists() and cmpage.isImage():
		localurl = page.fileUrl();
		cmurl = cmpage.fileUrl();
		wikipedia.output("Compar " + cmurl + " cu " + localurl);
		
		"""Intai vedem daca e pusa licenta bine"""
		localfileuploader = page.getLatestUploader();
		cmtext = cmpage.get();
		isDPpersonal = 0 < cmtext.count(u"{{PD-user-w|ro|wikipedia|" + localfileuploader[0] + u"}}") and (0 < text.count(u"{{DP-personal}}") or 0 < text.count(u"{{DP-oferit"));
		isGFDL = 0 < cmtext.count(u"{{GFDL-user-w|ro|wikipedia|" + localfileuploader[0] + u"}}") and 0 < text.count(u"{{GFDL}}");
		isCC = (0 < cmtext.lower().count(u"{{cc-by")  or 0 < cmtext.lower().count(u"{{self|cc-by-sa")) and 0 < text.lower().count(u"{{cc-by");
		if isDPpersonal or isGFDL or isCC:
		    """citim si comparam"""
   		    uo = wikipedia.MyURLopener();
		    cmdatasrc = uo.open(cmurl);
		    lcdatasrc = uo.open(localurl);
		    cmdata = cmdatasrc.read();
		    lcdata = lcdatasrc.read();
		    if cmdata == lcdata:
			wikipedia.output("---Fisierele se potrivesc---");
			page.delete(reason="Duplicat al unei imagini de la Commons", prompt=False);
			raport = raport + u"* [[:";
			raport = raport + page.title();
			raport = raport + u"]]\n";
			imgsterse = imgsterse + 1;
		    else:
			wikipedia.output("---Fisierele nu seamana---");
raport = raport + u"\nÎn total " + str(imgsterse) + u" pagini şterse.";
rappage = wikipedia.Page(site, u"Utilizator:Andrebot/Ştergerea hărţilor de judeţe copiate la commons/Raport");
rappage.put(raport, u"Creat raport");

</nowiki>

Aşteaptă primirea permisiunii în urma modificării codului. Preraport. --Andreidiscuţie 10 decembrie 2008 01:09 (EET)