Coder Social home page Coder Social logo

getmyancestors's People

Contributors

a2800276 avatar benoit-phytocontrol avatar changeling avatar fhgwright avatar freeseek avatar linekio avatar melroy89 avatar sebdu66 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

getmyancestors's Issues

Unresolved pip dependency conflicts during installation

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):

Write GEDCOM file on terminal interrupt

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.

Feature request: Include other marriages

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

augment the source information with the indexed text and image link

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

Invalid auth request

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!

Feature request: include spouses families

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

Feature Request: Link/Tag Sources?

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!

Failure with errors 503 at 7th generation

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):

fstogedcom.py fails on AttributeError: 'Note' object has no attribute 'text'

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'

password not working in terminal

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:

Readme

The readme is outdated (maybe having version dates in there is not the best solution) and lacks the need for the diskcache module.

GetMyAncestors integration with Gramps Python FOSS?

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.

Line wrapping

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

Flush the log

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?

Cannot run at all

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' is not recognized as an internal or external command"

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.

Unable to download individuals

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'

Update to 5.5.1 or 7

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):

Feature request: Show settings somewhere

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

Feature Request: Download attachments?

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?

Group Sources by repository

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

Error downloading 7 generations

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'

Password with various characters not accepted by CLI but accepted by GUI

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 no attribute error

./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'

Error while downloading a confidential profile with the -m and -r options

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

missing source and reference to source hierarchy

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

Google Authentication

Using login with Google on Familysearch login page, it it possible to use this tool?

Is there a workaround?

Thanks

Missing ordinance

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

Login Fails - KeyError "location"

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

KeyError: 'value' in getmyancestors.py line 501

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'

Duplicate family memberships

Hi there,

the file ungarn.ged.txt has a lot of duplicate family memberships. See for example line 19 and 20:

1 FAMS @F1@
1 FAMS @F1@

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

Would a spouse with multiple unknown spouses (different families) get indexed once?

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?

Erro on execute.

Steps to reproduce: simple execute.

Current behavior: AttributeError: module 'collections' has no attribute 'MutableMapping'

Installation instructions in error

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.

Download aunts and uncles?

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!

parent-child relationship missing

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.

FS authentication doesn't seem to be working any more

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).

GUI hangs on Exception

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.

download.log

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'
`

FamilySearch account disabled

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.