1
import pywikibot
import re

def crea_pagine_da_lista(nome_pagina):
    # Inizializza la sessione di Pywikibot
    site = pywikibot.Site("fr", "wiktionary")  # Sostituisci "it" con il codice del tuo linguaggio
    site.login()  # Effettua l'accesso, se necessario

    # Carica la pagina dalla quale vuoi estrarre i titoli delle voci da creare
    pagina = pywikibot.Page(site, nome_pagina)

    # Estrai i titoli delle voci da creare dalla pagina
    contenuto_pagina = pagina.text
    linee = contenuto_pagina.split('\n')

    errori = []

    for linea in linee:
        # Estrai la radice e la desinenza dalla linea
        match = re.match(r'(.+)\s\|\s(.+)', linea)
        if match:
            radice = match.group(1).strip()
            desinenza_originale = match.group(2).strip()
            
            # Gestisci in modo specifico le desinenze 'orre', 'arre' e 'urre'
            if desinenza_originale == 'orre':
                desinenza_modificata = 'orlo'
            elif desinenza_originale == 'arre':
                desinenza_modificata = 'arlo'
            elif desinenza_originale == 'urre':
                desinenza_modificata = 'urlo'
            else:
                # Effettua le sostituzioni nelle altre desinenze con considerazioni per 'r' doppie
                desinenza_modificata = desinenza_originale
                desinenze_da_sostituire = ['are', 'ere', 'ire']
                for desinenza in desinenze_da_sostituire:
                    if desinenza_originale.endswith(desinenza):
                        desinenza_modificata = desinenza_originale.replace(desinenza, desinenza[:-1] + 'lo')
                        break

            # Crea il testo della nuova pagina con la formattazione desiderata
            titolo_voce_modificato = radice + desinenza_modificata
            nuova_pagina = pywikibot.Page(site, titolo_voce_modificato)
            if not nuova_pagina.exists():
                testo_pagina = f"""{{{{subst:Utilisateur:Àncilu bot/Elenco/Verbi/tmp
|radice = {radice}
|desinenza= {desinenza_modificata}
|desinenza_originale = {desinenza_originale}
}}}}
"""
                nuova_pagina.text = testo_pagina  # Utilizza il testo della nuova pagina creato
                nuova_pagina.save("Création de forme de verbe en italien", minor=False)
            else:
                # Aggiungi il titolo della pagina evitata alla lista degli errori
                errori.append(titolo_voce_modificato)

    # Aggiungi i titoli delle pagine evitate alla pagina "Utilisateur:Àncilu bot/Elenco/Verbi/Errori"
    pagina_errori = pywikibot.Page(site, "Utilisateur:Àncilu bot/Elenco/Verbi/Errori")
    contenuto_pagina_errori = pagina_errori.text
    contenuto_pagina_errori += '\n' + '\n'.join(errori)
    pagina_errori.text = contenuto_pagina_errori
    pagina_errori.save("Aggiunta titoli delle pagine evitate", minor=False)

if __name__ == "__main__":
    nome_pagina_wiki = "Utilisateur:Àncilu bot/Elenco/Verbi"
    crea_pagine_da_lista(nome_pagina_wiki)
2
import pywikibot

def login():
    site = pywikibot.Site()
    site.login()

def crea_pagina_verbo_radice_desinenza(riga):
    radice, desinenza_originale = riga.strip().split('|')
    desinenza_modificata = desinenza_originale

    if desinenza_originale == 'urre':
        desinenza_modificata = 'urla'
    elif desinenza_originale == 'orre':
        desinenza_modificata = 'orla'
    elif desinenza_originale in ['are', 'arre']:
        desinenza_modificata = 'arla'
    elif desinenza_originale == 'ere':
        desinenza_modificata = 'erla'
    elif desinenza_originale == 'ire':
        desinenza_modificata = 'irla'

    gerundio = radice
    if desinenza_modificata == 'arla':
        gerundio += 'ando'
    elif desinenza_modificata in ['erla', 'irla']:
        gerundio += 'endo'
    elif desinenza_modificata == 'urla':
        gerundio += 'ucendo'
    elif desinenza_modificata in ['mpierla', 'mpirla']:
        gerundio += 'mpiendo'
    elif desinenza_modificata == 'berla':
        gerundio += 'evendo'
    elif desinenza_modificata == 'farla':
        gerundio += 'acendo'
    elif desinenza_modificata == 'orla':
        gerundio += 'onendo'
    elif desinenza_modificata == 'arla':
        gerundio += 'aendo'
    elif desinenza_modificata == 'dirla':
        gerundio += 'dicendo'

    page_title = radice + desinenza_modificata
    radice_nuova = page_title[:-2]  # Rimuovi gli ultimi due caratteri dal titolo

    site = pywikibot.Site("fr", "wiktionary")
    page = pywikibot.Page(site, page_title)

    if not page.exists():
        page.text = f"{{{{subst:Utilisateur:Àncilu bot/Elenco/Verbi/tmp\n|radice_nuova = {radice_nuova}\n|desinenza = {desinenza_modificata}\n|desinenza_originale = {desinenza_originale}\n|gerundio = {gerundio}\n}}}}"
        page.save(summary="Création automatique d'une forme de verbe au féminin singulier en italien", minor=False)
        print(f"Pagina creata con titolo: {page_title}")
    else:
        print(f"La pagina con titolo {page_title} esiste già, quindi è stata evitata.")

def main():
    login()
    site = pywikibot.Site("fr", "wiktionary")
    page = pywikibot.Page(site, "Utilisateur:Àncilu bot/Elenco/Verbi")
    text = page.text
    lista_verbi = text.split('\n')

    for riga in lista_verbi:
        crea_pagina_verbo_radice_desinenza(riga)

if __name__ == "__main__":
    main()