Revision: 6839
Author: cosoleto
Date: 2009-05-06 11:30:21 +0000 (Wed, 06 May 2009)
Log Message:
-----------
Accept page links separated by newline when no title enclosed with [[brackets]]
is found using -file (#2783431).
Modified Paths:
--------------
trunk/pywikipedia/pagegenerators.py
Modified: trunk/pywikipedia/pagegenerators.py
===================================================================
--- trunk/pywikipedia/pagegenerators.py 2009-05-06 06:51:08 UTC (rev 6838)
+++ trunk/pywikipedia/pagegenerators.py 2009-05-06 11:30:21 UTC (rev 6839)
@@ -42,8 +42,9 @@
-uncatfiles Work on all files which are not categorised.
-file Read a list of pages to treat from the named text file.
- Page titles in the file must be enclosed with [[brackets]].
- Argument can also be given as "-file:filename".
+ Page titles in the file must be enclosed with [[brackets]]
+ or separated by newlines. Argument can also be given as
+ "-file:filename".
-filelinks Work on all pages that use a certain image/media file.
Argument can also be given as "-filelinks:filename".
@@ -405,9 +406,10 @@
def TextfilePageGenerator(filename=None, site=None):
'''
- Read a file of page links between double-square-brackets, and return
- them as a list of Page objects. filename is the name of the file that
- should be read. If no name is given, the generator prompts the user.
+ Read a file of page links between double-square-brackets or, in
+ alternative, separated by newlines, and return them as a list of Page
+ objects. filename is the name of the file that should be read. If no
+ name is given, the generator prompts the user.
'''
if filename is None:
filename = wikipedia.input(u'Please enter the filename:')
@@ -415,6 +417,7 @@
site = wikipedia.getSite()
f = codecs.open(filename, 'r', config.textfile_encoding)
R = re.compile(ur'\[\[(.+?)(?:\]\]|\|)') # title ends either before | or
before ]]
+ pageTitle = None
for pageTitle in R.findall(f.read()):
# If the link doesn't refer to this site, the Page constructor
# will automatically choose the correct site.
@@ -422,6 +425,12 @@
# text file, but also could be dangerous because you might
# inadvertently change pages on another wiki!
yield wikipedia.Page(site, pageTitle)
+ if pageTitle is None:
+ f.seek(0)
+ for title in f:
+ title = title.strip()
+ if title:
+ yield wikipedia.Page(site, title)
f.close()
def PagesFromTitlesGenerator(iterable, site = None):
_______________________________________________
Pywikipedia-svn mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/pywikipedia-svn