Jump to content

Pywikipediabot: Difference between revisions

From IdeaWazaWiki
wikademia>Millosh
wikademia>Eme
m moved Archive:Pywikipediabot to Pywikipediabot over redirect
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''[[meta:Using the python wikipediabot|Pywikipediabot]]''' (PWB) is the "Python Wikipediabot Framework is a set of bot scripts to do things on Wikipedia or other wikis using MediaWiki. It has been written by several people using the language Python. On this page, we give the general information for people who want to use the bot software."
Welcome to the Wikiversity learning project for '''[[meta:Using the python wikipediabot|Pywikipediabot]]''' (PWB). "Python Wikipediabot Framework is a set of bot scripts to do things on Wikipedia or other wikis using MediaWiki. It has been written by several people using the language Python. On this page, we give the general information for people who want to use the bot software."


== Needed skills ==
== Course ==


This course assumes that you know/have:
; [[Pywikipediabot/Needed skills|Needed skills]]
; [[Pywikipediabot/General basics|General basics]]
{{Pywikipediabot/General basics}}
; [[Pywikipediabot/Pywikipediabot basics|Pywikipediabot basics]]
{{Pywikipediabot/Pywikipediabot basics}}


* Installed Python on your operating system
==See also==
* Using necessary tools
*[[botwiki:]] - You may ask any question there.
* Python basics
* Introduction into Wikimedia projects
 
== Some general basics ==
 
=== Installing pywikipediabot framework ===
 
[[meta:Using the python wikipediabot|Documentation on Pywikipediabot page]] is very good. Use it for initial instructions.
 
In short, make a subdirectory inside of your working directory and go there:
 
<source lang="bash">
$ mkdir mybot
$ cd mybot
</source>
 
Invoke Subversion checkout to download pywikipediabot:
 
<source lang="bash">
$ svn checkout http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/ pywikipedia
</source>
 
If you have a really slow connection, don't download spell-checking files:
 
<source lang="bash">
$ svn checkout --ignore-externals http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/ pywikipedia
</source>
 
Pywikipediabot is a very active project. Because of that you should periodically (maybe daily, maybe weekly) update your copy:
 
<source lang="bash">
$ cd pywikipedia/
$ svn update
</source>
 
=== Logging in ===
 
Your bot should be logged in to the particular project.
 
If you don't have a bot account on some project, open it. On bot's user page state clearly that this is a bot account, that you are the owner of the bot and that bot will not do anything outside of getting pages and testing inside of its and your user space. Also, note that you will ask community for any other bot action. Such bot doesn't need a bot flag. However, be careful with contamination of Recent changes. This means that you shouldn't have more then, let's say, 10 edits per day on some bigger project, which means that you ''should'' use some bigger project for learning.
 
Go into the directory "pywikipedia":
 
<source lang="bash">
$ cd pywikipedia/
</source>
 
Make file "user-config.py" by using your favorite editor ([[w:emacs|emacs]], [[w:vim (text editor)|vim]], [[w:Joe's Own Editor|joe]], [[w:nano (text editor)|nano]]...). It should contain something like:
 
<source lang="python">
mylang = 'en'
family = 'wikinews'
usernames['wikinews']['en'] = 'My Bot Name'
usernames['wikinews']['pl'] = 'My Bot Name'
usernames['wikinews']['sr'] = 'My Bot Name II' # you may use different names
</source>
 
By invoking "login.py" program...
 
<source lang="bash">
$ python login.py
</source>
 
... you will get a prompt for inserting your password...
 
<pre>
Checked for running processes. 1 processes currently running, including the current process.
Password for user My Bot Name on wikinews:en:
</pre>
 
... and, if everything is good, program will give to you a message like:
 
<pre>
Logging in to wikinews:en as My Bot Name
Should be logged in now
</pre>
 
However, if you have more then one account (like it was described) and you have one password for all bots (which is little bit less safe, but much more practical), you should use options "-all" and "-pass":
 
<pre>
millosh@Malatesta:~/wikinews/pywikipedia$ python login.py -all -pass
Checked for running processes. 1 processes currently running, including the current process.
Password for all accounts:
Logging in to wikinews:sr as My Bot Name II
Should be logged in now
Logging in to wikinews:en as My Bot Name
Should be logged in now
Logging in to wikinews:pl as My Bot Name
Should be logged in now
millosh@Malatesta:~/wikinews/pywikipedia$
</pre>
 
=== Invoking Python ===
 
Your bot should assume that it is multilingual. Because of that, use [[w:UTF-8|UTF-8]] (or some better character set) and declare it at the beginning of your Python script:
 
<source lang="python">
#!/usr/bin/python
# -*- coding: utf-8 -*-
</source>
 
== Pywikipediabot basics ==
 
=== Importing basic modules ===
 
Usually, [[User:Millosh|I am]] using this approach in calling basic PWB functions (if you have some other approach, please add it here):
 
<source lang="python">
mydir = "./"
pwbdir = mydir + "pywikipedia/"
import sys
sys.path.append(pwbdir)
from wikipedia import *
</source>


[[Category:Pywikipediabot]]
[[Category:Python]]
[[Category:Python]]
[[Category:MediaWiki]]
[[Category:MediaWiki]]
[[Category:Computer programming]]
[[Category:Computer programming]]
;[[Pywikipediabot/Projects|Projects]]

Latest revision as of 17:07, 8 November 2009

Welcome to the Wikiversity learning project for Pywikipediabot (PWB). "Python Wikipediabot Framework is a set of bot scripts to do things on Wikipedia or other wikis using MediaWiki. It has been written by several people using the language Python. On this page, we give the general information for people who want to use the bot software."

Course

Needed skills
General basics
Pywikipediabot basics

See also

  • botwiki: - You may ask any question there.
Projects