From 25f5c5e1f674d0d31b916dfde9612d1d8c57a0e9 Mon Sep 17 00:00:00 2001
From: Romain J <romain.ordi@gmail.com>
Date: Tue, 8 Oct 2019 18:54:05 +0200
Subject: [PATCH] feat(command|sondage): add charts
---
cogs/poll.py | 24 ++++++++++++++++++++++++
prefixes.json | 6 +++---
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/cogs/poll.py b/cogs/poll.py
index d480f81..3314189 100644
--- a/cogs/poll.py
+++ b/cogs/poll.py
@@ -4,6 +4,7 @@ from typing import Union
import discord
import bcrypt
from discord.ext import commands
+from yarl import URL
from bot import TuxBot
from .utils.lang import Texts
@@ -46,6 +47,19 @@ class Polls(commands.Cog):
channel: discord.TextChannel = self.bot.get_channel(poll.channel_id)
message: discord.Message = await channel.fetch_message(poll.message_id)
+ chart_base_url = "https://quickchart.io/chart?backgroundColor=white&c="
+ chart_options = {
+ 'type': 'pie',
+ 'data': {
+ 'labels': [],
+ 'datasets': [
+ {
+ 'data': []
+ }
+ ]
+ }
+ }
+
content = json.loads(poll.content) \
if isinstance(poll.content, str) \
else poll.content
@@ -55,6 +69,14 @@ class Polls(commands.Cog):
for i, field in enumerate(content.get('fields')):
responders = len(responses.get(str(i + 1)))
+ chart_options.get('data') \
+ .get('labels') \
+ .append(field.get('name')[5:].replace('__', ''))
+ chart_options.get('data') \
+ .get('datasets')[0] \
+ .get('data') \
+ .append(responders)
+
if responders <= 1:
field['value'] = f"**{responders}** vote"
else:
@@ -65,6 +87,8 @@ class Polls(commands.Cog):
name=content.get('author').get('name'),
icon_url=content.get('author').get('icon_url')
)
+ chart_url = URL(chart_base_url + json.dumps(chart_options))
+ e.set_thumbnail(url=chart_url)
for field in content.get('fields'):
e.add_field(
name=field.get('name'),
diff --git a/prefixes.json b/prefixes.json
index 119d391..f682140 100644
--- a/prefixes.json
+++ b/prefixes.json
@@ -1,11 +1,11 @@
{
"280805240977227776": [
- "b! "
+ "b!-"
],
"303633056944881686": [
- "b! "
+ "b!-"
],
"336642139381301249": [
- "b! "
+ "b!-"
]
}
\ No newline at end of file