Redaktor:Wizzo-Bot/wizzo-bot ngclist.py
Vzhled
#!/usr/bin/python2.4 # -*- coding: utf-8 -*- import wikipedia, string, csv from atomobot_language import AtomobotLanguageSlovak from wizzo_bot_support import WizzoBotSuhvezdie lang = AtomobotLanguageSlovak() suhv = WizzoBotSuhvezdie() 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' } for k in range(32): reader = csv.reader(file("/home/wizzard/ngc.csv"), delimiter=";") reader.next() j = 0 clanok = u"""{| {{pekná tabuľka}} |- bgcolor=lightgrey ! Označenie || Typ objektu || [[Rektascenzia]] || [[Deklinácia]] || [[Zdanlivá jasnosť]] || [[Súhvezdie]] || Dátum objavu || Objaviteľ """ for i in reader: j = j+1 if (j < (251+k*250)) and (j > (k*250)): ngc['cislo'] = j if i[19] == "NF": ngc['nazov'] = "NGC %s" % str(j) else: ngc['nazov'] = "[[NGC %s]]" % str(j) ngc['suhv'] = u"%s" % suhv.suhvezdie[i[18]] ngc['suhvezdie'] = u"[[Súhvezdie %s|%s]]" % (suhv.suhvezdie[i[18]], suhv.suhvezdie[i[18]]) 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 i[19] == "NF": ngc['typ'] = "%s" % typ[i[19]] else: ngc['typ'] = "[[%s]]" % typ[i[19]] 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'] if (i[3] != "-") and (i[3] != "*"): i[3] = int(i[3]) datum_mes = lang.MONTH_NAME[ i[3] ] else: datum_mes = "" if i[4] != "-": objav_den = i[4] if i[2] != "-": objav_rok = i[2] if datum_mes != "": ngc['datum'] = "[[%s. %s]] [[%s]]" % ( objav_den, datum_mes, objav_rok ) else: ngc['datum'] = "[[%s]]" % ( objav_rok ) udaje = {} udaje.update(ngc) clanok += u"""|- | %(nazov)s || %(typ)s || %(rektascenzia)s || %(deklinacia)s || %(vmag)s || %(suhvezdie)s || %(datum)s || %(objavitel)s \r\n""" % udaje clanok += u"""|} [[Kategória:NGC objekty|*]] [[Kategória:Zoznamy astronomických objektov]] [[en:List of NGC objects]] """ zoznam = "" start = 250 * k + 1 stop = start + 249 if stop == 8000: stop = 7840 prev = "%s-%s" % (start-250, stop-250) next = "%s-%s" % (start+250, stop+250) if start < 2: prev = "7751-7840" if stop > 7800: next = "1-250" navig = u"{{navigátor|Zoznam NGC objektov %s|Zoznam NGC objektov %s}}\r\n" % (prev, next) zoznam = navig + clanok site = wikipedia.getSite() stranka = wikipedia.Page( site, u"Zoznam NGC objektov %s-%s" % (start, stop) ) stranka.put(zoznam, u"testovanie bota")