def action(self, page, **kwargs): super(ReplaceSootvMn, self).action(page, **kwargs) content = kwargs['content'] p = re.compile( u"""(?P<tpl>\{\{ (?P<title>(?P<morph>гл)[ ]ru[ ][^|]+) # заголовок (?P<params>[^{}]+?(\{\{[^{}]+?\}\})?[^{}]+?) # параметры \}\})""", flags=re.UNICODE + re.DOTALL + re.VERBOSE) parts = p.findall(content) for part in parts: m = p.search(part[0]) if m: old_tpl = m.group('tpl') new_tpl = old_tpl.replace(u"|соотв-мн=", u"|соотв=") if new_tpl != old_tpl: old_content = get_wiki_page(page.title).get() # old_content = content new_content = old_content.replace(old_tpl, new_tpl) if old_content != new_content: print page.title print '-' * 100 print old_tpl print '-' * 100 print new_tpl print '-' * 100 # print new_content # print '=' * 200 desc = u'замена параметра "|соотв-мн=" на "|соотв="' save_wiki_page(page.title, new_content, desc, wait=5)
def action(self, page, **kwargs): super(ReplacePTemplate, self).action(page, **kwargs) old_content = kwargs['content'] # old_content = re.sub(u'[А-Яа-я]+\{\{!\}\}([А-Яа-я\u0301]+)', '\\1', old_content) # if '{{!}}' in old_content: # print '###' # return p = re.compile(u'(\{\{[pр]\|(?P<w1>[^\|\}]+)\|?((?P<p1>[,;])|;(?P<p2>;))?\|?(?P<w2>[^\}\|]*)\|?((?P<p3>[,;])|;(?P<p4>;))?\}\})') # p = re.compile(u'(\{\{[pр]\|([^|]+)\|?(([,;])|;(;))?\|?([^\}\|]*)\}\})') # '(\{\{[pр]\|([^|]+)\|?(([,;])|;(;))?\|?([^\}\|]*)\}\})' items = p.findall(old_content) if items: print print page.title print old_content = get_wiki_page(page.title).get() new_content = old_content for item in items: old_line = item[0] new_line = "%s%s%s%s%s%s%s" % \ (item[1], # word1 item[3], item[4], ' ' if item[5] else '', item[5], # word2 item[7], item[8],) new_content = new_content.replace(old_line, new_line) print old_content print print new_content print if old_content != new_content: desc = u'удаление вызовов шаблона {{p}}' save_wiki_page(page.title, new_content, desc, wait=5)
def action(self, page, **kwargs): super(SlogiSimpleReplacer5, self).action(page, **kwargs) if ':' in page.title: return old_content = get_wiki_page(page.title).get() new_content = old_content.replace( u"слоги={{по слогам|||}}", u"слоги={{по-слогам|%s}}" % page.title) if old_content != new_content: desc = u'добавление параметра-заголовка к пустому {{по-слогам|}}' save_wiki_page(page.title, new_content, desc, wait=5)
def action(self, page, **kwargs): super(SlogiSimpleReplacer3, self).action(page, **kwargs) if ':' in page.title: return old_content = get_wiki_page(page.title).get() new_content = old_content.replace( u"слоги=\n", u"слоги={{по-слогам|%s}}\n" % page.title) if old_content != new_content: desc = u'добавление {{по-слогам}} к пустому "слоги="' save_wiki_page(page.title, new_content, desc, wait=5)
def action(self, page, **kwargs): super(SlogiSimpleReplacer2, self).action(page, **kwargs) if ':' in page.title: return old_content = get_wiki_page(page.title).get() new_content = old_content.replace( u"слоги={{PAGENAME}}\n", u"слоги={{по-слогам|%s}}\n" % page.title) if old_content != new_content: desc = u'замена {{PAGENAME}} в "слоги=" на {{по-слогам|заголовок}}' save_wiki_page(page.title, new_content, desc, wait=5)
def action(self, page, **kwargs): super(ReplaceBadSootv, self).action(page, **kwargs) old_content = kwargs['content'] if ':' in page.title: return print "# [[%s]]" % page.title # print old_content = get_wiki_page(page.title).get() new_content = old_content.replace( u'}}\nСоответствующий глагол совершенного вида — ?.', u'|соотв=\n}}' ) if old_content != new_content: desc = u'замена строки "Соответствующий глагол совершенного вида — ?." на пустой параметр "|соотв="' save_wiki_page(page.title, new_content, desc, wait=5)
def action(self, page, **kwargs): super(FindSootv, self).action(page, **kwargs) content = kwargs['content'] p = re.compile( u"""(?P<tpl>\{\{ (?P<title>(?P<morph>гл)[ ]ru[ ][^|]+) # заголовок (?P<params>[^{}]+?(\{\{[^{}]+?\}\})?[^{}]+?) # параметры \}\})""", flags=re.UNICODE + re.DOTALL + re.VERBOSE) parts = p.findall(content) for part in parts: m = p.search(part[0]) if m: tpl = m.group('tpl') # print tpl m2 = re.search(u"\|(соотв)=(?P<value>[^\n]+)\n", tpl) if m2: value = m2.group('value') # print m2.group(1) # value = m2.group(0) value = value.strip() if value else '' # print u"* '''%s''' — %s" % (page.title, value) prefixes = [u'приставочного типа ', u'приставочные вида ', u'приставочные типа ', u'приставочные: ', u'приставочный вида ', u'приставочного типа: ', u'<span>приставочные типа</span> ', u'приставочные глаголы типа ', u'приставочные вроде ', u'приставочные ',] for prefix in prefixes: if value.startswith(prefix): old_content = get_wiki_page(page.title).get() # old_content = content new_content = old_content.replace( u'|соотв=%s' % prefix, u'|соотв={{без ссылок|приставочные типа}} ') if old_content != new_content: print page.title # print '-' * 100 # print old_tpl # print '-' * 100 # print new_tpl # print '-' * 100 # print new_content # print '=' * 200 desc = u'добавление шаблона "без ссылок" для "приставочного типа" в параметре "соотв"' save_wiki_page(page.title, new_content, desc, wait=5) break
def action(self, page, **kwargs): super(RemoveEmptyOrOldParams, self).action(page, **kwargs) if self.i < 105000: return content = kwargs['content'] p = re.compile( # todo: add "сущ" u"""(?P<tpl>\{\{ (?P<title>(?P<morph>сущ)[ ]ru[ ][^|]+) # заголовок (?P<params>[^{}]+?(\{\{[^{}]+?\}\})?[^{}]+?) # параметры \}\})""", flags=re.UNICODE + re.DOTALL + re.VERBOSE) parts = p.findall(content) for part in parts: m = p.search(part[0]) if m: old_tpl = m.group('tpl') new_tpl = old_tpl.replace("|show-text=1\n", "") # new_tpl = re.sub(u'\|(2в|НП|основа[12] ?|Прич|ПричСтрад|Деепр)=\\n', '', new_tpl) # new_tpl = re.sub(u'\|(коммент|П)=\\n', '', new_tpl) # m = re.search('\|(?P<param>[^|\\n=]+)=\\n', old_tpl) # if m: # print old_tpl # print '-' * 50 # self.result.append(m.group('param')) if new_tpl != old_tpl: old_content = get_wiki_page(page.title).get() # old_content = content new_content = old_content.replace(old_tpl, new_tpl) if old_content != new_content: print page.title.encode('cp1251') # print '-' * 100 # print old_tpl.encode('cp1251') # print '-' * 100 # print new_tpl.encode('cp1251') # print '-' * 100 # print new_content # print '=' * 200 desc = u'удаление параметра "|show-text=1" из русских существительных' save_wiki_page(page.title, new_content, desc, wait=5)
def action(self, page, **kwargs): super(PerevodBlankLine, self).action(page, **kwargs) if ':' in page.title: return content = page.content if u'{{перев-блок|' not in content: return p = re.compile(u"\{\{перев-блок\|([^|]+)\n\n") m = p.search(content) if not m: return if '}}' in m.group(1): print page.title return old_content = get_wiki_page(page.title).get() new_content = p.sub(u"{{перев-блок|\\1|\n", old_content) if old_content != new_content: # print '\n' * 10 # print '=' * 100 # print old_content # print '-' * 100 # print new_content desc = u'исправление глюка (пустой строки) в {{перев-блок}}' save_wiki_page(page.title, new_content, desc, wait=5)