aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
...
| | * | | | | Add DMChannel tests for in_whitelist decoratorGravatar Sebastiaan Zeeff2020-04-27-31/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `in_whitelist` decorator should not fail when a decorated command was called in a DMChannel; it should simply conclude that the user is not allowed to use the command. I've added a test case that uses a DMChannel context with User, not Member, objects. In addition, I've opted to display a test case description in the `subTest`: Simply printing the actual arguments and context is messy and does not actually show you the information you'd like. This description is enough to figure out which test is failing and what the gist of the test is.
| | * | | | | Add mock for discord.DMChannelsGravatar Sebastiaan Zeeff2020-04-27-0/+21
| | | | | | |
| | * | | | | Exclude never-run lines from coverageGravatar Sebastiaan Zeeff2020-04-27-2/+2
| | | | | | |
| | * | | | | Simplify `in_whitelisted_context` decorator APIGravatar Sebastiaan Zeeff2020-04-23-92/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The API of the `in_whitelisted_context` decorator was a bit clunky: - The long parameter names frequently required multiline decorators - Despite `#bot-commands` being the defacto default, it needed to be passed - The name of the function, `in_whitelisted_context` is fairly long in itself To shorten the call length of the decorator, the parameter names were shortened by dropping the `whitelisted_` prefix. This means that the parameter names are now just `channels`, `categories`, and `roles`. This already means that all current usages of the decorator are reduced to one line. In addition, `#bot-commands` has now been made the default redirect channel for the decorator. This means that if no `redirect` was passed, users will be redirected to `bot-commands` to use the command. If needed, `None` (or any falsey value) can be passed to disable redirection. Passing another channel id will trigger that channel to be used as the redirection target instead of bot-commands. Finally, the name of the decorator was shortened to `in_whitelist`, which already communicates what it is supposed to do.
| | * | | | | Allow `!eval` in help channel categoriesGravatar Sebastiaan Zeeff2020-04-23-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As help conversations now take place in their own, dedicated channels, there's no longer a pressing need to restrict the `!eval` command in help channels for regular members. As the command can be a valuable tool in explaining and teaching Python, we've therefore chosen to allow it in channels in `Help: Available` and `Help: Occupied` catagories.
| | * | | | | Add tests for `in_whitelisted_context` decoratorGravatar Sebastiaan Zeeff2020-04-23-0/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I have added tests for the new `in_whitelisted_context` decorator. They work by calling the decorator with different kwargs to generate a specific predicate callable. That callable is then called to assess if it comes to the right conclusion.
| | * | | | | Remove vestigial kwargs from MockTextChannel.__init__Gravatar Sebastiaan Zeeff2020-04-23-1/+1
| | | | | | |
| | * | | | | Replace `in_channel` decorator by `in_whitelisted_context`Gravatar Sebastiaan Zeeff2020-04-23-47/+94
| |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `in_channel` decorator that served as a factory for `in_channel` checks was replaced by the broaded `in_whitelisted_context` decorator. This means that we can now whitelist commands using channel IDs, category IDs, and/or role IDs. The whitelists will be applied in an "OR" fashion, meaning that as soon as some part of the context happens to be whitelisted, the `predicate` check the decorator produces will return `True`. To reflect that this is now a broader decorator that checks for a whitelisted *context* (as opposed to just whitelisted channels), the exception the predicate raises has been changed to `InWhitelistedContextCheckFailure` to reflect the broader scope of the decorator. I've updated all the commands that used the previous version, `in_channel`, to use the replacement.
* | | | | | Merge pull request #904 from Akarys42/free-tagGravatar Shirayuki Nekomata2020-04-23-0/+5
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Free tag
| * | | | | Merge branch 'master' into free-tagGravatar Shirayuki Nekomata2020-04-23-12/+57
| |\ \ \ \ \ | |/ / / / / |/| | | | |
* | | | | | Merge pull request #900 from python-discord/fix-category-cache-issueGravatar Sebastiaan Zeeff2020-04-21-3/+2
|\ \ \ \ \ \ | | | | | | | | | | | | | | Fix category cache issue
| * | | | | | Fix category cache issueGravatar Joseph Banks2020-04-21-3/+2
|/ / / / / /
* | | | | | Merge pull request #896 from python-discord/answered-session-statsGravatar Mark2020-04-20-3/+42
|\ \ \ \ \ \ | | | | | | | | | | | | | | Answered help session statistics
| * | | | | | HelpChannels: add logging to answered checkGravatar MarkKoz2020-04-20-3/+4
| | | | | | |
| * | | | | | Extra documentation + split out to separate functionGravatar Joseph Banks2020-04-20-8/+26
| | | | | | |
| * | | | | | Add different emoji for different channel statuses (in use answered/unanswered)Gravatar Joseph Banks2020-04-20-2/+7
| | | | | | |
| * | | | | | Incorrect comparison, we need to check if we are in help_in_use, not out of itGravatar Joseph Banks2020-04-20-1/+1
| | | | | | |
| * | | | | | Add statistics on whether a help session was closed with no input from ↵Gravatar Joseph Banks2020-04-20-0/+15
|/ / / / / / | | | | | | | | | | | | | | | | | | anyone but the claimant
| * | | | | Free tag: fix typo in headerGravatar kwzrd2020-04-23-1/+1
| | | | | |
| * | | | | Simplify free tagGravatar Matteo Bertucci2020-04-23-3/+2
| | | | | |
| * | | | | Use IDs instead of hard-coding category names in the free tagGravatar Matteo Bertucci2020-04-16-2/+1
| | | | | | | | | | | | | | | | | | Co-Authored-By: Shirayuki Nekomata <[email protected]>
| * | | | | Add a title at the top of the free tagGravatar Matteo Bertucci2020-04-16-0/+2
| | | | | | | | | | | | | | | | | | Co-Authored-By: Shirayuki Nekomata <[email protected]>
| * | | | | Create temporary free tagGravatar Matteo Bertucci2020-04-16-0/+5
| | | | | |
| | | * | | Update Python News extension name in __main__.pyGravatar ks1292020-05-07-1/+1
| | | | | | | | | | | | | | | | | | Co-authored-by: Joseph Banks <[email protected]>
| | | * | | Merge remote-tracking branch 'origin/python-news' into python-newsGravatar ks1292020-05-06-14/+18
| | | |\ \ \
| | | | * | | Fix config Webhook IDs formattingGravatar ks1292020-05-06-6/+6
| | | | | | | | | | | | | | | | | | | | | Co-authored-by: Sebastiaan Zeeff <[email protected]>
| | | | * | | Fix `News` cog maillist news posting no threads check commentGravatar ks1292020-05-03-1/+3
| | | | | | | | | | | | | | | | | | | | | Co-authored-by: Joseph Banks <[email protected]>
| | | | * | | Define encoding in `News` cog `await resp.text()` using Gravatar ks1292020-05-02-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In `News` cog PEP news posting, define `utf-8` as encoding on response parsing to avoid the error. Co-authored-by: Joseph Banks <[email protected]>
| | | | * | | Merge the two asynchronous tasks into one to prevent race conditionsGravatar Joseph Banks2020-05-01-6/+8
| | | | | | |
| | | * | | | Remove `PythonNews.channel` because this is unnecessaryGravatar ks1292020-05-06-2/+0
| | | | | | |
| | | * | | | Renamed `news.py` to `python_news.py` and `News` to `PythonNews` to avoid ↵Gravatar ks1292020-05-06-2/+2
| | | |/ / / | | | | | | | | | | | | | | | | | | confusion
| | | * | | Added ignoring maillist when no recent threads (this month) in `News` cogGravatar ks1292020-05-01-0/+4
| | | | | |
| | | * | | Added on cog unload news posting tasks canceling on `News` cogGravatar ks1292020-05-01-0/+5
| | | | | |
| | | * | | Replace message ID storage to new specific ID storage in `News` cogGravatar ks1292020-05-01-38/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Removed (now) unnecessary helper function `News.check_new_exist`. - Use thread IDs instead message IDs on maillists checking to avoid Discord API calls. - Use PEP number instead message IDs on PEP news checking to avoid Discord API calls.
| | | * | | Simplified New publishing check + removed unnecessary Webhook checkGravatar ks1292020-04-28-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Replaced type checking with `TextChannel.is_news()` for simplification to check is possible to publish new - Removed unnecessary `while` loop on `send_webhook` that check is webhook available. No need for this after starting ordering modification.
| | | * | | Minor terminology change on a logGravatar Joseph Banks2020-04-27-1/+1
| | | | | |
| | | * | | Merge masterGravatar Joseph Banks2020-04-27-2/+2
| | | |\ \ \
| | | | * | | Add Python News channel and webhook ID to config-default.ymlGravatar ks1292020-04-27-2/+2
| | | | | | | | | | | | | | | | | | | | | Co-Authored-By: Joseph <[email protected]>
| | | * | | | Make some fixes to ensure data is persisted and the bot does not hangGravatar Joseph Banks2020-04-27-3/+22
| | | |/ / /
| | | * | | Fixed `BeautifulSoup` parsing warningGravatar ks1292020-04-27-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Added `features="lxml"` to `BeautifulSoup` class creating to avoid warning.
| | | * | | Improved `News` cogGravatar ks1292020-04-27-10/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added footer to webhook sent message - Made `send_webhook` return `discord.Message` instead ID of message - Added waiting for Webhook on `send_webhook` - Added message publishing in new loops
| | | * | | Simplified title check even more in PEP newsGravatar ks1292020-04-21-1/+1
| | | | | |
| | | * | | `News` Cog improvisationsGravatar ks1292020-04-21-37/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Created new helper function `News.get_webhook_and_channel` to will be run in Cog loading and will fetch #python-news channel and webhook. - Fixed `News.send_webhook` when you pass `None` as author, this will not add author. - Replaced individual channel and webhook fetches with `News.webhook` and `News.channel`. - Replaced positional arguments with kwargs in `send_webhook` uses. - Moved maillists syncing from `News.__init__` to `News.post_maillist_news`. - Simplified `News.post_pep_news` already exist checks.
| | | * | | Implemented maillists news posting, created helper functions + added date checkGravatar ks1292020-04-20-19/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Created helper function `News.get_thread_and_first_mail` - Created helper function `News.send_webhook` - Created helper function `News.check_new_exist` - Task `post_maillist_news`, that send latest maillist threads to news, when they don't exist. - Implemented helper functions to PEP news - Added date check
| | | * | | Defined `chardet` log level to warning to avoid spamGravatar ks1292020-04-20-0/+1
| | | | | |
| | | * | | Added new dependency `beatifulsoup4` for Python news HTML parsingGravatar ks1292020-04-20-1/+3
| | | | | |
| | | * | | Added new function `News.get_webhook_names` + new variable `News.webhook_names`Gravatar ks1292020-04-20-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | Function fetch display names of these mail lists, that bot will post. These names will be used on Webhook author names. `News.webhook_names` storage these name and display name pairs.
| | | * | | Created PEP news task + minor changes in `News`Gravatar ks1292020-04-20-4/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Created task `post_pep_news` that pull existing news message IDs from API, do checks and send new PEP when it's not already sent. - Removed `get_webhook` - Removed `self.webhook`
| | | * | | Applied constant changes to NewsGravatar ks1292020-04-20-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | Replaced in-file mail lists with constants.py's, replaced webhook ID getting.
| | | * | | Applied Python News config changesGravatar ks1292020-04-20-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | Removed Webhook and Channel from their listings, created new class `PythonNews` that hold them + mail lists.