User:Mathieu/bot: Difference between revisions

From Event-B
Jump to navigationJump to search
imported>Mathieu
Bot configuration and usage
 
imported>Mathieu
m wikipedia version = 1.12
 
(4 intermediate revisions by the same user not shown)
Line 36: Line 36:


     def version(self, code):
     def version(self, code):
         return '1.11'
         return '1.12'


     def path(self, code):
     def path(self, code):
Line 46: Line 46:
#    def shared_image_repository(self, code):
#    def shared_image_repository(self, code):
#        return ('commons', 'commons')
#        return ('commons', 'commons')
      '_default': [u'Event-B talk', self.namespaces[5]['_default']],
 
</nowiki></pre>
</nowiki></pre>


Line 70: Line 70:
<pre><nowiki>
<pre><nowiki>
for i in /tmp/imagedir/* ; do (yes | python upload.py -v -noverify -keep $i "Import of image $i"); done
for i in /tmp/imagedir/* ; do (yes | python upload.py -v -noverify -keep $i "Import of image $i"); done
</nowiki></pre>
=== Add a category to the last uploaded images ===
For the last 20 images, do :
<pre><nowiki>
python category.py -v add -newimages:20
</nowiki></pre>
=== Replace text matching regular expressions ===
<pre><nowiki>
python replace.py -cat -regex '{\\tt ([^}]*)}' '\texttt{\1}'
</nowiki></pre>
=== Rename a category ===
<pre><nowiki>
python category.py move -from:"Template" -to:"Templates" -batch -putthrottle:6
</nowiki></pre>
</nowiki></pre>

Latest revision as of 10:34, 7 January 2010

A bot may be a useful tool to help a wiki maintenance.

I tried to use the python framework provided by http://pywikipediabot.sourceforge.net/. Hereafter are some guidelines to make it work on this wiki.

Requirements

  • Python >2.5

Getting pywikipedia framewok

Get the source code from subversion:

(prompt) svn co http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia pywikipedia

Configuring the framework for this wiki

Add the following families/eventb_family.py file (be careful with the indentation):

# -*- coding: utf-8  -*-

import family
# The event-b family
# user-config.py: usernames['event-b']['event-b'] = 'User name'
class Family(family.Family):
    def __init__(self):
        family.Family.__init__(self)
        self.name = 'eventb'
        self.langs = {
            'eventb': 'wiki.event-b.org',
        }

        self.namespaces[4] = {
            '_default': [u'Event-B', self.namespaces[4]['_default']],
        }

        self.namespaces[5] = {
           '_default': [u'Event-B talk', self.namespaces[5]['_default']],
        }

    def version(self, code):
        return '1.12'

    def path(self, code):
         return '/index.php' #The path of index.php, look at your wiki address. 

    def scriptpath(self,code):
        return ''
    
#    def shared_image_repository(self, code):
#        return ('commons', 'commons')

Then add the following user-config.py file:

family='eventb'
mylang='eventb'
usernames['eventb']['eventb'] = 'your_bot_user_name'

Usage

Login

First you should log in:

(prompt) python login.py 

Upload Images

(prompt) python upload.py -noverify -keep file.png "Image description"

For uploading several images from a directory, I use the following sh command:

for i in /tmp/imagedir/* ; do (yes | python upload.py -v -noverify -keep $i "Import of image $i"); done


Add a category to the last uploaded images

For the last 20 images, do :

python category.py -v add -newimages:20

Replace text matching regular expressions

python replace.py -cat -regex '{\\tt ([^}]*)}' '\texttt{\1}'

Rename a category

python category.py move -from:"Template" -to:"Templates" -batch -putthrottle:6