132
132
if not language_id:
133
133
language_id = self.get_language(bible_name)
134
134
if not language_id:
135
log.exception(u'Importing books from "%s" failed' % self.filename)
135
log.exception('Importing books from "%s" failed' % self.filename)
138
book = unicode(match.group(1))
138
book = str(match.group(1))
139
139
chapter = int(match.group(2))
140
140
verse = int(match.group(3))
141
141
verse_text = match.group(4)
142
142
book_ref_id = self.get_book_ref_id_by_name(book, book_count, language_id)
143
143
if not book_ref_id:
144
log.exception(u'Importing books from "%s" failed' % self.filename)
144
log.exception('Importing books from "%s" failed' % self.filename)
146
146
book_details = BiblesResourcesDB.get_book_by_id(book_ref_id)
147
if not db_book or db_book.name != book_details[u'name']:
148
log.debug(u'New book: "%s"' % book_details[u'name'])
147
if not db_book or db_book.name != book_details['name']:
148
log.debug('New book: "%s"' % book_details['name'])
149
149
db_book = self.create_book(
150
book_details[u'name'],
150
book_details['name'],
152
book_details[u'testament_id'])
152
book_details['testament_id'])
153
153
if last_chapter == 0:
154
154
self.wizard.progressBar.setMaximum(chapter_count)
155
155
if last_chapter != chapter:
156
156
if last_chapter != 0:
157
157
self.session.commit()
158
158
self.wizard.incrementProgressBar(translate('BiblesPlugin.OsisImport', 'Importing %s %s...',
159
'Importing <book name> <chapter>...') % (book_details[u'name'], chapter))
159
'Importing <book name> <chapter>...') % (book_details['name'], chapter))
160
160
last_chapter = chapter
161
161
# All of this rigmarol below is because the mod2osis
162
162
# tool from the Sword library embeds XML in the OSIS
163
163
# but neglects to enclose the verse text (with XML) in
164
164
# <[CDATA[ ]]> tags.
165
verse_text = self.note_regex.sub(u'', verse_text)
166
verse_text = self.title_regex.sub(u'', verse_text)
167
verse_text = self.milestone_regex.sub(u'', verse_text)
168
verse_text = self.fi_regex.sub(u'', verse_text)
169
verse_text = self.rf_regex.sub(u'', verse_text)
170
verse_text = self.lb_regex.sub(u' ', verse_text)
171
verse_text = self.lg_regex.sub(u'', verse_text)
172
verse_text = self.l_regex.sub(u' ', verse_text)
173
verse_text = self.w_regex.sub(u'', verse_text)
174
verse_text = self.q1_regex.sub(u'"', verse_text)
175
verse_text = self.q2_regex.sub(u'\'', verse_text)
176
verse_text = self.q_regex.sub(u'', verse_text)
165
verse_text = self.note_regex.sub('', verse_text)
166
verse_text = self.title_regex.sub('', verse_text)
167
verse_text = self.milestone_regex.sub('', verse_text)
168
verse_text = self.fi_regex.sub('', verse_text)
169
verse_text = self.rf_regex.sub('', verse_text)
170
verse_text = self.lb_regex.sub(' ', verse_text)
171
verse_text = self.lg_regex.sub('', verse_text)
172
verse_text = self.l_regex.sub(' ', verse_text)
173
verse_text = self.w_regex.sub('', verse_text)
174
verse_text = self.q1_regex.sub('"', verse_text)
175
verse_text = self.q2_regex.sub('\'', verse_text)
176
verse_text = self.q_regex.sub('', verse_text)
177
177
verse_text = self.divine_name_regex.sub(repl, verse_text)
178
verse_text = self.trans_regex.sub(u'', verse_text)
179
verse_text = verse_text.replace(u'</lb>', u'') \
180
.replace(u'</l>', u'').replace(u'<lg>', u'') \
181
.replace(u'</lg>', u'').replace(u'</q>', u'') \
182
.replace(u'</div>', u'').replace(u'</w>', u'')
183
verse_text = self.spaces_regex.sub(u' ', verse_text)
178
verse_text = self.trans_regex.sub('', verse_text)
179
verse_text = verse_text.replace('</lb>', '') \
180
.replace('</l>', '').replace('<lg>', '') \
181
.replace('</lg>', '').replace('</q>', '') \
182
.replace('</div>', '').replace('</w>', '')
183
verse_text = self.spaces_regex.sub(' ', verse_text)
184
184
self.create_verse(db_book.id, chapter, verse, verse_text)
185
185
self.application.process_events()
186
186
self.session.commit()
187
187
if match_count == 0:
189
189
except (ValueError, IOError):
190
log.exception(u'Loading bible from OSIS file failed')
190
log.exception('Loading bible from OSIS file failed')