Vés al contingut

Usuari:Rebot/RedCat

De la Viquipèdia, l'enciclopèdia lliure
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)