Go to file
2024-04-26 20:37:30 +01:00
.github/workflows Try to fix memory issues 2024-04-04 11:15:47 +01:00
functions Simplify code to determine if files need to be changed and prep to move data transformation into PSQL 2024-04-04 21:49:52 +01:00
migrations Add last_saved and related fields to the database 2024-03-10 18:56:40 +00:00
src Add some logging 2024-04-26 20:37:30 +01: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 a little bit of tracing 2024-04-25 14:08:41 +01:00
Cargo.toml Add a little bit of tracing 2024-04-25 14:08:41 +01: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 Push to cause build 2024-03-19 14:36:19 +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.
  • Auto build and release