def etranslate_book(bookname, scid, ecid): logger.debug("Enter etranslate book func") book = Tnovel(bookname, loglevel=book_log_level, dbfile=dbfilename) etransmap = book.read_book_etransmap() translator = TNovelETranslator(name=bookname, etransmap=etransmap) bookdata = book.read_book() raw_data_list = [] chapid_list = [] cid_list = [] transcount = 0 count = 0 scid, chapcount = calc_chap_count(scid, ecid, book.get_chapter_count()) logger.debug("traslate book scid %d count %d book:%d", scid, chapcount, len(bookdata)) for index in range(chapcount): cid = scid + index if book.is_chapter_exist(cid): continue else: cid_list.append(cid) if len(cid_list) > 0: logger.debug('Following chapters are not available') logger.debug(cid_list) raise(ValueError) for chapid,chaptitle,chapdata,rawdata in bookdata: if chapid < scid or chapid >= (scid + chapcount): continue logger.debug("chapid id %d is withing the range %d-%d", chapid, scid, scid+chapcount) chapid_list.append(chapid) raw_data_list.append(chapdata) count = count + 1 if count >= 200: logger.debug("in loop going to etranslate chapter count %d", len(raw_data_list)) trans_data_list = translator.translate(raw_data_list) for cid in range(len(chapid_list)): book.update_chapter_data(chapid_list[cid],trans_data_list[cid]) transcount = transcount + 1 chapid_list = [] raw_data_list = [] count = 0 logger.debug("going to etranslate chapter count %d", len(raw_data_list)) if count > 0: trans_data_list = translator.translate(raw_data_list) for cid in range(len(chapid_list)): book.update_chapter_data(chapid_list[cid],trans_data_list[cid]) transcount = transcount + 1 logger.debug('total number of chapters etranslated %d', transcount)