def insert_in_db(tb, chapter, tr): versCount = 0 for vers in chapter.findall("VERS"): versCount += 1 # Does this vers and chapter already exist? v = BibleVers.objects.filter(bookNr=tb, chapterNr=chapter.get('cnumber'), versNr=vers.get('vnumber')) if v.count() <= 0: v = BibleVers(bookNr=tb, chapterNr=chapter.get('cnumber'), versNr=vers.get('vnumber')) v.save() else: v = v[0] # Insert text if it does not already exist dbVers = BibleText.objects.filter(translationIdentifier=tr, vers=v) if dbVers.count() <= 0: dbVers = BibleText(translationIdentifier=tr, vers=v, versText=self.element_to_string(vers)) dbVers.save() return versCount
def __insert(translation, book, chapter, vers, text): ''' Insert the bible text into the database. Create the BibleVers and the BibleText if it does not exist. @translation is a BibleTranslation instance @book is a BibleBook instance @chapter and @vers are integers @text is a string ''' # vnumber can contain multiple verses. In NGUE it is seperated by a 8209 (e.g. 16-17 is defined # as 16820917. So we have to check if this is the case, then separate the verse numbers, insert the # first one and every following as an empty verse. numverses = 1 if str(vers).__contains__('8209'): vers, lastvers = int(str(vers).split('8209')[0]), int( str(vers).split('8209')[1]) numverses = lastvers - vers + 1 # Does this vers already exist? v = BibleVers.objects.filter(bookNr=book, chapterNr=chapter, versNr=vers) if v.count() <= 0: v = BibleVers(bookNr=book, chapterNr=chapter, versNr=vers) v.save() else: v = v[0] # Insert text if it does not already exist t = BibleText.objects.filter(vers=v, translationIdentifier=translation) if t.count() <= 0: t = BibleText(vers=v, translationIdentifier=translation, versText=text) t.save() if numverses > 1: for i in range(1, numverses): __insert(translation, book, chapter, vers + i, '')