Uzanto:Maksim/ngc
Aspekto
- podg_st_ngc.py
# -*- coding: utf-8 -*-
# ftp://cdsarc.u-strasbg.fr/cats/VII/118/ngc2000.dat
import wikipedia, string, csv, sys, os, codecs
from atomobot_la2 import AtomobotLanguageRu
from tbl_sozv import WizzoBotSuhvezdie
from bib_tekst import *
lang = AtomobotLanguageRu()
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() )
MIN=1
MAX=7840
def vivod(b):
wikipedia.output(b)
otch.write(b)
otch.flush()
def prev(j,min,max):
if j <= min:
return max
else:
return j-1
def next(j,min,max):
if j >= max:
return min
else:
return j+1
#en:Category:Nebular images
#http://www.astrosurf.com/cielextreme/page47F.html
imobj = {
u'Herschel W.' : (u'Уильям Гершель',u'William Herschel'),
u'Herschel J.' : (u'Джон Гершель','John Herschel'),
u'Marth' : (u'', u'Albert Marth'),
u'Swift L.' : (u'',u'Lewis A. Swift'),
u'Stephan' : (u'',u'Édouard Jean-Marie Stephan'),
u'd\'Arrest' : (u'Генрих Луи Д\'Арре',u'Heinrich Louis d\'Arrest'),
u'Leavenworth' : (u'',u'Frank Leavenworth'), #LEAVENWORTH; Frank P.; ????-????; USA
u'Parsons W.' : (u'Уильям Парсонс',u'William Parsons'), #William Parsons, 3rd Earl of Rosse
u'Dunlop' : (u'',u'James Dunlop'),
u'Tempel' : (u'Эрнст Вильгельм Леберехт Темпель',u'Ernst Wilhelm Leberecht Tempel'),
u'Stone' : (u'',u'Ormond Stone'),
u'Muller' : (u'',u'Frank Müller'), #MULLER [Müller]; Frank; ????-????; USA
u'Bigourdan' : (u'',u'Guillaume Bigourdan'),
u'Messier' : (u'Чарльз Мессье',u'Charles Messier'),
u'Parsons L.' : (u'',u'Lawrence Parsons'), #Lawrence Parsons, 4th Earl of Rosse
u'Copeland' : (u'',u'Ralph Copeland'),
u'Common' : (u'-',u'-'),
u'Swift E.' : (u'',u'Edward D. Swift'),
u'Mechain' : (u'Пьер Мешен',u'Pierre Méchain'), # Pierre François André Méchain
u'Lacaille' : (u'Никола Луи де Лакайль',u'Nicolas Louis de Lacaille'),
u'Holden' : (u'',u'Edward Singleton Holden'),
u'Barnard' : (u'Эдуард Эмерсон Барнард',u'Edward Emerson Barnard'),
u'Struve W.' : (u'Василий Яковлевич Струве',u'Friedrich Georg Wilhelm Struve'), #нем.
}
sh_=(u'',u'')
#sh_ga=(u'Галактика',u'Шаблон:Галактика 2')
sh_ga=(u'Галактика',u'Галактика 2')
sh_zvsk=(u'Звёздное скопление',u'Звёздное скопление')
sh_zv=(u'Звезда',u'Звезда')
sh_pltu=(u'Планетарная туманность',u'Планетарная туманность 2')
sh_ditu=(u'Диффузная туманность',u'Диффузная туманность 2')
sh_tjotu=(u'Тёмная туманность',u'Тёмная туманность')
sh_tu=(u'Туманность',u'Туманность')
typ = {
'gxy' : (sh_ga,u'Галактика',u'Галактики',u''),
'GxyP' : (sh_zvsk,u'Звёздная ассоциация',u'Звёздные ассоциации',u''),#u'hviezdna asociácia',
'*Grp' : (sh_zvsk,u'Рассеянное скопление',u'Рассеянные скопления',u''),#u'otvorená hviezdokopa',
'OCL' : (sh_zvsk,u'Рассеянное скопление',u'Рассеянные скопления',u''),#u'otvorená hviezdokopa',
'GCL' : (sh_zvsk,u'Шаровое скопление',u'Шаровые скопления',u''),#u'guľová hviezdokopa',
'*' : (sh_zv,u'Звезда',u'Звёзды',u''),#u'hviezda',
'*2' : (sh_zv,u'Двойная звезда',u'Двойные звёзды',u''),#u'dvojhviezda',
'*3' : (sh_zv,u'Тройная звезда',u'Тройные звёзды',u''),#u'trojhviezda',
'*4' : (sh_zv,u'Четверная звезда',u'Четверные звёзды',u''),#u'štvorhviezda',
'*?' : (sh_zv,u'Кратная звезда',u'Кратные звёзды',u''),#u'viacnásobná hviezda',
'PN' : (sh_pltu,u'Планетарная туманность',u'Планетарные туманности',u''),#u'planetárna hmlovina',
'EN' : (sh_ditu,u'Эмиссионная туманность',u'Эмиссионные туманности',u''),#u'emisná hmlovina',
'RN' : (sh_ditu,u'Отражающая туманность',u'Отражающие туманности',u''),#u'reflexná hmlovina',
'DN' : (sh_tjotu,u'Тёмная туманность',u'Тёмные туманности',u''),#u'tmavá hmlovina',
'RN+EN' : (sh_ditu,u'Отражающая туманность и эмиссионная туманность',u'Отражающие туманности',u'Эмиссионные туманности'),#u'reflexná hmlovina a emisná hmlovina',
'EN+RN' : (sh_ditu,u'Эмиссионная туманность и отражающая туманность',u'Эмиссионные туманности',u'Отражающие туманности'),#u'emisná hmlovina a reflexná hmlovina',
'EN+OCL': (sh_ditu,u'Эмиссионная туманность с рассеянным скоплением',u'Эмиссионные туманности',u'Рассеянные скопления'),#u'emisná hmlovina s otvorenou hviezdokopou',
'EN+*' : (sh_ditu,u'Эмиссионная туманность со звездой',u'Эмиссионные туманности',u'Звёзды'),#u'emisná hmlovina s hviezdou',
'SNR' : (sh_ditu,u'Остатки сверхновой',u'Остатки сверхновых',u''),#u'zvyšok supernovy',
'SNR?' : (sh_tu,u'Туманность',u'Туманности',u''),#u'hmlovina',
'OCL+PN': (sh_zvsk,u'Рассеянное скопление с планетарной туманностью',u'Рассеянные скопления',u'Планетарные туманности'),#u'otvorená hviezdokopa a planetárna hmlovina',
'OCL+EN': (sh_zvsk,u'Рассеянное скопление с эмиссионной туманностью',u'Рассеянные скопления',u'Эмиссионные туманности'),#u'otvorená hviezdokopa s emisnou hmlovinou',
'OCL+RN': (sh_zvsk,u'Рассеянное скопление с отражающей туманностью',u'Рассеянные скопления',u'Отражающие туманности'),#u'otvorená hviezdokopa s reflexnou hmlovinou',
'*Cloud': (sh_tu,u'Туманность',u'Туманности',u''),#u'hmlovina',
'NF' : (sh_,u'',u'',u''),#u'neexistujúci objekt'
}
def vytvor_clanok( udaje ):
infobox = ((u'{{%(shabl)s |\n'+
#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 |
u'Название = %(nazov)s |\n'+
u'Обозначения = %(obozn)s |\n'+
u'Тип = %(typ)s |\n'+
u'Прямое_восхождение = %(rektascenzia)s |\n'+
u'Склонение = %(deklinacia)s |\n'+
u'Видимая_звёздная_величина = %(vmag)s |\n'+
u'Созвездие = %(suhv)s |\n'+
u'Эпоха = [[J2000.0]] |\n'+
u'Открыватель = %(objavitel)s |\n'+
u'Дата_открытия = %(datuma)s\n'+
u'}}\n') % udaje)
clanok = (infobox +
#'''%(nazov)s''' je %(typ)s v súhvezdí %(suhvezdie)s, ktorú objavil %(objavitel)s %(datuma)s.
u"'''%(nazov)s''' %(nazovdop)s— %(typc)s в созвездии [[%(suhv)s (созвездие)|%(suhv)s]].\n"+
u'%(temnob)s'+
u'\n== См. также ==\n\n'+
u'* [[Список объектов Мессье]]\n'+
u'* [[Новый общий каталог]]\n\n'+
u'%(dopnavig)s'+
#%(velkost)s
u'{{Навигатор NGC|'+
u'NGC %(prev4)s|'+
u'NGC %(prev3)s|'+
u'NGC %(prev2)s|'+
u'NGC %(prev)s|'+
u'NGC %(cislo)s|'+
u'NGC %(next)s|'+
u'NGC %(next2)s|'+
u'NGC %(next3)s|'+
u'NGC %(next4)s'+
u'}}\n\n'+
#{{astronomický výhonok}}
#== Pozri aj ==
#* [[Zoznam NGC objektov]]
#[[Kategória:NGC objekty|%(cislo)s]]
#u'[[Категория:%(typkat)s]]\n'+
u'[[Категория:Объекты NGC|%(cislo0)s]]\n%(katmes)s'+
u'[[Категория:%(suhv)s (созвездие)]]\n%(kat1)s%(kat2)s\n'+
u'%(ivien)s[[sk:NGC %(cislo)s]]\n'
) % udaje
# if u"%(typ)s" % udaje == u"[[neexistujúci objekt]]":
# clanok = u"#REDIRECT [[Zoznam NGC objektov]]"
# wikipedia.output(u'ne %d'%udaje['cislo'])
# 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")
return clanok
#fvh = wikipedia.argHandler(sys.argv[1], 'slov_iz_xml')
#reader = csv.reader(codecs.open("ngc.csv", 'rb', 'utf-8'), delimiter=u";")
reader=codecs.open("ngc.csv", 'rb', 'utf-8')
tblen={}
fpref=codecs.open("ngc-en.txt",'rb',encoding='utf-8')
for s in fpref.readlines():
if ord(s[0]) == 65279:
s=s[1:]
s=ubr_nk_prob(s)
tblen[s]=1
fpref.close()
tblm={}
fpref=codecs.open("ngc-m.txt",'rb',encoding='utf-8')
for s in fpref.readlines():
if ord(s[0]) == 65279:
s=s[1:]
s=ubr_nk_prob(s)
st=s.split(u'|')
if len(st)==2:
tblm[ubr_nk_prob(st[0])]=ubr_nk_prob(st[1])
fpref.close()
fi = wikipedia.argHandler(sys.argv[1], 'slov_iz_xml')
fvih= fi+u'.txt'
fotch = fi+u'-ot.txt'
f1=codecs.open(fvih, 'w', 'utf-8')
otch = codecs.open(fotch, 'w', 'utf-8')
j = -1
#reader.next()
tobj={}
for i1 in reader.readlines():
i=i1.split(u';')
j = j+1
if (j >= MIN) and (j <= MAX):
# wikipedia.output(u'%d'%j)
ngc = {}
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 = u""
if i[4] != u"-":
objav_den = i[4]
else:
objav_den = ''
if i[2] != u"-":
objav_rok = i[2]
if (datum_mes != u"") and (objav_den != u""):
# ngc['datum'] = u"[[%s. %s]] [[%s]]" % ( objav_den, datum_mes, objav_rok )
# ngc['datuma'] = u"[[%s. %s|%s. %s]] [[%s]]" % ( objav_den, datum_mes, objav_den, datuma_mes, objav_rok )
ngc['datum'] = u"[[%s %s]] [[%s]]" % ( objav_den, datuma_mes, objav_rok )
ngc['datuma'] = ngc['datum']
else:
ngc['datum'] = u"[[%s]]" % ( objav_rok )
# ngc['datuma'] = u"v roku [[%s]]" % ( objav_rok )
ngc['datuma'] = ngc['datum']
# ngc['nazov'] = u"NGC %s" % i[0]
# ngc['cislo'] = u"%s" % i[0]
ngc['nazov'] = u"NGC %d" % j
ngc['cislo'] = u"%d" % j
ngc['cislo0'] = u"%04d" % j
if u"%d" % j!=i[0]:
wikipedia.output(u'j!=i[0] %d'%j)
obj = i[1]
if tobj.has_key(obj):
tobj[obj]+=1
else:
tobj[obj]=1
iru=u''
ila=u''
if imobj.has_key(obj):
(iru,ila)=imobj[obj]
if iru!=u'':
obj=iru
if obj!=u'-':
obj=u'[['+obj+u']]'
elif ila!=u'':
obj=u'<!-- '+ila+u' -->'
else:
obj=u'<!-- '+obj+u' -->'
ngc['objavitel'] = obj
# if u" " in ngc['objavitel']:
# priezvisko, meno = ngc['objavitel'].split();
# ngc['objavitel'] = u"[[%s %s]]" % (meno, priezvisko)
# else:
# ngc['objavitel'] = u"[[%s]]" % ngc['objavitel']
ngc['suhv'] = u"%s" % suhv.suhvezdie_ru[i[18]]
# ngc['typ'] = "[[%s]]" % typ[i[19]]
(sh,to,kat1,kat2)=typ[i[19]]
(shosn,shabl)=sh
if shabl==u'':
wikipedia.output(u'ne %d'%j)
continue
if to==shosn:
ngc['typ']=u''
else:
ngc['typ']=to
ngc['typc']=to.lower()
if kat1!=u'':
kat1=u'[[Категория:%s]]\n'%kat1
ngc['kat1']=kat1
if kat2!=u'':
kat2=u'[[Категория:%s]]\n'%kat2
ngc['kat2']=kat2
ngc['typkat']=to
ngc['shabl']=shabl
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'] = ""
ngc['vmag'] = u''
pr=prev(j,1,7840)
pr2=prev(pr,1,7840)
pr3=prev(pr2,1,7840)
pr4=prev(pr3,1,7840)
ne=next(j,1,7840)
ne2=next(ne,1,7840)
ne3=next(ne2,1,7840)
ne4=next(ne3,1,7840)
ngc['prev'] = pr
ngc['prev2'] = pr2
ngc['prev3'] = pr3
ngc['prev4'] = pr4
ngc['next'] = ne
ngc['next2'] = ne2
ngc['next3'] = ne3
ngc['next4'] = ne4
ivien=u''
if tblen.has_key(ngc['nazov']):
ivien=u'[[en:%s]]\n'%ngc['nazov']
ngc['ivien']=ivien
clanok=u''
sobozn=i[26:28]
ngc['dopnavig'] = u''
ngc['katmes'] = u''
messob2=u''
if tblm.has_key(ngc['nazov']):
b=u'%s\n#REDIRECT [[%s]]\n========\n'%(ngc['nazov'],tblm[ngc['nazov']])
f1.write(b)
f1.flush()
sobozn.append(ngc['nazov'])
ngc['nazov']=tblm[ngc['nazov']]
ngc['dopnavig'] = u'{{Каталог Мессье}}\n'
ngc['katmes'] = u'[[Категория:Объекты Мессье]]\n'
jm=int(ngc['nazov'][1:])
messob2=u"'''Messier %d''', '''Мессье %d'''"%(jm,jm)
# teob=u''
teob=u"'''%s'''"%ngc['nazov']
tedopob=u''
ndopob=0
tengcob=u''
nngcob=0
if messob2!=u'':
teob+=u', '+messob2
if ngc['nazov'].startswith(u'NGC '):
# if tengcob!=u'':
# tengcob+=u', '
tengcob+=u"'''%s'''"%ngc['nazov']
nngcob+=1
for ob in sobozn:
if ob==u'-':
continue
if ob.startswith(u'NGC '):
j1=int(ob[4:])
if j1<j:
clanok = u"#REDIRECT [[NGC %d]]"%j1
break
if tengcob!=u'':
tengcob+=u', '
tengcob+=u"'''%s'''"%ob
nngcob+=1
# if teob==u'':
# teob=u"'''%s'''"%ngc['nazov']
teob+=u', '
teob+=u"'''%s'''"%ob
if tedopob!=u'':
tedopob+=u', '
tedopob+=u"'''%s'''"%ob
ndopob+=1
ngc['obozn'] = teob
if ndopob==1:
tedopob=u'другое обозначение — %s'%tedopob
elif ndopob>1:
tedopob=u'другие обозначения — %s'%tedopob
nazovdop=u''
if messob2!=u'' or tedopob!=u'':
if messob2!=u'' and tedopob!=u'':
nazovdop=u'(%s, %s) '%(messob2,tedopob)
else:
nazovdop=u'(%s%s) '%(messob2,tedopob)
ngc['nazovdop']=nazovdop
temnob=u''
if nngcob>1:
temnob=((u"\nЭтот объект был занесён в [[новый общий каталог]] "+
u"несколько раз, с обозначениями %s.\n")%tengcob)
ngc['temnob'] = temnob
if clanok==u'':
udaje = {}
udaje.update(ngc)
clanok=vytvor_clanok( udaje )
b=((u'%s\n%s\n========\n')%(ngc['nazov'],clanok))
f1.write(b)
f1.flush()
sobj=[]
for t, n in tobj.iteritems():
sobj.append((n,t))
sobj.sort(reverse=True)
for n, t in sobj:
# vivod(u'%d %s\n'%(n,t))
pass
for n, t in sobj:
# vivod(u' u\'%s\' : u\'\',\n'%t)
pass
for t, n in suhv.suhvezdie_ru.iteritems():
b=((u'Категория:%s (созвездие)\n'+
u'{{catmain}}\n\n[[Категория:Созвездия]]\n\n'+
u'[[sk:Kategória:Súhvezdie %s]]\n\n'+
u'========\n')%(n,suhv.suhvezdie_sk[t]))
f1.write(b)
f1.flush()
* tbl_sozv.py
# -*- coding: utf-8 -*-
class WizzoBotSuhvezdie:
suhvezdie_ru = {
u'AND': u'Андромеда',
u'GEM': u'Близнецы',
u'UMA': u'Большая Медведица',
u'CMA': u'Большой Пёс',
u'LIB': u'Весы',
u'AQR': u'Водолей',
u'AUR': u'Возничий',
u'LUP': u'Волк',
u'BOO': u'Волопас',
u'COM': u'Волосы Вероники',
u'CRV': u'Ворон',
u'HER': u'Геркулес',
u'HYA': u'Гидра',
u'COL': u'Голубь',
u'CVN': u'Гончие Псы',
u'VIR': u'Дева',
u'DEL': u'Дельфин',
u'DRA': u'Дракон',
u'MON': u'Единорог',
u'ARA': u'Жертвенник',
u'PIC': u'Живописец',
u'CAM': u'Жираф',
u'GRU': u'Журавль',
u'LEP': u'Заяц',
u'OPH': u'Змееносец',
u'SER': u'Змея',
u'DOR': u'Золотая Рыба',
u'IND': u'Индеец',
u'CAS': u'Кассиопея',
u'CAR': u'Киль',
u'CET': u'Кит',
u'CAP': u'Козерог',
u'PYX': u'Компас',
u'PUP': u'Корма',
u'CYG': u'Лебедь',
u'LEO': u'Лев',
u'VOL': u'Летучая Рыба',
u'LYR': u'Лира',
u'VUL': u'Лисичка',
u'UMI': u'Малая Медведица',
u'EQU': u'Малый Конь',
u'LMI': u'Малый Лев',
u'CMI': u'Малый Пёс',
u'MIC': u'Микроскоп',
u'MUS': u'Муха',
u'ANT': u'Насос',
u'NOR': u'Наугольник',
u'ARI': u'Овен',
u'OCT': u'Октант',
u'AQL': u'Орёл',
u'ORI': u'Орион',
u'PAV': u'Павлин',
u'VEL': u'Паруса',
u'PEG': u'Пегас',
u'PER': u'Персей',
u'FOR': u'Печь',
u'APS': u'Райская Птица',
u'CNC': u'Рак',
u'CAE': u'Резец',
u'PSC': u'Рыбы',
u'LYN': u'Рысь',
u'CRB': u'Северная Корона',
u'SEX': u'Секстант',
u'RET': u'Сетка',
u'SCO': u'Скорпион',
u'SCU': u'Скульптор',
u'SCL': u'Скульптор',
u'MEN': u'Столовая Гора',
u'SGE': u'Стрела',
u'SGR': u'Стрелец',
u'TEL': u'Телескоп',
u'TAU': u'Телец',
u'TRI': u'Треугольник',
u'TUC': u'Тукан',
u'PHE': u'Феникс',
u'CHA': u'Хамелеон',
u'CEN': u'Центавр',
u'CEP': u'Цефей',
u'CIR': u'Циркуль',
u'HOR': u'Часы',
u'CRT': u'Чаша',
u'SCT': u'Щит',
u'ERI': u'Эридан',
u'HYI': u'Южная Гидра',
u'CRA': u'Южная Корона',
u'PSA': u'Южная Рыба',
u'CRU': u'Южный Крест',
u'TRA': u'Южный Треугольник',
u'LAC': u'Ящерица',
}
suhvezdie_sk = {
'AND': u'Androméda',
'ANT': u'Výveva',
'APS': u'Rajka',
'AQR': u'Vodnár',
'AQL': u'Orol',
'ARA': u'Oltár',
'ARI': u'Baran',
'AUR': u'Povozník',
'BOO': u'Pastier',
'CAE': u'Rydlo',
'CAM': u'Žirafa',
'CNC': u'Rak',
'CVN': u'Poľovné psy',
'CMA': u'Veľký pes',
'CMI': u'Malý pes',
'CAP': u'Kozorožec',
'CAR': u'Kýl',
'CAS': u'Kasiopeja',
'CEN': u'Kentaur',
'CEP': u'Cefeus',
'CET': u'Veľryba',
'CHA': u'Chameleón',
'CIR': u'Kružidlo',
'COL': u'Holubica',
'COM': u'Vlasy Bereniky',
'CRA': u'Južná koruna',
'CRB': u'Severná koruna',
'CRV': u'Havran',
'CRT': u'Pohár',
'CRU': u'Južný kríž',
'CYG': u'Labuť',
'DEL': u'Delfín',
'DOR': u'Mečiar',
'DRA': u'Drak',
'EQU': u'Koník',
'ERI': u'Eridanus',
'FOR': u'Pec',
'GEM': u'Blíženci',
'GRU': u'Žeriav',
'HER': u'Herkules',
'HOR': u'Hodiny',
'HYA': u'Hydra',
'HYI': u'Vodný had',
'IND': u'Indián',
'LAC': u'Jašterica',
'LEO': u'Lev',
'LMI': u'Malý lev',
'LEP': u'Zajac',
'LIB': u'Váhy',
'LUP': u'Vlk',
'LYN': u'Rys',
'LYR': u'Lýra',
'MEN': u'Stolový vrch',
'MIC': u'Mikroskop',
'MON': u'Jednorožec',
'MUS': u'Mucha',
'NOR': u'Pravítko',
'OCT': u'Oktant',
'OPH': u'Hadonos',
'ORI': u'Orión',
'PAV': u'Páv',
'PEG': u'Pegas',
'PER': u'Perzeus',
'PHE': u'Fénix',
'PIC': u'Maliar',
'PSC': u'Ryby',
'PSA': u'Južná ryba',
'PUP': u'Korma',
'PYX': u'Kompas',
'RET': u'Sieť',
'SGE': u'Šíp',
'SGR': u'Strelec',
'SCO': u'Škorpión',
'SCL': u'Sochár',
'SCU': u'Sochár',
'SCT': u'Štít',
'SER': u'Had',
'SEX': u'Sextant',
'TAU': u'Býk',
'TEL': u'Ďalekohľad',
'TRI': u'Trojuholník',
'TRA': u'Južný trojuholník',
'TUC': u'Tukan',
'UMA': u'Veľký voz',
'UMI': u'Malý voz',
'VEL': u'Plachty',
'VIR': u'Panna',
'VOL': u'Lietajúca ryba',
'VUL': u'Líška'
}
* atomobot_la2.py
# -*- coding: utf-8 -*-
class AtomobotLanguageError( Exception ):
pass
class LanguageText( object ):
def __init__( self, lang, text ):
self.lang = lang
self.text = text
self.decomposed = tuple( self.lang.decompose( text ) )
def __str__( self ):
return self.text
def __repr__( self ):
return "LanguageText('%s', %s)" % ( self.lang.code, repr( self.text ) )
def __hash__( self ):
return hash( self.decomposed )
def __cmp__( self, other ):
if isinstance( other, LanguageText ):
return cmp( self.decomposed, other.decomposed )
elif isinstance( other, basestring ):
otherlangtext = LanguageText( self.lang, other )
return cmp( self, otherlangtext )
else:
raise TypeError()
class AtomobotLanguage( object ):
plurals = {}
def __init__( self ):
self.number = 0
self.letters = [ u'?' ]
self.number_by_letter = {}
self.cgroups_by_first = {}
self.letters_by_first = {}
self.ch_types = {}
def new_number( self ):
self.number += 1
return self.number
def plural( self, number, name ):
forms = self.plurals.get( name, None )
if not forms:
return name
number = abs( number )
if number >= 5:
return forms[5]
return forms[ number ]
def add_letter( self, letter, ch_type='letter' ):
number = self.new_number()
self.letters.append( letter )
self.number_by_letter[ letter ] = number
cgroups = self.cgroups_by_first.setdefault( letter[0], {} )
samelets = cgroups.setdefault( len( letter ), [] )
samelets.append( letter )
self.ch_types.setdefault( ch_type, set() ).add( letter )
def tidy_letters( self ):
for letter, cgroups in self.cgroups_by_first.iteritems():
lst = self.letters_by_first.setdefault( letter, [] )
for size in reversed( sorted( cgroups.keys() ) ):
lst.extend( cgroups[ size ] )
def decompose( self, text ):
text = text.upper()
decomposed = []
pos = 0
while True:
if pos >= len( text ):
break
ch = text[ pos ]
firstlets = self.letters_by_first.get( ch, None )
if not firstlets:
decomposed.append( 0 )
pos += 1
continue
for firstlet in firstlets:
if pos + len( firstlet ) > len( text ):
continue
cpos = 1
mismatched = False
for fl in firstlet[ 1: ]:
if fl != text[ pos + cpos ]:
mismatched = True
break
if mismatched:
continue
decomposed.append( self.number_by_letter[ firstlet ] )
pos += len( firstlet )
break
return decomposed
def compose( self, decotext ):
return u''.join( [ self.letters[ number ] for number in decotext ] )
def compare_ci( self, text1, text2 ):
dec1 = self.decompose( text1 )
dec2 = self.decompose( text2 )
return cmp( dec1, dec2 )
class AtomobotLanguageRu( AtomobotLanguage ):
code = 'ru'
plurals = {
'článok': ( u'článkov', u'článok', u'články', u'články', u'články', u'článkov' ),
'kategória': ( u'kategórií', u'kategória', u'kategórie', u'kategórie', u'kategórie', u'kategórií' ),
}
TEXT_UPDATE = u'Atomobot :: aktualizácia'
MONTH_NAME = {
# 1: u'január', 2: u'február', 3: u'marec', 4: u'apríl', 5: u'máj', 6: u'jún', 7: u'júl',
# 8: u'august', 9: u'september', 10: u'október', 11: u'november', 12: u'december' }
1: u'январь', 2: u'февраль', 3: u'март', 4: u'апрель', 5: u'май', 6: u'июнь', 7: u'июль',
8: u'август', 9: u'сентябрь', 10: u'октябрь', 11: u'ноябрь', 12: u'декабрь' }
MONTH_NAME_GEN = {
# 1: u'januára', 2: u'februára', 3: u'marca', 4: u'apríla', 5: u'mája', 6: u'júna', 7: u'júla',
# 8: u'augusta', 9: u'septembra', 10: u'októbra', 11: u'novembra', 12: u'decembra' }
1: u'января', 2: u'февраля', 3: u'марта', 4: u'апреля', 5: u'мая', 6: u'июня', 7: u'июля',
8: u'августа', 9: u'сентября', 10: u'октября', 11: u'ноября', 12: u'декабря' }
def __init__( self ):
super( AtomobotLanguageRu, self ).__init__()
self.init_collated_letters()
self.tidy_letters()
def format_number( self, number, places=0 ):
minus = False
number = float( number )
formatstr = '%%.%sf' % places
numberstr = formatstr % number
parts = numberstr.split( '.', 1 )
if len( parts ) > 1:
pre, post = parts
else:
pre = parts[0]
post = ''
if pre.startswith( '-' ):
pre = pre[1:]
minus = True
final_number = []
grouppos = 0
for digit in reversed( pre ):
if grouppos >= 3:
final_number.insert( 0, ' ' )
grouppos = 0
final_number.insert( 0, digit )
grouppos += 1
if minus:
final_number.insert( 0, '-' )
final_str = ''.join( final_number )
if post:
final_str += ',' + post
return final_str
def init_collated_letters( self ):
self.add_letter( u' ', 'symbol' )
self.add_letter( u'!', 'symbol' )
self.add_letter( u'"', 'symbol' )
self.add_letter( u'#', 'symbol' )
self.add_letter( u'$', 'symbol' )
self.add_letter( u'.', 'symbol' )
self.add_letter( u',', 'symbol' )
self.add_letter( u'-', 'symbol' )
self.add_letter( u'(', 'symbol' )
self.add_letter( u')', 'symbol' )
self.add_letter( u'0', 'number' )
self.add_letter( u'1', 'number' )
self.add_letter( u'2', 'number' )
self.add_letter( u'3', 'number' )
self.add_letter( u'4', 'number' )
self.add_letter( u'5', 'number' )
self.add_letter( u'6', 'number' )
self.add_letter( u'7', 'number' )
self.add_letter( u'8', 'number' )
self.add_letter( u'9', 'number' )
self.add_letter( u'A' )
self.add_letter( u'Á' )
self.add_letter( u'Â' )
self.add_letter( u'Ä' )
self.add_letter( u'Å' )
self.add_letter( u'Æ' )
self.add_letter( u'B' )
self.add_letter( u'C' )
self.add_letter( u'Ć' )
self.add_letter( u'Č' )
self.add_letter( u'Ç' )
self.add_letter( u'D' )
self.add_letter( u'Ď' )
self.add_letter( u'DZ' )
self.add_letter( u'DŽ' )
self.add_letter( u'Ð' )
self.add_letter( u'E' )
self.add_letter( u'É' )
self.add_letter( u'Ě' )
self.add_letter( u'Ę' )
self.add_letter( u'F' )
self.add_letter( u'G' )
self.add_letter( u'H' )
self.add_letter( u'CH' )
self.add_letter( u'I' )
self.add_letter( u'Ì' )
self.add_letter( u'Í' )
self.add_letter( u'Î' )
self.add_letter( u'Ï' )
self.add_letter( u'Į' )
self.add_letter( u'J' )
self.add_letter( u'K' )
self.add_letter( u'L' )
self.add_letter( u'Ĺ' )
self.add_letter( u'Ľ' )
self.add_letter( u'Ł' )
self.add_letter( u'M' )
self.add_letter( u'N' )
self.add_letter( u'Ń' )
self.add_letter( u'Ň' )
self.add_letter( u'Ñ' )
self.add_letter( u'O' )
self.add_letter( u'Ó' )
self.add_letter( u'Ô' )
self.add_letter( u'Ö' )
self.add_letter( u'Ő' )
self.add_letter( u'Œ' )
self.add_letter( u'Ø' )
self.add_letter( u'P' )
self.add_letter( u'Q' )
self.add_letter( u'R' )
self.add_letter( u'Ŕ' )
self.add_letter( u'Ř' )
self.add_letter( u'S' )
self.add_letter( u'Ś' )
self.add_letter( u'Š' )
self.add_letter( u'Ş' )
self.add_letter( u'T' )
self.add_letter( u'Ť' )
self.add_letter( u'U' )
self.add_letter( u'Ú' )
self.add_letter( u'Ů' )
self.add_letter( u'Ü' )
self.add_letter( u'Ű' )
self.add_letter( u'V' )
self.add_letter( u'W' )
self.add_letter( u'X' )
self.add_letter( u'Y' )
self.add_letter( u'Ý' )
self.add_letter( u'Z' )
self.add_letter( u'Ź' )
self.add_letter( u'Ž' )
* NGC-en.txt
NGC 1
NGC 1039
NGC 104
NGC 1049
NGC 1068
NGC 1097
NGC 1128
NGC 1156
NGC 1232
NGC 1232A
NGC 1275
NGC 1300
NGC 1300 galaxy
NGC 1309
NGC 1316
NGC 1365
NGC 1427
NGC 1435
NGC 147
NGC 1499
NGC 1502
NGC 1512
NGC 1514
NGC 1531
NGC 1531 and NGC 1532
NGC 1532
NGC 1559
NGC 1569
NGC 1637
NGC 17
NGC 1705
NGC 1818
NGC 185
NGC 1850
NGC 1872
NGC 188
NGC 1904
NGC 1912
NGC 1952
NGC 1960
NGC 1973, NGC 1975 and NGC 1977
NGC 1976
NGC 1982
NGC 1999
NGC 2
NGC 205
NGC 206
NGC 2068
NGC 2070
NGC 2080
NGC 2099
NGC 2158
NGC 2168
NGC 2169
NGC 2175
NGC 2204
NGC 2207
NGC 2207 and IC 2163
NGC 221
NGC 2237
NGC 224
NGC 225
NGC 2264
NGC 2287
NGC 2323
NGC 2346
NGC 2349
NGC 2360
NGC 2362
NGC 2392
NGC 2403
NGC 2419
NGC 2422
NGC 2437
NGC 2438
NGC 2440
NGC 2442
NGC 2447
NGC 2451
NGC 246
NGC 2477
NGC 2516
NGC 253
NGC 2541
NGC 2546
NGC 2547
NGC 2548
NGC 2632
NGC 2682
NGC 2683
NGC 2715
NGC 2736
NGC 2787
NGC 281
NGC 2841
NGC 2903
NGC 2915
NGC 292
NGC 2976
NGC 2997
NGC 3
NGC 300
NGC 3031
NGC 3034
NGC 3054
NGC 3077
NGC 3079
NGC 3109
NGC 3115
NGC 3132
NGC 3180
NGC 3184
NGC 3226
NGC 3227
NGC 3310
NGC 3314
NGC 3351
NGC 3368
NGC 3370
NGC 3372
NGC 3379
NGC 3384
NGC 3486
NGC 3521
NGC 3532
NGC 3556
NGC 3587
NGC 3596
NGC 3603
NGC 3623
NGC 3627
NGC 3628
NGC 3690
NGC 3766
NGC 381
NGC 3877
NGC 3949
NGC 3953
NGC 3982
NGC 3992
NGC 40
NGC 4013
NGC 4027
NGC 4038
NGC 4038 group of galaxies
NGC 4039
NGC 404
NGC 4088
NGC 4192
NGC 4216
NGC 4254
NGC 4258
NGC 4303
NGC 4314
NGC 4321
NGC 4374
NGC 4382
NGC 4395
NGC 4406
NGC 4414
NGC 4435
NGC 4438
NGC 4463
NGC 4472
NGC 4486
NGC 4501
NGC 4526
NGC 4548
NGC 4552
NGC 4555
NGC 4565
NGC 4567
NGC 4567 and NGC 4568
NGC 4568
NGC 4569
NGC 457
NGC 4579
NGC 4590
NGC 4594
NGC 4621
NGC 4631
NGC 4631 group of galaxies
NGC 4649
NGC 4656
NGC 4656/7
NGC 4656 and NGC 4657
NGC 4657
NGC 4676
NGC 47
NGC 4725
NGC 4736
NGC 4755
NGC 4826
NGC 4833
NGC 4881
NGC 4945
NGC 5024
NGC 5055
NGC 5078
NGC 5090
NGC 5090 and NGC 5091
NGC 5091
NGC 5102
NGC 5128
NGC 5128 Group
NGC 5128 group
NGC 5139
NGC 514
NGC 5164
NGC 5189
NGC 5194
NGC 5195
NGC 520
NGC 5236
NGC 5253
NGC 5272
NGC 5408
NGC 5457
NGC 55
NGC 5548
NGC 56
NGC 57
NGC 58
NGC 581
NGC 5866
NGC 5866 group
NGC 5904
NGC 5921
NGC 595
NGC 598
NGC 604
NGC 6093
NGC 6121
NGC 6152
NGC 6171
NGC 6205
NGC 6218
NGC 6231
NGC 6240
NGC 6254
NGC 6266
NGC 6273
NGC 628
NGC 6302
NGC 6333
NGC 6341
NGC 6397
NGC 6402
NGC 6405
NGC 6475
NGC 6494
NGC 650
NGC 651
NGC 6514
NGC 6523
NGC 6531
NGC 6537
NGC 6543
NGC 659
NGC 6603
NGC 6611
NGC 6613
NGC 6618
NGC 6626
NGC 663
NGC 6633
NGC 6637
NGC 6656
NGC 6681
NGC 6694
NGC 6705
NGC 6712
NGC 6715
NGC 6720
NGC 6744
NGC 6745
NGC 6751
NGC 6779
NGC 6781
NGC 6791
NGC 6809
NGC 6822
NGC 6838
NGC 6853
NGC 6864
NGC 6872
NGC 6872 and IC 4970
NGC 6888
NGC 6913
NGC 6946
NGC 6981
NGC 6994
NGC 7000
NGC 7009
NGC 7027
NGC 7078
NGC 7089
NGC 7092
NGC 7099
NGC 7129
NGC 7217
NGC 7293
NGC 7318
NGC 7318A
NGC 7318B
NGC 7320
NGC 7331
NGC 7380
NGC 7479
NGC 7510
NGC 752
NGC 7654
NGC 771
NGC 772
NGC 7742
NGC 7752
NGC 7752 and NGC 7753
NGC 7753
NGC 7789
NGC 7793
NGC 7814
NGC 869
NGC 884
NGC 891
* ngc-m.txt
NGC 1952 |M1
NGC 7089 |M2
NGC 5272 |M3
NGC 6121 |M4
NGC 5904 |M5
NGC 6405 |M6
NGC 6475 |M7
NGC 6523 |M8
NGC 6333 |M9
NGC 6254 |M10
NGC 6705 |M11
NGC 6218 |M12
NGC 6205 |M13
NGC 6402 |M14
NGC 7078 |M15
NGC 6611 |M16
NGC 6618 |M17
NGC 6613 |M18
NGC 6273 |M19
NGC 6514 |M20
NGC 6531 |M21
NGC 6656 |M22
NGC 6494 |M23
NGC 6694 |M26
NGC 6853 |M27
NGC 6626 |M28
NGC 6913 |M29
NGC 7099 |M30
NGC 224 |M31
NGC 221 |M32
NGC 598 |M33
NGC 1039 |M34
NGC 2168 |M35
NGC 1960 |M36
NGC 2099 |M37
NGC 1912 |M38
NGC 7092 |M39
NGC 2287 |M41
NGC 1976 |M42
NGC 1982 |M43
NGC 2632 |M44
NGC 2437 |M46
NGC 2422 |M47
NGC 2548 |M48
NGC 4472 |M49
NGC 2323 |M50
NGC 7654 |M52
NGC 5024 |M53
NGC 6715 |M54
NGC 6809 |M55
NGC 6779 |M56
NGC 6720 |M57
NGC 4579 |M58
NGC 4621 |M59
NGC 4649 |M60
NGC 4303 |M61
NGC 6266 |M62
NGC 5055 |M63
NGC 4826 |M64
NGC 3623 |M65
NGC 3627 |M66
NGC 2682 |M67
NGC 4590 |M68
NGC 6637 |M69
NGC 6681 |M70
NGC 6838 |M71
NGC 6981 |M72
NGC 6994 |M73
NGC 628 |M74
NGC 6864 |M75
NGC 1068 |M77
NGC 2068 |M78
NGC 1904 |M79
NGC 6093 |M80
NGC 3031 |M81
NGC 3034 |M82
NGC 5236 |M83
NGC 4374 |M84
NGC 4382 |M85
NGC 4406 |M86
NGC 4486 |M87
NGC 4501 |M88
NGC 4552 |M89
NGC 4569 |M90
NGC 4548 |M91
NGC 6341 |M92
NGC 2447 |M93
NGC 4736 |M94
NGC 3351 |M95
NGC 3368 |M96
NGC 3587 |M97
NGC 4192 |M98
NGC 4254 |M99
NGC 4321 |M100
NGC 5457 |M101
NGC 581 |M103
NGC 4594 |M104
NGC 3379 |M105
NGC 4258 |M106
NGC 6171 |M107
NGC 3556 |M108
NGC 3992 |M109
NGC 205 |M110
* sh_ru_kosm.txt
Шаблон:Галактика 2
{| class="infobox" style="border: 1px solid #999; border-right-width: 2px; border-bottom-width: 2px;"
|+ '''{{{Название}}}'''
|-
! style="background-color: #FFFFC0;" |<small>[[Галактика]]</small>
| align="center" |<small>[[:Категория:Галактики|Список галактик]]</small>
|-
| colspan="2" align="center" | {{qif
|test={{{Изображение|}}}
|then=[[Изображение:{{{Изображение}}}|250px|center|{{{Описание|{{{Название}}}}}}]] }}
|-
! style="background-color: #FFFFC0;" colspan="2" | История исследования
|-
| '''Открыватель'''
| {{{Открыватель|}}}
|-
| '''Дата открытия'''
| {{{Дата_открытия|}}}
|-
| '''Обозначения'''
| {{{Обозначения|}}}
|-
! colspan="2" style="background-color: #FFFFC0; text-align: center;" | Наблюдательные данные<br/><small>([[Эпоха (астрономия)|Эпоха]] {{{epoch}}})</small>
|-
| '''[[Последовательность Хаббла|Тип]]'''
| {{{Тип|}}}
|-
| '''[[Системы небесных координат|Прямое восхождение]]'''
| {{{Прямое_восхождение|}}}
|-
| '''[[Системы небесных координат|Склонение]]'''
| {{{Склонение|}}}
|-
| '''[[Красное смещение]]'''
| {{{z|?}}}
|-
| '''Расстояние'''
| {{{Расстояние|}}}
|-
| '''[[Видимая звёздная величина]]''' <small>(V)</small>
| {{{Видимая_звёздная_величина|}}}
|-
| '''Видимый размер''' <small>(V)</small>
| {{{Видимый_размер|}}}
|-
| '''[[Созвездие]]'''
| [[{{{Созвездие}}} (созвездие)|{{{Созвездие|}}}]]
|-
| colspan="2" style="background-color: #FFFFC0; text-align: center;" | Физические характеристики
|-
| '''[[Радиус]]'''
| {{{Радиус|}}}
|-
| '''[[Абсолютная звёздная величина]] <small>(V)</small>'''
| {{{Абсолютная_звёздная_величина|}}}
|-
| '''Свойства'''
| {{{Свойства|}}}
|}
==================================================================
Шаблон:Планетарная туманность 2
{| class="infobox" style="border: 1px solid #999; border-right-width: 2px; border-bottom-width: 2px;"
|+ '''{{{Название}}}'''
|-
! style="background-color: #a0d8a0;" |<small>[[Планетарная туманность]]</small>
| align="center" |<small>[[:Категория:Планетарные туманности|Список туманностей]]</small>
|-
| colspan="2" align="center" | {{qif
|test={{{Изображение|}}}
|then=[[Изображение:{{{Изображение}}}|250px|center|{{{Описание|{{{Название}}}}}}]] }}
|-
! style="background-color: #a0d8a0;" colspan="2" | История Исследования
|-
| '''Открыватель'''
| {{{Открыватель|}}}
|-
| '''Дата открытия'''
| {{{Дата_открытия|}}}
|-
| '''Обозначения'''
| {{{Обозначения|}}}
|-
! style="background-color: #a0d8a0;" colspan="2" | Наблюдательные данные<br/><small>([[Эпоха (астрономия)|Эпоха]] {{{Эпоха}}})</small>
|-
| '''Тип'''
| {{{Тип|}}}
|-
| '''[[Системы небесных координат|Прямое восхождение]]'''
| {{{Прямое_восхождение|}}}
|-
| '''[[Системы небесных координат|Склонение]]'''
| {{{Склонение|}}}
|-
| '''Расстояние'''
| {{{Расстояние|}}}
|-
| '''[[Видимая звёздная величина]] <small>(V)</small>'''
| {{{Видимая_звёздная_величина|}}}
|-
| '''Видимые размеры <small>(V)</small>'''
| {{{Видимые_размеры|}}}
|-
| '''[[Созвездие]]'''
| [[{{{Созвездие}}} (созвездие)|{{{Созвездие|}}}]]
|-
! style="background-color: #a0d8a0;" colspan="2" | Физические характеристики
|-
| '''[[Радиус]]'''
| {{{Радиус|}}}
|-
| '''[[Абсолютная звёздная величина]] <small>(V)</small>'''
| {{{Абсолютная_звёздная_величина|}}}
|-
| '''Свойства'''
| {{{Свойства|}}}
|}
==================================================================
Шаблон:Диффузная туманность 2
{| class="infobox" style="border: 1px solid #999; border-right-width: 2px; border-bottom-width: 2px;"
|+ '''{{{Название}}}'''
|-
! style="background-color: #FFb8b0;" |<small>[[Диффузная туманность]]</small>
| align="center" |<small>[[:Категория:Диффузные туманности|Список туманностей]]</small>
|-
| colspan="2" align="center" | {{qif
|test={{{Изображение|}}}
|then=[[Изображение:{{{Изображение}}}|250px|center|{{{Описание|{{{Название}}}}}}]] }}
|-
! style="background-color: #FFb8b0;" colspan="2" | История исследования
|-
| '''Открыватель'''
| {{{Открыватель|}}}
|-
| '''Дата открытия'''
| {{{Дата_открытия|}}}
|-
| '''Обозначения'''
| {{{Обозначения|}}}
|-
! style="background-color: #FFb8b0;" colspan="2" | Наблюдательные данные<br/><small>([[Эпоха (астрономия)|Эпоха]] {{{Эпоха}}})</small>
|-
| '''Тип'''
| {{{Тип|}}}
|-
| '''[[Системы небесных координат|Прямое восхождение]]'''
| {{{Прямое_восхождение|}}}
|-
| '''[[Системы небесных координат|Склонение]]'''
| {{{Склонение|}}}
|-
| '''Расстояние'''
| {{{Расстояние|}}}
|-
| '''[[Видимая звёздная величина]] <small>(V)</small>'''
| {{{Видимая_звёздная_величина|}}}
|-
| '''Видимые размеры <small>(V)</small>'''
| {{{Видимые_размеры|}}}
|-
| '''[[Созвездие]]'''
| [[{{{Созвездие}}} (созвездие)|{{{Созвездие|}}}]]
|-
! style="background-color: #FFb8b0;" colspan="2" | Физические характеристики
|-
| '''[[Радиус]]'''
| {{{Радиус}}}
|-
| '''[[Абсолютная звёздная величина]] <small>(V)</small>'''
| {{{Абсолютная_звёздная_величина}}}
|-
| '''Свойства'''
| {{{Свойства|}}}
|}
==================================================================
Шаблон:Тёмная туманность
{| class="infobox" style="border: 1px solid #999; border-right-width: 2px; border-bottom-width: 2px;"
|+ '''{{{Название}}}'''
|-
! style="background-color: #c0c0c0; color:white;" |<small>[[Темная туманность]]</small>
| align="center" |<small>[[:Категория:Тёмные туманности|Список туманностей]]</small>
|-
| colspan="2" align="center" | {{qif
|test={{{Изображение|}}}
|then=[[Изображение:{{{Изображение}}}|250px|center|{{{Описание|{{{Название}}}}}}]] }}
|-
! style="background-color: #c0c0c0;" colspan="2" | История Исследования
|-
| '''Открыватель'''
| {{{Открыватель|}}}
|-
| '''Дата открытия'''
| {{{Дата_открытия|}}}
|-
| '''Обозначения'''
| {{{Обозначения|}}}
|-
! style="background-color: #c0c0c0;" colspan="2" | Наблюдательные данные<br/><small>([[Эпоха (астрономия)|Эпоха]] {{{Эпоха}}})</small>
|-
| '''Тип'''
| {{{Тип|}}}
|-
| '''[[Системы небесных координат|Прямое восхождение]]'''
| {{{Прямое_восхождение|}}}
|-
| '''[[Системы небесных координат|Склонение]]'''
| {{{Склонение|}}}
|-
| '''Расстояние'''
| {{{Расстояние|}}}
|-
| '''[[Видимая звёздная величина]] <small>(V)</small>'''
| {{{Видимая_звёздная_величина|}}}
|-
| '''Видимые размеры <small>(V)</small>'''
| {{{Видимые_размеры|}}}
|-
| '''[[Созвездие]]'''
| [[{{{Созвездие}}} (созвездие)|{{{Созвездие|}}}]]
|-
! style="background-color: #c0c0c0;" colspan="2" | Физические характеристики
|-
| '''[[Радиус]]'''
| {{{Радиус}}}
|-
| '''[[Абсолютная звёздная величина]] <small>(V)</small>'''
| {{{Абсолютная_звёздная_величина}}}
|-
| '''Свойства'''
| {{{Свойства|}}}
|}
==================================================================
Шаблон:Звёздное скопление
{| class="infobox" style="border: 1px solid #999; border-right-width: 2px; border-bottom-width: 2px;"
|+ '''{{{Название}}}'''
|-
! style="background-color: #FFFFC0; color:white;" |<small>[[Звёздное скопление]]</small>
| align="center" |<small>[[:Категория:Звёздные скопления|Список скоплений]]</small>
|-
| colspan="2" align="center" | {{qif
|test={{{Изображение|}}}
|then=[[Изображение:{{{Изображение}}}|250px|center|{{{Описание|{{{Название}}}}}}]] }}
|-
! style="background-color: #FFFFC0;" colspan="2" | История Исследования
|-
| '''Открыватель'''
| {{{Открыватель|}}}
|-
| '''Дата открытия'''
| {{{Дата_открытия|}}}
|-
| '''Обозначения'''
| {{{Обозначения|}}}
|-
! style="background-color: #FFFFC0;" colspan="2" | Наблюдательные данные<br/><small>([[Эпоха (астрономия)|Эпоха]] {{{Эпоха}}})</small>
|-
| '''Тип'''
| {{{Тип|}}}
|-
| '''[[Системы небесных координат|Прямое восхождение]]'''
| {{{Прямое_восхождение|}}}
|-
| '''[[Системы небесных координат|Склонение]]'''
| {{{Склонение|}}}
|-
| '''Расстояние'''
| {{{Расстояние|}}}
|-
| '''[[Видимая звёздная величина]] <small>(V)</small>'''
| {{{Видимая_звёздная_величина|}}}
|-
| '''Видимые размеры <small>(V)</small>'''
| {{{Видимые_размеры|}}}
|-
| '''[[Созвездие]]'''
| [[{{{Созвездие}}} (созвездие)|{{{Созвездие|}}}]]
|-
! style="background-color: #FFFFC0;" colspan="2" | Физические характеристики
|-
| '''[[Масса]]'''
| {{{Масса|}}}
|-
| '''[[Радиус]]'''
| {{{Радиус|}}}
|-
| '''[[Абсолютная звёздная величина]] <small>(V)</small>'''
| {{{Абсолютная_звёздная_величина|}}}
|-
| '''Возраст'''
| {{{Возраст|}}}
|-
| '''Свойства'''
| {{{Свойства|}}}
|}
==================================================================
Шаблон:Звезда
{| class="infobox" style="border: 1px solid #999; border-right-width: 2px; border-bottom-width: 2px;"
|+ '''{{{Название}}}'''
|-
! style="background-color: #FFFFC0; color:white;" |<small>[[Звезда]]</small>
| align="center" |<small>[[:Категория:Звёзды|Список звёзд]]</small>
|-
| colspan="2" align="center" | {{qif
|test={{{Изображение|}}}
|then=[[Изображение:{{{Изображение}}}|250px|center|{{{Описание|{{{Название}}}}}}]] }}
|-
! style="background-color: #FFFFC0;" colspan="2" | История Исследования
|-
| '''Открыватель'''
| {{{Открыватель|}}}
|-
| '''Дата открытия'''
| {{{Дата_открытия|}}}
|-
| '''Обозначения'''
| {{{Обозначения|}}}
|-
! style="background-color: #FFFFC0;" colspan="2" | Наблюдательные данные<br/><small>([[Эпоха (астрономия)|Эпоха]] {{{Эпоха}}})</small>
|-
| '''Тип'''
| {{{Тип|}}}
|-
| '''[[Системы небесных координат|Прямое восхождение]]'''
| {{{Прямое_восхождение|}}}
|-
| '''[[Системы небесных координат|Склонение]]'''
| {{{Склонение|}}}
|-
| '''Расстояние'''
| {{{Расстояние|}}}
|-
| '''[[Видимая звёздная величина]] <small>(V)</small>'''
| {{{Видимая_звёздная_величина|}}}
|-
| '''Видимые размеры <small>(V)</small>'''
| {{{Видимые_размеры|}}}
|-
| '''[[Созвездие]]'''
| [[{{{Созвездие}}} (созвездие)|{{{Созвездие|}}}]]
|-
! style="background-color: #FFFFC0;" colspan="2" | Физические характеристики
|-
| '''[[Масса]]'''
| {{{Масса|}}}
|-
| '''[[Радиус]]'''
| {{{Радиус|}}}
|-
| '''[[Абсолютная звёздная величина]] <small>(V)</small>'''
| {{{Абсолютная_звёздная_величина|}}}
|-
| '''Возраст'''
| {{{Возраст|}}}
|-
| '''Свойства'''
| {{{Свойства|}}}
|}
==================================================================
Шаблон:Навигатор NGC
<br clear=all>
{| align=center style="font-size: 82%; margin:0 auto; background-color:#DEEAFF; padding:5px; border:1px solid #003399;"
| <big>◄</big> [[{{{1}}}]] | [[{{{2}}}]] | [[{{{3}}}]] | [[{{{4}}}]] | '''{{{5}}}''' | [[{{{6}}}]] | [[{{{7}}}]] | [[{{{8}}}]] | [[{{{9}}}]] <big>►</big>
|}
==================================================================
==================================================================
==================================================================
==================================================================