Материал из Википедии — свободной энциклопедии
# -*- coding: UTF-8 -*-
__version__='$Id:'
import wikipedia
import re, sys, os
import codecs
from bib_tekst import *
def vivod(b):
wikipedia.output(b)
otch.write(b)
otch.flush()
def bib_tf_ust_otch(f):
global otch
otch=f
def isk_shabl(t):
tisk=[u'[[',u'{{',u'|',u']]',u'}}']
sh={}
p0=0
while p0<len(t):
p0=iskats(t,p0,u'{{')
if p0==-1:
break
p0+=2
j=1
x=0
n=u''
p2=p0
while p0<len(t):
(p1,i1)=iskats_mn(t,p0,tisk)
# vivod(u'j=%d %d %d %d\n'%(j,p2,p0,p1))
if p1==-1:
break
if i1==0 or i1==1:
j+=1
else:
if j==1:
a=t[p2:p1]
a=ubr_nk_prob(a)
if x==0:
n=perv_upper(a)
sh[n]={}
else:
ia=iskats(a,0,u'=')
if ia!=-1:
na=perv_upper(ubr_nk_prob(a[:ia]))
va=ubr_nk_prob(a[ia+1:])
else:
na=u'%d'%x
va=a
sh[n][na]=va
# vivod(u'%d %d %d %s %s %s\n'%(p2,p0,p1,n,na,va.replace(u'\n',u' ')))
vivod(u'%s %s %s\n'%(n,na,va.replace(u'\n',u' ')))
p2=p1+len(tisk[i1])
x+=1
if i1==3 or i1==4:
j-=1
if j==0:
break
p0=p1+len(tisk[i1])
if j!=0:
break
return sh
def vz_sh(a,b):
if a.has_key(b):
return a[b]
return None
def vz_sh_par(a,b):
if a.has_key(b):
return a[b]
return u''
def cht_tf(fi):
f=codecs.open(fi, 'rb', 'utf-8')
rez=[]
i=0
sch=0
t=u''
for s in f.readlines():
if ord(s[0]) == 65279:
s=s[1:]
if s[0:7] == u'=======':
if i==1:
wikipedia.output(u'... %d "%s"\n' % (sch,n))
rez.append((n,t))
sch+=1
i=0
t=u''
elif i==0:
n=ubr_nk_prob(s)
if n.startswith(u'[['):
n=n[2:]
if len(n)>2 and n[len(n)-2:]==u']]':
n=n[:len(n)-2]
n=ubr_nk_prob(n)
i=1
else:
t=t+s
f.close()
return rez