#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
# 18.01.22
#--------------------------------------------------
def SaveList():
, ,f = open('lib.fb2', 'w', encoding="utf-8")
, ,for i in Books:
, , , ,f.write(i)# 'cp1251' '\n'
, ,f.close()
Books = []
conutBooks = 0
LAllNotes = []
'''
def AddNotes(LNotes):
, ,if len(LNotes) > 0:
, , , ,f = open('Notes'+str(conutBooks)+'.txt', 'w', encoding="utf-8")
, , , ,for i in LNotes:
, , , , , ,i = i.replace('id="n','id="'+ str(conutBooks)+ '_n')
, , , , , ,f.write(i)
, , , ,f.close()
'''
def AddNotes(LNotes):
, ,if len(LNotes) > 0:
, , , ,for i in LNotes:
, , , , , ,i = i.replace('id="n','id="'+ str(conutBooks)+ '_n')
, , , , , ,LAllNotes.append(i)
def addFb2(fn, first):
, ,global Books
, ,global conutBooks
, ,LList = []
, ,sBook_title = ''
, ,bBook_title = False
, ,bWait_notes = False
, ,bNotes = False
, ,LNotes = []
, ,conutBooks += 1
, ,if os.path.isfile(nfile):
, , , ,with open(fn, encoding="utf8") as f:
, , , , , ,LList = f.readlines()
, , , ,for i in LList:
, , , , , ,if bNotes:
, , , , , , , ,if i.find('</body')> -1:
, , , , , , , , , ,AddNotes(LNotes)
, , , , , , , , , ,break
, , , , , , , ,else:
, , , , , , , , , ,LNotes.append(i)
, , , , , , , ,continue
, , , , , ,if bWait_notes:
, , , , , , , ,if i.find('<section')> -1:
, , , , , , , , , ,bNotes = True
, , , , , , , , , ,LNotes.append(i)
, , , , , , , ,if i.find('<binary')> -1:
, , , , , , , , , ,break
, , , , , , , ,continue
, , , , , ,if not first: #
, , , , , , , ,if bBook_title:
, , , , , , , , , ,n = i.find('</book-title')
, , , , , , , , , ,if ( n == -1):
, , , , , , , , , , , ,sBook_title = sBook_title + ' ' + i.strip()
, , , , , , , , , , , ,continue
, , , , , , , , , ,else:
, , , , , , , , , , , ,sBook_title = sBook_title + ' ' + i[:n]
, , , , , , , , , , , ,bBook_title = False
, , , , , , , , , , , ,
, , , , , , , ,n = i.find('<book-title')
, , , , , , , ,if n > -1:
, , , , , , , , , ,sBook_title = i[n+12:]
, , , , , , , , , ,n = sBook_title.find('</book-title')
, , , , , , , , , ,if n > -1:
, , , , , , , , , , , ,sBook_title = sBook_title[:n]
, , , , , , , , , , , ,bBook_title = False
, , , , , , , , , ,else:
, , , , , , , , , , , ,sBook_title = sBook_title + ' ' + i.strip()
, , , , , , , , , , , ,bBook_title = True
, , , , , , , , , , , ,continue
, , , , , , , ,n = i.find('<body')
, , , , , , , ,if n > -1:
, , , , , , , , , ,i = i[n:]
, , , , , , , , , ,n = i.find('>')
, , , , , , , , , ,i = i[n+1:]
, , , , , , , , , ,
, , , , , , , , , ,Books.append('\n*%%%%%%%* '+str(conutBooks)+'\n')
, , , , , , , , , ,#print('%%%%%%%')
, , , , , , , , , ,bb = sBook_title.strip()
, , , , , , , , , ,#print(bb)
, , , , , , , , , ,Books.append('<p>'+bb+'\n</p>')
, , , , , , , , , ,Books.append(i)
, , , , , , , , , ,first = True
, , , , , ,else:
, , , , , , , ,n = i.find('</body')
, , , , , , , ,if n > -1:
, , , , , , , , , ,i = i[:n]
, , , , , , , , , ,Books.append(i)
, , , , , , , , , ,#break
, , , , , , , , , ,bWait_notes = True
, , , , , , , ,else:
, , , , , , , , , ,if i.find('<a ')>-1:
, , , , , , , , , , , ,i = i.replace('href="#','href="#'+ str(conutBooks)+ '_')
, , , , , , , , , ,Books.append(i)
#--------------------------------------------------
nfile = "list.txt"
first = True
if os.path.isfile(nfile): # encoding='cp1251'
with open(nfile, encoding="utf8") as f:
, , Li = f.readlines()
for i in Li:
, , addFb2(i.strip(), first)
, , first = False
, ,
Books.append('</body>\n')
if len(LAllNotes) > 0:
, ,Books.append('<body name="notes">\n')
, ,Books.append('<title><p>Примечания</p></title>\n')
, ,for i in LAllNotes:
, , , ,Books.append(i)
, ,Books.append('</body>\n')
, ,
Books.append('</FictionBook>\n')#
SaveList()
print( 'Done!')