Redaktor:Wizzo-Bot/wizzo-bot ngc.py
Vzhled
#!/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 )