Ejemplo n.º 1
0
 def action(self, page, **kwargs):
     # print page.title
     super(RemoveBad, self).action(page, **kwargs)
     title = page.title
     if ':' in title:
         return
     content = page.content
     if u"{{{" in content:
         print title
         print "%s&section=2" % get_edit_page_url(title)
     return
     # if u"основа1={{{" in content:
     if u"основа={{{" in content:
         print title
         print "%s&section=2" % get_edit_page_url(title)
         try:
             old_content = content
             old_content = get_wiki_page_content(title)
         except IsRedirectPage:
             return
         # new_content = re.sub(u"\|основа\d?=\{\{\{\d\|?\}\}\}(́?\{\{\{\d\|?\}\}\})?\n", '', old_content)
         new_content = re.sub(u"\|основа=\{\{\{\d\|([А-Яа-я]+)\}\}\}\n",
                              u'|основа=\\1\n',
                              old_content)
         new_content = re.sub(u"\|слоги=\{\{\{\d\|([А-Яа-я]+)\}\}\}\n",
                              u'|слоги={{по-слогам|\\1}}\n',
                              new_content)
         if old_content == new_content:  # content doesn't change
             return
         desc = u'Удаление "странных" параметров'
         save_wiki_page(title, new_content, desc, wait=5)
Ejemplo n.º 2
0
 def lang_action(self, page, lang, content):
     if lang != 'ru':
         return content
     parts = re.findall(u'==== ?Значение ?====\n(.*?)\n===',
                        content, flags=re.DOTALL)
     # print '=' * 100
     # print u'→', page.title
     # print '-' * 100
     if parts:
         for part in parts:
             part = part.strip()
             # print part
             # print '-' * 100
             lines = part.split('\n')
             for line in lines:
                 line = line.strip()
                 if not line:
                     continue
                 if line == '#':
                     continue
                 if line.startswith('#') and u'{{пример' in line:
                     continue
                 if line.startswith('#'):
                     continue
                 if line.startswith('|') or line.startswith('}'):
                     continue
                 if line.startswith(u'{{списки семантических связей'):
                     continue
                 if line.startswith(u'{{прото'):
                     continue
                 if not line.startswith('{'):
                     continue
                 if line.startswith(u'{{илл|'):
                     continue
                 if re.match(u'^\{\{[а-я]+\.\|ru\}\}$', line):
                     continue
                     print "[[%s]], " % page.title
                 print u'→', page.title, \
                     "%s&section=4" % get_edit_page_url(page.title)
                 print "%s" % line
                 print
     return content
Ejemplo n.º 3
0
def load2():
    prefix = u'Категория:Шаблоны словоизменений/'
    pages = Page.objects.prefetch_related('page_content').\
        filter(title__startswith=prefix)
    for page in pages:
        # print '=' * 100
        # print
        title = page.title
        suffix = title[len(prefix):]
        # print page.title
        # print suffix
        if not re.match('^[-a-z]+$', suffix):
            # print u'×' * 100
            continue
        # new_cat_title = u'Категория:Шаблоны:Словоизменение/%s' % suffix
        # new_content = u'[[Категория:Шаблоны:Словоизменение/По языкам|%s]]\n' \
        #               u'[[Категория:Шаблоны/%s|Словоизменение]]\n' \
        #               % (suffix, suffix)
        # save_wiki_page(new_cat_title, new_content,
        #                u"создание категорий")
        # print page.title
        print
        print suffix, get_edit_page_url(title)
        print suffix, get_edit_page_url(title.replace(
            u'Категория:Шаблоны словоизменений',
            u'Категория:Шаблоны:Словоизменение'))
        print '-' * 10
        # print 'ok'
        content = page.content
        # print '-' * 50
        # print content
        # continue
        for line in content.split('\n'):
            if not line.strip():
                continue
            m = re.match(u'^\[\[Категория:Шаблоны словоизменений по языкам(\|([-a-z]+))?\]\]$',
                         line)
            if m:
                print u'По языкам — ok'
                continue
                lang = m.group(2)
                if not lang:
                    print
                    print suffix
                    print line
                    print u'я →', lang
                    old_content = get_wiki_page_content(title)
                    new_content = old_content.replace(
                        line, u'[[Категория:Шаблоны словоизменений по языкам|%s]]' % suffix)
                    if old_content != new_content:
                        desc = u'приведение описания категорий к единому стилю'
                        save_wiki_page(title, new_content, desc, wait=5)
                        break
                    else:
                        print u'×', title
                    pass
                elif lang != suffix:
                    # print
                    # print suffix
                    # print line
                    # print u'я →', lang
                    pass
                else:
                    # print
                    # print suffix
                    # print line
                    # print u'я →', lang
                    pass
                continue
            m = re.match(u'^\[\[Категория:Шаблоны/([-a-z]+)(\|[*А-Яа-я ]+)?\]\]$',
                         line)
            if m:
                print u'Шаблоны — ok'
                continue
                lang = m.group(1)
                sort = m.group(2)
                # if lang != suffix or sort != u'|*Ш':
                if lang != suffix:
                    # print line
                    # print u'ш →', lang, u'—' ,sort
                    continue
                # else:
                # print line
                # print u'ш →', lang, u'—' ,sort
                old_content = get_wiki_page_content(title)
                new_content = old_content.replace(
                    line, u'[[Категория:Шаблоны/%s|Словоизменение]]' % lang)
                if old_content != new_content:
                    desc = u'приведение описания категорий к единому стилю'
                    save_wiki_page(title, new_content, desc, wait=5)
                    break
                else:
                    print u'×', title
                continue
            m = re.match(u'^\[\[Категория:Викисловарь:([-А-Яа-я ()]+)(\|[*А-Яа-я]+)?\]\]$',
                         line)
            if m:
                name = m.group(1)
                sort = m.group(2)
                print u'Категория — %s — ok' % name
                print '=' * 100
                print line
                print '=' * 100
                continue
            p = re.compile(u'^\[\[Категория:([-А-Яа-я ()]+)(\|[*А-Яа-я]+)?\]\]$')
            m = p.match(line)
            if m:
                name = m.group(1)
                sort = m.group(2)
                print u'Категория — %s — ×××?' % name
                # if u'[[Категория:Шаблоны/' not in content:
                #     old_content = get_wiki_page_content(title)
                #     new_content = re.sub(u'\[\[Категория:([-А-Яа-я ()]+)(\|[*А-Яа-я]+)?\]\]',
                #                          u'[[Категория:Шаблоны/%s|Словоизменение]]' % suffix,
                #                          old_content)
                #     if old_content != new_content:
                #         desc = u'замена основной категории языка на "Шаблоны/%s"' % suffix
                #         save_wiki_page(title, new_content, desc, wait=5)
                #         break
                #     else:
                #         print u'#' * 100, title
                #     pass
                continue
                # print line
                if sort:
                    if sort != u'|*Ш':
                        # print
                        # print suffix
                        # print line
                        # print u'к →', '...', u'—' , sort
                        pass
                else:
                    print
                    print suffix
                    print line
                    print u'к →', name, u'—' , sort
                continue
                # if sort != u'|*Ш':
                #     print line
                #     print u'к →', '...', u'—' ,sort
                continue
            m = re.match(u'^\[\[[a-z]+:([^]]+)]\]$',
                         line)
            if m:
                print 'lang', u'$' * 40
                print '=' * 100
                print line
                print '=' * 100
                # print u'l →', m.group(1)
                continue
            if line == u'[[Категория:Шаблоны словоизменений/zh]]':
                print 'base'
                print '=' * 100
                print line
                print '=' * 100
                # print u'с →', 'ok'
                continue
            print line, '×' * 100
            print '=' * 100
            print line
            print '=' * 100