aboutsummaryrefslogtreecommitdiffstats
path: root/tests/helpers.py (unfollow)
Commit message (Collapse)AuthorLines
2020-03-22Scheduler: fix dict size changing while cancelling all tasksGravatar MarkKoz-5/+10
* Make a copy of the dict * Add a `ignore_missing` param to `cancel_task` to suppress the warning for a task not being found
2020-03-22HelpChannels: fix last notification time not being setGravatar MarkKoz-1/+3
2020-03-22HelpChannels: fix task cancelling itselfGravatar MarkKoz-2/+0
2020-03-22Scheduler: fix incorrect task id in error logGravatar MarkKoz-1/+1
2020-03-22HelpChannels: cancel existing task in the dormant commandGravatar MarkKoz-0/+1
2020-03-22HelpChannels: fix candidate channel not being returned after waitingGravatar MarkKoz-1/+1
2020-03-22HelpChannels: remove loop arg from schedule_task callsGravatar MarkKoz-2/+2
2020-03-22HelpChannels: explicitly specify if a task should be cancelledGravatar MarkKoz-4/+5
When rescheduling an idle channel, the task will only be cancelled if the function was told the channel should currently have a task scheduled. This means warnings for missing tasks will appear when they should. The previous approach of checking if a task exists was flawed because it had no way to tell whether a task *should* exist. It assumed nothing is wrong if a task doesn't exist. Currently, the only case when a task shouldn't exist is when the cog is initialised and channels from the bot's previous life are being scheduled.
2020-03-22Scheduler: add a method to cancel all tasksGravatar MarkKoz-4/+9
The dictionary which was iterated to cancel tasks is now "private". Therefore, the scheduler should provide a public API for cancelling tasks. * Delete the task before cancelling it to prevent the done callback, however unlikely it may be, from deleting the task first
2020-03-22HelpChannels: rename elements dict to name_positionsGravatar MarkKoz-3/+3
2020-03-22HelpChannels: prefix channel names after reading from fileGravatar MarkKoz-15/+19
Prefixing them early on means subsequent code doesn't have to deal with stripping the prefix from channel names in order to get their positions. * Remove `count` parameter from `get_names`; define it in the body
2020-03-22HelpChannels: cancel channel queue tasks on cog unloadGravatar MarkKoz-1/+22
* Store queue get() tasks in a list * Create a separate function to wait for a channel from the queue * Add comments for the various groups of attributes defined in __init__
2020-03-22HelpChannels: add trace logging for notificationsGravatar MarkKoz-0/+5
2020-03-22HelpChannels: move newest in-use channel to the topGravatar MarkKoz-0/+1
This gives the newest questions the most visibility.
2020-03-22BotCog: determine if a help channel by checking its categoryGravatar MarkKoz-10/+7
Initialising the dictionary with help channel IDs doesn't work anymore since help channels are now dynamic.
2020-03-22Constants: remove old help channel constantsGravatar MarkKoz-18/+0
2020-03-22HelpChannels: handle potential notification exceptions locallyGravatar MarkKoz-1/+7
The notification feature is not critical for the functionality of the help channel system. Therefore, the exception should not be allowed to propagate and halt the system in some way.
2020-03-22HelpChannels: notify configured list of roles instead of helpers onlyGravatar MarkKoz-7/+12
* Rename function `notify_helpers` -> `notify` * Use bullet-point list for config options in the docstring
2020-03-22Constants: add a roles list constant for help channel notificationsGravatar MarkKoz-1/+5
2020-03-22Constants: add a channel constant for help channel notificationsGravatar MarkKoz-6/+11
2020-03-22Constants: rename HelpChannels.notify_helpers to notifyGravatar MarkKoz-4/+4
2020-03-22HelpChannels: adjust the helper notification messageGravatar MarkKoz-3/+3
2020-03-22HelpChannels: add a minimum interval between helper notificationsGravatar MarkKoz-9/+32
* Add configurable constant for minimum interval * Move helper notifications to a separate function
2020-03-22HelpChannels: log previous position when getting alphabetical positionGravatar MarkKoz-1/+5
2020-03-22HelpChannels: notify helpers if out of channelsGravatar MarkKoz-0/+13
Send a message in the #helpers channel pinging the @helpers role to notify them of a lack of help channels. Can be toggled off in the config.
2020-03-22HelpChannels: add a function to get a channel's alphabetical positionGravatar MarkKoz-4/+23
* Log a warning if a channel lacks the expected help channel prefix * Log the old and new channel positions
2020-03-22HelpChannels: add a warning if more than 50 channels existGravatar MarkKoz-0/+6
Discord only supports 50 channels per category. The help system will eventually error out trying to move channels if more than 50 exist.
2020-03-22HelpChannels: sort dormant channels alphabeticallyGravatar MarkKoz-4/+6
The channels are easier to find when sorted alphabetically. * Merge some trace and info logs
2020-03-22HelpChannels: warn if too many help channels will be possibleGravatar MarkKoz-0/+9
Discord only supports 50 channels per category. * Add a constant for the maximum number of channels per category * Add trace logging to `get_names`
2020-03-22HelpChannels: return elements as a truncated dict of namesGravatar MarkKoz-5/+7
2020-03-22HelpChannels: move reading of element names to a functionGravatar MarkKoz-6/+11
Makes it easier to test.
2020-03-22Constants: add constant for max total help channelsGravatar MarkKoz-0/+5
Represents the total number of help channels across all 3 categories.
2020-03-22Resources: map element names to alphabetic indicesGravatar MarkKoz-120/+120
The indices will be used to sort the elements alphabetically in the dormant category.
2020-03-22HelpChannels: use more specific type hints for queuesGravatar MarkKoz-2/+2
2020-03-22HelpChannels: limit channels to a total of 50Gravatar MarkKoz-1/+3
Discord has a hard limit of 50 channels per category. It was decided 50 is plenty for now so no work will be done to support more than 50.
2020-03-22HelpChannels: explain the system in the cog docstringGravatar MarkKoz-1/+30
2020-03-22HelpChannels: cancel the task in _scheduled_taskGravatar MarkKoz-0/+2
2020-03-22HelpChannels: use >= instead of > to determine if timed outGravatar MarkKoz-1/+1
2020-03-22HelpChannels: compare contents to confirm message is a dormant messageGravatar MarkKoz-1/+10
* Add a new function to check if a message is a dormant message
2020-03-22HelpChannels: add a function to send or edit the available messageGravatar MarkKoz-5/+16
Edits the dormant message or sends a new message if the dormant one cannot be found.
2020-03-22HelpChannels: add a function to get the last message in a channelGravatar MarkKoz-5/+15
2020-03-22HelpChannels: put channels in the queue when they go dormantGravatar MarkKoz-0/+3
2020-03-22HelpChannels: add missing units of time in messagesGravatar MarkKoz-3/+3
2020-03-22HelpChannels: fix acquisition of the on_message lockGravatar MarkKoz-1/+1
* Use async_with * Don't call acquire()
2020-03-22HelpChannels: ignore messages sent by botsGravatar MarkKoz-0/+3
2020-03-22Resources: make all element names lower casedGravatar MarkKoz-118/+118
2020-03-22HelpChannels: fix creation of the init_cog taskGravatar MarkKoz-1/+1
The task has to be created on a specific loop because when the cog is instantiated, the event loop is not yet running.
2020-03-22Remove the free extensionGravatar MarkKoz-104/+0
Obsolete due to the new help channel system.
2020-03-22Bot: load the help channels extensionGravatar MarkKoz-0/+1
2020-03-22HelpChannels: add loggingGravatar MarkKoz-6/+83