Manual:Pywikibot/welcome.py

Welcome.py is a script of the Pywikipedia bot framework used to welcome new users. This script works out of the box for wikis that have been defined in the script. It is currently used on the Dutch, Norwegian and Italian Wikipedia and Wikimedia Commons.

If you want download the latest version of this code use CVS or copy the script from this wiki.

Ensure you have community support before running this bot!

URLs to current implementations

 * Wikimedia Commons: http://commons.wikimedia.org/wiki/Commons:Welcome_log
 * Dutch Wikipedia: http://nl.wikipedia.org/wiki/Wikipedia:Logboek_welkom
 * Italian Wikipedia: http://it.wikipedia.org/wiki/Wikipedia:Benvenuto_log

Because of the fact that every project has different settings, the Bot won't work if you don't put the right translation of the dictionaries that are already in the script.

Description of basic functionality

 * Request a list of new users every period (default: 3600 seconds)
 * Check if new user has passed a threshold for a number of edits (default: 1 edit)
 * Optional: check username for bad words in the username or if the username consists solely of numbers; log this somewhere on the wiki (default: False)
 * If user has made any edits, check if user has an empty talk page
 * If user had an empty talk page, add a welcome message
 * Optional: Once the set number of users have been welcomed, add this to the configured log page, one for each day (default: True)
 * If no log page exists, create a header for the log page first.

Parameters
This script (by default not yet implemented) uses two templates that need to be on the local wiki:
 * : contains mark up code for log entries (just copy it from Commons)
 * : contains the information for new users

This script understands the following command-line arguments: -edit[:#]     Define how many edits a new user needs to be welcomed (default: 1)

-time[:#]     Define how many seconds the bot sleeps before restart (default: 3600)

-break        Use it if you don't want that the Bot restart at the end (it will break) (default: False)

-nlog         Use this parameter if you do not want the bot to log all welcomed users (default: False)

-limit[:#]    Use this parameter to define how may users should be                   checked (default:50)

-numberlog[:#] The number of users to welcome before refreshing the welcome log (default: 4)

-filter       Enable the username checks for bad names (default: False)

-ask          Use this parameter if you want to confirm each possible bad username (default: False)

Known issues

 * Exits when wiki is down.
 * User talk namespace name could be extracted from the framework somewhere (family files) (would eliminate need for customisation)
 * Username and contributions (plural) can probably be extracted from wiki (eliminates two customisations)
 * Sdd variable for how many users to skip (f.e. the 10 latest users, that may not have made any edits)
 * Use default pages if a wiki is not configured, so no configuration of the script would be required at all. Suggestion: use English language defaults.