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

Z Wikipédie

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

import wikipedia, string, urllib2
from atomobot_language import AtomobotLanguageSlovak
from wizzo_bot_support import WizzoBotSuhvezdie
from operator import itemgetter

lang = AtomobotLanguageSlovak()
suhv = WizzoBotSuhvezdie()

typ = {
        ' Gx': u'[[galaxia]]',
        ' OC': u'[[otvorená hviezdokopa]]',
        ' Gb': u'[[guľová hviezdokopa]]',
        ' Nb': u'jasná [[hmlovina]]',
        ' Pl': u'[[planetárna hmlovina]]',
        'C+N': u'[[hmlovina]] a [[hviezdokopa]]',
        'Ast': u'[[Asterizmus]] alebo skupina [[hviezda|hviezd]]',
        ' Kt': u'uzol alebo [[hmlovina]] v inej galaxii',
        '***': u'[[trojhviezda]]',
        ' D*': u'[[dvojhviezda]]',
        '  *': u'samostatná [[hviezda]]',
        '  ?': u'objekt neistého typu',
        '   ': u'neidentifikovaný objekt',
        '  -': u'neexistujúci objekt',
        ' PD': u'chyba fotografickej platne',
}

ic = {}
lines = {}

subor = urllib2.urlopen("ftp://cdsarc.u-strasbg.fr/cats/VII/118/ngc2000.dat")

for k in range(13226):
        lines[k] = subor.readline()

items = lines.items()
items.sort(key = itemgetter(1))

for j in range(1, 23):
        clanok = u"""{{IC navigátor}}

{| class=wikitable
! Názov || Typ || [[Rektascenzia]] || [[Deklinácia]] || Najväčší rozmer || [[Magnitúda]] || [[Súhvezdie]]
"""

        for i in range(7840+j*250-250, 7840+j*250):
                if i < (7840+5386):
                        line = items[i][1]
                        ic['nazov'] = line[0:6]
                        ic['nazov'] = ic['nazov'].replace(" ", "")
                        ic['nazov'] = ic['nazov'].replace("I", "IC ")
                        ic['rektascenzia'] = line[10:12]+u"h "+line[13:17]+"'"
                        ic['rektascenzia'] = ic['rektascenzia'].replace(".", ",")
                        ic['deklinacia'] = line[19:22]+u"°" + line[22:25]+u"'"
                        ic['typ'] = u"%s" % typ[line[6:9]]
                        ic['suhv'] = u"%s" % suhv.suhvezdie[line[29:32].upper()] 
                        ic['suhvezdie'] = u"[[Súhvezdie %s|%s]]" % (suhv.suhvezdie[line[29:32].upper()],
                        suhv.suhvezdie[line[29:32].upper()])
                        ic['rozmer'] = line[34:38]
                        ic['rozmer'] = ic['rozmer'].replace(". ", "")
                        ic['rozmer'] = ic['rozmer'].replace(".", ",")
                        if ic['rozmer']!="    ": ic['rozmer'] = u"%s'" % ic['rozmer']
                        ic['mag'] = line[40:44]
                        ic['mag'] = ic['mag'].replace(". ", "")
                        ic['mag'] = ic['mag'].replace(".", ",")
                        clanok += u"""|- 
! [[%(nazov)s]]
| %(typ)s || %(rektascenzia)s || %(deklinacia)s || %(rozmer)s || %(mag)s || %(suhvezdie)s
""" %ic

        clanok += u"""|}

{{IC navigátor}}

[[Kategória:IC objekty|*]]
[[Kategória:Zoznamy astronomických objektov]]
"""

        print clanok
        
        posledny = j*250
        if posledny > 5386: posledny = 5386

        site = wikipedia.getSite()
        stranka = wikipedia.Page(site, u"Zoznam IC objektov %s-%s" % (j*250-249, posledny))
        stranka.put(clanok, u"vytvorenie")