Commit Graph

17 Commits

Author SHA1 Message Date
Xevion
fdc64012b0 Added better checks for updating votes outside of the voting period
To be honest, the checks are sort of randomly placed how I wanted them.
There is no true rhyme or reason to the logic implemented here, but it
really shouldn't matter anyways - it will do the job.
2021-02-18 07:46:41 -06:00
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