Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/karlicoss/goodrexport

Goodreads data export
https://github.com/karlicoss/goodrexport

backup data-liberation export goodreads

Last synced: about 2 months ago
JSON representation

Goodreads data export

Awesome Lists containing this project

README

        

#+begin_src python :dir src :results drawer :exports results
import goodrexport.export as E; return E.make_parser().prog
#+end_src

#+RESULTS:
:results:
Export/takeout for your personal Goodreads data
:end:

* Setting up
1. The easiest way is =pip3 install --user git+https://github.com/karlicoss/goodrexport=.

Alternatively, use =git clone --recursive=, or =git pull && git submodule update --init=. After that, you can use =pip3 install --editable=.
2. [[https://www.goodreads.com/api/keys][get your API keys]]

* Exporting

#+begin_src python :dir src :results drawer :exports results
import goodrexport.export as E; return E.make_parser().epilog
#+end_src

#+RESULTS:
:results:

Usage:

*Recommended*: create =secrets.py= keeping your api parameters, e.g.:

: user_id = "USER_ID"
: key = "KEY"

After that, use:

: python3 -m goodrexport.export --secrets /path/to/secrets.py

That way you type less and have control over where you keep your plaintext secrets.

*Alternatively*, you can pass parameters directly, e.g.

: python3 -m goodrexport.export --user_id --key

However, this is verbose and prone to leaking your keys/tokens/passwords in shell history.

You can also import ~goodrexport.export~ as a module and call ~get_xml~ function directly to get raw XML.

I *highly* recommend checking exported files at least once just to make sure they contain everything you expect from your export. If not, please feel free to ask or raise an issue!

:end:

* Using data

#+begin_src python :dir src :results drawer :exports results
import goodrexport.exporthelpers.dal_helper as D; return D.make_parser().epilog
#+end_src

#+RESULTS:
:results:

You can use =goodrexport.dal= (stands for "Data Access/Abstraction Layer") to access your exported data, even offline.
I elaborate on motivation behind it [[https://beepb00p.xyz/exports.html#dal][here]].

- main usecase is to be imported as python module to allow for *programmatic access* to your data.

You can find some inspiration in [[https://beepb00p.xyz/mypkg.html][=my.=]] package that I'm using as an API to all my personal data.

- to test it against your export, simply run: ~python3 -m goodrexport.dal --source /path/to/export~

- you can also try it interactively: ~python3 -m goodrexport.dal --source /path/to/export --interactive~

:end: