Skip to main content

add scripts to record/show my iCloud usage

ID
cc780f0
date
2022-09-13 15:56:59+00:00
author
Alex Chan <alex@alexwlchan.net>
parent
beb70b4
message
add scripts to record/show my iCloud usage
changed files
2 files, 36 additions

Changed files

record_icloud_usage (0) → record_icloud_usage (164)

diff --git a/record_icloud_usage b/record_icloud_usage
new file mode 100755
index 0000000..85958d2
--- /dev/null
+++ b/record_icloud_usage
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+set -o errexit
+set -o nounset
+
+CAPACITY="$1"
+AVAILABLE="$2"
+
+echo "$(date +"%Y-%m-%dT%H:%M:%S %z"),$CAPACITY,$AVAILABLE" >> ~/iCloud/usage.csv

show_icloud_usage (0) → show_icloud_usage (601)

diff --git a/show_icloud_usage b/show_icloud_usage
new file mode 100755
index 0000000..81da1e5
--- /dev/null
+++ b/show_icloud_usage
@@ -0,0 +1,27 @@
+#!/usr/bin/env python3
+
+import csv
+import os
+
+import dateparser
+import matplotlib.pyplot as plt
+
+
+if __name__ == '__main__':
+    csv_path = os.path.join(os.environ['HOME'], 'iCloud', 'usage.csv')
+
+    with open(csv_path) as infile:
+        reader = csv.DictReader(infile)
+        rows = [
+            (dateparser.parse(r['date']), int(r['capacity']) - float(r['available']))
+            for r in reader
+        ]
+
+    f, ax = plt.subplots(1)
+
+    times = [t for (t, _) in rows]
+    values = [used_space for (_, used_space) in rows]
+
+    ax.plot(times, values)
+    # ax.set_ylim(ymin=0)
+    plt.show()