Z Wikipédie
#!/usr/bin/python2.4
# -*- coding: utf-8 -*-
# ftp://cdsarc.u-strasbg.fr/cats/VII/118/ngc2000.dat
import wikipedia, string, csv
from atomobot_language import AtomobotLanguageSlovak
from wizzo_bot_support import WizzoBotSuhvezdie
lang = AtomobotLanguageSlovak()
suhv = WizzoBotSuhvezdie()
print u"Od akého objektu mám začať? ";
MIN = int( input() )
print u"Pri akom objekte mám skončiť? ";
MAX = int( input() )
ngc = {}
typ = {
'gxy' : u'galaxia',
'GxyP' : u'hviezdna asociácia',
'*Grp' : u'otvorená hviezdokopa',
'OCL' : u'otvorená hviezdokopa',
'GCL' : u'guľová hviezdokopa',
'*' : u'hviezda',
'*2' : u'dvojhviezda',
'*3' : u'trojhviezda',
'*4' : u'štvorhviezda',
'*?' : u'viacnásobná hviezda',
'PN' : u'planetárna hmlovina',
'EN' : u'emisná hmlovina',
'RN' : u'reflexná hmlovina',
'DN' : u'tmavá hmlovina',
'RN+EN' : u'reflexná hmlovina a emisná hmlovina',
'EN+RN' : u'emisná hmlovina a reflexná hmlovina',
'EN+OCL': u'emisná hmlovina s otvorenou hviezdokopou',
'EN+*' : u'emisná hmlovina s hviezdou',
'SNR' : u'zvyšok supernovy',
'SNR?' : u'hmlovina',
'OCL+PN': u'otvorená hviezdokopa a planetárna hmlovina',
'OCL+EN': u'otvorená hviezdokopa s emisnou hmlovinou',
'OCL+RN': u'otvorená hviezdokopa s reflexnou hmlovinou',
'*Cloud': u'hmlovina',
'NF' : u'neexistujúci objekt'
}
def vytvor_clanok( udaje ):
infobox = u"""{{deepsky |
názov = %(nazov)s |
typ = %(typ)s |
rektascenzia = %(rektascenzia)s |
deklinácia = %(deklinacia)s |
zdanlivá jasnosť = %(vmag)s |
súhvezdie = %(suhv)s |
obrázok = Astro no image.png |
epocha = 2000.0 |
}}
""" % udaje
clanok = infobox + u"""
'''%(nazov)s''' je %(typ)s v súhvezdí %(suhvezdie)s, ktorú objavil %(objavitel)s %(datuma)s.
%(velkost)s
{{navigátor|NGC %(prev)s|NGC %(next)s}}
{{astronomický výhonok}}
== Pozri aj ==
* [[Zoznam NGC objektov]]
[[Kategória:Súhvezdie %(suhv)s]]
[[Kategória:NGC objekty|%(cislo)s]]
""" % udaje
if u"%(typ)s" % udaje == u"[[neexistujúci objekt]]":
clanok = u"#REDIRECT [[Zoznam NGC objektov]]"
site = wikipedia.getSite()
stranka = wikipedia.Page( site, ngc['nazov'] )
if stranka.exists() and (not stranka.isRedirectPage()):
povodny = stranka.get()
clanok = infobox + povodny
if (not stranka.isRedirectPage()):
stranka.put(clanok, u"vytvorenie NGC objektu podľa šablóny")
reader = csv.reader(file("/home/wizzard/ngc.csv"), delimiter=";")
j = 0
reader.next()
for i in reader:
j = j+1
if (j >= MIN) and (j <= MAX):
if (i[3] != "-") and (i[3] != "*"):
i[3] = int(i[3])
datum_mes = lang.MONTH_NAME[ i[3] ]
datuma_mes = lang.MONTH_NAME_GEN[ i[3] ]
else:
datum_mes = ""
if i[4] != "-":
objav_den = i[4]
else:
objav_den = ''
if i[2] != "-":
objav_rok = i[2]
if (datum_mes != "") and (objav_den != ""):
ngc['datum'] = "[[%s. %s]] [[%s]]" % ( objav_den, datum_mes, objav_rok )
ngc['datuma'] = "[[%s. %s|%s. %s]] [[%s]]" % ( objav_den, datum_mes, objav_den, datuma_mes, objav_rok )
else:
ngc['datum'] = "[[%s]]" % ( objav_rok )
ngc['datuma'] = "v roku [[%s]]" % ( objav_rok )
ngc['nazov'] = "NGC %s" % i[0]
ngc['cislo'] = "%s" % i[0]
ngc['objavitel'] = i[1]
if " " in ngc['objavitel']:
priezvisko, meno = ngc['objavitel'].split();
ngc['objavitel'] = "[[%s %s]]" % (meno, priezvisko)
else:
ngc['objavitel'] = "[[%s]]" % ngc['objavitel']
ngc['suhv'] = u"%s" % suhv.suhvezdie[i[18]]
ngc['suhvezdie'] = u"[[Súhvezdie %s|%s]]" % (suhv.suhvezdie[i[18]], suhv.suhvezdie[i[18]])
ngc['typ'] = "[[%s]]" % typ[i[19]]
ngc['rektascenzia'] = u"%sh %sm %ss" % (i[10], i[11], i[12])
ngc['deklinacia'] = u"%s%s° %s' %s\"" % (i[13], i[14], i[15], i[16])
ngc['vmag'] = i[17]
if ngc['vmag'] != "-":
ngc['velkost'] = u"""
Jej zdanlivá [[hviezdna veľkosť]] je %s.
""" % ngc['vmag']
else:
ngc['velkost'] = ""
if j == 1:
ngc['prev'] = 7840
else:
ngc['prev'] = j-1
if j == 7840:
ngc['next'] = 1
else:
ngc['next'] = j+1
udaje = {}
udaje.update(ngc)
vytvor_clanok( udaje )