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

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