Xevion
1dc9c7d435
Implemented generic command error handling
...
Also:
- Removed emotes from some of the error messages.
- Changed how emotes were placed into the leaderboard slightly
- Moved around TODO strings into proper files and added more.
- Corrected main.py cog loading references.
- Improved ContestBot.reject with message references and used built-in
delete_after keyword argument.
- Minor docstring/light formatting
2021-02-18 06:07:40 -06:00
Xevion
5a4da4cec0
Implement simple 'status' command
...
Implements the status command, creating a new Submission.permission_explanation
function in the process. Also changes the leaderboard command's embed
formatting slightly.
2021-02-18 04:31:45 -06:00
Xevion
bd3778182d
Added new Submission column: count
...
Since I'm not good at complex SQLAlchemy syntax and database querying
through SQL or the ORM, I'm simply using a descriptor to update the
count column everytime votes is modified.
2021-02-18 04:06:39 -06:00
Xevion
5c70a78798
Ensure Submission.update modifies votes column
...
I forgot to actually add this in properly.
2021-02-17 05:12:52 -06:00
Xevion
8f67b3c785
Fix MutableJSON issues with NestedMutableList
...
Add new exception SelfVoteException for Submission.increment
Implement new string representation built-in functions for all models
2021-02-17 02:55:55 -06:00
Xevion
ea8bd49216
remove defaults from MutableJSON column, mistakenly flipped comparator
2021-02-16 08:02:43 -06:00
Xevion
33ac0d7792
overhaul voting to support smart single voting protections and enforcing, new exceptions, vote clearing functions inside models, persistence updating
2021-02-16 07:27:02 -06:00
Xevion
d99be7db9d
use payload known params instead of cached message, implement raw_bulk_message_deletion, on_raw_reaction_clear, on_raw_reaction_clear_emoji, helpers.is_upvote for better upvote emote checking
2021-02-15 03:43:00 -06:00
Xevion
2178a3ec99
Move Submission votes count logic into model, add improved verification system, add verification that the bot is always reacting to the message (on every reaction add/removal)
2021-02-14 01:48:56 -06:00
Xevion
21781d3529
simplify models.py imports, add typehints, add future TODO ideas, add set_votes safety logging method, move and typehint Period.submissions as a List
2021-02-14 01:19:18 -06:00
Xevion
28d7768340
add permission/cooldown checks, implement permission setting logic, fix state not being advanced, fix guild.submission disparity and use proper typehinting to catch errors like this
2021-02-13 18:31:38 -06:00
Xevion
1f46a98f37
add guilds to database on connection if not already in database, remove old db.py, switch from query filter_by to simple get by primary key
2021-02-13 08:35:00 -06:00
Xevion
00f5b64f3f
fix ambiguous foreign key relationships, Period.state default, fixing back populates
2021-02-13 08:31:09 -06:00
Xevion
91594646c3
simplify period deactivation logic, refactor advance_state logic into check_not_finished wrapper
2021-02-13 05:14:42 -06:00
Xevion
2eb44b56e4
improve models relationships, add state management to Period model
2021-02-13 05:00:20 -06:00
Xevion
7e578fb132
begin switching to sqlalchemy for database management
2021-02-13 03:23:00 -06:00