Utente:Sirbot/Script

monitinsertPunk.pyModifica

Basato su Utente:YuBot/Script#monitinsert.py

# -*- coding: utf-8 -*-
 
"""
Questo script serve per inserire il template monitoraggio.
Si richiede di specificare un parametro di progetto.
 
***ATTENZIONE**** Sarebbe bene evitare l'inserimento automatico
del monitoraggio nel caso in cui la cosa comporti la creazione
massiccia di pagine di discussione senza info rilevanti (meglio
inserirne poche alla volta e compilare i template).
"""
 
import wikipedia, sys, re, catlib
 
def workon(lista, varp):
    template= '{{Monitoraggio\n|progetto= '+varp+'\n|progetto2= '+'\n|accuratezza= ' +  '\n|scrittura= ' + '\n|fonti= ' + '\n|immagini= ' + '\n|note= ' + '\n|utente= ' + '\n|data= ' + '\n}}\n'
 
    for voce in lista:
        oldtext=''
        print voce.namespace()
        if voce.namespace() == 0:
            nomediscu='Discussione:'+voce.title()
            discussione=wikipedia.Page('it', nomediscu)       
 
            wikipedia.output(u'\n>>> %s <<<' % discussione.title())
 
            if discussione.exists():
                try:
                    oldtext=discussione.get()
                except discussione.isRedirectPage() or discussione.isDisambig():
                    wikipedia.output(u'Redirect o disambigua.')
                    continue
 
                else:
                    wikipedia.output(u'La pagina %s esiste.' %discussione.title())
 
                    if re.search(r'\{\{[Mm]onitoraggio', oldtext):
                            wikipedia.output(u'Monitoraggio presente, proseguo.')
                    else:
                        newtext= template + oldtext
                        wikipedia.showDiff(oldtext, newtext)
                        wikipedia.output (u'Inserisco il template monitoraggio.')
                        wikipedia.setAction(u'Bot: monitoraggio %s' % varp)
                        discussione.put(newtext)
 
            else:
                wikipedia.output(u'Non esiste una pagina di discussione per la voce %s' % voce.title())
                newtext= template + oldtext
                wikipedia.showDiff(oldtext, newtext)
                wikipedia.output (u'Inserisco il template monitoraggio.')
                wikipedia.setAction(u'Bot: monitoraggio %s' % varp)
                discussione.put(newtext)        
def main():
 
    lista=[]
    varp=''
 
 
    varp='Punk' #wikipedia.input(u'Mi serve la variabile \'progetto\' da inserire:')
    if varp:
        choice = 'p'#wikipedia.inputChoice(u"Scegli il metodo di creazione dell'elenco di voci: 'categoria' o 'puntanoQui?",  ['categoria', 'puntanoQui'], ['c', 'p'], '')
        if choice in ['C', 'c']:
            nomecat=wikipedia.input(u"Specifica una categoria")
            cat=catlib.Category('it', 'Categoria:'+nomecat)
            lista=[page for page in cat.articlesList()]
 
        if choice in ['P', 'p']:
            portale=wikipedia.Page('it', 'Portale:Punk')
            if portale.exists():
                choice = 's' #wikipedia.inputChoice(u"Cerco i collegamenti a %s?"  % portale.title(),  ['Si', 'No per inserire un\'altra pagina'], ['s', 'N'], 'N')
                if choice in ['S', 's']:
                    lista=[page for page in portale.getReferences()]
                elif choice in ['N', 'n']:
                    nomepagina=wikipedia.input(u'Inserire il nome completo della pagina o del template: ')
                    pagina=wikipedia.Page('it', nomepagina)                    
                    lista=[page for page in pagina.getReferences()]
    if lista:
        workon(lista, varp)
    else:
        choice = wikipedia.inputChoice(u"Termino il programma?",  ['Si', 'No'], ['s', 'N'], 'S')
        if choice in ['N', 'n']:
            main()
 
 
if __name__ == "__main__":
 
    print __doc__
 
    try:
        main()
    finally:
        wikipedia.stopme()

monitoraggio.pyModifica

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Questo script serve a compilare automaticamente il template monitoraggio basandosi sulla ricerca di immagini, fonti e template. Si prega di prestare attenzione alle modifiche effettuate dal bot.
"""
#
# (C) Pietrodn, 2007
# (C) Sirabder87, 2008
# (C) Filnik, 2008
# (C) FiloSottile, 2008
# (C) Rael, 2009
#
# Distributed under the terms of the MIT license.
#
__version__ = '$Id: $'
#
 
import wikipedia, catlib, re
 
def main():
    always = False
    for arg in wikipedia.handleArgs():
        if arg.startswith("-always"):
            always = True
    site = wikipedia.getSite()
    nomecat = wikipedia.input(u'Inserire il nome del progetto:')
    category_name = 'Voci monitorate Progetto '+nomecat
    categoria = catlib.Category(site, category_name)
    discussioni = categoria.articles()
    for page in discussioni:
        if not page.isTalkPage():
            continue
        associatedPage = page.toggleTalkPage()
        try:
            pageText = associatedPage.get()
        except wikipedia.Error, e:
            print e # Print the error and skip
            continue
        try:
            talkText = page.get()
        except wikipedia.Error, e:
            print e # Print the error and skip
            continue
 
        wikipedia.output(">>>>> %s <<<<<" % associatedPage.title())
        newTalkText = talkText
 
        regex = re.compile(r'(\[\[File:|\[\[Immagine:|\[\[Image:|\|Fotografia\s*=\s*|\|Immagine\s*=\s*|\|Copertina\s*=\s*)(?!Flag|\n|\\)\w+', re.IGNORECASE)
	match = regex.search(pageText)
        result = None
        if match == None:
            result = r'|immagini=\1d\n'
        else:
            lista = regex.findall(pageText)
            if len(lista) > 5:
		result = r'|immagini=\1a\n'                
            elif len(lista) > 3:
                result = r'|immagini=\1b\n'
            elif len(lista) > 0:
                result = r'|immagini=\1c\n'
        if result != None:
	    newTalkText = re.sub(r'\|\n? *?[Ii]mmagini ?=(\s?)(.*?)\n', result, newTalkText)
 
        regex= re.compile(r'(\{\{ref|<ref.*)', re.IGNORECASE)
        match = regex.search(pageText)
        if match == None:
            newTalkText = re.sub(r'\|\n? *?[Ff]onti ?=(\s?)(.*?)\n', r'|fonti=\1d\n', newTalkText)
 
        else:
            newTalkText = re.sub(r'\|\n? *?[Ff]onti ?= ?d\n', r'|fonti= \n', newTalkText)
 
        regex = re.compile(r'(\{\{[Vv]etrina)', re.IGNORECASE)
        match = regex.search(pageText)
        if match is not None:
            newTalkText = re.sub(r'\|\n? *?[Aa]ccuratezza ?=(\s?)(.*?)\n', r'|accuratezza=\1a\n', newTalkText)
 
        else:
            regex = re.compile(r'(\{\{[Ss]\|)', re.IGNORECASE)
            match= regex.search(pageText)
            if match is not None:
                newTalkText = re.sub(r'\|\n? *?[Aa]ccuratezza ?=(\s?)(.*?)\n', r'|accuratezza=\1c\n', newTalkText)
 
            else:
                regex = re.compile(r'(\{\{[Aa]\|)', re.IGNORECASE)
                match = regex.search(pageText)
                if match is not None:
                    newTalkText = re.sub(r'\|\n? *?[Aa]ccuratezza ?=(\s?)(.*?)\n', r'|accuratezza=\1d\n', newTalkText)
 
                else:
                    newTalkText = re.sub(r'\|\n? *?[Aa]ccuratezza ?= ?[cd]\n', r'|accuratezza= \n', newTalkText)
 
        regex = re.compile(r'(\{\{[Dd]a correggere)', re.IGNORECASE)
        match = regex.search(pageText)
        if match is not None:
            newTalkText = re.sub(r'\|\n? *?[Ss]crittura ?=(\s?)(.*?)\n', r'|scrittura=\1d\n', newTalkText)
 
 
        if talkText != newTalkText:
            uName = wikipedia.getSite().username()            
            newTalkText = re.sub('\|\n? *?[Uu]tente ?=[^\n]*?\n', '|utente=' + uName + '<!-- monitoraggio eseguito via bot -->\n', newTalkText)
            newTalkText = re.sub('\|\n? *?[Dd]ata ?=[^\n]*?\n', '|data={{subst:LOCALMONTHNAME}} {{subst:LOCALYEAR}}\n', newTalkText)
            wikipedia.showDiff(talkText, newTalkText)
            if not always:
                choice = wikipedia.inputChoice(u"Apply the changes?",  ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N')
            else:
                choice = 'y'
            if choice in ['A', 'a']:
                always = True
                choice = 'y'
            if choice in ['Y', 'y']:
                try:
                    page.put(newTalkText, u'[[WP:BOT|Bot]]: aggiorno [[Progetto:Qualità/Monitoraggio voci|monitoraggio]]')
                except wikipedia.Error, e:
                    print e # Print the error and skip
                    continue
 
if __name__ == "__main__": 
    try:
        main()
    finally:
        wikipedia.stopme()

etichetta.pyModifica

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# (C) Sirabder87, 2009
# (C) Pietrodn, 2009
#
# Distributed under the terms of the MIT license.
#
__version__ = '$Id: $'
#
 
import wikipedia, catlib, re
substitutions = {
    r"\{\{[Tt]mp\|[Ee]tichetta": r'{{tmp|Infobox Azienda',
    r"\{\{[Ee]tichetta": r'{{Infobox Azienda',
    r"\|Nome etichetta": r'|nome',
    r"\|Generi musicali": r'|prodotti',
    r"\|Data fondazione": r'|data_fondazione',
    r"\|Marchio\s*?=": r'|logo =',
    r"\|Dimensione Marchio": r'|logo_dimensione',
    r"\|Fondatore\s*?=": r'|fondatori =',
    r"\|Sede\s*?=": r'|sede =',
    r"\|Url": r'|sito',
    r"\s*?[^=]=[^=]\W*?http://([^\s]*)(\s(.*)\])?": r' = \1',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Aruba((\|.+?)?\]\])?": r'|nazione = ABW',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Afghanistan((\|.+?)?\]\])?": r'|nazione = AFG',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Angola((\|.+?)?\]\])?": r'|nazione = AGO',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Anguilla((\|.+?)?\]\])?": r'|nazione = AIA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Åland((\|.+?)?\]\])?": r'|nazione = ALA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Albania((\|.+?)?\]\])?": r'|nazione = ALB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Andorra((\|.+?)?\]\])?": r'|nazione = AND',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Antille Olandesi((\|.+?)?\]\])?": r'|nazione = ANT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Emirati Arabi Uniti((\|.+?)?\]\])?": r'|nazione = ARE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Argentina((\|.+?)?\]\])?": r'|nazione = ARG',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Armenia((\|.+?)?\]\])?": r'|nazione = ARM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Samoa Americane((\|.+?)?\]\])?": r'|nazione = ASM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Antartide((\|.+?)?\]\])?": r'|nazione = ATA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Territori francesi meridionali((\|.+?)?\]\])?": r'|nazione = ATF',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Antigua e Barbuda((\|.+?)?\]\])?": r'|nazione = ATG',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Australia((\|.+?)?\]\])?": r'|nazione = AUS',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Austria((\|.+?)?\]\])?": r'|nazione = AUT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Azerbaijan((\|.+?)?\]\])?": r'|nazione = AZE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Burundi((\|.+?)?\]\])?": r'|nazione = BDI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Belgio((\|.+?)?\]\])?": r'|nazione = BEL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Benin((\|.+?)?\]\])?": r'|nazione = BEN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Burkina Faso((\|.+?)?\]\])?": r'|nazione = BFA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bangladesh((\|.+?)?\]\])?": r'|nazione = BGD',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bulgaria((\|.+?)?\]\])?": r'|nazione = BGR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bahrain((\|.+?)?\]\])?": r'|nazione = BHR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bahamas((\|.+?)?\]\])?": r'|nazione = BHS',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bosnia e Erzegovina((\|.+?)?\]\])?": r'|nazione = BIH',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Saint-Barthélemy((\|.+?)?\]\])?": r'|nazione = BLM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bielorussia((\|.+?)?\]\])?": r'|nazione = BLR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Belize((\|.+?)?\]\])?": r'|nazione = BLZ',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bermuda((\|.+?)?\]\])?": r'|nazione = BMU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bolivia((\|.+?)?\]\])?": r'|nazione = BOL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Brasile((\|.+?)?\]\])?": r'|nazione = BRA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Barbados((\|.+?)?\]\])?": r'|nazione = BRB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Brunei((\|.+?)?\]\])?": r'|nazione = BRN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Bhutan((\|.+?)?\]\])?": r'|nazione = BTN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isola Bouvet((\|.+?)?\]\])?": r'|nazione = BVT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Botswana((\|.+?)?\]\])?": r'|nazione = BWA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Repubblica Centrafricana((\|.+?)?\]\])?": r'|nazione = CAF',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Canada((\|.+?)?\]\])?": r'|nazione = CAN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Cocos((\|.+?)?\]\])?": r'|nazione = CCK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Svizzera((\|.+?)?\]\])?": r'|nazione = CHE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Cile((\|.+?)?\]\])?": r'|nazione = CHL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Cina((\|.+?)?\]\])?": r'|nazione = CHN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Costa d'Avorio((\|.+?)?\]\])?": r'|nazione = CIV',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Camerun((\|.+?)?\]\])?": r'|nazione = CMR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Repubblica Democratica del Congo((\|.+?)?\]\])?": r'|nazione = COD',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Repubblica del Congo((\|.+?)?\]\])?": r'|nazione = COG',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Cook((\|.+?)?\]\])?": r'|nazione = COK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Colombia((\|.+?)?\]\])?": r'|nazione = COL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Comore((\|.+?)?\]\])?": r'|nazione = COM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Capo Verde((\|.+?)?\]\])?": r'|nazione = CPV',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Costa Rica((\|.+?)?\]\])?": r'|nazione = CRI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Cuba((\|.+?)?\]\])?": r'|nazione = CUB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isola di Natale((\|.+?)?\]\])?": r'|nazione = CXR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Cayman((\|.+?)?\]\])?": r'|nazione = CYM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Cipro((\|.+?)?\]\])?": r'|nazione = CYP',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Repubblica Ceca((\|.+?)?\]\])?": r'|nazione = CZE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Germania((\|.+?)?\]\])?": r'|nazione = DEU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Gibuti((\|.+?)?\]\])?": r'|nazione = DJI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Dominica((\|.+?)?\]\])?": r'|nazione = DMA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Danimarca((\|.+?)?\]\])?": r'|nazione = DNK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Repubblica Dominicana((\|.+?)?\]\])?": r'|nazione = DOM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Algeria((\|.+?)?\]\])?": r'|nazione = DZA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Ecuador((\|.+?)?\]\])?": r'|nazione = ECU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Egitto((\|.+?)?\]\])?": r'|nazione = EGY',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Eritrea((\|.+?)?\]\])?": r'|nazione = ERI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Sahara Occidentale((\|.+?)?\]\])?": r'|nazione = ESH',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Spagna((\|.+?)?\]\])?": r'|nazione = ESP',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Estonia((\|.+?)?\]\])?": r'|nazione = EST',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Etiopia((\|.+?)?\]\])?": r'|nazione = ETH',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Finlandia((\|.+?)?\]\])?": r'|nazione = FIN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Figi((\|.+?)?\]\])?": r'|nazione = FJI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Falkland((\|.+?)?\]\])?": r'|nazione = FLK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Francia((\|.+?)?\]\])?": r'|nazione = FRA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Fær Øer((\|.+?)?\]\])?": r'|nazione = FRO',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Stati Federati di Micronesia((\|.+?)?\]\])?": r'|nazione = FSM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Gabon((\|.+?)?\]\])?": r'|nazione = GAB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Regno Unito((\|.+?)?\]\])?": r'|nazione = GBR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Gran Bretagna((\|.+?)?\]\])?": r'|nazione = GBR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Inghilterra((\|.+?)?\]\])?": r'|nazione = GBR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?U\.?K\.?((\|.+?)?\]\])?": r'|nazione = GBR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?G\.?B\.?((\|.+?)?\]\])?": r'|nazione = GBR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Georgia((\|.+?)?\]\])?": r'|nazione = GEO',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guernsey((\|.+?)?\]\])?": r'|nazione = GGY',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Ghana((\|.+?)?\]\])?": r'|nazione = GHA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Gibilterra((\|.+?)?\]\])?": r'|nazione = GIB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guinea((\|.+?)?\]\])?": r'|nazione = GIN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guadalupa((\|.+?)?\]\])?": r'|nazione = GLP',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Gambia((\|.+?)?\]\])?": r'|nazione = GMB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guinea-Bissau((\|.+?)?\]\])?": r'|nazione = GNB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guinea Equatoriale((\|.+?)?\]\])?": r'|nazione = GNQ',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Grecia((\|.+?)?\]\])?": r'|nazione = GRC',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Grenada((\|.+?)?\]\])?": r'|nazione = GRD',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Groenlandia((\|.+?)?\]\])?": r'|nazione = GRL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guatemala((\|.+?)?\]\])?": r'|nazione = GTM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guiana Francese((\|.+?)?\]\])?": r'|nazione = GUF',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guam((\|.+?)?\]\])?": r'|nazione = GUM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Guyana((\|.+?)?\]\])?": r'|nazione = GUY',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Hong Kong((\|.+?)?\]\])?": r'|nazione = HKG',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Heard e McDonald((\|.+?)?\]\])?": r'|nazione = HMD',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Honduras((\|.+?)?\]\])?": r'|nazione = HND',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Croazia((\|.+?)?\]\])?": r'|nazione = HRV',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Haiti((\|.+?)?\]\])?": r'|nazione = HTI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Ungheria((\|.+?)?\]\])?": r'|nazione = HUN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Indonesia((\|.+?)?\]\])?": r'|nazione = IDN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isola di Man((\|.+?)?\]\])?": r'|nazione = IMN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?India((\|.+?)?\]\])?": r'|nazione = IND',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Territorio Britannico Oceano Indiano((\|.+?)?\]\])?": r'|nazione = IOT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Irlanda((\|.+?)?\]\])?": r'|nazione = IRL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Iran((\|.+?)?\]\])?": r'|nazione = IRN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Iraq((\|.+?)?\]\])?": r'|nazione = IRQ',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Islanda((\|.+?)?\]\])?": r'|nazione = ISL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Israele((\|.+?)?\]\])?": r'|nazione = ISR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Italia((\|.+?)?\]\])?": r'|nazione = ITA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Giamaica((\|.+?)?\]\])?": r'|nazione = JAM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Jersey((\|.+?)?\]\])?": r'|nazione = JEY',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Giordania((\|.+?)?\]\])?": r'|nazione = JOR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Giappone((\|.+?)?\]\])?": r'|nazione = JPN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Kazakistan((\|.+?)?\]\])?": r'|nazione = KAZ',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Kenya((\|.+?)?\]\])?": r'|nazione = KEN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Kirghizistan((\|.+?)?\]\])?": r'|nazione = KGZ',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Cambogia((\|.+?)?\]\])?": r'|nazione = KHM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Kiribati((\|.+?)?\]\])?": r'|nazione = KIR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Saint Kitts e Nevis((\|.+?)?\]\])?": r'|nazione = KNA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Corea del Sud((\|.+?)?\]\])?": r'|nazione = KOR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Kuwait((\|.+?)?\]\])?": r'|nazione = KWT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Laos((\|.+?)?\]\])?": r'|nazione = LAO',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Libano((\|.+?)?\]\])?": r'|nazione = LBN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Liberia((\|.+?)?\]\])?": r'|nazione = LBR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Libia((\|.+?)?\]\])?": r'|nazione = LBY',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Santa Lucia((\|.+?)?\]\])?": r'|nazione = LCA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Liechtenstein((\|.+?)?\]\])?": r'|nazione = LIE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Sri Lanka((\|.+?)?\]\])?": r'|nazione = LKA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Lesotho((\|.+?)?\]\])?": r'|nazione = LSO',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Lituania((\|.+?)?\]\])?": r'|nazione = LTU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Lussemburgo((\|.+?)?\]\])?": r'|nazione = LUX',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Lettonia((\|.+?)?\]\])?": r'|nazione = LVA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Macao((\|.+?)?\]\])?": r'|nazione = MAC',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Saint-Martin((\|.+?)?\]\])?": r'|nazione = MAF',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Marocco((\|.+?)?\]\])?": r'|nazione = MAR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Principato di Monaco((\|.+?)?\]\])?": r'|nazione = MCO',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Moldavia((\|.+?)?\]\])?": r'|nazione = MDA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Madagascar((\|.+?)?\]\])?": r'|nazione = MDG',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Maldive((\|.+?)?\]\])?": r'|nazione = MDV',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Messico((\|.+?)?\]\])?": r'|nazione = MEX',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Marshall((\|.+?)?\]\])?": r'|nazione = MHL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Macedonia((\|.+?)?\]\])?": r'|nazione = MKD',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Mali((\|.+?)?\]\])?": r'|nazione = MLI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Malta((\|.+?)?\]\])?": r'|nazione = MLT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Myanmar((\|.+?)?\]\])?": r'|nazione = MMR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Montenegro((\|.+?)?\]\])?": r'|nazione = MNE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Mongolia((\|.+?)?\]\])?": r'|nazione = MNG',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Marianne Settentrionali((\|.+?)?\]\])?": r'|nazione = MNP',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Mozambico((\|.+?)?\]\])?": r'|nazione = MOZ',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Mauritania((\|.+?)?\]\])?": r'|nazione = MRT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Montserrat((\|.+?)?\]\])?": r'|nazione = MSR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Martinica((\|.+?)?\]\])?": r'|nazione = MTQ',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Mauritius((\|.+?)?\]\])?": r'|nazione = MUS',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Malawi((\|.+?)?\]\])?": r'|nazione = MWI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Malesia((\|.+?)?\]\])?": r'|nazione = MYS',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Mayotte((\|.+?)?\]\])?": r'|nazione = MYT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Namibia((\|.+?)?\]\])?": r'|nazione = NAM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Nuova Caledonia((\|.+?)?\]\])?": r'|nazione = NCL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Niger((\|.+?)?\]\])?": r'|nazione = NER',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isola Norfolk((\|.+?)?\]\])?": r'|nazione = NFK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Nigeria((\|.+?)?\]\])?": r'|nazione = NGA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Nicaragua((\|.+?)?\]\])?": r'|nazione = NIC',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Niue((\|.+?)?\]\])?": r'|nazione = NIU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?(Paesi Bassi|Olanda)((\|.+?)?\]\])?": r'|nazione = NLD',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Norvegia((\|.+?)?\]\])?": r'|nazione = NOR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Nepal((\|.+?)?\]\])?": r'|nazione = NPL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Nauru((\|.+?)?\]\])?": r'|nazione = NRU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Nuova Zelanda((\|.+?)?\]\])?": r'|nazione = NZL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Oman((\|.+?)?\]\])?": r'|nazione = OMN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Pakistan((\|.+?)?\]\])?": r'|nazione = PAK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Panamá((\|.+?)?\]\])?": r'|nazione = PAN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Pitcairn((\|.+?)?\]\])?": r'|nazione = PCN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Perù((\|.+?)?\]\])?": r'|nazione = PER',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Filippine((\|.+?)?\]\])?": r'|nazione = PHL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Palau((\|.+?)?\]\])?": r'|nazione = PLW',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Papua Nuova Guinea((\|.+?)?\]\])?": r'|nazione = PNG',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Polonia((\|.+?)?\]\])?": r'|nazione = POL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Porto Rico((\|.+?)?\]\])?": r'|nazione = PRI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Corea del Nord((\|.+?)?\]\])?": r'|nazione = PRK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Portogallo((\|.+?)?\]\])?": r'|nazione = PRT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Paraguay((\|.+?)?\]\])?": r'|nazione = PRY',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Palestina((\|.+?)?\]\])?": r'|nazione = PSE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Polinesia Francese((\|.+?)?\]\])?": r'|nazione = PYF',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Qatar((\|.+?)?\]\])?": r'|nazione = QAT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Réunion((\|.+?)?\]\])?": r'|nazione = REU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Romania((\|.+?)?\]\])?": r'|nazione = ROU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Russia((\|.+?)?\]\])?": r'|nazione = RUS',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Ruanda((\|.+?)?\]\])?": r'|nazione = RWA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Arabia Saudita((\|.+?)?\]\])?": r'|nazione = SAU',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Sudan((\|.+?)?\]\])?": r'|nazione = SDN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Senegal((\|.+?)?\]\])?": r'|nazione = SEN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Singapore((\|.+?)?\]\])?": r'|nazione = SGP',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Georgia del Sud e isole Sandwich((\|.+?)?\]\])?": r'|nazione = SGS',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Sant'Elena((\|.+?)?\]\])?": r'|nazione = SHN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Svalbard e Jan Mayen((\|.+?)?\]\])?": r'|nazione = SJM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Salomone((\|.+?)?\]\])?": r'|nazione = SLB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Sierra Leone((\|.+?)?\]\])?": r'|nazione = SLE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?El Salvador((\|.+?)?\]\])?": r'|nazione = SLV',
    r"\|Nazione etichetta\s*=\s*(\[\[)?San Marino((\|.+?)?\]\])?": r'|nazione = SMR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Somalia((\|.+?)?\]\])?": r'|nazione = SOM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Saint-Pierre e Miquelon((\|.+?)?\]\])?": r'|nazione = SPM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Serbia((\|.+?)?\]\])?": r'|nazione = SRB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?São Tomé e Príncipe((\|.+?)?\]\])?": r'|nazione = STP',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Suriname((\|.+?)?\]\])?": r'|nazione = SUR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Slovacchia((\|.+?)?\]\])?": r'|nazione = SVK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Slovenia((\|.+?)?\]\])?": r'|nazione = SVN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Svezia((\|.+?)?\]\])?": r'|nazione = SWE',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Swaziland((\|.+?)?\]\])?": r'|nazione = SWZ',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Seychelles((\|.+?)?\]\])?": r'|nazione = SYC',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Siria((\|.+?)?\]\])?": r'|nazione = SYR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Turks e Caicos((\|.+?)?\]\])?": r'|nazione = TCA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Ciad((\|.+?)?\]\])?": r'|nazione = TCD',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Togo((\|.+?)?\]\])?": r'|nazione = TGO',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Thailandia((\|.+?)?\]\])?": r'|nazione = THA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Tagikistan((\|.+?)?\]\])?": r'|nazione = TJK',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Tokelau((\|.+?)?\]\])?": r'|nazione = TKL',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Turkmenistan((\|.+?)?\]\])?": r'|nazione = TKM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Timor Est((\|.+?)?\]\])?": r'|nazione = TLS',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Tonga((\|.+?)?\]\])?": r'|nazione = TON',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Trinidad e Tobago((\|.+?)?\]\])?": r'|nazione = TTO',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Tunisia((\|.+?)?\]\])?": r'|nazione = TUN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Turchia((\|.+?)?\]\])?": r'|nazione = TUR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Tuvalu((\|.+?)?\]\])?": r'|nazione = TUV',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Taiwan((\|.+?)?\]\])?": r'|nazione = TWN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Tanzania((\|.+?)?\]\])?": r'|nazione = TZA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Uganda((\|.+?)?\]\])?": r'|nazione = UGA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Ucraina((\|.+?)?\]\])?": r'|nazione = UKR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole minori degli Stati Uniti((\|.+?)?\]\])?": r'|nazione = UMI',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Uruguay((\|.+?)?\]\])?": r'|nazione = URY',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Stati Uniti( d'America)?((\|.+?)?\]\])?": r'|nazione = USA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?U\.?S\.?A\.?((\|.+?)?\]\])?": r'|nazione = USA',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Uzbekistan((\|.+?)?\]\])?": r'|nazione = UZB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Vaticano((\|.+?)?\]\])?": r'|nazione = VAT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Saint Vincent e Grenadine((\|.+?)?\]\])?": r'|nazione = VCT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Venezuela((\|.+?)?\]\])?": r'|nazione = VEN',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Vergini Britanniche((\|.+?)?\]\])?": r'|nazione = VGB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Isole Vergini Statunitensi((\|.+?)?\]\])?": r'|nazione = VIR',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Vietnam((\|.+?)?\]\])?": r'|nazione = VNM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Vanuatu((\|.+?)?\]\])?": r'|nazione = VUT',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Wallis e Futuna((\|.+?)?\]\])?": r'|nazione = WLF',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Samoa((\|.+?)?\]\])?": r'|nazione = WSM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Yemen((\|.+?)?\]\])?": r'|nazione = YEM',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Sudafrica((\|.+?)?\]\])?": r'|nazione = ZAF',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Zambia((\|.+?)?\]\])?": r'|nazione = ZMB',
    r"\|Nazione etichetta\s*=\s*(\[\[)?Zimbabwe((\|.+?)?\]\])?": r'|nazione = ZWE',
    r"\|Immagine bandiera nazione\s*?=(.*?)\n": r'',
}

def main():
    always = False
    for arg in wikipedia.handleArgs():
        if arg.startswith("-always"):
            always = True
    
    site = wikipedia.getSite('it', 'wikipedia')
    template=wikipedia.Page(site, 'Template:Etichetta')
    lista=template.getReferences()

    for page in lista:
        if page.namespace() != 0:
            continue
        wikipedia.output(">>>>> " + page.title() + " <<<<<")
        pageText = page.get()
    	newText = pageText
        newText = massiveReplace(substitutions, newText)
    
        if pageText != newText:
            newText = re.sub('\{\{Infobox Azienda', '{{Infobox Azienda\n|industria = musicale', newText)
            wikipedia.showDiff(pageText, newText)
            if not always:
                choice = wikipedia.inputChoice(u"Apply the changes?",  ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N')
            else:
                choice = 'y'
            if choice in ['A', 'a']:
                always = True
                choice = 'y'
            if choice in ['Y', 'y']:
                page.put(newText, u'[[WP:BOT|Bot]]: sostituisco template etichetta')

def massiveReplace(dict, text):
	# Dato un testo ed un dizionario di sostituzioni, usa le regex per il "find and replace"
	for k in dict:
		text = re.sub(k, dict[k], text)
	return text
	 
if __name__ == "__main__": 
    try:
        main()
    finally:
        wikipedia.stopme()