Pixela のグラフを Redash で可視化する

id:a-know さんの Pixela が面白いので、流れに乗って Redash で可視化する Python スクリプトを書いてみました。

blog.a-know.me

Redash 側は Python データソースを作成して、Modules To Import Prior To Running The Scripturllib2,xml を書いておきます。

クエリとして書くスクリプトはこんな感じで。

import urllib2
import xml

xml_str = urllib2.urlopen('https://pixe.la/v1/users/{{ user }}/graphs/{{ id }}').read()
root = xml.etree.ElementTree.fromstring(xml_str)

result = {}

for e in root.getiterator('{http://www.w3.org/2000/svg}rect'):
    attrs = e.attrib
    if 'data-date' not in attrs:
        continue
    
    add_result_row(result, {
        'date': attrs['data-date'],
        '{{ unit }}': attrs['data-{{ unit }}'],
    })
add_result_column(result, 'date', '', 'datetime')
add_result_column(result, '{{ unit }}', '', 'integer')

useridunit はパラメータになってます。

実行するとこんな感じに。

f:id:ariarijp:20181015134405p:plain

Redash に持ち込むことができれば、Pixela でアクティビティを記録して、アクティビティが途切れてたら Redash で Slack 通知ってこともできそうですね。