Bug 0003098: "Buri" event on GeneWeb file may break import into Gramps
svn: r13449
This commit is contained in:
@@ -426,46 +426,49 @@ class GeneWebParser(object):
|
|||||||
while idx < len(fields) and not (fields[idx] and fields[idx][0] == "+"):
|
while idx < len(fields) and not (fields[idx] and fields[idx][0] == "+"):
|
||||||
if fields[idx]:
|
if fields[idx]:
|
||||||
print "parse_marriage(): Unknown field: '%s' in line %d!" %(fields[idx],self.lineno)
|
print "parse_marriage(): Unknown field: '%s' in line %d!" %(fields[idx],self.lineno)
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
|
|
||||||
while idx < len(fields) and mariageDataRe.match(fields[idx]):
|
while idx < len(fields) and mariageDataRe.match(fields[idx]):
|
||||||
if fields[idx][0] == "+":
|
if fields[idx][0] == "+":
|
||||||
mar_date = self.parse_date(self.decode(fields[idx]))
|
mar_date = self.parse_date(self.decode(fields[idx]))
|
||||||
self.debug(" Married at: %s" % fields[idx])
|
self.debug(" Married at: %s" % fields[idx])
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
elif fields[idx][0] == "-":
|
elif fields[idx][0] == "-":
|
||||||
div_date = self.parse_date(self.decode(fields[idx]))
|
div_date = self.parse_date(self.decode(fields[idx]))
|
||||||
self.debug(" Div at: %s" % fields[idx])
|
self.debug(" Div at: %s" % fields[idx])
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
elif fields[idx] == "#mp":
|
elif fields[idx] == "#mp":
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
mar_place = self.get_or_create_place(self.decode(fields[idx]))
|
if idx < len(fields):
|
||||||
self.debug(" Marriage place: %s" % fields[idx])
|
mar_place = self.get_or_create_place(self.decode(fields[idx]))
|
||||||
idx = idx + 1
|
self.debug(" Marriage place: %s" % fields[idx])
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == "#ms":
|
elif fields[idx] == "#ms":
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
mar_source = self.get_or_create_source(self.decode(fields[idx]))
|
if idx < len(fields):
|
||||||
self.debug(" Marriage source: %s" % fields[idx])
|
mar_source = self.get_or_create_source(self.decode(fields[idx]))
|
||||||
idx = idx + 1
|
self.debug(" Marriage source: %s" % fields[idx])
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == "#sep":
|
elif fields[idx] == "#sep":
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
sep_date = self.parse_date(self.decode(fields[idx]))
|
if idx < len(fields):
|
||||||
self.debug(" Seperated since: %s" % fields[idx])
|
sep_date = self.parse_date(self.decode(fields[idx]))
|
||||||
idx = idx + 1
|
self.debug(" Seperated since: %s" % fields[idx])
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == "#nm":
|
elif fields[idx] == "#nm":
|
||||||
self.debug(" Are not married.")
|
self.debug(" Are not married.")
|
||||||
married = 0
|
married = 0
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
elif fields[idx] == "#noment":
|
elif fields[idx] == "#noment":
|
||||||
self.debug(" Not mentioned.")
|
self.debug(" Not mentioned.")
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
elif fields[idx] == "#eng":
|
elif fields[idx] == "#eng":
|
||||||
self.debug(" Are engaged.")
|
self.debug(" Are engaged.")
|
||||||
engaged = 1
|
engaged = 1
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
else:
|
else:
|
||||||
print "parse_marriage(): Unknown field '%s'for mariage in line %d!" % (fields[idx],self.lineno)
|
print "parse_marriage(): Unknown field '%s'for mariage in line %d!" % (fields[idx],self.lineno)
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
|
|
||||||
if mar_date or mar_place or mar_source:
|
if mar_date or mar_place or mar_source:
|
||||||
mar = self.create_event(gen.lib.EventType.MARRIAGE, None, mar_date, mar_place, mar_source)
|
mar = self.create_event(gen.lib.EventType.MARRIAGE, None, mar_date, mar_place, mar_source)
|
||||||
@@ -499,7 +502,7 @@ class GeneWebParser(object):
|
|||||||
surname =""
|
surname =""
|
||||||
else:
|
else:
|
||||||
surname = self.decode(fields[idx])
|
surname = self.decode(fields[idx])
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
else:
|
else:
|
||||||
surname = father_surname
|
surname = father_surname
|
||||||
|
|
||||||
@@ -508,12 +511,12 @@ class GeneWebParser(object):
|
|||||||
firstname = ""
|
firstname = ""
|
||||||
else:
|
else:
|
||||||
firstname = self.decode(fields[idx])
|
firstname = self.decode(fields[idx])
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
if idx < len(fields) and father_surname:
|
if idx < len(fields) and father_surname:
|
||||||
noSurnameRe = re.compile("^[({\[~><?0-9#].*$")
|
noSurnameRe = re.compile("^[({\[~><?0-9#].*$")
|
||||||
if not noSurnameRe.match(fields[idx]):
|
if not noSurnameRe.match(fields[idx]):
|
||||||
surname = self.decode(fields[idx])
|
surname = self.decode(fields[idx])
|
||||||
idx = idx + 1
|
idx += 1
|
||||||
|
|
||||||
self.debug("Person: %s %s" % (firstname, surname))
|
self.debug("Person: %s %s" % (firstname, surname))
|
||||||
person = self.get_or_create_person(firstname,surname)
|
person = self.get_or_create_person(firstname,surname)
|
||||||
@@ -594,73 +597,86 @@ class GeneWebParser(object):
|
|||||||
idx += 1
|
idx += 1
|
||||||
elif fields[idx] == '#nick':
|
elif fields[idx] == '#nick':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Nick Name: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
nick_names.append(self.decode(fields[idx]))
|
self.debug("Nick Name: %s" % fields[idx])
|
||||||
idx += 1
|
nick_names.append(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#occu':
|
elif fields[idx] == '#occu':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Occupation: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
occu = self.create_event(gen.lib.EventType.OCCUPATION,self.decode(fields[idx]))
|
self.debug("Occupation: %s" % fields[idx])
|
||||||
occu_ref = gen.lib.EventRef()
|
occu = self.create_event(gen.lib.EventType.OCCUPATION,self.decode(fields[idx]))
|
||||||
occu_ref.set_reference_handle(occu.get_handle())
|
occu_ref = gen.lib.EventRef()
|
||||||
person.add_event_ref(occu_ref)
|
occu_ref.set_reference_handle(occu.get_handle())
|
||||||
idx += 1
|
person.add_event_ref(occu_ref)
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#alias':
|
elif fields[idx] == '#alias':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Name Alias: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
name_aliases.append(self.decode(fields[idx]))
|
self.debug("Name Alias: %s" % fields[idx])
|
||||||
idx += 1
|
name_aliases.append(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#salias':
|
elif fields[idx] == '#salias':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Surname Alias: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
surname_aliases.append(self.decode(fields[idx]))
|
self.debug("Surname Alias: %s" % fields[idx])
|
||||||
idx += 1
|
surname_aliases.append(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#image':
|
elif fields[idx] == '#image':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Image: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
idx += 1
|
self.debug("Image: %s" % fields[idx])
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#src':
|
elif fields[idx] == '#src':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Source: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
source = self.get_or_create_source(self.decode(fields[idx]))
|
self.debug("Source: %s" % fields[idx])
|
||||||
idx += 1
|
source = self.get_or_create_source(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#bs':
|
elif fields[idx] == '#bs':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Birth Source: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
birth_source = self.get_or_create_source(self.decode(fields[idx]))
|
self.debug("Birth Source: %s" % fields[idx])
|
||||||
idx += 1
|
birth_source = self.get_or_create_source(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx][0] == '!':
|
elif fields[idx][0] == '!':
|
||||||
self.debug("Baptize at: %s" % fields[idx])
|
self.debug("Baptize at: %s" % fields[idx])
|
||||||
bapt_date = self.parse_date(self.decode(fields[idx][1:]))
|
bapt_date = self.parse_date(self.decode(fields[idx][1:]))
|
||||||
idx += 1
|
idx += 1
|
||||||
elif fields[idx] == '#bp':
|
elif fields[idx] == '#bp':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Birth Place: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
birth_place = self.get_or_create_place(self.decode(fields[idx]))
|
self.debug("Birth Place: %s" % fields[idx])
|
||||||
idx += 1
|
birth_place = self.get_or_create_place(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#pp':
|
elif fields[idx] == '#pp':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Baptize Place: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
bapt_place = self.get_or_create_place(self.decode(fields[idx]))
|
self.debug("Baptize Place: %s" % fields[idx])
|
||||||
idx += 1
|
bapt_place = self.get_or_create_place(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#ps':
|
elif fields[idx] == '#ps':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Baptize Source: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
bapt_source = self.get_or_create_source(self.decode(fields[idx]))
|
self.debug("Baptize Source: %s" % fields[idx])
|
||||||
idx += 1
|
bapt_source = self.get_or_create_source(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#dp':
|
elif fields[idx] == '#dp':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Death Place: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
death_place = self.get_or_create_place(self.decode(fields[idx]))
|
self.debug("Death Place: %s" % fields[idx])
|
||||||
idx += 1
|
death_place = self.get_or_create_place(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#ds':
|
elif fields[idx] == '#ds':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Death Source: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
death_source = self.get_or_create_source(self.decode(fields[idx]))
|
self.debug("Death Source: %s" % fields[idx])
|
||||||
idx += 1
|
death_source = self.get_or_create_source(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#buri':
|
elif fields[idx] == '#buri':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Burial Date: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
|
self.debug("Burial Date: %s" % fields[idx])
|
||||||
try:
|
try:
|
||||||
bur_date = self.parse_date(self.decode(fields[idx]))
|
bur_date = self.parse_date(self.decode(fields[idx]))
|
||||||
except IndexError:
|
except IndexError:
|
||||||
@@ -668,19 +684,22 @@ class GeneWebParser(object):
|
|||||||
idx += 1
|
idx += 1
|
||||||
elif fields[idx] == '#crem':
|
elif fields[idx] == '#crem':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Cremention Date: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
crem_date = self.parse_date(self.decode(fields[idx]))
|
self.debug("Cremation Date: %s" % fields[idx])
|
||||||
idx += 1
|
crem_date = self.parse_date(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#rp':
|
elif fields[idx] == '#rp':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Burial Place: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
bur_place = self.get_or_create_place(self.decode(fields[idx]))
|
self.debug("Burial Place: %s" % fields[idx])
|
||||||
idx += 1
|
bur_place = self.get_or_create_place(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#rs':
|
elif fields[idx] == '#rs':
|
||||||
idx += 1
|
idx += 1
|
||||||
self.debug("Burial Source: %s" % fields[idx])
|
if idx < len(fields):
|
||||||
bur_source = self.get_or_create_source(self.decode(fields[idx]))
|
self.debug("Burial Source: %s" % fields[idx])
|
||||||
idx += 1
|
bur_source = self.get_or_create_source(self.decode(fields[idx]))
|
||||||
|
idx += 1
|
||||||
elif fields[idx] == '#apubl':
|
elif fields[idx] == '#apubl':
|
||||||
self.debug("This is a public record")
|
self.debug("This is a public record")
|
||||||
idx += 1
|
idx += 1
|
||||||
|
Reference in New Issue
Block a user