[Pywikipedia-l] SVN: [5413] trunk/pywikipedia/replace.py
russblau at svn.wikimedia.org
russblau at svn.wikimedia.org
Tue May 20 18:16:48 UTC 2008
Revision: 5413
Author: russblau
Date: 2008-05-20 18:16:48 +0000 (Tue, 20 May 2008)
Log Message:
-----------
Add options 'e' for manual editing of article and 'q' to exit the script (borrowed from solve_disambiguation.py)
Modified Paths:
--------------
trunk/pywikipedia/replace.py
Modified: trunk/pywikipedia/replace.py
===================================================================
--- trunk/pywikipedia/replace.py 2008-05-20 18:14:52 UTC (rev 5412)
+++ trunk/pywikipedia/replace.py 2008-05-20 18:16:48 UTC (rev 5413)
@@ -112,6 +112,7 @@
from __future__ import generators
import sys, re, time
import wikipedia, pagegenerators, catlib, config
+import editarticle
# Imports predefined replacements tasks from fixes.py
import fixes
@@ -371,19 +372,32 @@
cats.append(self.addedCat)
new_text = wikipedia.replaceCategoryLinks(new_text,
cats)
- # Show the title of the page we're working on.
- # Highlight the title in purple.
- wikipedia.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
- % page.title())
- wikipedia.showDiff(original_text, new_text)
- if not self.acceptall:
+ while True:
+ # Show the title of the page we're working on.
+ # Highlight the title in purple.
+ wikipedia.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
+ % page.title())
+ wikipedia.showDiff(original_text, new_text)
+ if self.acceptall:
+ break
choice = wikipedia.inputChoice(
u'Do you want to accept these changes?',
- ['Yes', 'No', 'All'], ['y', 'N', 'a'], 'N')
+ ['Yes', 'No', 'Edit', 'All', "Quit"],
+ ['y', 'N', 'e', 'a', 'q'], 'N')
+ if choice in "Ee":
+ editor = editarticle.TextEditor()
+ as_edited = editor.edit(new_text)
+ # if user didn't press Cancel
+ if as_edited and as_edited != new_text:
+ new_text = as_edited
+ continue
+ if choice in "Qq":
+ return
if choice in ['a', 'A']:
self.acceptall = True
if choice in ['y', 'Y']:
page.put_async(new_text)
+ break
if self.acceptall:
try:
page.put(new_text)
More information about the Pywikipedia-l
mailing list