Nonciclopedia:Bot/Makelist/makelist preset.py
Vai alla navigazione
Vai alla ricerca
- Versione 2.1
- piccoli aggiustamenti, ora funziona bene
Attenzione!
- Non copiare il testo qui sotto, apri la pagina e copia direttamente il sorgente da dopo <pre><nowiki> a prima della chiusura dei due tag, in fondo al testo.
- Il nome esatto del file è makelist_preset.py, se non lo scrivi correttamente il bot non salva le pagine e te ne accorgi solo alla fine di tutta la ricerca.
# -*- coding: utf-8 -*- ########### import wikipedia, pagegenerators import re ########### # NON COMMENTARE QUESTE VARIABILI Per azzerarle, scrivere " nomevariabile = '' " # Espressioni per la ricerca. La sintassi è # r"espressione", # [r"espressione",soglia], # **** ATTENZIONE: Mettere SEMPRE la 'r' prima delle virgolette, la virgola dopo l'espressione e le parentesi quadre se si specifica una soglia # # Esempio: #Espressioni = [ # r"\b[Tt]ruzz\w+", # [r'\b[Cc]huck(?= [Nn]orris)", 5], # r"Germano\sMosconi", # ] Espressioni = [ ] Espressioni_AND = [ ] Espressioni_NOT = [ ] # impostare a True per non distinguere tra maiuscole e minuscole. # NB: Anche una singola regex può essere case insensitive, se si aggiunge "(?i)" all'inizio NoCase = False # impostare a True per utilizzare il formato regex "verbose", in cui gli spazi non vengono inclusi nel filtro e permettono una scrittura più agevole # NB: Questa modalità può essere applicata anche ad una singola regex aggiungendo "(?x)" all'inizio Verbose = False # sostituire con un generatore standard ("-start", "-cat" ecc) Es: # Generatore = "-start:!" Generatore = '' # sostituire con lista dei namespace. I nomi (o i numeri) devono essere inclusi tra virgolette o apici. Es: # Namespace = ['0', 'NonCitazioni'] Namespace = [] # includi solo le pagine il cui titolo (senza namespace) è positivo per questa regex. È possibile inserire più espressioni separate da | RegexTitolo = u'' # filtro di esclusione. Sostituire con uno o più generatori standard("-cat", "-links" ecc) separati da virgole. Es: # Escludi = ['-catr:Manuali', '-transcludes:template:manuali'] Escludi = [] # lista di pagine da escludere. Occhio alle maiuscole. Scrivere anche il namespace. # BUG: i caratteri non ansi generano errore. Usare il parametro da riga di comando EscludiPagine = [] # escludi le pagine il cui titolo (senza namespace) è positivo per questa regex. È possibile inserire più espressioni separate da | EscludiRegexTitolo = u'' # pagina su cui salvare Destinazione = '' # modalità di salvataggio. 'a' per accodare, 'u' per aggiornare una lista, 'w' per sovrascrivere, 'f' per salvare su file ModoSalvataggio = 'w' # Formati della pagina. Per utilizzare quelli di default, sostituirli con " = '' " # formato dell'intestazione della pagina di report. Per disattivarla, dare valore 'u' a ModoSalvataggio Intestazione = '' # testo nell'intestazione. Commento = "" # formato di ogni rigo della lista. FormatoLista = '' # formato di ogni risultato di ricerca della lista FormatoRisultati = '' # Separatore risultati della ricerca SeparatoreFrasi = ' // ' # nome del file temporaneo. Per non salvare, scrivere '' o False FileTemporaneo = 'makelist-tmp.txt' # nome del file su cui salvare la ricerca (solo se ModoSalvataggio = 'f'). ATTENZIONE: Il file verrà sovrascritto! File = 'makelist.txt' ####################### class PresetValues: def __init__ (self): self.ORs = re_convert(Espressioni) self.NOTs = re_convert(Espressioni_NOT) self.ANDs = re_convert(Espressioni_AND) #self.flags = re.UNICODE self.flags = 0 #Modificalo a tuo rischio e pericolo, perdi un sacco di ricerche. self.dest_name = Destinazione site = wikipedia.getSite() self.gen_name = '' if NoCase: self.flags = self.flags | re.IGNORECASE if Verbose: self.flags = self.flags | re.VERBOSE if Generatore: genFactory = pagegenerators.GeneratorFactory() if genFactory.handleArg(Generatore): self.gen_name = Generatore self.exc_gen = Escludi self.exc_pages = EscludiPagine self.exc_title_re = EscludiRegexTitolo self.namespaces = Namespace self.title_re = RegexTitolo self.list_heading = Intestazione self.list_format = FormatoLista self.list_match_format = FormatoRisultati self.match_separator = SeparatoreFrasi self.comment = Commento if ModoSalvataggio in ['a', 'w', 'u', 'f', 'A', 'W', 'U', 'F']: self.save_mode = ModoSalvataggio.lower() else: self.save_mode = False self.tmpfile = FileTemporaneo self.file_name = File def re_convert (array1): array2 = [] for i in range(len(array1)): if type(array1[i][1]) is int: # list stringa + intero array2.append(array1[i]) else: # solo stringa: [1] è il secondo carattere array2.append([array1[i],1]) return array2 def preload(): PreSet = PresetValues() return PreSet