Ejemplo n.º 1
0
    def update(self, db):
        """ Update the settings interactively
        """
        default = self.book_name
        prompt = 'book name [%s]: ' % default
        book_name = interact.readstr(prompt, default)

        default = self.book_path
        book_file = self.getBookFileName(default=default)

        default = self.end_page
        prompt = 'last page number [%s]: ' % default
        end_page = interact.readint(prompt, default)

        default = os.path.basename(self.log_path)
        prompt = 'basename of log file [%s]: ' % default
        log_file = interact.readstr(prompt, default)

        default = os.path.basename(self.note_path)
        prompt = 'basename of note file [%s]: ' % default
        note_file = interact.readstr(prompt, default)

        default = os.path.basename(self.errata_path)
        prompt = 'basename of errata file [%s]: ' % default
        errata_file = interact.readstr(prompt, default)

        # path of the book viewer log file for determine the exit page
        # number user must change the Viewer class to change this value
        viewer_log = Viewer.viewer_log
        prompt = 'viewer log: %s\n' % viewer_log
        prompt += '  to change this value, you need to edit\n'
        prompt += '  the Viewer class, press Enter to continue '
        interact.readstr(prompt, '')

        # defference between the actual page number and the page label
        default = self.page_num_diff + 1
        prompt = 'page number of the first page label [%s]: ' % default
        page_num_diff = interact.readint(prompt, default)
        page_num_diff -= 1

        # page per day
        default = self.page_per_day
        prompt = 'how many pages for one day? [%s]: ' % default
        page_per_day = interact.readint(prompt, default)

        db['book_name'] = book_name
        db['book_file'] = book_file
        db['end_page'] = end_page
        db['log_file'] = log_file
        db['note_file'] = note_file
        db['errata_file'] = errata_file
        db['page_num_diff'] = page_num_diff
        db['page_per_day'] = page_per_day
        db['init_done'] = True

        print('done.')
Ejemplo n.º 2
0
 def ask_page(self, prompt='', default=None):
     """ interactively ask the user for page number
     """
     if default:
         extra_text = '[%s]' % default
         prompt = '%s %s: ' % (prompt, extra_text)
         page = interact.readint(prompt, default=default)
     else:
         prompt = '%s: ' % prompt
         page = interact.readint(prompt)
     if page:
         return page
     else:
         print('bad value, exit')
         exit(1)
Ejemplo n.º 3
0
 def ask_page(self, prompt='', default=None):
     """ interactively ask the user for page number
     """
     if default:
         extra_text = '[%s]' % default
         prompt = '%s %s: ' % (prompt, extra_text)
         page = interact.readint(prompt, default=default)
     else:
         prompt = '%s: ' % prompt
         page = interact.readint(prompt)
     if page:
         return page
     else:
         print('bad value, exit')
         exit(1)
Ejemplo n.º 4
0
    def init(self, db):
        """ Initialize the settings interactively
        """
        print('Initial setting, please answer some questions')
        book_name = interact.readstr('book name: ')
        book_file = self.getBookFileName()
        end_page = interact.readint('last page number: ')
        default = self.defaultLogPath
        log_file = interact.readstr('basename of log file [%s]: ' % default,
                                    default)
        default = self.defaultNotePath
        note_file = interact.readstr('basename of note file [%s]: ' % default,
                                     default)
        default = self.defaultErrataPath
        errata_file = interact.readstr(
            'basename of errata file [%s]: ' % default, default)

        # path of the book viewer log file for determine the exit page
        # number user must change the Viewer class to change this value
        viewer_log = Viewer.viewer_log
        prompt = 'viewer log: %s\n' % viewer_log
        prompt += '  to change this value, you need to edit\n'
        prompt += '  the Viewer class, press Enter to continue '
        interact.readstr(prompt, '')

        # defference between the actual page number and the page label
        page_num_diff = interact.readint(
            'page number of the first page label: ')
        page_num_diff -= 1

        # page per day
        default = self.defaultPagePerDay
        prompt = 'how many pages for one day? [%s]: ' % default
        page_per_day = interact.readint(prompt, default)

        db['book_name'] = book_name
        db['book_file'] = book_file
        db['end_page'] = end_page
        db['log_file'] = log_file
        db['note_file'] = note_file
        db['errata_file'] = errata_file
        db['viewer_log'] = viewer_log
        db['page_num_diff'] = page_num_diff
        db['page_per_day'] = page_per_day
        db['init_done'] = True
Ejemplo n.º 5
0
    def edit(self):
        """ change an existing note
        """
        cont = self.opendb()
        notes = sorted(cont.items(), key=lambda x: int(x[0]))
        text_list = []
        for time, note in notes:
            text = isotime(int(time)) + '\n' + note.content[:80]
            text_list.append(text)
        idx, junk = interact.printAndPick(text_list)

        key = notes[idx][0]
        note = notes[idx][1]

        prompt = 'Chapter [%s]: ' % note.chapter
        note.chapter = interact.readint(prompt, default=note.chapter)
        prompt = 'Subject [%s]: ' % note.subject
        note.subject = interact.readstr(prompt, default='') or note.subject
        note.content = self.edit_content(data=note.content)
        self.save(key, note)
Ejemplo n.º 6
0
    def edit(self):
        """ change an existing note
        """
        cont = self.opendb()
        notes = sorted(cont.items(), key=lambda x: int(x[0]))
        text_list = []
        for time, note in notes:
            text = isotime(int(time)) + '\n' + note.content[:80]
            text_list.append(text)
        idx, junk = interact.printAndPick(text_list)

        key  = notes[idx][0]
        note = notes[idx][1]

        prompt = 'Chapter [%s]: ' % note.chapter
        note.chapter = interact.readint(prompt, default=note.chapter)
        prompt = 'Subject [%s]: ' % note.subject
        note.subject = interact.readstr(prompt, default='') or note.subject
        note.content = self.edit_content(data=note.content)
        self.save(key, note)