The idea is to create a user page and a talk page for a blocked user with a template, and immediately after creating to protect them.
The bot creates the pages and gives an error: Creating page [[Szerkesztö:SZDSZ]] via API Sleeping for 6.7 seconds, 2010-08-19 23:04:37 Creating page [[Szerkesztövita:SZDSZ]] via API Note: Your sysop account on wikipedia:hu does not have a bot flag. Its edits wil l be visible in the recent changes. Sleeping for 4.8 seconds, 2010-08-19 23:04:49 Do you want to change the protection level of [[hu:Szerkesztö:SZDSZ]]? ([Y]es, [ N]o, [A]ll) a {u'error': {u'info': u"*Existing titles can't be protected with 'create'*", u'code ': u'create-titleexists'}} Sleeping for 6.9 seconds, 2010-08-19 23:04:57 {u'error': {u'info': u"Existing titles can't be protected with 'create'", u'code ': u'create-titleexists'}} Now comes the funny thing: I run the script again. It saves the page with the same text (of course, this will not appear in page history), and now it protects the pages successfully! Updating page [[Szerkesztö:SZDSZ]] via API Sleeping for 7.9 seconds, 2010-08-19 23:14:28 Updating page [[Szerkesztövita:SZDSZ]] via API Note: Your sysop account on wikipedia:hu does not have a bot flag. Its edits wil l be visible in the recent changes. Sleeping for 8.9 seconds, 2010-08-19 23:14:37 Do you want to change the protection level of [[hu:Szerkesztö:SZDSZ]]? ([Y]es, [ N]o, [A]ll) a Changed protection level of page [[Szerkesztö:SZDSZ]]. Sleeping for 7.1 seconds, 2010-08-19 23:14:49 Changed protection level of page [[Szerkesztövita:SZDSZ]]. How is it possible that the second time the pages could be protected, although they were existing titles, too? I tried to change the order of script lines: first protection, and saving afterwards. This works! But this way the bot creates the pages under my sysop name, because they are already protected.
I just have used the lines: userlap.protect(reason=self.summary) vitalap.protect(reason=self.summary) In wikipedia.py protection stands as follows: def protect(self, editcreate = 'sysop', move = 'sysop', etc. So it has only a common "editcreate" parameter. Please help, what is wrong in my solution, and how is it possible, that first time a page cannot be protected, and the second time it can?