#!/usr/bin/python
# based on https://github.com/pdbrown/munin-custom/blob/master/plugins/hashrate
# improved by @deveth0 (donation to 1GzHgp9hsDRsf96MnVk2oo6EG1VmWP9jGs :) )
# usage: set your api key in node-config, eg
# [slush_*]
# env.apikey foobar
import sys
import urllib2
import json
import os

SLUSH_URL = 'https://mining.bitcoin.cz/accounts/profile/json/'
API_KEY = os.getenv('apikey')
SLUSH_STATS = SLUSH_URL + API_KEY

mining_stats_raw = urllib2.urlopen(SLUSH_STATS)
mining_stats = json.load(mining_stats_raw)
workers = mining_stats['workers']

command = ''
if len(sys.argv) > 1:
    command = sys.argv[1]

if command == 'config':
    print "graph_title Slush Hashrate"
    print "graph_args --upper-limit 3000 -l 0"
    print "graph_vlabel MHash/s"
    print "graph_category Bitcoin"
    for worker in workers:
        label = worker.replace(".","_")
        print label + ".label " +label
    sys.exit(0)

for worker in workers:
        hash_rate = workers[worker]['hashrate']
        label = worker.replace(".","_")
        print label + ".value %d" % int(hash_rate)
