Skip to content

Instantly share code, notes, and snippets.

@banterability
Last active January 14, 2016 00:37
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save banterability/9059648 to your computer and use it in GitHub Desktop.
Save banterability/9059648 to your computer and use it in GitHub Desktop.
Get iPhone battery life over time from Reporter App's (http://www.reporter-app.com/) logs in Dropbox
async = require 'async'
fs = require 'fs'
{filter, flatten} = require 'underscore'
OBJ_C_EPOCH = 978307200
DROPBOX_DIR = #"<path to your dropbox folder >/Dropbox/Apps/Reporter-App/"
fs.readdir DROPBOX_DIR, (err, files) ->
throw new err if err?
dataFiles = filter files, (filename) -> /.json/.test filename
dataFilesFullPath = dataFiles.map (filename) ->
"#{DROPBOX_DIR}#{filename}"
async.map dataFilesFullPath, readFile, (err, results) ->
throw new err if err?
console.log flatten results
readFile = (filename, cb) ->
fs.readFile filename, encoding: 'utf-8', (err, data) ->
throw new err if err?
js = JSON.parse data
results = js.snapshots.map (snapshot) ->
ts: convertObjCTimestampToDate snapshot.date
battery: snapshot.battery
cb null, results
# Reporter's timestamps are based on Objective-C's epoch,
# seconds since midnight UTC on Jan 1, 2001
convertObjCTimestampToDate = (ts) ->
timestamp = OBJ_C_EPOCH + ts
new Date timestamp * 1000
[ { ts: Thu Feb 06 2014 10:05:07 GMT-0600 (CST), battery: 0.6 },
{ ts: Thu Feb 06 2014 12:11:13 GMT-0600 (CST), battery: 0.4 },
{ ts: Thu Feb 06 2014 13:59:42 GMT-0600 (CST), battery: 0.85 },
{ ts: Thu Feb 06 2014 17:45:22 GMT-0600 (CST), battery: 1 },
{ ts: Thu Feb 06 2014 20:38:37 GMT-0600 (CST), battery: 0.85 },
{ ts: Thu Feb 06 2014 22:50:10 GMT-0600 (CST), battery: 0.7 },
{ ts: Fri Feb 07 2014 06:36:07 GMT-0600 (CST), battery: 1 },
{ ts: Fri Feb 07 2014 10:02:06 GMT-0600 (CST), battery: 0.65 },
{ ts: Fri Feb 07 2014 11:45:23 GMT-0600 (CST), battery: 0.6 },
{ ts: Fri Feb 07 2014 13:05:28 GMT-0600 (CST), battery: 0.5 },
{ ts: Fri Feb 07 2014 15:37:06 GMT-0600 (CST), battery: 0.25 },
{ ts: Fri Feb 07 2014 18:11:59 GMT-0600 (CST), battery: 0.55 },
{ ts: Fri Feb 07 2014 23:10:36 GMT-0600 (CST), battery: 0.3 },
{ ts: Sat Feb 08 2014 00:36:39 GMT-0600 (CST), battery: 0.25 },
{ ts: Sat Feb 08 2014 10:03:19 GMT-0600 (CST), battery: 1 },
{ ts: Sat Feb 08 2014 13:09:10 GMT-0600 (CST), battery: 0.75 },
{ ts: Sat Feb 08 2014 16:36:27 GMT-0600 (CST), battery: 0.55 },
{ ts: Sat Feb 08 2014 18:59:06 GMT-0600 (CST), battery: 0.4 },
{ ts: Sat Feb 08 2014 22:25:43 GMT-0600 (CST), battery: 0.3 },
{ ts: Sun Feb 09 2014 00:19:49 GMT-0600 (CST), battery: 0.1 },
{ ts: Sun Feb 09 2014 00:26:26 GMT-0600 (CST), battery: 0.1 },
{ ts: Sun Feb 09 2014 07:53:18 GMT-0600 (CST), battery: 1 },
{ ts: Sun Feb 09 2014 10:57:23 GMT-0600 (CST), battery: 0.85 },
{ ts: Sun Feb 09 2014 14:00:53 GMT-0600 (CST), battery: 0.65 },
{ ts: Sun Feb 09 2014 16:33:13 GMT-0600 (CST), battery: 0.5 },
{ ts: Sun Feb 09 2014 21:19:03 GMT-0600 (CST), battery: 0.2 },
{ ts: Sun Feb 09 2014 23:46:42 GMT-0600 (CST), battery: 0.1 },
{ ts: Mon Feb 10 2014 06:50:46 GMT-0600 (CST), battery: 1 },
{ ts: Mon Feb 10 2014 09:53:53 GMT-0600 (CST), battery: 0.75 },
{ ts: Mon Feb 10 2014 12:18:47 GMT-0600 (CST), battery: 0.65 },
{ ts: Mon Feb 10 2014 16:25:02 GMT-0600 (CST), battery: 0.55 },
{ ts: Mon Feb 10 2014 19:43:38 GMT-0600 (CST), battery: 0.25 },
{ ts: Mon Feb 10 2014 22:08:19 GMT-0600 (CST), battery: 0.15 },
{ ts: Tue Feb 11 2014 00:28:40 GMT-0600 (CST), battery: 0 },
{ ts: Tue Feb 11 2014 07:27:02 GMT-0600 (CST), battery: 1 },
{ ts: Tue Feb 11 2014 10:47:14 GMT-0600 (CST), battery: 0.85 },
{ ts: Tue Feb 11 2014 14:17:40 GMT-0600 (CST), battery: 1 },
{ ts: Tue Feb 11 2014 17:27:22 GMT-0600 (CST), battery: 0.95 },
{ ts: Tue Feb 11 2014 19:45:46 GMT-0600 (CST), battery: 0.8 },
{ ts: Tue Feb 11 2014 22:23:47 GMT-0600 (CST), battery: 0.8 },
{ ts: Wed Feb 12 2014 10:56:10 GMT-0600 (CST), battery: 0.8 },
{ ts: Wed Feb 12 2014 12:58:03 GMT-0600 (CST), battery: 0.95 },
{ ts: Wed Feb 12 2014 17:05:45 GMT-0600 (CST), battery: 0.95 },
{ ts: Wed Feb 12 2014 19:26:05 GMT-0600 (CST), battery: 0.85 },
{ ts: Wed Feb 12 2014 22:48:29 GMT-0600 (CST), battery: 0.75 },
{ ts: Thu Feb 13 2014 00:34:00 GMT-0600 (CST), battery: 0.75 },
{ ts: Thu Feb 13 2014 02:12:53 GMT-0600 (CST), battery: 0.7 },
{ ts: Thu Feb 13 2014 08:04:41 GMT-0600 (CST), battery: 1 },
{ ts: Thu Feb 13 2014 10:54:28 GMT-0600 (CST), battery: 0.65 },
{ ts: Thu Feb 13 2014 12:24:16 GMT-0600 (CST), battery: 0.55 },
{ ts: Thu Feb 13 2014 15:53:11 GMT-0600 (CST), battery: 0.3 },
{ ts: Thu Feb 13 2014 18:30:40 GMT-0600 (CST), battery: 0.5 },
{ ts: Thu Feb 13 2014 20:40:59 GMT-0600 (CST), battery: 0.35 },
{ ts: Fri Feb 14 2014 08:11:59 GMT-0600 (CST), battery: 0.9 },
{ ts: Fri Feb 14 2014 10:50:11 GMT-0600 (CST), battery: 1 },
{ ts: Fri Feb 14 2014 13:15:48 GMT-0600 (CST), battery: 0.9 },
{ ts: Fri Feb 14 2014 15:12:56 GMT-0600 (CST), battery: 0.8 },
{ ts: Fri Feb 14 2014 18:28:12 GMT-0600 (CST), battery: 0.45 },
{ ts: Fri Feb 14 2014 19:28:21 GMT-0600 (CST), battery: 0.35 },
{ ts: Fri Feb 14 2014 22:14:35 GMT-0600 (CST), battery: 0.2 },
{ ts: Fri Feb 14 2014 22:34:29 GMT-0600 (CST), battery: 0.15 },
{ ts: Sat Feb 15 2014 08:33:36 GMT-0600 (CST), battery: 1 },
{ ts: Sat Feb 15 2014 10:24:54 GMT-0600 (CST), battery: 0.95 },
{ ts: Sat Feb 15 2014 13:24:59 GMT-0600 (CST), battery: 0.85 },
{ ts: Sat Feb 15 2014 16:04:10 GMT-0600 (CST), battery: 0.8 },
{ ts: Sat Feb 15 2014 19:20:59 GMT-0600 (CST), battery: 0.55 },
{ ts: Sat Feb 15 2014 20:49:04 GMT-0600 (CST), battery: 0.55 },
{ ts: Sat Feb 15 2014 23:38:09 GMT-0600 (CST), battery: 0.45 },
{ ts: Sun Feb 16 2014 00:51:32 GMT-0600 (CST), battery: 0.3 },
{ ts: Sun Feb 16 2014 07:44:48 GMT-0600 (CST), battery: 0.95 },
{ ts: Sun Feb 16 2014 10:15:39 GMT-0600 (CST), battery: 0.9 },
{ ts: Sun Feb 16 2014 12:57:53 GMT-0600 (CST), battery: 0.6 },
{ ts: Sun Feb 16 2014 14:26:41 GMT-0600 (CST), battery: 0.45 },
{ ts: Sun Feb 16 2014 20:46:08 GMT-0600 (CST), battery: 0.2 },
{ ts: Sun Feb 16 2014 21:34:07 GMT-0600 (CST), battery: 0.2 },
{ ts: Sun Feb 16 2014 22:18:21 GMT-0600 (CST), battery: 0.15 },
{ ts: Mon Feb 17 2014 06:51:14 GMT-0600 (CST), battery: 1 },
{ ts: Mon Feb 17 2014 09:22:29 GMT-0600 (CST), battery: 0.8 },
{ ts: Mon Feb 17 2014 09:49:42 GMT-0600 (CST), battery: 0.8 },
{ ts: Mon Feb 17 2014 11:39:24 GMT-0600 (CST), battery: 1 },
{ ts: Mon Feb 17 2014 14:31:32 GMT-0600 (CST), battery: 0.95 } ]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment