Ejemplo n.º 1
0
 def test_name(self):
     """test getter/setter for the name attribute"""
     name = wraptext("foobar")
     node1 = Template(name)
     node2 = Template(name, [pgenh("1", "bar")])
     self.assertIs(name, node1.name)
     self.assertIs(name, node2.name)
     node1.name = "asdf"
     node2.name = "téstïng"
     self.assertWikicodeEqual(wraptext("asdf"), node1.name)
     self.assertWikicodeEqual(wraptext("téstïng"), node2.name)
 def test_name(self):
     """test getter/setter for the name attribute"""
     name = wraptext("foobar")
     node1 = Template(name)
     node2 = Template(name, [pgenh("1", "bar")])
     self.assertIs(name, node1.name)
     self.assertIs(name, node2.name)
     node1.name = "asdf"
     node2.name = "téstïng"
     self.assertWikicodeEqual(wraptext("asdf"), node1.name)
     self.assertWikicodeEqual(wraptext("téstïng"), node2.name)
Ejemplo n.º 3
0
def handle(site, index):
    src_ns = next(site.results(prop='info', titles=index))['ns']

    for page in site.results(generator='allpages',
                             gapprefix=index.split(':')[1] + '/Beispiel ',
                             gaplimit='max',
                             prop='revisions',
                             rvprop='content',
                             gapnamespace=src_ns):
        orig = page['revisions'][0]['*']
        if mwbot.parse_redirect(orig):
            continue

        code = mwbot.parse(orig)
        templates = code.filter_templates(
            matches=lambda x: x.name.matches('Beispiel'))
        if len(templates) > 0:
            template = templates[0]
        else:
            template = Template(Wikicode([Text('Beispiel')]))
            code.insert(0, template)
            code.insert(1, '\n')

        # legacy format handling
        template.name = 'Beispiel'
        if template.has('1') and not template.get('1').value.startswith('\n'):
            template.get('1').value.insert(0, '\n')
        if template.has('status'):
            if str(template.get('status').value).strip() not in ('extern',
                                                                 'Datei'):
                print('unknown status: {}'.format(k))

        if template.has('1'):
            if str(template.get('1').value).strip() == 'teils':
                template.add('teils', '')
                template.remove('1')
            elif str(template.get('1').value).strip() == 'falsch':
                template.add('falsch', '')
                template.remove('1')

        if not template.has('1'):
            angabe_div = code.filter_tags(
                matches=lambda x: x.tag.matches('blockquote') or len([
                    x for x in x.attributes
                    if '{{Angabe}}' in x or '#EFEFEF' in x
                ]))
            if angabe_div:
                template.add('1',
                             '\n' + str(angabe_div[0].contents).strip() + '\n',
                             showkey=True)
                code.remove(angabe_div[0])
            else:
                angabe_sec = code.get_sections(matches='Angabe|Aufgabe')
                if angabe_sec:
                    code.remove(angabe_sec[0].nodes[0])
                    template.add('1',
                                 '\n' + str(angabe_sec[0]).strip() + '\n',
                                 showkey=True)
                    code.replace(angabe_sec[0], '\n')

        mwbot.save(site,
                   page['title'],
                   orig,
                   str(code),
                   'beispiel_fixer.py',
                   strip_consec_nl=True)