| Commit message (Collapse) | Author | Age | Lines |
| ... | |
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Replace retrieval of all channels of a category with a direct comparison
of the categories themselves. In the case of the `on_message` listener,
the change enables the check to be done before the lock acquisition.
This is because it doesn't rely on the channels in the category to be up
to date. In fact, it doesn't even need the category object so it can
exit early without needing to wait for the cog to be ready.
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This ensures everyone has a clean slate when the bot restarts or the
cog reloads since the tasks to reinstate permissions would have been
cancelled in those cases.
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
To support scheduling different coroutines, `_scheduled_task` now
accepts an awaitable in the data arg. The data arg is actually a
named tuple of the wait time and the awaitable.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
They must be greater than 0 because the cog obviously couldn't do
anything without any channels to work with. It must be greater than
max_available because it'd otherwise be impossible to maintain that many
channels in the Available category.
* Create a new function to validate the value
* Move validation against MAX_CHANNELS_PER_CATEGORY into the function
rather than just logging a warning
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This will ensure the maximum amount of dormant channels possible before
attempting to move any to the available category. It also allows the
dormant command to already be enabled in case there are still no
dormant channels when trying to init available channels.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The ready event wasn't used because channels could change categories
between the time the command is invoked and the cog is ready (e.g. if
move_idle_channel wasn't called yet). his may confused users. So would
potentially long delays for the cog to become ready.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* Make a copy of the dict
* Add a `ignore_missing` param to `cancel_task` to suppress the warning
for a task not being found
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* 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__
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This gives the newest questions the most visibility.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Initialising the dictionary with help channel IDs doesn't work anymore
since help channels are now dynamic.
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* Rename function `notify_helpers` -> `notify`
* Use bullet-point list for config options in the docstring
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* Add configurable constant for minimum interval
* Move helper notifications to a separate function
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* Log a warning if a channel lacks the expected help channel prefix
* Log the old and new channel positions
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Discord only supports 50 channels per category. The help system will
eventually error out trying to move channels if more than 50 exist.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The channels are easier to find when sorted alphabetically.
* Merge some trace and info logs
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Discord only supports 50 channels per category.
* Add a constant for the maximum number of channels per category
* Add trace logging to `get_names`
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Makes it easier to test.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Represents the total number of help channels across all 3 categories.
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The indices will be used to sort the elements alphabetically in the
dormant category.
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
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.
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | | |
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
* Add a new function to check if a message is a dormant message
|
| | | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Edits the dormant message or sends a new message if the dormant one
cannot be found.
|
| | | | | | | | |
|
| | | | | | | | |
|