Utente:TekBot/benvenuto.py

FunzioniModifica

"Benvenuta" i nuovi utenti non ancora benvenutati compresi nella lista degli ultimi 250 iscritti.

(Grazie ad .anaconda)

Modalità automaticaModifica

Lo script si attiva automaticamente ad un intervallo di tempo prestabilito.

ImpostazioniModifica

  • Non aggiungere questo script in replace.py ma in un nuovo file, creato ad es. con il blocco note, e salvalo nella cartella pywikipedia come benvenuto.py
  • Se non vuoi rogne dai nuovi utenti puoi eliminare questa parte Naturalmente benvenuto anche da parte mia e se avessi bisogno non esitare a contattarmi.--~~~~ (lasciando l'ultimo apice al suo posto): il niubbo non riuscirà a risalire subito a te, ma un giorno capirà, si vendicherà e farà bene. Se invece vuoi utilizzare la "mia" (veramente è di Alfiobot...) versione hai 2 possibilità: firmare col nome del tuo bot oppure, se sei particolarmente masochista, con il tuo nome utente. Per la prima opzione non c'è bisogno di fare nulla. Per la seconda:
  1. non modificare il messaggio evidenziato in rosso;
  2. loggati in it.wiki con il nome utente del bot;
  3. clicca su "preferenze" (in alto a destra);
  4. nel campo "Soprannome (nickname)" inserisci: [[Utente:TUONOME|TUONOME]] [[Discussioni utente:TUONOME|scrivimi!]] (produrrà: TUONOME scrivimi!).
######################################################
#
# benvenuto.py
#
# Bot per dare il benvenuto agli utenti (sono diventati troppi per farlo a mano...)
#
# Scarica il log dei nuovi utenti (fino ad un limite predefinito) e, per ogni utente
# che ancora non ha pagina di discussione, crea il seguente testo:
#
# {{benvenuto|nome=<nomeutente>}}
#
# Basato sulle librerie pywikipediabot.


import urllib, re
import wikipedia

# No. of users to check
limit = 250

# URL of the newuser log
url = "http://it.wikipedia.org/w/index.php?title=Speciale:Log&type=newusers&user=&page=&limit=%d" % limit

# Search regular expression to find links like this (and the class attribute is optional too)
#<a href="/w/index.php?title=Discussioni_utente:Urizon9&action=edit" class="new" title="Discussioni utente:Urizon9">Discussione</a>

regexp = '<a href="([^"]*?)"[^<]*?title="Discussioni utente:(.*?)">Discussione</a>'

# Modify user-agent string
class AppURLopener(urllib.FancyURLopener):
    version = "Alfiobot/1.0"
urllib._urlopener = AppURLopener()

# Modify summary text
wikipedia.setAction("Bot: benvenuto")

# Read newuser log
print "Getting newuser log (last %d new users)..." % limit
f = urllib.urlopen(url)
text = f.read()
f.close()

r = re.compile(regexp, re.UNICODE)

# Loop over the newuser log and put welcome messages on empty discussion pages
pos = 0
while 1:
        m = r.search(text, pos)
        if m == None:
                break
        pos = m.end()
        
        username = m.group(2)
        link = m.group(1)
        
        if link.find('/w/index.php?') == 0:
                print "User %s needs welcome" % username
                page = u'Discussioni utente:%s' % username
                
                p = wikipedia.Page(wikipedia.getSite(), page)
                
                # Additional check: make a get to prevent the rare case where a discussion page
                # is created between the newuser log download and now.
                try:
                        p.get()
                except wikipedia.NoPage:
                        newtext = u'{{benvenuto|nome=%s}}Naturalmente benvenuto anche da parte mia e se avessi bisogno non esitare a contattarmi. --~~~~' % username
                        p.put(newtext)
                
        else:
                print "User %s is OK" % username