diff --git a/cogs/basics.py b/cogs/basics.py
index e1b3c95..ced1a86 100644
--- a/cogs/basics.py
+++ b/cogs/basics.py
@@ -10,7 +10,7 @@ from discord.ext import commands
from bot import TuxBot
from .utils.lang import Texts
-from .utils.extra import commandExtra, groupExtra
+from .utils.extra import commandExtra
from tcp_latency import measure_latency
@@ -29,7 +29,7 @@ class Basics(commands.Cog):
@commandExtra(name='ping',
category='basics',
- description=Texts('commands').get('basics.ping'))
+ description=Texts('commands').get('basics._ping'))
async def _ping(self, ctx: commands.Context):
start = time.perf_counter()
await ctx.trigger_typing()
@@ -67,9 +67,9 @@ class Basics(commands.Cog):
return total, file_amount
- @commands.command(name='info', aliases=['about'],
- category='basics',
- description=Texts('commands').get('basics.info'))
+ @commandExtra(name='info', aliases=['about'],
+ category='basics',
+ description=Texts('commands').get('basics._info'))
async def _info(self, ctx: commands.Context):
proc = psutil.Process()
lines, files = self.fetch_info()
@@ -150,9 +150,9 @@ class Basics(commands.Cog):
"""---------------------------------------------------------------------"""
- @commands.command(name='credits', aliases=['contributors', 'authors'],
- category='basics',
- description=Texts('commands').get('basics.credits'))
+ @commandExtra(name='credits', aliases=['contributors', 'authors'],
+ category='basics',
+ description=Texts('commands').get('basics._credits'))
async def _credits(self, ctx: commands.Context):
e = discord.Embed(
title=Texts('basics', ctx).get('Contributors'),
diff --git a/cogs/poll.py b/cogs/poll.py
index 0dbe43e..1904a63 100644
--- a/cogs/poll.py
+++ b/cogs/poll.py
@@ -8,6 +8,7 @@ from yarl import URL
from bot import TuxBot
from .utils.lang import Texts
from .utils.models import Poll, Responses
+from .utils.extra import groupExtra
from .utils import emotes as utils_emotes
@@ -49,30 +50,27 @@ class Polls(commands.Cog):
pass
choice = utils_emotes.get_index(pld.emoji.name)
- print(choice)
-
- response = self.bot.database.session.query(Poll) \
+ responses = self.bot.database.session.query(Responses) \
.filter(
Responses.poll_id == poll.id,
Responses.user == pld.user_id,
Responses.choice == choice
)
- if response.count() != 0:
- print("--pre delete--")
- response = response.one()
+ if responses.count() != 0:
+ response = responses.first()
self.bot.database.session.delete(response)
- print("--post delete--")
+ self.bot.database.session.commit()
else:
- print("--pre add--")
response = Responses(
user=pld.user_id,
poll_id=poll.id,
choice=choice
)
self.bot.database.session.add(response)
- print("--post add--")
- self.bot.database.session.commit()
+ self.bot.database.session.commit()
+
+ await self.update_poll(poll.id)
"""---------------------------------------------------------------------"""
@@ -89,7 +87,7 @@ class Polls(commands.Cog):
e = discord.Embed(description=f"**{question}**")
e.set_author(
- name=self.bot.user if anonymous else ctx.author,
+ name=ctx.author,
icon_url="https://cdn.gnous.eu/tuxbot/survey1.png"
)
for i, response in enumerate(responses):
@@ -97,7 +95,7 @@ class Polls(commands.Cog):
name=f"{emotes[i]} __{response.capitalize()}__",
value="**0** vote"
)
- e.set_footer(text=f"ID: {poll_row.id}")
+ e.set_footer(text=f"ID: #{poll_row.id}")
poll_row.channel_id = stmt.channel.id
poll_row.message_id = stmt.id
@@ -135,12 +133,19 @@ class Polls(commands.Cog):
content = json.loads(poll.content) \
if isinstance(poll.content, str) \
else poll.content
- responses = json.loads(poll.responses) \
- if isinstance(poll.responses, str) \
- else poll.responses
+ raw_responses = self.bot.database.session\
+ .query(Responses)\
+ .filter(Responses.poll_id == poll_id)
+ responses = {}
+
+ for response in raw_responses.all():
+ if responses.get(response.choice):
+ responses[response.choice] += 1
+ else:
+ responses[response.choice] = 1
for i, field in enumerate(content.get('fields')):
- responders = len(responses.get(str(i + 1)))
+ responders = responses.get(i, 0)
chart_options.get('data') \
.get('labels') \
.append(field.get('name')[5:].replace('__', ''))
@@ -174,12 +179,16 @@ class Polls(commands.Cog):
poll.content = json.dumps(content)
self.bot.database.session.commit()
- @commands.group(name='sondage', aliases=['poll'])
+ @groupExtra(name='sondage', aliases=['poll'],
+ category='poll',
+ description=Texts('commands').get('poll._poll'))
async def _poll(self, ctx: commands.Context):
if ctx.invoked_subcommand is None:
- ...
+ pass
- @_poll.group(name='create', aliases=['new', 'nouveau'])
+ @_poll.group(name='create', aliases=['new', 'nouveau'],
+ category='poll',
+ description=Texts('commands').get('poll._poll_create'))
async def _poll_create(self, ctx: commands.Context, *, poll: str):
is_anonymous = '--anonyme' in poll
poll = poll.replace('--anonyme', '')
diff --git a/cogs/utils/models/poll.py b/cogs/utils/models/poll.py
index 72e5f67..f173063 100644
--- a/cogs/utils/models/poll.py
+++ b/cogs/utils/models/poll.py
@@ -1,7 +1,6 @@
from . import Base
from sqlalchemy import Column, Integer, BigInteger, JSON, ForeignKey, Boolean
from sqlalchemy.orm import relationship
-from werkzeug.security import generate_password_hash, check_password_hash
class Poll(Base):
diff --git a/requirements.txt b/requirements.txt
index a288e29..3414aa6 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,6 +5,4 @@ sqlalchemy
psycopg2
configparser
psutil
-tcp_latency
-i18n
-werkzeug
\ No newline at end of file
+tcp_latency
\ No newline at end of file