Redaktor:Wizzo-Bot/wizzo-bot ngclist.py

z Wikipédie, slobodnej encyklopédie

#!/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")