Redaktor:Wizzo-Bot/pamiatky.py

#!/usr/bin/python2.4
# -*- coding: utf-8  -*-

import pywikibot, re, sys, locale, urllib

nazov = raw_input().decode(sys.stdin.encoding or locale.getpreferredencoding(True))

csnazov = nazov
sknazov = nazov

cssite = pywikibot.getSite("cs")
stranka = pywikibot.Page( cssite, csnazov )
csstranka = stranka
stranka = stranka.get()
revizia = pywikibot.Page( cssite, csnazov ).latest_revision_id

stranka = stranka.replace(u"Infobox - chráněné území na Slovensku", u"Geobox | Protected Area")
stranka = stranka.replace(u" |mark=Green pog.svg |relief=1}}", u"")
stranka = stranka.replace(u"  ", u"")

stranka = stranka.replace(u"Kategorie:Národní přírodní rezervace", u"Kategória:Národné prírodné rezervácie")
stranka = stranka.replace(u"Kategorie:Národní přírodní památky", u"Kategória:Národné prírodné pamiatky")
stranka = stranka.replace(u"Kategorie:Přírodní rezervace", u"Kategória:Prírodné rezervácie")
stranka = stranka.replace(u"Kategorie:Přírodní památky", u"Kategória:Prírodné pamiatky")
stranka = stranka.replace(u"Kategorie:Chráněné areály", u"Kategória:Chránené areály")
stranka = stranka.replace(u"Kategorie:Chráněná území", u"Kategória:Chránené územia")

stranka = stranka.replace(u"Bratislavském", u"Bratislavskom")
stranka = stranka.replace(u"Trnavském", u"Trnavskom")
stranka = stranka.replace(u"Trenčínském", u"Trenčianskom")
stranka = stranka.replace(u"Nitranském", u"Nitrianskom")
stranka = stranka.replace(u"Nitranský", u"Nitriansky")
stranka = stranka.replace(u"Ponitří", u"Ponitrie")
stranka = stranka.replace(u"Bílé Karpaty", u"Biele Karpaty")
stranka = stranka.replace(u"Trenčínský kraj", u"Trenčiansky kraj")
stranka = stranka.replace(u"Žilinském", u"Žilinskom")
stranka = stranka.replace(u"Banskobystrickém", u"Banskobystrickom")
stranka = stranka.replace(u"Košickém", u"Košickom")
stranka = stranka.replace(u"Prešovském", u"Prešovskom")

stranka = stranka.replace(u"Poľana (pohoří)", u"CHKO Poľana")
stranka = stranka.replace(u"Muráňská planina", u"Národný park Muránska planina")
stranka = stranka.replace(u"Muráňské planiny", u"Muránska planina")
stranka = stranka.replace(u"Tatranský národní park", u"Tatranský národný park")
stranka = stranka.replace(u"Pieninský národní park", u"Pieninský národný park")
stranka = stranka.replace(u"Slovenský ráj", u"Slovenský raj")
stranka = stranka.replace(u"Tatranském národním parku", u"Tatranskom národnom parku")
stranka = stranka.replace(u"Východní Karpaty", u"CHKO Východné Karpaty")

stranka = stranka.replace(u"| název", u"| name           ")
stranka = stranka.replace(u"| obrázek", u"| image          ")
stranka = stranka.replace(u"| popisek", u"| image_caption  ")
stranka = stranka.replace(u"| lokalita", u"| management")
stranka = stranka.replace(u"| typ", u"| category       ")
stranka = stranka.replace(u"| kód", u"| code")
stranka = stranka.replace(u"| výměra", u"| area")
stranka = stranka.replace(u"\n| vyhlásil =", u"")
stranka = stranka.replace(u"\n| poznámky =", u"")
#stranka = stranka.replace(u"\n| okres = .*", u"")
#stranka = stranka.replace(u"\n| district = .*", u"")
#stranka = stranka.replace(u"\n| district2 = .*", u"")
stranka = stranka.replace(u"ha\n", u"\n")

stranka = re.sub(u"\| loc-map =.*\n", u"", stranka)
stranka = re.sub(u"\| datum vyhlášení =.*\n", u"", stranka)
stranka = re.sub(u"\| okres = .*\n", u"", stranka)

stranka = stranka.replace(u"zeměpisná šířka", u"lat_d")
stranka = stranka.replace(u"zeměpisná délka", u"long_d")

stranka = stranka.replace(u"NPP", u"[[národná prírodná pamiatka]]")
stranka = stranka.replace(u"NPR", u"[[národná prírodná rezervácia]]")
stranka = stranka.replace(u"PP", u"[[prírodná pamiatka]]")
stranka = stranka.replace(u"PR", u"[[prírodná rezervácia]]")
stranka = stranka.replace(u"CHA", u"[[chránený areál]]")

stranka = stranka.replace(u"Národní přírodní památka", u"Národná prírodná pamiatka")
stranka = stranka.replace(u"Národní přírodní rezervace", u"Národná prírodná rezervácia")
stranka = stranka.replace(u"Přírodní památka", u"Prírodná pamiatka")
stranka = stranka.replace(u"Přírodní rezervace", u"Prírodná rezervácia")
stranka = stranka.replace(u"Chráněný areál", u"Chránený areál")

stranka = stranka.replace(u"národní přírodní památka", u"[[národná prírodná pamiatka]]")
stranka = stranka.replace(u"národní přírodní rezervace", u"[[národná prírodná rezervácia]]")
stranka = stranka.replace(u"přírodní památka", u"[[prírodná pamiatka]]")
stranka = stranka.replace(u"přírodní rezervace", u"[[prírodná rezervácia]]")
stranka = stranka.replace(u"chráněný areál", u"[[chránený areál]]")

stranka = stranka.replace(u"v oblasti", u"v správe štátnej ochrany prírody")
stranka = stranka.replace(u"ve správě příspěvnkové organizace [[Správa slovenských jaskyň]]", u"v správe príspevkovej organizácie Správa slovenských jaskýň")
stranka = stranka.replace(u"ve správě příspěvkové organizace [[Správa slovenských jaskyň]]", u"v správe príspevkovej organizácie Správa slovenských jaskýň")

stranka = re.sub(u"Území bylo vyhlášeno či novelizováno v roce (.*) na", u"ROKY PLACEHOLDER na", stranka)
stranka = re.sub(u"Území bylo vyhlášeno či novelizováno v letech (.*) na", u"ROKY PLACEHOLDER na", stranka)
stranka = stranka.replace(u"na rozloze", u"na rozlohe")
stranka = stranka.replace(u"Ochranné pásmo nebylo stanoveno", u"Ochranné pásmo nebolo určené")
stranka = stranka.replace(u"Rozloha ochranného pásma byla stanovena na", u"Rozloha ochranného pásma bola určená na")

kod = re.search(r"code = (.*)", stranka).group(1)
#print kod

link = "http://uzemia.enviroportal.sk/main/detail/cislo/%s" % kod
f = urllib.urlopen(link)
myfile = f.read()
#print myfile

myfile = myfile.replace("\n", "")
myfile = myfile.replace("\r", "")
myfile = myfile.replace("  ", "")
myfile = myfile.replace("</td>", "\n</td>")

vyhlasenie = re.search(r"Rok vyhlásenia:<\/th><td>(.*)", myfile).group(1)
vyhlasenie = vyhlasenie.decode(sys.stdin.encoding or locale.getpreferredencoding(True))

novelizacia = re.search(r"Rok poslednej novelizácie:<\/th><td>(.*)", myfile).group(1)
novelizacie = novelizacia.decode(sys.stdin.encoding or locale.getpreferredencoding(True))
novel = u""

roky = u"Územie bolo vyhlásené v roku [[%s]]" % vyhlasenie
if (novelizacia != u"-"):
  roky += u" a naposledy novelizované v roku [[%s]]" % novelizacia
  novel = novelizacia

stranka = stranka.replace(u"ROKY PLACEHOLDER", roky)

predmet = re.search(r"Predmet ochrany:<\/th><td>(.*)", myfile).group(1)
predmet = predmet.decode(sys.stdin.encoding or locale.getpreferredencoding(True))
#print predmet

obec = re.search(r"Obec:<\/th><td>(.*)", myfile).group(1)
obec = obec.decode(sys.stdin.encoding or locale.getpreferredencoding(True))
obec = obec.replace(u", ", u"]], [[")
obec = u"[[%s]]" % obec
#print obec

kataster = re.search(r"Katastrálne územie:<\/th><td>(.*)", myfile).group(1)
kataster = kataster.decode(sys.stdin.encoding or locale.getpreferredencoding(True))
#print kataster

okres = re.search(r"Okres:<\/th><td>(.*)", myfile).group(1)
okres = okres.decode(sys.stdin.encoding or locale.getpreferredencoding(True))
okres = okres.replace(u", ", u"]], [[Okres ")
okres = u"[[Okres %s]]" % okres
#print okres

stranka = stranka.replace(u"Nachází se", u"Nachádza sa v katastrálnom území obce %s" % obec)

stranka = stranka.replace(u"Externí odkazy", u"Externé odkazy")
stranka = stranka.replace(u"{{Pahýl}}\n", u"")
stranka = stranka.replace(u"{{Portály|Slovensko}}\n", u"")
stranka = stranka.replace(u"republiky\n", u"republiky\n\n== Zdroj ==\n{{Preklad|cs|%s|%s}}" % (csnazov, revizia))

titul = re.search(r"<title>(.*)<\/title>", myfile).group(1)
titul = titul.decode(sys.stdin.encoding or locale.getpreferredencoding(True))
#print titul

obeckat = obec.replace(u"[[", u"[[Kategória:")
obeckat = obeckat.replace(u", ", u"\n")

stranka = stranka.replace(u"== Externé odkazy ==", u"Predmetom ochrany je: ''%s''<ref>{{citácia elektronického dokumentu|titul=%s|url=http://uzemia.enviroportal.sk/main/detail/cislo/%s}}</ref>\n\n== Referencie ==\n{{referencie}}\n\n== Externé odkazy ==" % (predmet, titul, kod))
stranka += u"\n%s" % obeckat

rozloha = re.search(r"area = (.*)", stranka).group(1)
rozloha = rozloha.replace(u",", u".")
#print rozloha
#print stranka

if (rozloha != "x "):
  rozloha = float(rozloha) / 100
  stranka = re.sub(r"area = (.*)", u"area = %s" % rozloha, stranka)
else:
  stranka = stranka.replace(u"\n| area = x ", u"")
  stranka = stranka.replace(u" na rozlohe x ha", u"")

stranka = stranka.replace(u"Area", u"""Area
| map_caption       = Poloha v rámci Slovenska  
| map_locator       = Slovensko-reliéf
| map1_caption      = Poloha v rámci Košického kraja
| map1_locator      = Košický kraj
| country           = Slovensko
| country_flag      = 1
| region            = [[Košický kraj|Košický]]
| district          = %s
| municipality      = %s
| established       = %s
| established1      = %s
| established1_type = posledná novelizácia""" % (okres, obec, vyhlasenie, novel) )

stranka = stranka.replace(u"[[Vysoké Tatry]]", u"[[Vysoké Tatry (mesto)|Vysoké Tatry]]")
stranka = stranka.replace(u"[[Kategória:Vysoké Tatry]]", u"[[Kategória:Vysoké Tatry (mesto)]]")
stranka = stranka.replace(u"Košice - okolie", u"Košice-okolie")

print stranka

sknazov = sknazov.replace(u"národní přírodní památka", u"národná prírodná pamiatka")
sknazov = sknazov.replace(u"národní přírodní rezervace", u"národná prírodná rezervácia")
sknazov = sknazov.replace(u"přírodní památka", u"prírodná pamiatka")
sknazov = sknazov.replace(u"Přírodní památka", u"Prírodná pamiatka")
sknazov = sknazov.replace(u"přírodní rezervace", u"prírodná rezervácia")
sknazov = sknazov.replace(u"chráněný areál", u"chránený areál")

sksite = pywikibot.getSite("sk")
skstranka = pywikibot.Page( sksite, sknazov )
skstranka.put(stranka, u"preklad z českej verzie")

item = pywikibot.ItemPage.fromPage(csstranka)
item.get()
item.setSitelink(sitelink={'site': 'skwiki', 'title': '%s' % sknazov}, summary=u'interwiki')