Usuari:Rebot/RedCat
Aparença
import pywikibot def update_redirects_page(output_page, new_redirects): # Llegeix el contingut actual de la pàgina current_content = output_page.text # Afegeix les noves redireccions al contingut actual en format de llista puntejada for key, value in new_redirects.items(): # Verifica si la pàgina és una categoria is_category = "Categoria:" in key # Utilitza el format d'enllaç corresponent if is_category: current_content += f"\n* [[:{key}]] => [[:{value}]]" else: current_content += f"\n* [[{key}]] => [[{value}]]" # Actualitza la pàgina amb el contingut actualitzat output_page.text = current_content output_page.save("Actualització automàtica de la llista de redireccions") def main(start_page_title): # Configuració de Pywikibot site = pywikibot.Site("ca", "wikipedia") pywikibot.config.put_throttle = 0 # Pàgina on es guardarà la llista de redireccions output_page_title = "Usuari:Paucabot/Red" output_page = pywikibot.Page(site, output_page_title) # Llista dels noms d'espais de noms que vols considerar namespaces_to_check = ["Categoria"] # Diccionari per emmagatzemar les redireccions trobades redirects_dict = {} # Bandera per indicar quan començar a recopilar redireccions start_processing = True # Itera sobre les pàgines de cada espai de noms for namespace in namespaces_to_check: for page in site.allpages(namespace=namespace): if page.title() == start_page_title: # Activa la bandera quan es troba la pàgina d'inici start_processing = True if start_processing: try: if page.isRedirectPage(): target_page = page.getRedirectTarget() redirects_dict[page.title()] = target_page.title() # Actualitza la pàgina amb les noves redireccions update_redirects_page(output_page, {page.title(): target_page.title()}) except pywikibot.exceptions.InterwikiRedirectPageError as e: # Gestiona l'excepció InterwikiRedirectPageError print(f"Excepció: {e}") print(f"Ignorant redirecció interwiki per la pàgina: {page.title()}") continue except Exception as e: # Gestiona altres excepcions (opcional, depenent del que vulguis fer) print(f"Excepció no gestionada: {e}") continue if __name__ == "__main__": # Especifica la pàgina des de la qual vols començar start_page_title = "Categoria:!" main(start_page_title)