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§ion=2" % get_edit_page_url(title) return # if u"основа1={{{" in content: if u"основа={{{" in content: print title print "%s§ion=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)
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§ion=4" % get_edit_page_url(page.title) print "%s" % line print return content
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