Skip to content

Instantly share code, notes, and snippets.

@YtvwlD
Last active May 10, 2019 15:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YtvwlD/ffcb620820fce1fd7ea64f731b4013ff to your computer and use it in GitHub Desktop.
Save YtvwlD/ffcb620820fce1fd7ea64f731b4013ff to your computer and use it in GitHub Desktop.
mete-drinks-graph
#!/usr/bin/python3
import requests
from json import JSONDecoder
import plotly
from datetime import datetime
from sys import argv
jsondec = JSONDecoder()
BASE_URL = "http://mete/api/v1/audits.json"
parameters = dict()
if "--user" in argv:
user = argv[argv.index("--user") + 1]
parameters["user"] = user
if "--since" in argv:
start_date = datetime.strptime(argv[argv.index("--since") + 1], "%Y-%m-%d")
parameters["start_date[year]"] = start_date.year
parameters["start_date[month]"] = start_date.month
parameters["start_date[day]"] = start_date.day
end_date = datetime.now()
parameters["end_date[year]"] = end_date.year
parameters["end_date[month]"] = end_date.month
parameters["end_date[day]"] = end_date.day
req = requests.get(BASE_URL, params=parameters)
json = req.text
jsondata = jsondec.decode(json)
bought_drinks = []
for elem in jsondata["audits"]:
bought_drinks.append(elem['drink'])
req = requests.get("http://mete/api/v1/drinks.json")
json = req.text
jsondata = jsondec.decode(json)
drinks = []
for elem in jsondata:
drinks.append({"id": elem["id"], "name": elem["name"]})
if not "--without-na" in argv:
drinks.append({"id": None, "name": "n/a"})
counted = {}
for elem in drinks:
counted[elem["name"]] = bought_drinks.count(elem["id"])
plotly.offline.plot({"data": [{
"labels": list(counted.keys()),
"values": list(counted.values()),
"type": "pie"
}], "layout": {
"title": "Bought drinks in mete"
}})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment