import pywikibot
import time
def llistar_articles_i_mancances(usuari, pagina_desti):
site = pywikibot.Site("ca", "wikipedia")
# Defineix el nombre d'edicions
edicions = 5000
# Inicia el comptador de temps
start_time = time.time()
# Obtén la llista d'articles creats per l'usuari
contributions = site.logevents(user=usuari, logtype="create", total=edicions, namespace=0)
# Crea el contingut amb la cadena de format
contingut = "\n\n== [[Usuari:{}]] ==\n\nRevisats els darrers {} articles creats. ".format(usuari, edicions)
contingut += "Generat el {}.\n\n".format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())) # Afegir timestamp
processed_articles = set() # Set per fer un seguiment dels articles processats
for contribution in contributions:
page = contribution.page()
article_title = page.title()
# Només processa l'article si no és ja al conjunt
if article_title not in processed_articles:
pag = pywikibot.Page(site, article_title)
plantilles_presents = cercar_plantilles_presents(pag)
if plantilles_presents:
# Afegeix les plantilles trobades amb el format demanat
contingut += "# [[{}]] ".format(article_title)
for plantilla in plantilles_presents:
# Formata cada plantilla amb el codi wiki correcte
contingut += " {{tl|" + plantilla + "}}"
contingut += "\n"
# Afegeix el títol de l'article al conjunt d'articles processats
processed_articles.add(article_title)
# Finalitza el comptador de temps
end_time = time.time()
# Calcula el temps transcorregut
elapsed_time = end_time - start_time
# Arrodoneix el temps transcorregut al nombre enter més proper
elapsed_time_rounded = round(elapsed_time)
# Afegeix el temps transcorregut a la cadena de contingut
contingut += "\nEl programa ha tardat {} segons.\n\n\n".format(elapsed_time_rounded)
# Obtén el contingut actual de la pàgina de destí
pagina_desti_page = pywikibot.Page(site, pagina_desti)
contingut_pagina_desti = pagina_desti_page.text
# Concatena el contingut actual amb la nova informació
contingut_pagina_desti += contingut # Afegeix el contingut nou al contingut existent
# Desa la llista a la pàgina especificada
pagina_desti_page.text = contingut_pagina_desti
pagina_desti_page.save(summary="Actualitzant la llista d'articles creats per l'usuari {} amb avisos.".format(usuari))
def cercar_plantilles_presents(pagina):
# Llista de plantilles que vols cercar
plantilles_a_cercar = ["Cal citació", "CC", "CN", "Copyvio", "Currículum", "EE", "Falta verificar admissibilitat", "Falten referències", "FR", "FVA", "Fusió", "Fusió a", "Fusió des de", "Incomplet", "MEI", "Millorar", "Millorar enllaços interns", "Millorar introducció", "Millorar format" "Millorar ortografia", "Millorar referències", "Millorar text", "Millorar traducció", "MF", "MR", "MT", "Neutralitat", "Obsolet"]
# Obtén el contingut de la pàgina
contingut = pagina.text
# Comprova si la pàgina està a l'espai de noms principal
if pagina.namespace() == 0:
# Cerca les plantilles presents
plantilles_presents = [plantilla for plantilla in plantilles_a_cercar if "{{" + plantilla + "|" in contingut or "{{" + plantilla + "}}" in contingut]
else:
plantilles_presents = []
return plantilles_presents
if __name__ == "__main__":
usuari = input("Nom d'usuari: ")
pagina_desti = "Usuari:Rebot/Creats"
llistar_articles_i_mancances(usuari, pagina_desti)