def requires_approval(self, page): fixable_alerts = page.get_fixable_alerts() if not fixable_alerts: return False # See what changes are suggested for alert in fixable_alerts: alert.section.fix() new_text = page.render() text_delta = delta(page.text, new_text, surrounding_lines=2) if not text_delta: return False # See if they've already been fixed/approved/disapproved if self.memory.in_memory(page.title, text_delta): return False print 'Provisional Fixable alert for page %s. Check online.' % page.title # Get current page from online if possible if self.online: old_text_delta = text_delta page = self.get_page(page.title) if page is None: return False page.parse() for alert in page.get_fixable_alerts(): alert.section.fix() new_text = page.render() text_delta = delta(page.text, new_text, surrounding_lines=2) if not text_delta: self.memory.mark_fixed(page.title, old_text_delta) return False # See if they've already been fixed/approved/disapproved if self.memory.in_memory(page.title, text_delta): return False self.memory.mark_needs_approval(page.title, text_delta) return True
def repair_page(self, page_title, allowed_delta): if not self.online: raise StandardError('Must be online to repair page.') page = self.get_page(page_title) if page is None: print u'Page no longer exists.' return set([]) page.parse() comments = [] changes = set([]) for alert in page.get_fixable_alerts(): alert.section.fix() comments.append(alert.slug) changes.add(Change(page.title, alert)) new_text = page.render() text_delta = delta(page.text, new_text, surrounding_lines=2) if text_delta: if text_delta == allowed_delta: comment = u'[[User:%s/Log#%s|%s]], ' % (self.username, self.title, u', '.join(comments)) self.write_page(page_title, new_text, comment) if self.live: self.memory.mark_fixed(page.title, text_delta) return changes else: self.memory.remove(page.title, text_delta) print u'Page has changed since modification approved. Removing from memory.' return set([])
username = '******' run = Einsatz(u'Trial Run', u'A trial run doing two types of formating fixes.', xml_file, simplePage, site, username, live=True, online=True, memory_file_name = 'simple_memory.txt') #run.scan_xml(max_no=10) #run.approval() run.run() if False: page = run.get_page('do') old_page = page.text page.parse() page.fix() import pdb pdb.set_trace() new_page = page.render() print(delta(old_page, new_page, surrounding_lines=2)) #print run.memory #run.scan_xml() #run.approval() #run.run()
username = '******' run = Einsatz(u'Trial Run', u'A trial run doing two types of formating fixes.', xml_file, simplePage, site, username, live=True, online=True, memory_file_name='simple_memory.txt') #run.scan_xml(max_no=10) #run.approval() run.run() if False: page = run.get_page('do') old_page = page.text page.parse() page.fix() import pdb pdb.set_trace() new_page = page.render() print(delta(old_page, new_page, surrounding_lines=2)) #print run.memory #run.scan_xml() #run.approval() #run.run()