]> Nutra Git (v2) - gamesguru/getmyancestors.git/commitdiff
Fix for non-existent sources. Exemple: source 9Z61-1N5 refered on indi /L4W1-3Z9
authorBenoît Fontaine <benoitfontaine.ba@gmail.com>
Mon, 6 Nov 2017 17:19:35 +0000 (18:19 +0100)
committerBenoît Fontaine <benoitfontaine.ba@gmail.com>
Mon, 6 Nov 2017 17:19:35 +0000 (18:19 +0100)
getmyancestors.py

index ab8c4dc5435633bb2d5450e5699a99934b5fe166..01e29e11f8e9dc388e54a0e19c3a85d15aaf86d2 100755 (executable)
@@ -448,10 +448,12 @@ class Indi:
                         self.military.add(Fact(y, self.tree))
                 if 'sources' in x:
                     for y in x['sources']:
-                        if 'changeMessage' in y['attribution']:
-                            self.sources.add((self.tree.add_source(y['descriptionId']), y['attribution']['changeMessage']))
-                        else:
-                            self.sources.add((self.tree.add_source(y['descriptionId']),))
+                        source = self.tree.add_source(y['descriptionId'])
+                        if source:
+                            if 'changeMessage' in y['attribution']:
+                                self.sources.add((source, y['attribution']['changeMessage']))
+                            else:
+                                self.sources.add((source,))
         self.parents = None
         self.children = None
         self.spouses = None
@@ -655,10 +657,12 @@ class Fam:
                     self.marriage_facts.add(Fact(x, self.tree))
             if data and 'sources' in data['relationships'][0]:
                 for y in data['relationships'][0]['sources']:
-                    if 'changeMessage' in y['attribution']:
-                        self.sources.add((self.tree.add_source(y['descriptionId']), y['attribution']['changeMessage']))
-                    else:
-                        self.sources.add((self.tree.add_source(y['descriptionId']),))
+                    source = self.tree.add_source(y['descriptionId'])
+                    if source:
+                        if 'changeMessage' in y['attribution']:
+                            self.sources.add((source, y['attribution']['changeMessage']))
+                        else:
+                            self.sources.add((source,))
 
     # retrieve marriage notes
     def get_notes(self):
@@ -797,7 +801,9 @@ class Tree:
         if fid:
             if fid in self.sources:
                 return self.sources[fid]
-            return Source(self.fs.get_url('https://familysearch.org/platform/sources/descriptions/' + fid + '.json')['sourceDescriptions'][0], self)
+            data = self.fs.get_url('https://familysearch.org/platform/sources/descriptions/' + fid + '.json')
+            if data:
+                return Source(data['sourceDescriptions'][0], self)
         return False
 
     def reset_num(self):