I'm trying to append a bit of text to an existing file (actually wanted to create a new one), but the script pagefromfile.py fails with the following output:
python pagefromfile.py -appendbottom -file:/tmp/Testpage.xml
Checked for running processes. 1 processes currently running, including the current process.
Pywikipediabot (r5177 (wikipedia.py), Apr 02 2008, 14:48:54)
Python 2.5.2 (r252:60911, Mar 12 2008, 13:36:25)
[GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu4)]
>>> Hond <<<
Getting page [[Hond]]
Page Hond already exists, appending on bottom!
Getting information for site PaulIen:en
Password for user Filebot on PaulIen:en:
Logging in to PaulIen:en as Filebot
Should be logged in now
Getting information for site PaulIen:en
Traceback (most recent call last):
File "pagefromfile.py", line 296, in <module>
main()
File "pagefromfile.py", line 292, in main
bot.run()
File "pagefromfile.py", line 124, in run
self.put(title, contents)
File "pagefromfile.py", line 174, in put
page.put(contents, comment = comment, minorEdit = self.minor)
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 1174, in put
sysop = self._getActionUser(action = 'edit', restriction = self.editRestriction, sysop = False)
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 1098, in _getActionUser
if not self.site().isAllowed(action, sysop):
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 3897, in isAllowed
return right in self._rights[index]
TypeError: argument of type 'NoneType' is not iterable
When running in debug mode, this error does not occur, but the script complains about missing start/end tags (looks like another problem to me though).
I've tested upload.py with an image file and that works fine. Just to isolate the problem and to make sure that the filebot is working somehow.
Additional info (from the version page):
* MediaWiki: 1.11.1
* PHP: 5.2.5 (apache2handler)
* MySQL: 5.0.51a
pywikipedia svn update: Updated to revision 5177.
Regards,
Paul Tap
Logged In: YES
user_id=1976885
Originator: NO
per change in wikipedia.py in #5173, wikipage detection was changed, but misza missed a space.
on line 4192 (if different, just find "# Not a wiki page")
if '<body class="mediawiki' not in text:
change to
if '<body class="mediawiki' not in text:
note the 2 spaces between body and class, thats it
Logged In: YES
user_id=1907826
Originator: NO
Not all versions use two spaces. I suggest using something like:
if not re.search(r'\<body[ ]*?class\="mediawiki', text):
I can't test it myself right now, so I'm not committing it.
Logged In: YES
user_id=1897388
Originator: YES
I've tested both (erwin85_wp and uberfuzzy) updates and now run into the following:
python pagefromfile.py -appendbottom -file:/tmp/Testpage.xml
Checked for running processes. 1 processes currently running, including the current process.
>>> Hond <<<
Traceback (most recent call last):
File "pagefromfile.py", line 296, in <module>
main()
File "pagefromfile.py", line 292, in main
bot.run()
File "pagefromfile.py", line 124, in run
self.put(title, contents)
File "pagefromfile.py", line 146, in put
if page.exists():
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 841, in exists
self.get()
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 622, in get
self._contents = self._getEditPage(get_redirect = get_redirect, throttle = throttle, sysop = sysop, nofollow_redirects=nofollow_redirects)
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 671, in _getEditPage
text = self.site().getUrl(path, sysop = sysop)
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 4180, in getUrl
self._getUserData(text, sysop = sysop)
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 4202, in _getUserData
blocked = self.isBlocked(sysop = sysop)
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 3881, in isBlocked
% self.api_address(), sysop=sysop)
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 4169, in getUrl
self.checkCharset(charset)
File "/home/paul/bin/PaulIen/pywikipedia/wikipedia.py", line 5247, in checkCharset
% (repr(self), self.charset, charset)
AssertionError: charset for PaulIen:en changed from UTF-8 to iso-8859-1
This now also happens in debug mode. Any ideas on this?
Logged In: YES
user_id=1897388
Originator: YES
Had to upload some images and found out that the "changes" suggested below, cause the new errors and also break the upload.py. So the issue is still open.
Logged In: YES
user_id=1686644
Originator: NO
I fact, wikias behave very differently. halo.wikia.com for example uses:
<body onload='' class='ns-0 ltr page-Main_Page'>
and no div id we're used to.
Any ideas how to universally detect a wiki page? I've gotten to like the modern skin on Wikipedia but can't run my preciousss adminbots with it.
Logged In: YES
user_id=1976885
Originator: NO
@misza, not all wikia is like that. Halo is one of the special new "social" code base, and halo is even worse because it has a very custom skin.
if you want to bot there, see my family.py patch in #1916496
Logged In: YES
user_id=181280
Originator: NO
I cannot reproduce this bug. Please update your copy of PyWikipediaBot (r5545)and provide more information (custom family file used, user-config.py, site URL if available).
Logged In: YES
user_id=1312539
Originator: NO
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).