コード例 #1
0
 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
コード例 #2
0
 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([])
コード例 #3
0
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()

            
            

        

    
コード例 #4
0
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()