Go to file
2024-03-10 18:56:40 +00:00
migrations Add last_saved and related fields to the database 2024-03-10 18:56:40 +00:00
src Add last_saved and related fields to the database 2024-03-10 18:56:40 +00:00
.gitignore Initial work 2024-02-07 20:01:47 +00:00
build.rs Move to sqlx migrations 2024-02-07 21:02:27 +00:00
Cargo.lock Add README and license, remove unused dependencies 2024-02-07 20:28:11 +00:00
Cargo.toml Add last_saved and related fields to the database 2024-03-10 18:56:40 +00:00
DATA_OBSERVATIONS.md Add last_saved and related fields to the database 2024-03-10 18:56:40 +00:00
LICENSE-APACHE Add license files and TODOs 2024-02-07 20:56:12 +00:00
LICENSE-MIT Add license files and TODOs 2024-02-07 20:56:12 +00:00
README.md Add more TODOs 2024-02-19 09:22:16 +00:00

Arc Ingester

Read the JSON export from the Arc app and ingest it into a postgresql database. This is designed to be run as a cron job or launchctl jjob to keep the database up to date with the latest data from the app.

Requirements

  • The Arc app installed on your iPhone (or possibly other iOS devices?)
  • The app set to export data
  • A postgresql database to ingest the data into

Installation

Currently, the ingester is not available as a binary, so you will need to build it from source. You will need to have Rust installed to do this.

cargo install --git https://github.com/joshuacoles/arc-ingester

Running

The ingester is a command line tool that takes the following arguments,

arc-ingester --root "~/Library/Mobile Documents/iCloud~com~bigpaua~LearnerCoacher/Documents" --db "postgresql://localhost/arc"

see arc-ingester --help for more information.

TODO

  • Logging
  • Investigate using modified date as a replacement for hashing to determine if a file has changed
    • At the very least, use the modified date to determine if a file has changed and then hash check the ones that have the same modified date.
  • Multithreading
  • Error handling
  • What happens if some places or activities are deleted from the app? I think atm they will be left in the database.