linekio / getmyancestors Goto Github PK
View Code? Open in Web Editor NEWThis project forked from freeseek/getmyancestors
Get GEDCOM files from FamilySearch.org
License: Other
This project forked from freeseek/getmyancestors
Get GEDCOM files from FamilySearch.org
License: Other
Steps to reproduce:pip install getmyancestors (in Windows 10.)
Current behavior: warnings about incompatible versions of required dependencies
Expected behavior:complete install
Corresponding Familysearch link (optional):
When a terminal interrupt is received all of the information already retrieved should be written to the gedcom file before termination rather than being discarded.
Hi Linekio,
when downloading my getcome file I realized that getmyancestors won't download previous or later marriages of my ancestors than the one my direct ancestor came from. That's a little unfortunate for me, maybe you want to change it?
Thanks in advance,
Flo
Steps to reproduce:
Include a person with a source
Current behavior:
there are no notes associated with the sources
Expected behavior:
I think that tags needed are CONC to precede the data pulled from the page in the citation.
Additionally add a note with the url to the image included from that page.
Corresponding Familysearch link (optional):
https://www.familysearch.org/ark:/61903/1:1:W3DL-R3ZM?from=lynx1UIV8&treeref=GHN3-6F1
Steps to reproduce:
type fstogedcom in linux command window
enter familysearch userid in GUI window
enter familysearch password in GUI window
click 'sign in' button
(sometimes) it will allow entry of parameters into next GUI window, and will perform a few iterations but then it gets stuck repeating:
Current behavior:
[2024-04-27 17:20:28]: Downloading: https://www.familysearch.org/auth/familysearch/login
[2024-04-27 17:20:29]: Downloading: https://ident.familysearch.org/login
[2024-04-27 17:20:29]: Invalid auth request
[2024-04-27 17:20:29]: Downloading: https://www.familysearch.org/auth/familysearch/login
[2024-04-27 17:20:30]: Downloading: https://ident.familysearch.org/login
[2024-04-27 17:20:30]: Invalid auth request
.
.
.
Expected behavior:
generate gedcom file
Corresponding Familysearch link (optional):
Note:
fstogedcom worked fine for me when I last used it (same installation) two weeks ago as well as always before. This is a new problem as of yesterday. version 1.0.5. I suspect the problem is with ' https://ident.familysearch.org/login ' as that appears before the 'Invalid auth request ' message and does not appear to be a valid URL--but that's just a guess.
Thanks!
Hi there,
would it be an idea to include an option, which also retrieves the families of spouses using the same ascending and descending options given for the individual.
I have no own database but maintain everything in FamilySearch, therefor I would like to be able to generate charts etc. from the GEDCOM file by using some genealogy software after download. For this it would be nice to have as much data downloaded as possible.
Best
Flo
Using the web UI, FamilySearch.org allows LINKING/TAGGING a SOURCE to an event such as NAME, BIRTH, DEATH, MARRIAGE, etc. Does the GEDCOM file standard provide support for this same linking/tagging of a source to an event? If so, and if the FamilySearch.org API provides this linking/tagging info, could getmyancestors be enhanced to contain the LINKING/TAGGING info for SOURCES? And THANK YOU for this nice getmyancestors tool!
Steps to reproduce:
getmyancestors -u ******** -p ******** -i ,* -a 13 -d 0 -m
Current behavior:
Starts normally but then fails with errors 503 at 7th generation
Expected behavior:
Export all the individuals up to 13th generation as previously
Corresponding Familysearch link (optional):
All numbers yield as 'th' in both files as progress output..
1th, 2th, 3th...
Ran into this. Could use advice on debugging here. Is there a way to identify which data is malformed, assuming that's the culprit? Or to locate and salvage the results in the event of such? It appears to have hung the process, with the counter continuing.
$ python fstogedcom.py
Exception in thread Thread-5:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "fstogedcom.py", line 465, in download
loop.run_until_complete(download_stuff(loop))
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/asyncio/base_events.py", line 467, in run_until_complete
return future.result()
File "fstogedcom.py", line 461, in download_stuff
await future
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/concurrent/futures/thread.py", line 56, in run
result = self.fn(*self.args, **self.kwargs)
File "[...]/getmyancestors-master/getmyancestors.py", line 568, in get_contributors
if n.text == text:
AttributeError: 'Note' object has no attribute 'text'
I got to login, Can enter a login name to familysearch, but no characters can be entered for password,
C:\Users\XXXX\Documents\getmyancestors>py .\getmyancestors.py
Enter FamilySearch username: xxxxxxxxxxxx
Enter FamilySearch password:
New function: possibility of set proxy
The readme is outdated (maybe having version dates in there is not the best solution) and lacks the need for the diskcache module.
I'm curious if this tool could be used from the Gramps Python Shell Gramplet/plugin? We've got a few Windows users experimenting with using Gramps in conjunction with GetMyAncestors.
Those prerequisite modules might still have to be installed and then the GEDCOM file would have to be imported into Gramps. (And maybe the prerequisite modules could be added to the Gramps Prerequisites Checker Gramplet too.)
But a workflow for making GetMyAncestors usable with Gramps could add a larger Python & Genealogy userbase from Windows & macOS as well as Linux.
Both http://ged-inline.elasticbeanstalk.com/validate and https://chronoplexsoftware.com/gedcomvalidator/ complain about lines being too long in steurenthaler.zip.
They are supposed to be wrapped with CONC tags: http://wiki-en.genealogy.net/GEDCOM/CONC-Tag
When I chop off the longer texts of the getmyancestors result file with a very lousy Python script (resulting in file out.zip), then I can import the file in AhnenblattPortable, else it crashes without further notice. Ahnenblatt shows a warning about an incomplete file, but I suspect that I just broke something with my script.
Can you please do something about this?
Thanks in advance,
Flo
Follow up of andy-z/ged2doc#17
Thanks for your reaction. Your version creates
anstoss.zip which according to http://ged-inline.elasticbeanstalk.com/validate has the problem described in the subject line :)
It's cool that getmyancestors.py offers writing a log file. Unfortunately I can't use it for progress control ("are you still doing something or did you just get stuck?") because it apparently only writes the log on disk at the end of the process. Would it be possible to have the log written after every step or something like that?
Steps to reproduce:
I tried to installl and run in 3 different env; mac, pc and linux and can't get it to run at all
Current behavior:
$ python3 getmyancestors.py
Traceback (most recent call last): File "/usr/lib/python3.7/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.7/runpy.py", line 85, in _run_code exec(code, run_globals) File "getmyancestors/__main__.py", line 1, in <module> from getmyancestors import getmyancestors File "getmyancestors/getmyancestors.py", line 14, in <module> from getmyancestors.classes.tree import Tree ModuleNotFoundError: No module named 'getmyancestors.classes'; 'getmyancestors' is not a package
Expected behavior:
To execute as expected
I executed the following command in Windows using Python 3.6:
python getmyancestors.py -u <myuser> -p <mypassword> -i <myid> -a 6 -c -m -r -o results.ged
And got the following log with and error messages:
Login to FamilySearch...
'-i' is not recognized as an internal or external command,
operable program or batch file.
I debugged it a little bit and found out the cause being my password, which ends with an &
. For that, CMD
will split the commands in two thinking it's a concatenation of commands.
I was able to run the command putting the password between quotes. I decided posting this so maybe you can add a note to the documentation warning people about that.
I get the following error when I try to download 6 generations
Login to FamilySearch...
Download starting individuals...
Traceback (most recent call last):
File "getmyancestors.py", line 933, in
tree.add_indis(todo)
File "getmyancestors.py", line 743, in add_indis
loop.run_until_complete(add_datas(loop, data))
File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 573, in run_until_complete
return future.result()
File "getmyancestors.py", line 730, in add_datas
await future
File "/usr/local/Cellar/python/3.7.1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "getmyancestors.py", line 511, in add_data
self.memories.add(Memorie(x))
File "getmyancestors.py", line 364, in init
self.url = data['links']['alternate'][0]['href']
KeyError: 'alternate'
Steps to reproduce: standard usage
Current behavior: uses GEDCOM v5.1.1, UTF-8
UTF-8 was not introduced untill v5.5.1, according to gedcom validator program.
I examined the versions list for the gedcom spec and found there is no 5.1.1.
Is '5.1.1' a typo?
Expected behavior: GEDCOM v5.5.1, UTF-8
Corresponding Familysearch link (optional):
Every once in a while I would be happy to be able to see what configuration values I entered. Can you maybe either write them on the result tab or into the HEAD of the GEDCOM file?
It might also be an idea to write "getmyancestors" in the HEAD of the GEDCOM file as well
best regards and thanks for working on the script,
Flo
Hi! I would like to download attachments (sources/memories) related to people in my tree. Many people are editing the FS and would not want to miss the work already done. It's possible?
Steps to reproduce:
This information should exist with any sources.
Current behavior:
There are no repo statements defined or linked to.
Expected behavior:
The gedcom should collect source information based on where it came from.
The repository should reflect both familysearch and the collection
to be distinct from outside use of similar collections.
(It seems like there is a hierarchy here too,
but my perception of gedcom is that it needs flattening).
The collection for the link below is "New Jersey Births and Christenings, 1660-1980"
Corresponding Familysearch link (optional):
https://familysearch.org/ark:/61903/1:1:FCV5-NBP
Or does it allow 7 generations? Is there a limit? What happens when it reaches a generation without ancestors? I have >7 generations in my tree, and was just trying this out. It's the current version of the script, which I just found out about and installed today. Below is the output.
python3 getmyancestors.py -a 7 -d 2 -m -o out7.ged -l out7.log -v
Enter FamilySearch username:
Enter FamilySearch password:
Login to FamilySearch...
Download starting individuals...
Download 1th generation of ancestors...
Download 2th generation of ancestors...
Download 3th generation of ancestors...
Download 4th generation of ancestors...
Download 5th generation of ancestors...
Traceback (most recent call last):
File "getmyancestors.py", line 943, in <module>
todo = tree.add_parents(todo) - done
File "getmyancestors.py", line 790, in add_parents
self.add_indis(parents)
File "getmyancestors.py", line 743, in add_indis
loop.run_until_complete(add_datas(loop, data))
File "/usr/lib/python3.6/asyncio/base_events.py", line 467, in run_until_complete
return future.result()
File "getmyancestors.py", line 730, in add_datas
await future
File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
result = self.fn(*self.args, **self.kwargs)
File "getmyancestors.py", line 511, in add_data
self.memories.add(Memorie(x))
File "getmyancestors.py", line 364, in __init__
self.url = data['links']['alternate'][0]['href']
KeyError: 'alternate'
Future exception was never retrieved
future: <Future finished exception=KeyError('alternate',)>
Traceback (most recent call last):
File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
result = self.fn(*self.args, **self.kwargs)
File "getmyancestors.py", line 511, in add_data
self.memories.add(Memorie(x))
File "getmyancestors.py", line 364, in __init__
self.url = data['links']['alternate'][0]['href']
KeyError: 'alternate'
First off, thanks for the great program!
Steps to reproduce:
Enter a password with various uppercase and lowercase letters, numerals, and special characters (specifically ^
and $
) using the CLI parameter -p
.
Current behavior:
A password with various uppercase and lowercase letters, numerals, and special characters (specifically ^
and $
) produced the error The username or password was incorrect
when used with the CLI parameter -p
. The exact same username--password combination did not have any authentication issues when the GUI was used (fstogedcom
).
When the password was changed on the FamilySearch website to use only uppercase and lowercase letters, neither the CLI nor the GUI produced any errors.
This may be a problem with the use of escape characters.
Expected behavior:
CLI authentication with -p
should allow for the use of a password with various uppercase and lowercase letters, numerals, and special characters (specifically ^
and $
) when using the CLI parameter -p
.
./fstogedcom.py
Exception in thread Thread-5:
Traceback (most recent call last):
File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/usr/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "./fstogedcom.py", line 464, in login
self.fs.get_url("/platform/tree/persons/%s/ordinances.json" % self.fs.get_userid())
AttributeError: 'Session' object has no attribute 'get_userid'
As a FamilySearch user I want to download a gedcom using the -m and the -r options with the profile of a deceased person which has been marked as confidential.
To replicate, we may create the GGGG-000 and a GGGG-001 profile, both with a place of birth or a place of death in Turkey, and we add GGGG-001 as a spouse of GGGG-000.
Eventually the profiles will be marked as confidential, and managed in a private space, as the ones of living people.
When trying to download a gedcom of one of those confidential deceased persons with getmyancestors.py called with the -m and the -r options, we get a similar error:
c:\Dev\GitHub\getmyancestors>python getmyancestors.py -u username -p password -d 0 -a 0 -o "test.ged" -l "test.log" -m -v -r -i GGGG-000
Login to FamilySearch...
Download starting individuals...
Download spouses and marriage information...
Download notes and contributors...
Traceback (most recent call last):
File "getmyancestors.py", line 983, in <module>
loop.run_until_complete(download_stuff(loop))
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\asyncio\base_events.py", line 467, in run_until_complete
return future.result()
File "getmyancestors.py", line 979, in download_stuff
await future
File "C:\Program Files (x86)\Microsoft Visual Studio\Shared\Anaconda3_64\lib\concurrent\futures\thread.py", line 55, in run
result = self.fn(*self.args, **self.kwargs)
File "getmyancestors.py", line 681, in get_contributors
for entries in data['entries']:
TypeError: 'NoneType' object is not subscriptable
The gedcom is generated, but it is empty.
This is the log file:
[2018-11-10 14:07:09]: Downloading: https://www.familysearch.org/auth/familysearch/login
[2018-11-10 14:07:09]: Downloading: https://ident.familysearch.org/cis-web/oauth2/v3/authorization?[..]
[2018-11-10 14:07:10]: Downloading: https://ident.familysearch.org/cis-web/oauth2/v3/authorization
[2018-11-10 14:07:10]: Downloading: https://www.familysearch.org/auth/familysearch/callback?[..]
[2018-11-10 14:07:11]: FamilySearch session id: [..]-aws-prod
[2018-11-10 14:07:11]: Downloading: /platform/users/current.json
[2018-11-10 14:07:11]: Status code: 200
[2018-11-10 14:07:11]: Downloading: /platform/tree/persons.json?pids=GGGG-000
[2018-11-10 14:07:12]: Status code: 200
[2018-11-10 14:07:12]: Downloading: /platform/tree/persons.json?pids=GGGG-001
[2018-11-10 14:07:13]: Status code: 200
[2018-11-10 14:07:13]: Downloading: /platform/tree/couple-relationships/MGGG-000.json
[2018-11-10 14:07:14]: Status code: 200
[2018-11-10 14:07:14]: Downloading: /platform/tree/persons/GGGG-000/notes.json
[2018-11-10 14:07:14]: Downloading: /platform/tree/persons/GGGG-000/changes.json
[2018-11-10 14:07:14]: Downloading: /platform/tree/persons/GGGG-001/notes.json
[2018-11-10 14:07:14]: Downloading: /platform/tree/persons/GGGG-001/changes.json
[2018-11-10 14:07:14]: Downloading: /platform/tree/couple-relationships/MGGG-000/notes.json
[2018-11-10 14:07:14]: Downloading: /platform/tree/couple-relationships/MGGG-000/changes.json
[2018-11-10 14:07:15]: Status code: 204
[2018-11-10 14:07:15]: Status code: 204
[2018-11-10 14:07:15]: Status code: 204
[2018-11-10 14:07:15]: Status code: 200
[2018-11-10 14:07:15]: Status code: 204
[2018-11-10 14:07:15]: Status code: 200
When executing the same line without the -m option, the gedcom gets generated successfully:
c:\Dev\GitHub\getmyancestors>python getmyancestors.py -u username -p password -d 0 -a 0 -o "test.ged" -l "test.log" -v -r -i GGGG-000
Login to FamilySearch...
Download starting individuals...
Download notes and contributors...
Downloaded 1 individuals, 0 families, 0 sources and 1 notes in 4 seconds with 4 HTTP requests.
This is the resulting gedcom:
0 HEAD
1 CHAR UTF-8
1 GEDC
2 VERS 5.5
2 FORM LINEAGE-LINKED
0 @I1@ INDI
1 NAME Mustafa /Turkum/
1 SEX M
1 DEAT
2 DATE 1 December 1954
1 BIRT
2 DATE 1897
2 PLAC Yalak, Sarız, Kayseri, Turkey
3 MAP
4 LATI 38.296781
4 LONG 36.434907
1 _FSFTID GGGG-000
1 NOTE @N1@
0 @N1@ NOTE === Contributors ===
1 CONT AlessandroRiolo
0 TRLR
Steps to reproduce:
a birth certificate is a single source.
It may have three individuals referring to it:
a mother, a father, and the child
Current behavior:
It shows 3 separate sources:
child certificate
mother in child certificate
father in child certificate
Expected behavior:
all 3 should pull in the same child certificate
Each reference should have a note of the appropriate name reflected on the certificate
Corresponding Familysearch link (optional):
mother https://familysearch.org/ark:/61903/1:1:FCV5-NBR
son https://familysearch.org/ark:/61903/1:1:FCV5-NBP
Using login with Google on Familysearch login page, it it possible to use this tool?
Is there a workaround?
Thanks
The initiatory ordinance is missing.
I add this at the line 636 :
elif o["type"] == "http://lds.org/Initiatory":
self.initiatory = Ordinance(o)
So for my needs it's working, but I think there need to have more change to integrate it in the gedcom
Steps to reproduce:
Try to log in through either the graphical or command line option.
Current behavior:
Downloading: https://www.familysearch.org/auth/familysearch/login
KeyError
Downloading: https://www.familysearch.org/auth/familysearch/login
KeyError
This seems to repeat forever
Expected behavior:
Login and download family tree. I was previously able to do so.
The only generated log seems to be the above cycle of downloading keyerror, but I do get a traceback on cancelling (with keyboard interrupt):
Traceback (most recent call last):
File "AppData\Local\Programs\Python\Python311\Lib\site-packages\getmyancestors-1.0.2rc2-py3.11.egg\getmyancestors\classes\session.py", line 46, in login
url = r.headers["Location"]
~~~~~~~~~^^^^^^^^^^^^
File "AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\structures.py", line 54, in __getitem__
return self._store[key.lower()][1]
~~~~~~~~~~~^^^^^^^^^^^^^
KeyError: 'location'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "AppData\Local\Programs\Python\Python311\Scripts\getmyancestors-script.py", line 33, in <module>
sys.exit(load_entry_point('getmyancestors==1.0.2rc2', 'console_scripts', 'getmyancestors')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "AppData\Local\Programs\Python\Python311\Lib\site-packages\getmyancestors-1.0.2rc2-py3.11.egg\getmyancestors\getmyancestors.py", line 176, in main
fs = Session(args.username, args.password, args.verbose, args.logfile, args.timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "AppData\Local\Programs\Python\Python311\Lib\site-packages\getmyancestors-1.0.2rc2-py3.11.egg\getmyancestors\classes\session.py", line 27, in __init__
self.logged = self.login()
^^^^^^^^^^^^
File "AppData\Local\Programs\Python\Python311\Lib\site-packages\getmyancestors-1.0.2rc2-py3.11.egg\getmyancestors\classes\session.py", line 91, in login
time.sleep(self.timeout)
KeyboardInterrupt
^C
Running on commit b97dbe5, I am getting the following error many hours into a large download. I'm not sure what additional details might help resolve this, but I'm happy to provide any info you might need.
Traceback (most recent call last):
File "getmyancestors.py", line 1008, in <module>
todo = tree.add_children(todo) - done
File "getmyancestors.py", line 841, in add_children
self.add_indis(set.union(*(set(rel) for rel in rels)))
File "getmyancestors.py", line 757, in add_indis
loop.run_until_complete(add_datas(loop, data))
File "/usr/lib/python3.6/asyncio/base_events.py", line 473, in run_until_complete
return future.result()
File "getmyancestors.py", line 744, in add_datas
await future
File "/usr/lib/python3.6/concurrent/futures/thread.py", line 56, in run
result = self.fn(*self.args, **self.kwargs)
File "getmyancestors.py", line 501, in add_data
self.notes.add(Note('=== ' + self.tree.fs._('Life Sketch') + ' ===\n' + x['value'], self.tree))
KeyError: 'value'
Familysearch is claiming that this app is unauthorized and has created a block on my IP address for using it.
Their stance seems to be that any app not on the list there is a violation of their terms of service.
https://grms.my.site.com/solutionsgallery/s/
If that's their stance then this app should be withdrawn from the public.
Hi there,
the file ungarn.ged.txt has a lot of duplicate family memberships. See for example line 19 and 20:
I used this line with c06fc5f to create the file:
python getmyancestors.py -a 20 -d 25 -m -u my_user -p my_password -i LYNH-CQB -o ungarn.ged -v
Thanks in advance
Flo
While looking at the source code, I was wondering about the condition where a person might have multiple unknown spouses, with a set of children for each family. Would these families get combined together, since the tree.fam[spouseid, spouseid] member is a set based on the combined ids of the two spouses. Unknown spouse 1 and unknown spouse 2 would both have None for their ids. Would then all these children get combined into one family?
Steps to reproduce: simple execute.
Current behavior: AttributeError: module 'collections' has no attribute 'MutableMapping'
pi@pi4:~/tmp/getmyancestors $ python3 -m pip install -r requirements
Could not open requirements file: [Errno 2] No such file or directory: 'requirements'
Note that adding the complete file extension and the command carried out correctly.
``pi@pi4:~/tmp/getmyancestors $ python3 -m pip install -r requirements.txt
The READ.me file should be updated to show "python3 -m pip install -r requirements.txt" vice "python3 -m pip install -r requirements"
Thank you.
Steps to reproduce:
None
Current behavior:
No apparent option to download brothers and sisters of ancestor
I was wondering if there's an option to download the siblings of an ancestor, I don't see any option to do so. Thank you!
Steps to reproduce:
Current behavior:
Expected behavior:
Corresponding Familysearch link (optional):
Assuming gedcom allows for it, I believe getmyancestors should retrieve and respect the parent-child relationship (bio, step, adopt, etc). The same goes for the "Preferred" status for the spouse.
Steps to reproduce: Attempt to log in to FS for getmyancestors purposes
Current behavior: Enter FamilySearch username: myusername
Enter FamilySearch password: mypassword
Login to FamilySearch... [hangs, hit CTRL+C with following results]
Traceback (most recent call last):
File "C:\Users\shaw_\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\getmyancestors\classes\session.py", line 56, in login
idx = r.text.index('name="params" value="')
ValueError: substring not found
Expected behavior: Log in normally
Corresponding Familysearch link (optional):
I get the same problem in my own Python code which uses the same mechanism (for which many thanks). I am wondering if the relevant service has been discontinued at the FS end (see latest developer newsletter).
When attempting to download ID "LHB1-8MV" 1 generations ascend and 1 generations descend, add spouses and couples and temple info the GUI application hangs.
Console Output
`[2020-02-19 12:16:00]: Downloading: /platform/tree/persons/LH1M-M2X/notes.json
[2020-02-19 12:16:01]: Status code: 200
[2020-02-19 12:16:01]: Downloading: /platform/tree/persons/KZ9C-6ZP/notes.json
[2020-02-19 12:16:01]: Status code: 200
[2020-02-19 12:16:01]: Downloading: /service/tree/tree-data/reservations/person/
KZ9C-6ZP/ordinances
[2020-02-19 12:16:01]: Status code: 204
[2020-02-19 12:16:01]: Downloading: /platform/tree/persons/LHB1-Q2R/notes.json
[2020-02-19 12:16:01]: Status code: 200
[2020-02-19 12:16:01]: Downloading: /service/tree/tree-data/reservations/person/
LHB1-Q2R/ordinances
[2020-02-19 12:16:02]: Status code: 204
[2020-02-19 12:16:02]: Downloading: /platform/tree/persons/LB3Y-LCL/notes.json
[2020-02-19 12:16:02]: Status code: 204
[2020-02-19 12:16:02]: Downloading: /service/tree/tree-data/reservations/person/
LB3Y-LCL/ordinances
[2020-02-19 12:16:02]: Status code: 204
[2020-02-19 12:16:02]: Status code: 200
[2020-02-19 12:16:02]: Downloading: /platform/tree/persons/KC2C-9V2/notes.json
[2020-02-19 12:16:02]: Downloading: /service/tree/tree-data/reservations/person/
KC2C-9V2/ordinances
[2020-02-19 12:16:03]: Status code: 200
[2020-02-19 12:16:03]: Downloading: /platform/tree/persons/LK3K-MWR/notes.json
[2020-02-19 12:16:03]: Status code: 200
[2020-02-19 12:16:03]: Downloading: /service/tree/tree-data/reservations/person/
LK3K-MWR/ordinances
[2020-02-19 12:16:03]: Status code: 204
[2020-02-19 12:16:03]: Downloading: /platform/tree/persons/LH1M-M6W/notes.json
[2020-02-19 12:16:03]: Status code: 200
[2020-02-19 12:16:03]: Downloading: /service/tree/tree-data/reservations/person/
LH1M-M6W/ordinances
[2020-02-19 12:16:04]: Status code: 200
[2020-02-19 12:16:04]: Downloading: /platform/tree/persons/KZ51-1LS/notes.json
[2020-02-19 12:16:04]: Status code: 204
[2020-02-19 12:16:04]: Status code: 200
[2020-02-19 12:16:04]: Downloading: /service/tree/tree-data/reservations/person/
KZ51-1LS/ordinances
[2020-02-19 12:16:04]: Downloading: /platform/tree/persons/LB3Y-LTC/notes.json
[2020-02-19 12:16:04]: Status code: 200
[2020-02-19 12:16:04]: Downloading: /service/tree/tree-data/reservations/person/
LB3Y-LTC/ordinances
[2020-02-19 12:16:04]: Status code: 200
[2020-02-19 12:16:04]: Downloading: /platform/tree/persons/LH5L-P7P/notes.json
[2020-02-19 12:16:04]: Status code: 204
[2020-02-19 12:16:04]: Downloading: /service/tree/tree-data/reservations/person/
LH5L-P7P/ordinances
[2020-02-19 12:16:05]: Status code: 200
[2020-02-19 12:16:05]: Downloading: /platform/tree/persons/LZFC-5KZ/notes.json
[2020-02-19 12:16:05]: Status code: 204
[2020-02-19 12:16:05]: Downloading: /service/tree/tree-data/reservations/person/
LZFC-5KZ/ordinances
[2020-02-19 12:16:05]: Status code: 200
[2020-02-19 12:16:05]: Downloading: /platform/tree/persons/K8N9-YFL/notes.json
[2020-02-19 12:16:05]: Status code: 204
[2020-02-19 12:16:05]: Downloading: /service/tree/tree-data/reservations/person/
K8N9-YFL/ordinances
[2020-02-19 12:16:05]: Status code: 200
[2020-02-19 12:16:05]: Downloading: /platform/tree/persons/KCBD-DW5/notes.json
[2020-02-19 12:16:05]: Status code: 200
[2020-02-19 12:16:05]: Downloading: /service/tree/tree-data/reservations/person/
KCBD-DW5/ordinances
[2020-02-19 12:16:06]: Status code: 204
[2020-02-19 12:16:06]: Downloading: /platform/tree/persons/MRHD-X56/notes.json
[2020-02-19 12:16:06]: Status code: 200
[2020-02-19 12:16:06]: Status code: 204
[2020-02-19 12:16:06]: Downloading: /service/tree/tree-data/reservations/person/
MRHD-X56/ordinances
[2020-02-19 12:16:06]: Status code: 200
[2020-02-19 12:16:06]: Downloading: /platform/tree/persons/MQ56-DS2/notes.json
[2020-02-19 12:16:06]: Downloading: /service/tree/tree-data/reservations/person/
MQ56-DS2/ordinances
[2020-02-19 12:16:06]: Status code: 204
[2020-02-19 12:16:06]: Downloading: /platform/tree/persons/LZ85-KSZ/notes.json
[2020-02-19 12:16:06]: Status code: 200
[2020-02-19 12:16:06]: Downloading: /service/tree/tree-data/reservations/person/
LZ85-KSZ/ordinances
[2020-02-19 12:16:08]: Status code: 204
[2020-02-19 12:16:08]: Downloading: /platform/tree/persons/KHXG-4SN/notes.json
[2020-02-19 12:16:08]: Status code: 200
[2020-02-19 12:16:08]: Status code: 204
[2020-02-19 12:16:08]: Downloading: /service/tree/tree-data/reservations/person/
KHXG-4SN/ordinances
[2020-02-19 12:16:08]: Downloading: /platform/tree/persons/K85L-7K6/notes.json
[2020-02-19 12:16:08]: Status code: 200
[2020-02-19 12:16:08]: Status code: 204
[2020-02-19 12:16:08]: Downloading: /service/tree/tree-data/reservations/person/
K85L-7K6/ordinances
[2020-02-19 12:16:08]: Downloading: /platform/tree/persons/L6VN-5KY/notes.json
[2020-02-19 12:16:08]: Status code: 200
[2020-02-19 12:16:08]: Downloading: /service/tree/tree-data/reservations/person/
L6VN-5KY/ordinances
[2020-02-19 12:16:09]: Status code: 200
[2020-02-19 12:16:09]: Downloading: /platform/tree/persons/LHB1-X7R/notes.json
[2020-02-19 12:16:09]: Status code: 204
[2020-02-19 12:16:09]: Downloading: /service/tree/tree-data/reservations/person/
LHB1-X7R/ordinances
[2020-02-19 12:16:09]: Status code: 204
[2020-02-19 12:16:09]: Downloading: /platform/tree/persons/KZ7Z-TRM/notes.json
[2020-02-19 12:16:09]: Status code: 204
[2020-02-19 12:16:09]: Downloading: /service/tree/tree-data/reservations/person/
KZ7Z-TRM/ordinances
[2020-02-19 12:16:09]: Status code: 200
[2020-02-19 12:16:09]: Downloading: /platform/tree/persons/MB8K-TCV/notes.json
[2020-02-19 12:16:09]: Status code: 200
[2020-02-19 12:16:09]: Downloading: /service/tree/tree-data/reservations/person/
MB8K-TCV/ordinances
[2020-02-19 12:16:10]: Status code: 204
[2020-02-19 12:16:10]: Downloading: /platform/tree/persons/LHB5-Z49/notes.json
[2020-02-19 12:16:10]: Status code: 200
[2020-02-19 12:16:10]: Downloading: /service/tree/tree-data/reservations/person/
LHB5-Z49/ordinances
[2020-02-19 12:16:10]: Status code: 200
[2020-02-19 12:16:10]: Downloading: /platform/tree/persons/MB8K-GQ6/notes.json
[2020-02-19 12:16:10]: Status code: 200
[2020-02-19 12:16:10]: Downloading: /service/tree/tree-data/reservations/person/
MB8K-GQ6/ordinances
[2020-02-19 12:16:10]: Status code: 204
[2020-02-19 12:16:10]: Downloading: /platform/tree/persons/LHB1-C4R/notes.json
[2020-02-19 12:16:11]: Status code: 200
[2020-02-19 12:16:11]: Downloading: /service/tree/tree-data/reservations/person/
LHB1-C4R/ordinances
[2020-02-19 12:16:11]: Status code: 204
[2020-02-19 12:16:11]: Status code: 204
[2020-02-19 12:16:11]: Status code: 200
[2020-02-19 12:16:11]: Downloading: /platform/tree/persons/LB3Y-5SW/notes.json
[2020-02-19 12:16:11]: Downloading: /service/tree/tree-data/reservations/person/
LB3Y-5SW/ordinances
[2020-02-19 12:16:11]: Downloading: /platform/tree/persons/2S3G-RMZ/notes.json
[2020-02-19 12:16:11]: Status code: 204
[2020-02-19 12:16:11]: Downloading: /service/tree/tree-data/reservations/person/
2S3G-RMZ/ordinances
[2020-02-19 12:16:11]: Status code: 200
[2020-02-19 12:16:12]: Downloading: /platform/tree/persons/LQRK-L93/notes.json
[2020-02-19 12:16:12]: Status code: 200
[2020-02-19 12:16:12]: Downloading: /service/tree/tree-data/reservations/person/
LQRK-L93/ordinances
[2020-02-19 12:16:13]: Status code: 200
[2020-02-19 12:16:13]: Downloading: /platform/tree/persons/LHT7-F2D/notes.json
[2020-02-19 12:16:13]: Status code: 204
[2020-02-19 12:16:13]: Downloading: /service/tree/tree-data/reservations/person/
LHT7-F2D/ordinances
[2020-02-19 12:16:13]: Status code: 200
[2020-02-19 12:16:13]: Downloading: /platform/tree/persons/K8F2-WVF/notes.json
[2020-02-19 12:16:13]: Status code: 200
[2020-02-19 12:16:13]: Downloading: /service/tree/tree-data/reservations/person/
K8F2-WVF/ordinances
[2020-02-19 12:16:13]: Status code: 204
[2020-02-19 12:16:13]: Downloading: /platform/tree/persons/KN7C-8YR/notes.json
[2020-02-19 12:16:13]: Status code: 200
[2020-02-19 12:16:13]: Downloading: /service/tree/tree-data/reservations/person/
KN7C-8YR/ordinances
[2020-02-19 12:16:14]: Status code: 200
[2020-02-19 12:16:14]: Downloading: /platform/tree/persons/KZ3B-9CF/notes.json
[2020-02-19 12:16:14]: Status code: 200
[2020-02-19 12:16:14]: Status code: 204
[2020-02-19 12:16:14]: Downloading: /service/tree/tree-data/reservations/person/
KZ3B-9CF/ordinances
[2020-02-19 12:16:14]: Downloading: /platform/tree/persons/KHSX-71K/notes.json
[2020-02-19 12:16:14]: Status code: 200
[2020-02-19 12:16:14]: Downloading: /service/tree/tree-data/reservations/person/
KHSX-71K/ordinances
[2020-02-19 12:16:14]: Status code: 200
[2020-02-19 12:16:14]: Downloading: /platform/tree/persons/L7K9-FV1/notes.json
[2020-02-19 12:16:14]: Status code: 200
[2020-02-19 12:16:14]: Downloading: /service/tree/tree-data/reservations/person/
L7K9-FV1/ordinances
[2020-02-19 12:16:15]: Status code: 204
[2020-02-19 12:16:15]: Downloading: /platform/tree/persons/K4TL-8YT/notes.json
[2020-02-19 12:16:15]: Status code: 204
[2020-02-19 12:16:15]: Downloading: /service/tree/tree-data/reservations/person/
K4TL-8YT/ordinances
[2020-02-19 12:16:15]: Status code: 200
[2020-02-19 12:16:15]: Downloading: /platform/tree/persons/KC9Q-C8P/notes.json
[2020-02-19 12:16:15]: Status code: 200
[2020-02-19 12:16:15]: Downloading: /service/tree/tree-data/reservations/person/
KC9Q-C8P/ordinances
[2020-02-19 12:16:15]: Status code: 200
[2020-02-19 12:16:15]: Downloading: /platform/tree/persons/L8PK-X8F/notes.json
[2020-02-19 12:16:15]: Status code: 200
[2020-02-19 12:16:15]: Downloading: /service/tree/tree-data/reservations/person/
L8PK-X8F/ordinances
[2020-02-19 12:16:16]: Status code: 204
[2020-02-19 12:16:16]: Downloading: /platform/tree/persons/K8B8-ZQL/notes.json
[2020-02-19 12:16:16]: Status code: 204
[2020-02-19 12:16:16]: Downloading: /service/tree/tree-data/reservations/person/
K8B8-ZQL/ordinances
[2020-02-19 12:16:16]: Status code: 200
[2020-02-19 12:16:16]: Status code: 200
[2020-02-19 12:16:16]: Downloading: /platform/tree/persons/K2TL-71X/notes.json
[2020-02-19 12:16:16]: Downloading: /service/tree/tree-data/reservations/person/
K2TL-71X/ordinances
[2020-02-19 12:16:16]: Status code: 200
[2020-02-19 12:16:16]: Downloading: /platform/tree/persons/J99X-KP4/notes.json
[2020-02-19 12:16:16]: Status code: 200
[2020-02-19 12:16:16]: Downloading: /service/tree/tree-data/reservations/person/
J99X-KP4/ordinances
[2020-02-19 12:16:17]: Status code: 200
[2020-02-19 12:16:17]: Downloading: /platform/tree/persons/9MBM-X4P/notes.json
[2020-02-19 12:16:17]: Status code: 204
[2020-02-19 12:16:17]: Downloading: /service/tree/tree-data/reservations/person/
9MBM-X4P/ordinances
[2020-02-19 12:16:17]: Status code: 204
[2020-02-19 12:16:17]: Downloading: /platform/tree/persons/KH9Y-33V/notes.json
[2020-02-19 12:16:17]: Status code: 204
[2020-02-19 12:16:17]: Downloading: /service/tree/tree-data/reservations/person/
KH9Y-33V/ordinances
[2020-02-19 12:16:17]: Status code: 200
[2020-02-19 12:16:17]: Downloading: /platform/tree/persons/LC3V-RKY/notes.json
[2020-02-19 12:16:18]: Status code: 200
[2020-02-19 12:16:18]: Downloading: /service/tree/tree-data/reservations/person/
LC3V-RKY/ordinances
[2020-02-19 12:16:18]: Status code: 204
[2020-02-19 12:16:18]: Downloading: /platform/tree/couple-relationships/MKSM-FMR
/notes.json
[2020-02-19 12:16:19]: Status code: 204
[2020-02-19 12:16:19]: Downloading: /platform/tree/couple-relationships/MJMT-KK9
/notes.json
[2020-02-19 12:16:19]: Status code: 200
[2020-02-19 12:16:19]: Downloading: /platform/tree/couple-relationships/MM1P-LZR
/notes.json
[2020-02-19 12:16:19]: Status code: 200
[2020-02-19 12:16:19]: Downloading: /platform/tree/couple-relationships/M3VJ-FF6
/notes.json
[2020-02-19 12:16:19]: Status code: 204
[2020-02-19 12:16:19]: Downloading: /platform/tree/couple-relationships/M9XW-CTT
/notes.json
[2020-02-19 12:16:19]: Status code: 200
[2020-02-19 12:16:19]: Downloading: /platform/tree/couple-relationships/MKHD-NTW
/notes.json
[2020-02-19 12:16:20]: Status code: 204
[2020-02-19 12:16:20]: Downloading: /platform/tree/couple-relationships/M4KL-9ZR
/notes.json
[2020-02-19 12:16:20]: Status code: 204
[2020-02-19 12:16:20]: Downloading: /platform/tree/couple-relationships/MPS1-DM6
/notes.json
[2020-02-19 12:16:20]: Status code: 204
[2020-02-19 12:16:20]: Downloading: /platform/tree/couple-relationships/M7ZJ-HFM
/notes.json
[2020-02-19 12:16:20]: Status code: 204
[2020-02-19 12:16:20]: Downloading: /platform/tree/couple-relationships/MJQS-WSB
/notes.json
[2020-02-19 12:16:20]: Status code: 200
[2020-02-19 12:16:20]: Downloading: /platform/tree/couple-relationships/MMZK-K9Z
/notes.json
[2020-02-19 12:16:20]: Status code: 204
[2020-02-19 12:16:20]: Downloading: /platform/tree/couple-relationships/M7ZN-XPR
/notes.json
[2020-02-19 12:16:21]: Status code: 204
[2020-02-19 12:16:21]: Downloading: /platform/tree/couple-relationships/MMX1-YLF
/notes.json
[2020-02-19 12:16:21]: Status code: 204
[2020-02-19 12:16:21]: Downloading: /platform/tree/couple-relationships/MVRL-WYW
/notes.json
[2020-02-19 12:16:21]: Status code: 204
[2020-02-19 12:16:21]: Downloading: /platform/tree/couple-relationships/MV7G-S33
/notes.json
[2020-02-19 12:16:21]: Status code: 204
[2020-02-19 12:16:21]: Downloading: /platform/tree/couple-relationships/M4KL-HXN
/notes.json
[2020-02-19 12:16:21]: Status code: 204
[2020-02-19 12:16:21]: Downloading: /platform/tree/couple-relationships/MN6C-D1B
/notes.json
[2020-02-19 12:16:21]: Status code: 204
[2020-02-19 12:16:21]: Downloading: /platform/tree/couple-relationships/M28S-H6Q
/notes.json
[2020-02-19 12:16:22]: Status code: 204
[2020-02-19 12:16:22]: Downloading: /platform/tree/couple-relationships/M4KL-92V
/notes.json
[2020-02-19 12:16:22]: Status code: 204
[2020-02-19 12:16:22]: Downloading: /platform/tree/couple-relationships/MHQR-KG4
/notes.json
[2020-02-19 12:16:22]: Status code: 204
[2020-02-19 12:16:22]: Status code: 204
[2020-02-19 12:16:22]: Status code: 204
[2020-02-19 12:16:22]: Status code: 204
[2020-02-19 12:16:23]: Status code: 204
[2020-02-19 12:16:23]: Status code: 204
Exception in thread Thread-5:
Traceback (most recent call last):
File "C:\Python38\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Python38\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "fstogedcom.py", line 549, in download
loop.run_until_complete(download_stuff(loop))
File "C:\Python38\lib\asyncio\base_events.py", line 612, in run_until_complete
return future.result()
File "fstogedcom.py", line 540, in download_stuff
await future
File "C:\Python38\lib\concurrent\futures\thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "...\getmyancestors.py", line 1013, in add_
ordinances
ret, famc = self.indi[fid].get_ordinances()
File "...\getmyancestors\getmyancestors.py", line 637, in get_o
rdinances
for key, o in data["data"].items():
AttributeError: 'NoneType' object has no attribute 'items'
`
When running getmyancestors with ascent value of 6 and descent value of 7, my account was disabled, apparently for causing issues with the FamilySearch site.
Here are the options I used,
./getmyancestors.py -a 6 -d 7 -m -u -p -i -o output.ged
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.