Hi,

I worked a lot on a script that created a page under my bot's user page,
finally after tests I renamed
it<http://hu.wikipedia.org/w/index.php?title=Wikip%C3%A9dia:Elavult_m%C3%A1svitasablonok&diff=12816525&oldid=12815108>to
project namespace. At the next run the bot worked 8 minutes (hard to
wait if you want to work with the result), and finally stopped at the last
moment instead of saving the page.

Sorry, I forgot to copy the screen, the essence is that it claimed my page
to be *locked* (what I thought to be protected). I didn't understand, and I
spent a lot of time with investigating and understanding what happened. The
page was not protected, of course.

The result of my investigation is that when the bot finds its own name in
the last edit comment (that was the fact because of renaming), it supposes
that the last edit was a revert of its previous edit (why?), and denies
saving with a fake and misleading "page locked" exception.

The code in wikipedia.py is:
            elif self.comment() and username in self.comment():
                raise LockedPage(
                    u'Not allowed to edit %s because last edit maybe
reverted'
                    % self.title(asLink=True))
(line 1970)
Of course, these type of messages in the argument of *raise* won't appear
on user's screen, it is hidden into the source code. For some reason,
Python does not show the message in user exceptions.

This was my first experience with this kind of error so I was first
frightened and confused and finally found out that I should use a
force=True parameter, and so after waiting another 8 minutes I could save
the page. I solved the case and lost 15-20 minutes.

Is there really a serious reason to suppose that having found the name of
the bot in the last edit comment marks a revert and to prevent the bot of
saving the result of its work?

Bináris.unhappy.hu <http://xn--binris-rta.unhappy.hu>
_______________________________________________
Pywikipedia-l mailing list
Pywikipedia-l@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-l

Reply via email to