Revision: 3993 Author: wikipedian Date: 2007-08-07 18:17:42 +0000 (Tue, 07 Aug 2007)
Log Message: ----------- removed unneccessary code duplication
Modified Paths: -------------- trunk/pywikipedia/standardize_interwiki.py
Modified: trunk/pywikipedia/standardize_interwiki.py =================================================================== --- trunk/pywikipedia/standardize_interwiki.py 2007-08-07 16:34:12 UTC (rev 3992) +++ trunk/pywikipedia/standardize_interwiki.py 2007-08-07 18:17:42 UTC (rev 3993) @@ -44,57 +44,7 @@ start = str(wikipedia.input(u'From what page do you want to start?')) else: start = str(arg[7:]) - -# Function stolen from wikipedia.py and modified ad hoc by Filnik. -def Diff(oldtext, newtext): - """ - Prints a string showing the differences between oldtext and newtext. - The differences are highlighted (only on Unix systems) to show which - changes were made. - """ - # For information on difflib, see http://pydoc.org/2.3/difflib.html - color = { - '+': 10, # green - '-': 12 # red - } - diff = u'' - colors = [] - # This will store the last line beginning with + or -. - lastline = None - # For testing purposes only: show original, uncolored diff - # for line in difflib.ndiff(oldtext.splitlines(), newtext.splitlines()): - # print line - for line in difflib.ndiff(oldtext.splitlines(), newtext.splitlines()): - if line.startswith('?'): - # initialize color vector with None, which means default color - lastcolors = [None for c in lastline] - # colorize the + or - sign - lastcolors[0] = color[lastline[0]] - # colorize changed parts in red or green - for i in range(min(len(line), len(lastline))): - if line[i] != ' ': - lastcolors[i] = color[lastline[0]] - diff += lastline + '\n' - # append one None (default color) for the newline character - colors += lastcolors + [None] - elif lastline: - diff += lastline + '\n' - # colorize the + or - sign only - lastcolors = [None for c in lastline] - lastcolors[0] = color[lastline[0]] - colors += lastcolors + [None] - lastline = None - if line[0] in ('+', '-'): - lastline = line - # there might be one + or - line left that wasn't followed by a ? line. - if lastline: - diff += lastline + '\n' - # colorize the + or - sign only - lastcolors = [None for c in lastline] - lastcolors[0] = color[lastline[0]] - colors += lastcolors + [None] - return (diff, colors) - + # What follows is the main part of the code. try: for pl in site.allpages(start): @@ -112,15 +62,7 @@ newtext = wikipedia.replaceLanguageLinks(oldtext, new) if new: if oldtext != newtext: - # Display the diff - data = Diff(oldtext, newtext) - diff = data[0] - colors = data[1] - if diff == '': - wikipedia.output(u'No changes needed.') - continue - else: - wikipedia.output(diff, colors = colors) + wikipedia.showDiff(oldtext, newtext) # Submit changes try: status, reason, data = pl.put(newtext, comment=comm)
pywikipedia-l@lists.wikimedia.org