Esempio n. 1
0
class Notabenoid2FB2():
    '''
    Class for creation FB2 from Notabenoid.
    '''

    def __init__(self, book_id):
        '''
        Constructor
        '''
        self.nb = Notabenoid(book_id)
        name = self.nb.get_book_name()
        name = name.split('/')[0]
        name = name.strip()
        name = name.replace(' ', '_')
        name = name.lower()
        self.file_name = name
        fb2 = FB2Creator(name)
        fb2.set_generator(self.nb.content())
        fb2.set_notifier(self.print_chapter)
        fb2.set_end_of_chapter_symbol(self.nb.end_of_chapter())
        self.fb2 = fb2
        self.current_chapter = 0
    
    def print_chapter(self, s):
        '''
        Print log for each chapter.
        '''
        self.current_chapter += 1
        print(s + ' ' + str(self.current_chapter))
        
    def get_file_name(self):
        '''
        Get output file name.
        '''
        return self.fb2.get_file_name()
    
    def generate(self):
        '''
        Generate book.
        '''
        self.fb2.create_file()
        
    def get_chapter_number(self):
        '''
        Return number of chapter in book.
        '''
        return self.nb.get_chapter_number()
    
    def set_notifier(self, n):
        '''
        Set notifier called for each chapter.
        '''
        self.fb2.set_notifier(n)