Utente:TekBot/benvenuto.py

Funzioni

modifica

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

(Grazie ad .anaconda)

Modalità automatica

modifica

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

Impostazioni

modifica
  • 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