Hi, I used Moves app back in the day. Never got around to grab the export of my data. I do, however, have a copy of the SQLite database from an old iPhone backup.
I know that importing from the SQLite database is not possible. So I wrote a Python script that grabs data from the database and converts it into daily storyline JSON files. The result looks promising (excerpt below).
When I copy the JSON file into the Arc App iCloud folder I can see the import badge light up for a second but the data does not appear in the app timeline. (Tried to check the iPhone logs, too, but cannot make sense of the Arc logs.)
My question is: is there any place where I can read up on the file format, the directory structure and whatever else is expected from a moves_export.zip
in order to replicate this as close as possible in hopes to get the old data imported?
What I tried:
- added the
storyline_YYYYMMDD.json
file to theiCloud/Arc App/Import/
folder - added the
storyline_YYYYMMDD.json
file to theiCloud/Arc App/moves_export/json/daily/storyline/
folder - added a
moves_export.zip
file (with thejson/daily/storyline/storyline_YYYYMMDD.json
directory/file structure) toiCloud/Arc App/
The zip file is unpacked (by Arc, I assume). But that’s my only success up until here. As I don’t have a (somewhat) complete picture what’s expected by Arc for this to properly work, I am afraid I am stuck. Any kind of pointer, hint at a “official” documentation or just a (working and redacted example file) would be greatly appreciated.
Thanks in advance!
Generated JSON data (excerpt)
(lat
, lon
, date/time fields redacted)
{
"date": "20131008",
"summary": [
{
"activity": "walking",
"group": "walking",
"duration": 1561,
"steps": 2587,
"distance": 1783
},
{
"activity": "transport",
"group": "transport",
"duration": 1539,
"steps": 0,
"distance": 7023
}
],
"segments": [
{
"type": "move",
"activities": [
{
"totalDistanceLoc": 771.0,
"trackPoints": [
{
"time": "20131008T102000+0200",
"lat": 1.0,
"hacc": 1,
"lon": 1.0
},
{
"time": "20131008T102000+0200",
"lat": 1.0,
"hacc": 16.0,
"lon": 1.0
},
{
"time": "20131008T102000+0200",
"lat": 1.0,
"hacc": 4.0,
"lon": 1.0
}
],
"startTime": "20131008T102000+0200",
"totalDistanceStep": 719,
"steps": 959,
"bridged": false,
"filteredSteps": 0,
"totalTime": 545,
"activity": "walking",
"totalDistance": 771,
"group": "walking"
}
],
"startTime": "20131008T102000+0200",
"steps": 0,
"bridged": false,
"endTime": "20131008T102000+0200"
},
{
"bridged": false,
"place": {
"id": 917312,
"type": "unknown",
"location": {
"lat": 1.0,
"lon": 1.0
}
},
"type": "place",
"startTime": "20131008T102000+0200",
"activities": [
{
"totalDistanceLoc": 1,
"trackPoints": [
{
"time": "20131008T102000+0200",
"lat": 1.0,
"hacc": 100.0,
"lon": 1.0
},
{
"time": "20131008T102000+0200",
"lat": 1.0,
"hacc": 100.0,
"lon": 1.0
}
],
"startTime": "20131008T102000+0200",
"totalDistanceStep": 15,
"steps": 20,
"bridged": false,
"filteredSteps": 0,
"totalTime": 30,
"activity": "walking",
"totalDistance": 10,
"group": "walking"
}
],
"location": {
"lat": 1.0,
"lon": 1.0
},
"endTime": "20131008T102000+0200",
"steps": 0
}
]
}