From 260ab48a727814202fff0be522f63ca30d15320f Mon Sep 17 00:00:00 2001 From: Ruben van de Ven Date: Sun, 4 Nov 2018 07:24:55 +0100 Subject: [PATCH] Prep for YamiIchi export --- heartbeat/export.py | 26 ++++++++--- heartbeat/ranges.py | 102 ++++++++++++++++++++++++++++++++++++++++++++ heartbeat/server.py | 1 + views/plot.html | 51 +++++++++++++++++----- 4 files changed, 162 insertions(+), 18 deletions(-) create mode 100644 heartbeat/ranges.py diff --git a/heartbeat/export.py b/heartbeat/export.py index b59e2b2..1275dcc 100644 --- a/heartbeat/export.py +++ b/heartbeat/export.py @@ -1,6 +1,7 @@ # TODO: web frontend import os import tornado.web +from .ranges import yamiIchiCodes class ExportHandler(tornado.web.RequestHandler): @@ -11,19 +12,30 @@ class ExportHandler(tornado.web.RequestHandler): self.conn = conn def get(self, range): - # TODO: userid + start time - c = self.conn.cursor() - self.set_header("Content-Type", 'text/csv') ranges = { - '1h': '-1 hour', - '24h': '-1 day', - 'week': '-7 days', + '1h': ('-1 hour',), + '24h': ('-1 day',), + 'week': ('-7 days',), } + q = "SELECT * FROM beats WHERE recordedAt > date('now', ?) ORDER BY recordedAt ASC" + if range in yamiIchiCodes: + range = yamiIchiCodes[range] + # range = 1d, 3d, 1w + ranges = { + "1d": ("2018-11-04 10:00:00","2018-11-05 12:00:00"), + "3d": ("2018-11-04 10:00:00","2018-11-07 12:00:00"), + "1w": ("2018-11-04 10:00:00","2018-11-11 12:00:00") + } + q = "SELECT * FROM beats WHERE recordedAt > ? AND recordedAt < ? ORDER BY recordedAt ASC" + + # TODO: userid + start time if range not in ranges: # Not found raise tornado.web.HTTPError(404) - c.execute("SELECT * FROM beats WHERE recordedAt > date('now', ?) ORDER BY recordedAt ASC", (ranges[range],)) + c = self.conn.cursor() + self.set_header("Content-Type", 'text/csv') + c.execute(q, ranges[range]) self.write("id,bpm,timestamp\n") for row in c: self.write("{},{},{}\n".format(row['id'], row['bpm'], row['createdAt'])) diff --git a/heartbeat/ranges.py b/heartbeat/ranges.py new file mode 100644 index 0000000..22bb8df --- /dev/null +++ b/heartbeat/ranges.py @@ -0,0 +1,102 @@ +yamiIchiCodes = { +"BwsHAAIGCw4": "24h", +"DAYFAgoLBw4": "24h", +"BQMDDgMECAw": "24h", +"BgYHBwYAAw0": "24h", +"BgoGAgIFBQc": "24h", +"DgkIDg0NBA8": "24h", +"AA4KDQYKBwE": "24h", +"BgANCQwACAY": "24h", +"DA0KAw4KBg4": "24h", +"DQcABgEAAQ4": "24h", +"AA4ADQ4PCQw": "24h", +"AAoPAQIJAg4": "24h", +"DwAFDAYGDgw": "24h", +"CwQDAg8IBgI": "24h", +"BQsHBg4MBwM": "24h", +"AgYAAgQLAgQ": "24h", +"Cw4LDQACBAw": "24h", +"DwADDQIADQE": "24h", +"CwsGCQEDCgc": "24h", +"CgIGBw8EAQU": "24h", +"BAoECQ0JCwY": "24h", +"CQIAAQECDgg": "24h", +"BAMNDQQCAg0": "24h", +"BQULBAEABgk": "24h", +"DQMIDQUICwQ": "24h", +"DwgABAcBBgk": "24h", +"BAsPBAsLBQo": "24h", +"AQMABgMMCAQ": "24h", +"AwwNAA8HBws": "24h", +"CgoDDQoCCwM": "24h", +"CQIPAgwBBwk": "24h", +"AQsIDAkBCA8": "24h", +"BwMGBwQPAQs": "24h", +"DQgPDgkECQ4": "24h", +"BQICBwcLBQ8": "24h", +"AAcFDg8HCQM": "24h", +"CgEPAwMLBQo": "24h", +"Cw8ICgUMBwo": "24h", +"BQYIDg4JCAI": "24h", +"CAQLDQkDDQY": "24h", +"AAYBDQ8DCwc": "24h", +"DQ0CBgILCgg": "24h", +"DwULAg4IBQI": "24h", +"Aw8FBQEPCAA": "24h", +"AA4BAg0KCQs": "24h", +"AAsABg0EDgE": "24h", +"AQIABA0FAwE": "24h", +"AQ4CBwYECgc": "24h", +"BwcGAwkEAQM": "3d", +"DggLCAUCAQA": "3d", +"DQkOBQAOAwY": "3d", +"BAwHAAQIDgc": "3d", +"CwoDAAUADgM": "3d", +"DgIIAAsODwM": "3d", +"Dw0KBgsIBAM": "3d", +"DwkEDwwBBgA": "3d", +"AAsCDgQKBQ0": "3d", +"DQQDCA4CAgs": "3d", +"BAwHCwEMBwA": "3d", +"AwwBAQkOAwQ": "3d", +"DgINAwsOAQk": "3d", +"CQMHBg4HBgI": "3d", +"AQ8EBwECBg0": "3d", +"CAAJAwQMCwM": "3d", +"BQgGAAoABgA": "3d", +"DAcOBAYDCQs": "3d", +"DA4GDg4HCAg": "3d", +"CAoHBwgADAY": "3d", +"BwsCDgUIBgs": "3d", +"AwYLAwsCCQ4": "3d", +"DQABAQ0LBwA": "3d", +"AwIDCQgBAgw": "3d", +"DgsBDwAFCgw": "3d", +"AAoKAQMHBQA": "3d", +"AggACQ4FCwg": "3d", +"DAoIDggKAQU": "3d", +"BAULCgkAAA4": "3d", +"DwoPDg8KCgc": "3d", +"AQAHAAsKAQ4": "1w", +"CwQIAQkEBgw": "1w", +"BQQPAggLDwY": "1w", +"CQgFCQUDCAQ": "1w", +"CgYBAA0GCgY": "1w", +"BQwDAgwNAQ8": "1w", +"AQIFBQcKBwM": "1w", +"AgECDQwFDwk": "1w", +"DQILDgsJAgA": "1w", +"BwIDDAAMAQ0": "1w", +"AQEIAwABDwE": "1w", +"BQcFDAAKCAM": "1w", +"AwEEAwUIAgQ": "1w", +"BAwABQsDAwA": "1w", +"BQQPCAgDAQU": "1w", +"BwoMDwsPAA0": "1w", +"CwoGCg0EDQ4": "1w", +"DQUPAAcGCgo": "1w", +"AgIEDAAGDQo": "1w", +"BwEDAA4NBwk": "1w", +"Dg0IDwsLDQ8": "1w", +"DwwPDgsEBAs": "1w", +} diff --git a/heartbeat/server.py b/heartbeat/server.py index 967512a..3adfc9f 100644 --- a/heartbeat/server.py +++ b/heartbeat/server.py @@ -4,6 +4,7 @@ import tornado.ioloop from .ws import WebSocketHandler from .frontend import FrontendHandler from .export import ExportHandler +from .ranges import yamiIchiCodes import sqlite3 import os import json diff --git a/views/plot.html b/views/plot.html index 991c2d7..7e96108 100644 --- a/views/plot.html +++ b/views/plot.html @@ -1,9 +1,10 @@ Quantified Other: Heart Edition + +

Data Double Black Market

+
A project by Ruben van de Ven

live bpm: ...

- Data +
Available sets:
hour day week @@ -87,13 +116,13 @@ Plotly.d3.csv("/1h.csv", function(err, rows){ name: 'BPM', x: unpack(rows, 'timestamp'), y: unpack(rows, 'bpm'), - line: {color: '#17BECF'} + line: {color: '#02028b'}//17BECF } var data = [trace1]; var layout = { - title: 'Last hour', + title: 'Heartbeat on sale: Ruben van de Ven', }; var currentBpm = null;