Nathan Woodburn
f8c98214bf
All checks were successful
Build Docker / Build Image (push) Successful in 39s
47 lines
1.2 KiB
Python
47 lines
1.2 KiB
Python
import json
|
|
|
|
|
|
def votes():
|
|
# Load votes
|
|
with open('data/votes.json') as file:
|
|
votes = json.load(file)
|
|
|
|
|
|
options = {}
|
|
for vote in votes:
|
|
if vote["message"] in options:
|
|
options[vote["message"]] += vote["votes"]
|
|
else:
|
|
options[vote["message"]] = vote["votes"]
|
|
|
|
|
|
labels = list(options.keys())
|
|
data = list(options.values())
|
|
chart_data = {
|
|
"type": "pie",
|
|
"data": {
|
|
"labels": labels,
|
|
"datasets": [{
|
|
"label": "Votes",
|
|
"backgroundColor": ["rgb(17,255,69)", "rgb(255,0,0)", "rgb(0,0,255)", "rgb(255,255,0)", "rgb(255,0,255)", "rgb(0,255,255)", "rgb(128,0,128)"],
|
|
"data": data
|
|
}]
|
|
},
|
|
"options": {
|
|
"maintainAspectRatio": True,
|
|
"legend": {
|
|
"display": True,
|
|
"labels": {
|
|
"fontStyle": "normal"
|
|
}
|
|
},
|
|
"title": {
|
|
"fontStyle": "bold"
|
|
}
|
|
}
|
|
}
|
|
|
|
html = '<script src="assets/js/bs-init.js"></script>'
|
|
html += f'<canvas data-bss-chart=\'{json.dumps(chart_data)}\' class="chartjs-render-monitor"></canvas>'
|
|
|
|
return html |