Користувач:Дядько Ігор/Скрипти/Переробка українських сіл

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
# -*- coding: utf-8 -*-
import re, codecs
import wikipedia as pywikibot
import config

def get_address(content):
  pattern = re.compile(u'(?<=\| адреса)(.*?)\n') 
  m = pattern.search(content)
  if m is not None:
    addr = m.group(0).strip()
    pattern =  re.compile(u'(?<=\=)(.*?)')
    m1 = pattern.search(addr)
    addr = addr[m1.start():].strip()   
    content = content[:m.start()] + u' =\n' + content[m.end():] 
    return addr, content

def get_weather_site(content):
  pattern = re.compile(u'(?<=\* \[http:\/\/weather\.in\.ua\/)(.*?)\n') 
  m = pattern.search(content)
  if m is not None:
    site = m.group(0).strip()
    content = content[:m.start()] + content[m.end():]
    content = content.replace(u'* [http://weather.in.ua/', u'')
    site =  u'* [http://weather.in.ua/' + site
    return site, content

def get_altitude(content):
  pattern = re.compile(u'(?<=\| висота)(.*?)\n') 
  m = pattern.search(content)
  if m is not None:
    alti = m.group(0).strip()
    pattern =  re.compile(u'(?<=\=)(.*?)')
    m1 = pattern.search(alti)
    alti = alti[m1.start():].strip()   
    content = content[:m.start()] + u' = <!---' +alti +u'-->\n' + content[m.end():] 
    return alti, content

def get_area(content):
  pattern = re.compile(u'(?<=\| площа)(.*?)\n') 
  m = pattern.search(content)
  if m is not None:
    ar = m.group(0).strip()
    pattern =  re.compile(u'(?<=\=)(.*?)')
    m1 = pattern.search(ar)
    ar = ar[m1.start():].strip()   
    content = content[:m.start()] + u' = <!---' +ar +u'-->\n' + content[m.end():] 
    return ar, content

def get_density(content):
  pattern = re.compile(u'(?<=\| щільність)(.*?)\n') 
  m = pattern.search(content)
  if m is not None:
    den = m.group(0).strip()
    pattern =  re.compile(u'(?<=\=)(.*?)')
    m1 = pattern.search(den)
    den = den[m1.start():].strip()   
    content = content[:m.start()] + u' = <!---' + den +u'-->\n' + content[m.end():] 
    return den, content


def get_zip(content):
  pattern = re.compile(u'(?<=\| поштовий індекс)(.*?)\n') 
  m = pattern.search(content)
  if m is not None:
    zip0 = m.group(0).strip()
    pattern =  re.compile(u'(?<=\=)(.*?)')
    m1 = pattern.search(zip0)
    zip0 = zip0[m1.start():].strip()   
    content = content[:m.start()] + u' = <!---' + zip0 +u'-->\n' + content[m.end():] 
    return zip0, content

def get_tel(content):
  pattern = re.compile(u'(?<=\| телефонний код)(.*?)\n') 
  m = pattern.search(content)
  if m is not None:
    tel = m.group(0).strip()
    pattern =  re.compile(u'(?<=\=)(.*?)')
    m1 = pattern.search(tel)
    tel = tel[m1.start():].strip()   
    content = content[:m.start()] + u' = <!---' + tel +u'-->\n' + content[m.end():] 
    return tel, content


name = u'Борсків'
number = 2934

page = pywikibot.Page(pywikibot.getSite(), name)

content = page.get()

content = content.replace(u'  \n', u'')

weather_site, content = get_weather_site(content)
weather_site = weather_site.replace(u'*', u'').strip()
altitude, content = get_altitude(content)
area, content = get_area(content)
density, content = get_density(content)
altitude = u'Село лежить на висоті ' + altitude + u' м над рівнем моря<ref>' + weather_site + u'</ref>.'
altitude = altitude + u' Воно займає площу ' + area+u'&nbsp;км².'
altitude = altitude + u' [[Густота населення]] в ньому ' + density + u'&nbsp;осіб/км²'
ref = u'<ref>[http://w1.c1.rada.gov.ua/pls/z7502/A005?rf7571=%d' % number 
ref = ref + u' Сторінка села на сайті Верховної Ради]</ref>.'
altitude = altitude + ref
altitude = altitude + u'\n\n== Посилання ==\n'
content = content.replace(u'== Посилання ==', altitude )

address, content = get_address(content)
index, content = get_zip(content)
tel, content = get_tel(content)
address = u'== Контактна інформація ==\n{| style align = \"top\"\n|width = 200px valign = top|\'\'Адреса селищної ради:\'\' ||align = left|' + address 
address = address + u'\n|-\n|\'\'Поштовий індекс:\'\' || ' + index
address = address + u'\n|-\n|\'\'Телефонний код:\'\' || ' + tel
address = address +  u'\n|}\n== Виноски == \n {{reflist}}'
content = content.replace(u'== Посилання ==', address.strip() )  

pywikibot.output(content)
page.put(content, comment = u'Переробка сторінки села', minorEdit = False)