#dev-log

1 messages ยท Page 41 of 1

ebon magnetBOT
#

Build 20200220.2 failed

Requested by

GitHub

Duration

00:00:51

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200220.3 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
#

Yeah, I was referring to docker-compose. This is more for people who want to run snekbox themselves; the only source of information on how to handle the network (assuming they aren't too familiar with Docker) is the docker-compose file, which has network mode set to host.

Maybe this should be closed and added in https://github.com/python-discord/snekbox/issues/57, since that's about how people who want to run snekbox themselves can do so.

#

Oops, sorry, snekbox-base was a typo, should've been just snekbox.

Once snekbox is up and running, I agree, there are plenty of instructions on how to communicate with it. This is more about how to get the docker container running. This might be more of an issue for docker hub, but I'm not sure if that has an issue system :man_shrugging:

I'm not sure why you say you can't just boot it up; isn't that what the snippet I provided does?

regal archBOT
#
[python-discord/bot] branch deleted: logging
north knotBOT
ebon magnetBOT
#

Build 20200220.4 succeeded

Requested by

Joseph Banks

Duration

00:03:21

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/site] New branch created: add\-sentry
ebon magnetBOT
#

Build 20200220.1 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200220.3 succeeded

Requested by

GitHub

Duration

00:02:09

Build pipeline

Site

regal archBOT
#
[python-discord/site] New branch created: add\-sentry\-sdk
ebon magnetBOT
#

Build 20200221.1 failed

Requested by

GitHub

Duration

00:01:15

Build pipeline

Site

#

Build 20200221.1 failed

Requested by

GitHub

Duration

00:01:19

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200221.2 succeeded

Requested by

Joseph Banks

Duration

00:01:37

Build pipeline

Site

#

Build 20200221.1 failed

Requested by

GitHub

Duration

00:01:26

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200221.3 succeeded

Requested by

GitHub

Duration

00:01:45

Build pipeline

Site

regal archBOT
#
[python-discord/site] branch deleted: add\-sentry
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200221.4 succeeded

Requested by

GitHub

Duration

00:03:33

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20200221.5 succeeded

Requested by

GitHub

Duration

00:01:46

Build pipeline

Site

regal archBOT
#
[python-discord/site] branch deleted: add\-sentry\-sdk
ebon magnetBOT
#

Build 20200221.6 succeeded

Requested by

Joseph Banks

Duration

00:03:38

Build pipeline

Site

north knotBOT
regal archBOT
#
[python-discord/bot] New branch created: setup\-sentry\-sdk
ebon magnetBOT
#

Build 20200221.1 failed

Requested by

GitHub

Duration

00:01:26

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200221.2 failed

Requested by

GitHub

Duration

00:00:49

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/branding] New branch created: lemojis
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200221.3 failed

Requested by

GitHub

Duration

00:01:14

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200221.4 failed

Requested by

GitHub

Duration

00:00:57

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200221.5 failed

Requested by

GitHub

Duration

00:01:28

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200221.6 failed

Requested by

GitHub

Duration

00:01:34

Build pipeline

Bot

#

Build 20200221.7 succeeded

Requested by

GitHub

Duration

00:01:29

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200221.8 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

ebon magnetBOT
#

Build 20200221.9 succeeded

Requested by

GitHub

Duration

00:01:26

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200221.11 succeeded

Requested by

GitHub

Duration

00:01:28

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200221.12 succeeded

Requested by

GitHub

Duration

00:01:40

Build pipeline

Bot

regal archBOT
#

@SebastiaanZ Thanks. Any thoughts on the concerns (most importantly, โ„– 5)?

I'm honestly not quite sure. It currently pretty much locks all features that rely on the new signal, but it really should be a freak occurrence that will probably only be solved by restarting the bot (or manually triggering that method with an internal eval to recheck the state). We could add something that tries to send an alert to the guild using a method that not relies on the cache (e.g., fetching a webhook f...

regal archBOT
#
[python-discord/bot] branch deleted: setup\-sentry\-sdk
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200221.13 succeeded

Requested by

GitHub

Duration

00:03:04

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

Sentry Issue: BOT-10

AttributeError: 'NoneType' object has no attribute 'mention'
  File "bot/cogs/reminders.py", line 53, in reschedule_reminders
    await self.send_reminder(reminder, late)
  File "bot/cogs/reminders.py", line 121, in send_reminder
    content=user.mention,

Task exception was never retrieved
future: <Task finished coro= exception=AttributeError("'NoneType' object has no at...
regal archBOT
ebon magnetBOT
#

Build 20200221.14 succeeded

Requested by

GitHub

Duration

00:01:32

Build pipeline

Bot

ebon magnetBOT
#

Build 20200221.15 succeeded

Requested by

GitHub

Duration

00:01:51

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20200221.16 succeeded

Requested by

GitHub

Duration

00:03:13

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#
[python-discord/snekbox] New branch created: compose
regal archBOT
#

Closes #58

The provided compose currently runs in host mode, which is unnecessary. This adjusts it back to only expose the required port.

The service name has been changed to "snekbox" instead also, as we're moving away from using the pd prefix on our services. It also doesn't make too much sense to have such a prefix and shortened name if we're to accommodate public usage.

The hostname field has been removed, and container_name field added. By default, the hostname will be set to...

#

Closes #58

The provided compose currently runs in host mode, which is unnecessary. This adjusts it back to only expose the required port.

The service name has been changed to "snekbox" instead also, as we're moving away from using the pd prefix on our services. It also doesn't make too much sense to have such a prefix and shortened name if we're to accommodate public usage.

The hostname field has been removed, and container_name field added. By default, the hostname will be set to...

ebon magnetBOT
#

Build 20200221.1 failed

Requested by

GitHub

Duration

00:03:10

Build pipeline

Snekbox

#

Build 20200221.2 failed

Requested by

GitHub

Duration

00:03:14

Build pipeline

Snekbox

regal archBOT
#

It seems to be related to what is being mounted in the jail. If root is mounted (and other mounts are removed), then it is successfully launched.

Here's the error with verbose logging:

[D][2020-02-21T22:26:45+0000][73] std::unique_ptr nsjail::getTC(int)():179 Saved the current state of the TTY
[I][2020-02-21T22:26:45+0000] Mode: STANDALONE_ONCE
[I][2020-02-21T22:26:45+0000] Jail parameters: hostname:'snekbox', chroot:'', process:'/snekbox/.venv/bin/python3', bind:[::]:0, max_conn...
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200221.17 succeeded

Requested by

Joseph Banks

Duration

00:03:11

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20200221.18 succeeded

Requested by

Joseph Banks

Duration

00:03:11

Build pipeline

Bot

regal archBOT
#
[python-discord/snekbox] New branch created: bug/ci/61/python\-symlink\-not\-resolving
ebon magnetBOT
#

Build 20200222.1 succeeded

Requested by

GitHub

Duration

00:03:15

Build pipeline

Snekbox

north knotBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200222.3 succeeded

Requested by

GitHub

Duration

00:03:18

Build pipeline

Snekbox

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200222.4 failed

Requested by

GitHub

Duration

00:00:00

Build pipeline

Snekbox

regal archBOT
ebon magnetBOT
#

Build 20200222.5 succeeded

Requested by

GitHub

Duration

00:02:56

Build pipeline

Snekbox

regal archBOT
regal archBOT
regal archBOT
#

Currently, it is possible for someone to write a command that shadows an existing alias. Discord will not crash, it will simply short circuit and make the other alias unavailable.

It ought to be possible to add an automated check for this in the form of a unit test. This test might make use of ast (which has a means of checking decorator arguments) and then iterate over all cogs to determine if there are any alias duplicates.

regal archBOT
#

We're currently filtering malicious filetypes in our filetype filter - to be specific, we're filtering all filetypes we haven't specifically whitelisted. This does not, however, apply to URLs. That means it's easy enough to get around our filter by posting the file in a DM or on a different server, and then just linking the content instead.

This also allows users to post URLs that literally point at viruses, which isn't something we should permit.

Let's write a second filter that uses t...

#

Currently, we have certain channels whitelisted for certain filters and some filters apply to all members, even Owners cannot post filetypes that aren't on the whitelist!

Please change this so that absolutely all filters will ignore all staff members. It is not necessary to whitelist staff channels or to keep any other kind of exceptions to the filters once this very simple exception has been added, so please clean up any such exceptions while you're at it.

regal archBOT
#

If msg['delete_date'] contains a datetime string with a timezone (like the ones returned by the API), then we should make sure to strip the tzinfo here like we do in L418.

Currently, we're getting this each time we try to delete a rescheduled message:

Traceback (most recent call last):
  File "/home/sebastiaan/pydis/repositories/bot/bot/cogs/filtering.py", line 405, in _scheduled_task
    await wait_until(delete_at)
  File "/home/sebastiaan/pydis/repositories/bot/bot/utils/t...
#

What kind of errors would cause this?

Currently, this error handling means that we would not remove the actual message, but do remove the entry from the database down below. So, the offensive message remains and will never be deleted. If these type of errors are mainly triggered by things like temporary disruptions at Discord's end, then it could be a good idea to keep the rows in the database and attempt removal at a later point in time.

However, that strategy would mean that completel...

#

@lemonsaurus Thank you for taking the time to tell me about all this, it really is appreciated. There is definitely a bug causing most of these issues; I think the module that parses the syntax tree of user input to provide helpful feedback needs an update. I'll look into it.

I don't believe that type annotation and asyncio are in scope for this course, since it is for complete beginners. Expanding the course contents to cover more advanced concepts isn't a priority at this time.

Either...

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200222.1 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200222.2 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
#

Abstract

It would be nice to have a channel tracking some of the official python mailing lists, such as python-dev@python.org.

Specification

A background task will make the bot fetch from an email API to check if a new email from one of the tracked mailing list have been received, if any email is found, it will post them as an embed to a specific channel inside the server. Some additional content can be put in the embed, such as some informations about the sender, or a jump link t...

ebon magnetBOT
#

Build 20200222.3 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#

The scheduler base class holds onto a Task for _scheduled_task(). Inside _scheduled_task(), the coroutine deactivate_infraction() is awaited. Inside this coroutine, the aforementioned task is cancelled.

https://github.com/python-discord/bot/blob/f09d6b0646edb62806b60b145986b7cc680fd77c/bot/cogs/moderation/scheduler.py#L381

So a child is effectively cancelling its parent before the child itself can finish. Hope that makes sense. Does shield work to prevent that situation? I'm no...

native joltBOT
#

Describe the bug
In nested classes, methods which use self are flagged with ANN001 instead of ANN101. This causes problems when the user is attempting to ignore ANN101 but not ANN001 errors.

To Reproduce
Minimal code example to reproduce the behavior:

class Foo:
    class Bar:
        def __init__(self):
            pass

    def __init__(self):
        pass

Results in:

test.py:3:22: ANN001 Missing type annotation for function argument 'sel...
#

Description
Add a new option like allowed-unannotated-argument-names which is a comma separated list of argument names that are fine to not have annotated.

Rationale/Use Case
Examples: often I need to ingest variables in my functions that I never use (callbacks from another library for example). In these cases, I often will just use _ as my variable.

Here is an example of a GTK callback:

    def on_download_all_click(self, _: Any):
        CacheManager.batch_downloa...
regal archBOT
native joltBOT
#

Describe the bug
When an outer function returns None, but a function which is defined within it returns something that isn't None, the outer function is falsly marked with an ANN2** error.

To Reproduce
Minimal code example to reproduce the behavior:

def foo():
    def bar() -> int:
        return 1
    print(bar())
foo()

Version Information

$ flake8 --version
3.7.9 (flake8-annotations: 2.0.0, flake8-comprehensions: 3.2.2, flake8-print: 3...
#

Describe the bug
The ANN202 is reported in the incorrect column location when the last parameter has a type annotation.

To Reproduce
Minimal code example to reproduce the behavior:

def foo(bar: int):
    return 1


def bar():
    return 1

Results:

test.py:1:13: ANN201 Missing return type annotation for public function
test.py:5:11: ANN201 Missing return type annotation for public function

Expected: the first one should have a column number ...

native joltBOT
regal archBOT
ebon magnetBOT
#

Build 20200223.1 failed

Requested by

GitHub

Duration

00:00:20

Build pipeline

Snekbox

regal archBOT
ebon magnetBOT
#

Build 20200223.2 succeeded

Requested by

GitHub

Duration

00:01:12

Build pipeline

Snekbox

regal archBOT
ebon magnetBOT
#

Build 20200223.3 succeeded

Requested by

GitHub

Duration

00:01:07

Build pipeline

Snekbox

regal archBOT
ebon magnetBOT
#

Build 20200223.4 failed

Requested by

GitHub

Duration

00:00:12

Build pipeline

Snekbox

regal archBOT
ebon magnetBOT
#

Build 20200223.5 failed

Requested by

GitHub

Duration

00:00:18

Build pipeline

Snekbox

regal archBOT
ebon magnetBOT
#

Build 20200223.6 failed

Requested by

GitHub

Duration

00:00:14

Build pipeline

Snekbox

#

Build 20200223.7 failed

Requested by

GitHub

Duration

00:00:15

Build pipeline

Snekbox

regal archBOT
ebon magnetBOT
#

Build 20200223.8 failed

Requested by

GitHub

Duration

00:00:16

Build pipeline

Snekbox

regal archBOT
#

Sentry Issue: BOT-1A

NotFound: 404 NOT FOUND (error code: 10008): Unknown Message
(3 additional frame(s) were not displayed)
...
  File "bot/cogs/moderation/management.py", line 196, in search_user
    await self.send_infraction_list(ctx, embed, infraction_list)
  File "bot/cogs/moderation/management.py", line 236, in send_infraction_list
    max_size=1000
  File "bot/pagination.py", line 285...
ebon magnetBOT
#

Build 20200223.9 succeeded

Requested by

GitHub

Duration

00:00:59

Build pipeline

Snekbox

regal archBOT
north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20200223.12 failed

Requested by

GitHub

Duration

00:00:49

Build pipeline

Snekbox

regal archBOT
#
[python-discord/bot] New branch created: paginator\-react\-404
#

Closes #770

Description

A paginator session will eventually timeout and clear it's reactions so it can stop listening to events to paginate to. Sometimes we delete these messages entirely, but the paginator session still is waiting for the timeout. When it finally come time for it to clear itself and stop listening to events, it gets instead a discord.NotFound exception as there's no longer a message to clear reactions from.

Changes

For now, this is a simple PR that addresse...

ebon magnetBOT
#

Build 20200223.1 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200223.2 succeeded

Requested by

GitHub

Duration

00:03:20

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#
[python-discord/bot] New branch created: dm\_failure\_fix
#

Closes #763.

Description

Members have a welcome DM sent to them on accepting rules, which may raise a discord.Forbidden exception in the case they have DMs disabled in their privacy settings.

The current implementation catches a broad Exception and uses log.exception to allow the error to be logged fully with traceback as an exception without interrupting the code.

This is an unnecessary log since it's something by design, not an error, and the broad Exception catching is agai...

ebon magnetBOT
#

Build 20200223.3 succeeded

Requested by

GitHub

Duration

00:01:27

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: reminder\_missing\_users
#

Closes #764.

Description

On bot load, the reminders are retrieved from the site api and rescheduled to be sent at their expiry datetime.

If someone creates a reminder, leaves the guild, and the reminder gets sent while they are no longer a member then the bot will raise an AttributeError due to user returning None and us not checking before attempting to get the user mention string.

This PR addresses this issue by checking that the user is present when going through reminder...

ebon magnetBOT
#

Build 20200223.4 succeeded

Requested by

GitHub

Duration

00:01:26

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: dm\_failure\_fix
ebon magnetBOT
#

Build 20200223.6 succeeded

Requested by

GitHub

Duration

00:01:26

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20200223.5 succeeded

Requested by

GitHub

Duration

00:03:12

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#
[python-discord/bot] branch deleted: optimize/pagination/emoji\_collection\_structure
ebon magnetBOT
#

Build 20200223.8 succeeded

Requested by

GitHub

Duration

00:01:24

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20200223.7 succeeded

Requested by

GitHub

Duration

00:03:10

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#
[python-discord/bot] branch deleted: paginator\-react\-404
north knotBOT
ebon magnetBOT
#

Build 20200223.9 succeeded

Requested by

GitHub

Duration

00:03:06

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200223.10 succeeded

Requested by

GitHub

Duration

00:01:31

Build pipeline

Bot

regal archBOT
#

debe73a No longer check if every role is @everyone; jus... - Deniz
7663315 Roles cannot return None because everyone has t... - Deniz
515b490 Remove some a lot of unneccesary newlines that ... - Deniz
5f799b6 Refactor how channels and statuses are counted;... - Deniz
79fb507 Update tests to reflect status changes - Deniz

north knotBOT
ebon magnetBOT
#

Build 20200223.11 succeeded

Requested by

GitHub

Duration

00:02:39

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

Abstract

I would like to propose that branding is cleaned up a little bit, and in particular the logos directory is re-organized to something easier to navigate for both humans and bots. I introduce two possible approaches for reducing the current complexity of showing Seasonalbots which icons to load.

Rationale

As we've been adding more and more logos, banners and other branding features over the past months, it feels that branding has become a bit of a mess that is diffic...

regal archBOT
#

I'm actually leaning towards approach 1 here, because it's simple and straight forward and I don't know how much of that flexibility we really need.

I would simplify the structure you suggested even further, since there's quite a few folders that are fairly superfluous. For example

โ”œโ”€โ”€ branding/
โ”‚ โ”œโ”€โ”€ seasonal/
โ”‚ โ”‚ โ”œโ”€โ”€ christmas/
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ icons/
โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ snowing.gif
โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ bells.gif
โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ santa.png
โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ misc/
โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ banner_2018.png
โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ sant...
#
[python-discord/bot] New branch created: cooldown\-log\-level
native joltBOT
#

Well I know why this is happening but it's looking like the fix is going to be challenging.

While the return node visitor approach is an elegant one for most cases, it breaks for nested functions because it is visiting the return nodes without any knowledge of their containing function. In the code snippet above, for example, the return node ends up being visited twice, once for bar, as expected, and the other for foo, since the return node is in the body of the foo function node.
...

regal archBOT
#

Closes #768.

Description

When the tag command is used too often, it may hit cooldown. The log entry when this occurs is informative and by design rather than any potential concern, so should not be logged as a warning.

Changes

The log level has been reduced to info and the code style has been adjusted to conform to our typical project style, with a correctly dropped line continuation.

ebon magnetBOT
#

Build 20200223.12 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
#

We've decided to use this plugin in our linting toolchain, which allows us to test things like variable name casing (no camelCase please!) and whether classes and methods use cls and self.

Implementation

Here are the errors it can catch:

code sample message
N801 class names should use CapWords convention
N802 function name should be lowercase
N803 argument name should be lowercase
N804 first argument of a classmethod should be named 'cls'
N805 first arg...
#

We've decided to use this plugin in our linting toolchain, which allows us to test things like variable name casing (no camelCase please!) and whether classes and methods use cls and self.

Implementation

Here are the errors it can catch:

code sample message
N801 class names should use CapWords convention
N802 function name should be lowercase
N803 argument name should be lowercase
N804 first argument of a classmethod should be named 'cls'
N805 first arg...
#

We've decided to use this plugin in our linting toolchain, which allows us to test things like variable name casing (no camelCase please!) and whether classes and methods use cls and self.

Implementation

Here are the errors it can catch:

code sample message
N801 class names should use CapWords convention
N802 function name should be lowercase
N803 argument name should be lowercase
N804 first argument of a classmethod should be named 'cls'
N805 first arg...
native joltBOT
#

We've decided to use this plugin in our linting toolchain, which allows us to test things like variable name casing (no camelCase please!) and whether classes and methods use cls and self.

Implementation

Here are the errors it can catch:

code sample message
N801 class names should use CapWords convention
N802 function name should be lowercase
N803 argument name should be lowercase
N804 first argument of a classmethod should be named 'cls'
N805 first arg...
regal archBOT
#

We've decided to use this plugin in our linting toolchain, which allows us to test things like variable name casing (no camelCase please!) and whether classes and methods use cls and self.

Implementation

Here are the errors it can catch:

code sample message
N801 class names should use CapWords convention
N802 function name should be lowercase
N803 argument name should be lowercase
N804 first argument of a classmethod should be named 'cls'
N805 first arg...
#

Back when our Django site was built, we needed django-wiki support in Django 2.2. Since the author did not have this available in the package that was available on PyPI, we decided to fork it and add the support ourselves.

The latest version of django-wiki, however, supports Django all the way up to Django 3. In other words, we no longer need to rely on this fork.

Task

  • [ ] Remove the wheels folder in docker, we no longer need to load this wheel. see
    https://github.com/py...
#
[python-discord/bot] New branch created: checkout\-msg\-log
#

Abstract

After much deliberating, we've decide to change the way that tags are added, removed and edited. This has been a controversial issue, but the executive staff has voted to go for this solution and we're not going to be discussing it further for the time being.

In the new system, tags will simply be markdown files stored in this repository. This means we will need to simplify the way the bot handles tags.

What needs to be done?

Currently, all the tags are supposed to b...

ebon magnetBOT
#

Build 20200223.13 succeeded

Requested by

GitHub

Duration

00:01:25

Build pipeline

Bot

native joltBOT
regal archBOT
#

We're overhauling the way tags are handled, and this means we will no longer be handling them on the site or storing them in the database at all.

Please note that this issue should not be completed until the following bot issue has been completed:
https://github.com/python-discord/bot/issues/777

What do I do?

You completely annihilate Tags from this repo. We don't need a model for it, the data in the database can be deleted, and we don't need any tags-related views.

#

Abstract

We may want to restrict certain tags to certain roles. For example, we may want tags that are only available to moderators and higher, which explain moderation guidelines, bot commands, stuff like that. We may want tags that are only available to Contributors that explain certain details related to our bot and site repos.

How do we do that?

Well first of all, we should probably wait until https://github.com/python-discord/bot/issues/777 is solved.

Once that has been don...

#

Sentry Issue: BOT-15

This seems to be a result of the syncer retrieving a list of users to add to the API after a member has joined but before the on_member_join listener event has finished adding the data itself to the API, only to have the syncer get around to attempting to add it a second time which is met with a 400 status and a notice that the user exists in the db already.

ResponseCode...
native joltBOT
regal archBOT
ebon magnetBOT
#

Build 20200223.14 succeeded

Requested by

GitHub

Duration

00:01:31

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: bug/backend/s329/docker\-compose\-tty
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20200223.15 succeeded

Requested by

GitHub

Duration

00:02:50

Build pipeline

Bot

ebon magnetBOT
#

Build 20200223.16 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: checkout\-msg\-log
north knotBOT
ebon magnetBOT
#

Build 20200223.17 succeeded

Requested by

GitHub

Duration

00:02:50

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200223.18 succeeded

Requested by

GitHub

Duration

00:02:46

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200223.19 succeeded

Requested by

GitHub

Duration

00:01:26

Build pipeline

Bot

regal archBOT
#

cab9d3a Check reminder user and channel before send and... - scragly
0585a54 Remove call to delete reminder, as ensure metho... - scragly
9bec0e2 Merge branch 'master' into reminder_missing_users - jos-b
c545fa5 Merge pull request #773 from python-discord/rem... - jos-b

#
[python-discord/bot] branch deleted: reminder\_missing\_users
north knotBOT
ebon magnetBOT
#

Build 20200223.20 succeeded

Requested by

Joseph Banks

Duration

00:02:58

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200223.21 succeeded

Requested by

Leon Sandรธy

Duration

00:03:03

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

@MarkKoz hmm, no, that's not quite what I meant. misc is just an example. Since the implementation would ignore all other folders apart from icons, we could easily have additional folders and subfolders structured however we wanted. it might be a good idea to have a misc folder (or some other name) at the top level, for sake of consistency, but inside that folder we could do whatever we needed to.

native joltBOT
#

Similar to #69, the cause of this is simple with a seemingly non-simple fix.

The issue here is that the current handling of nesting inside classes is too simplistic. With non-class function nesting, ast.generic_visit() is sufficient to properly visit & parse all nested definitions, but since class node traversal requires a different constructor (to identify contained functions as class method), visiting of these nodes is being handled by the more generic function visitors so they don't g...

regal archBOT
ebon magnetBOT
#

Build 20200223.13 succeeded

Requested by

GitHub

Duration

00:01:09

Build pipeline

Snekbox

regal archBOT
#

Related to https://github.com/python-discord/seasonalbot/issues/335, the bot's channel constants can occasionally get out of sync, resulting in #deleted-channel references in some of the error responses.

In order to alert staff that this desync has occurred, a utility function should be added to the bot's startup routine that validates the channel constants & logs a warning if any of the channels do not exist so the constants file can be updated appropriately.

#
[python-discord/bot] New branch created: bug/utils/bot\-1c/reminder\-unschedule\-failure
ebon magnetBOT
#

Build 20200223.22 succeeded

Requested by

GitHub

Duration

00:01:34

Build pipeline

Bot

regal archBOT
#
[python-discord/site] New branch created: feat/deps/s335/wiki\-pypi
ebon magnetBOT
#

Build 20200223.1 succeeded

Requested by

GitHub

Duration

00:01:45

Build pipeline

Site

regal archBOT
native joltBOT
regal archBOT
native joltBOT
native joltBOT
regal archBOT
ebon magnetBOT
#

Build 20200223.23 succeeded

Requested by

GitHub

Duration

00:01:30

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: reminder\-enhancements
north knotBOT
ebon magnetBOT
#

Build 20200223.24 succeeded

Requested by

Leon Sandรธy

Duration

00:02:48

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: python38\-migration
regal archBOT
#
[python-discord/bot] New branch created: feat/backend/b496/rename\-constants
#

Resolves #496

Contributors will have an easier time configuring the constants if their names line up with the names in the guild. Not all names were changed to be exact; mostly the staff-only channels were left alone since they were already adequately descriptive.

  • Use underscores for spaces (mostly changed the log channel names)
  • Roles and channels were "split" by category in the config by putting comments above different "categories"
  • Some unused constants were removed
ebon magnetBOT
#

Build 20200223.25 failed

Requested by

GitHub

Duration

00:01:07

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200223.26 failed

Requested by

GitHub

Duration

00:01:15

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200223.27 succeeded

Requested by

GitHub

Duration

00:01:43

Build pipeline

Bot

regal archBOT
#

I have upgraded the Python version we use for the bot to Python 3.8. One of the major upgrades this offers for us is that we can now use the utilities for testing asynchronous code instead of having to define our own Async-helper for every asyncio-aspect we'd like to test.

This means that this PR also removes those helpers and introduced the proper equivalents that now ship with Python where needed. Another major change that impacts the run time of the test suite significantly is that the ...

ebon magnetBOT
#

Build 20200223.28 failed

Requested by

GitHub

Duration

00:01:03

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200223.29 succeeded

Requested by

GitHub

Duration

00:01:34

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200223.30 succeeded

Requested by

GitHub

Duration

00:01:33

Build pipeline

Bot

regal archBOT
#

7806638 Bot: add wait_until_guild_available - MarkKoz
c1a8646 Bot: make the connector attribute private - MarkKoz
04d8e14 Use wait_until_guild_available instead of wait_... - MarkKoz
e980dab Constants: add dev-core channel and check mark ... - MarkKoz
705963a API: define functions with keyword-only arguments - MarkKoz

north knotBOT
ebon magnetBOT
#

Build 20200223.31 succeeded

Requested by

GitHub

Duration

00:02:59

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200224.1 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200224.2 succeeded

Requested by

GitHub

Duration

00:01:45

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200224.3 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
regal archBOT
#

I should probably just set an explicit MagicMock as the return value instead of an actual _Diff object, but the "issue" here is that the AsyncMock you've used to mock _get_diff will return another AsyncMock as its child when its called and awaited. (The default behavior for mocks is to return a child mock of its own type.)

Because of that "child is like parent" behavior, this will happen in [lines 194-196 of bot.cogs.sync.syncers](https://github.com/python-discord/bot/blob/c81a4d...

#

I'm not quite sure. The create_task method is not a coroutine but a regular method that, if actually used, returns an awaitable Task object. The thing I've changed here is that instead of mocking the sync_guild with an AsyncMock, I've mocked it with a MagicMock; the reason is that we're not actually interested in the async interface, but merely want to check if create_task was called with the right thing.

The latter is more difficult with an AsyncMock as when we call an AsyncMo...

regal archBOT
ebon magnetBOT
#

Build 20200224.4 succeeded

Requested by

GitHub

Duration

00:01:42

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200224.5 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
#

By default, the webhooks sent by Azure use a link which requires an authorised account to access. If the site intercepts the webhook, modifies the field for the URL, and sends it back out again, developers will be happier and more productive!

Here is the URL the webhook currently uses:

https://dev.azure.com/python-discord/web/build.aspx?pcguid=a4900c06-bea4-4b1b-930f-7bd7a2e05a22&builduri=vstfs%3A%2F%2F%2FBuild%2FBuild%2F6105

A more accessible URL for the same build is:

https://de...

#

What do you think?

Let's get this merged and take care of the await assertions in another PR. The 3.8 upgrade hasn't caused a regression regarding assertions - they are at least as effective as they were before. The await assertions are merely an improvement so they don't block anything. I'd rather have this merged first in case anyone else needs to write tests in their PRs.

#

Loosely related rambling ahead, beware:

I played around with the idea of using autospecs for the mock helpers. Unfortunately the problem is that it cannot create a class from an instance spec (but it can do it the other way around). Recall that instances are used as the spec so that instance attributes get mocked too.

I was hoping using autospecs would remove the need to create subclasses in simple cases (i.e. the mocks require no modification of attributes). However, this limitation o...

ebon magnetBOT
#

Build 20200224.6 succeeded

Requested by

GitHub

Duration

00:01:44

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: feat/frontend/o200/help\-channels
#

Follows the design outlined in https://github.com/python-discord/organisation/issues/200#issuecomment-590000882

To do

  • [ ] Figure out an implementation for a cooldown for claiming a new available channel

Outline

Constants

  • [x] Chemical element names
  • Messages
    • [x] Available
    • [x] Dormant
  • PermissionOverwrite
    Can re-use the same object every time a channel is moved
    • [ ] Available
    • [ ] Dormant

Config

  • Categories
    • [x] A...
ebon magnetBOT
#

Build 20200224.7 succeeded

Requested by

GitHub

Duration

00:01:25

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200224.8 succeeded

Requested by

GitHub

Duration

00:01:17

Build pipeline

Bot

ebon magnetBOT
#

Build 20200224.9 succeeded

Requested by

GitHub

Duration

00:01:47

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200224.10 succeeded

Requested by

GitHub

Duration

00:01:22

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.1 succeeded

Requested by

GitHub

Duration

00:01:48

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.2 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.3 succeeded

Requested by

GitHub

Duration

00:01:40

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.4 succeeded

Requested by

GitHub

Duration

00:01:47

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.5 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
#

Don't know exactly what triggered it cause I noticed it way up in my bot's log history.

Ignoring exception in on_command_error
Traceback (most recent call last):
  File "/home/mark/repos/python/bot-pydis/.venv/lib/python3.7/site-packages/discord/client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "/home/mark/repos/python/bot-pydis/bot/cogs/error_handler.py", line 92, in on_command_error
    await ctx.invoke(tags_get_command, tag_name=ctx.invoked_with)
  Fi...
regal archBOT
ebon magnetBOT
#

Build 20200225.6 succeeded

Requested by

GitHub

Duration

00:01:55

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.7 succeeded

Requested by

GitHub

Duration

00:01:36

Build pipeline

Bot

regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
#

Description

The current declaration of _fuzzy_search is:

@staticmethod
def _fuzzy_search(search: str, target: str) -> int```

while the return value is a float.
```py
return current / len(_search) * 100```

## Available fixes

We can change the return value from *int* to *float* or convert the division mark to floor the result:


 ```py
 def _fuzzy_search(search: str, target: str) -> float```
 
**or**

```py
return current // len(_search) * 100```
regal archBOT
ebon magnetBOT
#

Build 20200225.1 succeeded

Requested by

GitHub

Duration

00:01:10

Build pipeline

Seasonal Bot

regal archBOT
#

Is there any chance of a task ending with another type of exception than CancelledError and a new task being rescheduled with the same id before this callback is executed? (Callbacks are scheduled with "call_soon", so they don't happen directly after the task is done, although they should happen "soon".)

If so, I think this will cancel the new task as we're cancelling it purely using the task_id which, if I read this comment right, may or may not assigned to the task this callback wa...

ebon magnetBOT
#

Build 20200225.2 succeeded

Requested by

GitHub

Duration

00:00:54

Build pipeline

Seasonal Bot

#

Build 20200225.3 succeeded

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.4 succeeded

Requested by

GitHub

Duration

00:00:51

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
#

While we used to do this (and probably had to us this prior to Python 3.7), I think we should switch to using the higher level asyncio API with asyncio.create_task instead of using the lower-level loop API of loop.create_task. I think this is as good a point as any to introduce a new habit.

I think it's also a good idea to keep a reference to the task around. That will make it easier to debug since we can inspect exceptions and so on if something breaks.

So, would suggest, **with an...

#

We've had issues with the guild cache not being available when the READY signal was dispatched (discord.py only waits for 2 seconds which, during Discord API lag, is occasionally too short). To prevent that, we've implemented a custom wait_until_guild_available that ensures that the cache is actually loaded before doing things that rely on the cache being available.

Since this validator...

regal archBOT
ebon magnetBOT
#

Build 20200225.8 succeeded

Requested by

GitHub

Duration

00:01:45

Build pipeline

Bot

#

Build 20200225.9 succeeded

Requested by

GitHub

Duration

00:01:49

Build pipeline

Bot

regal archBOT
regal archBOT
#
[python-discord/seasonalbot] branch deleted: icon\-switch\-frequency
north knotBOT
ebon magnetBOT
#

Build 20200225.5 succeeded

Requested by

GitHub

Duration

00:02:03

Build pipeline

Seasonal Bot

regal archBOT
north knotBOT
night lilyBOT
#
SeasonalBot Loaded!

Active Season: Valentines

ebon magnetBOT
#

Build 20200225.6 succeeded

Requested by

GitHub

Duration

00:02:02

Build pipeline

Seasonal Bot

regal archBOT
#

All of these (#357, #358, #359, #360) look fine. Rather than implementing these as individual cogs, they should ultimately end up being contained inside one cog and implemented as subcommands.

With that in mind, please take a look at their respective APIs and see if there is any functionality that could be implemented for each beyond just returning a random picture. Are there any "generes" or other filters that we could use? Photos from specific missions? Specific topic araeas? etc.

#

All of these (#357, #358, #359, #360) look fine. Rather than implementing these as individual cogs, they should ultimately end up being contained inside one cog and implemented as subcommands.

With that in mind, please take a look at their respective APIs and see if there is any functionality that could be implemented for each beyond just returning a random picture. Are there any "generes" or other filters that we could use? Photos from specific missions? Specific topic araeas? etc.

#

All of these (#357, #358, #359, #360) look fine. Rather than implementing these as individual cogs, they should ultimately end up being contained inside one cog and implemented as subcommands.

With that in mind, please take a look at their respective APIs and see if there is any functionality that could be implemented for each beyond just returning a random picture. Are there any "generes" or other filters that we could use? Photos from specific missions? Specific topic araeas? etc.

#

All of these (#357, #358, #359, #360) look fine. Rather than implementing these as individual cogs, they should ultimately end up being contained inside one cog and implemented as subcommands.

With that in mind, please take a look at their respective APIs and see if there is any functionality that could be implemented for each beyond just returning a random picture. Are there any "generes" or other filters that we could use? Photos from specific missions? Specific topic araeas? etc.

#
[python-discord/bot] branch deleted: bug/utils/bot\-1c/reminder\-unschedule\-failure
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20200225.10 succeeded

Requested by

GitHub

Duration

00:03:03

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200225.11 failed

Requested by

GitHub

Duration

00:01:17

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.12 failed

Requested by

GitHub

Duration

00:01:17

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.13 succeeded

Requested by

GitHub

Duration

00:01:44

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.14 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.15 failed

Requested by

GitHub

Duration

00:01:00

Build pipeline

Bot

regal archBOT
#
[bot] Branch feat/backend/b496/rename\-constants was force-pushed to `284c1de`
ebon magnetBOT
#

Build 20200225.16 succeeded

Requested by

GitHub

Duration

00:01:30

Build pipeline

Bot

#

Build 20200225.17 succeeded

Requested by

GitHub

Duration

00:01:34

Build pipeline

Bot

regal archBOT
regal archBOT
#

While testing locally it appears that contextlib.suppress is not stopping CancelledError from being raised.

bot_1       | 2020-02-25 19:23:16,017 | asyncio | ERROR | Exception in callback _silent_exception(>) at /bot/bot/utils/scheduling.py:71
bot_1       | handle: <Handle _silent_exception(>) at /bot/bot/utils/scheduling.py:71>
bot_1       | Traceback (most recent call last):
bot_1       |   File "/usr/local/lib/python3.8/asyncio/events.py", line 81, in _run
bot_1       |     s...
#

Since we added attachments to the deleted message logs the clean command was not updated to store this.

When running a clean command the following error is returned:

web_1       | Bad Request: /bot/deleted-messages
web_1       | "POST /bot/deleted-messages HTTP/1.1" 400 792
bot_1       | 2020-02-25 19:32:41,081 | bot.cogs.error_handler | DEBUG | API responded with 400 for command clean all: {'deletedmessage_set': [{'attachments': ['This field may not be null.']}, {'attachments': ['...
ebon magnetBOT
#

Build 20200225.18 failed

Requested by

GitHub

Duration

00:01:23

Build pipeline

Bot

#

Build 20200225.19 succeeded

Requested by

GitHub

Duration

00:01:32

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.20 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200225.21 succeeded

Requested by

GitHub

Duration

00:01:40

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200226.2 succeeded

Requested by

GitHub

Duration

00:01:49

Build pipeline

Bot

#

Build 20200226.3 succeeded

Requested by

GitHub

Duration

00:01:48

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200226.4 succeeded

Requested by

GitHub

Duration

00:01:50

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20200226.5 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200226.6 succeeded

Requested by

GitHub

Duration

00:01:49

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200226.7 succeeded

Requested by

GitHub

Duration

00:01:55

Build pipeline

Bot

regal archBOT
regal archBOT
#

I noticed that reminders send a duplicate DELETE request from the scheduled task. send_reminder() already deletes the reminder too but the task also tries to delete the reminder afterwards. _delete_reminder() also cancels the task after sending the request. Because a shield isn't being used, the API error ends up being suppressed (a 404 occurs because the reminder was already deleted). If not for the 404, then task being cancelled would at the least still send a warning cause the task wou...

ebon magnetBOT
#

Build 20200226.8 succeeded

Requested by

GitHub

Duration

00:01:47

Build pipeline

Bot

regal archBOT
#

When going over the last commit I noticed this: https://github.com/python-discord/bot/blob/1ccc0f11fd4511d13c7cdf59070dca86465fe59f/bot/cogs/reddit.py#L43-L47
Is the comparison operator supposed to be checking the other way around?
Tokens auto expire and become unusable in an hour, and now the check only executes if the token's already expired (expired time before current) if I'm getting it right

ebon magnetBOT
#

Build 20200226.9 succeeded

Requested by

GitHub

Duration

00:01:44

Build pipeline

Bot

north knotBOT
#
Test
regal archBOT
#

For the project descriptions, there may be some problems picking up the relevant data out of them; some start with an introduction, others with an install guide etc. There's always the option to not include the description or just cut it off before the char limit but something to take into consideration.

Also I think this should probably have its own cog if the above parsing gets involved

regal archBOT
#

It's more efficient if the roles are checked after the check for existence of attachments (line 25). Furthermore, at the least, use isinstance() rather than type() is .... However, I think checking if the attribute exists is even better:

        if hasattr(message.author, "roles") and any(role.id in STAFF_ROLES for role in message.author.roles):

That being said, this should probably ignore DMs (if not message.guild). If that happens, then it may be safe to assu...

#

The implementation details of this needs a lot more thought put into it & provided in the description before this can move forward.

The amount of information present in a project's PyPI page ranges from very little to a whole lot, so it needs to be identified which information is always present and what is optionally present and, out of those, decide what we want to display in the embed while respecting the embed's various character limits.

regal archBOT
ebon magnetBOT
#

Build 20200226.10 succeeded

Requested by

GitHub

Duration

00:01:45

Build pipeline

Bot

regal archBOT
#

@Numerlor Yes, I believe the operator in the datetime comparison should be flipped around i.e. revoke the token if it's still valid. Also realised there needs to be a None check for the access token as it's not guaranteed to have been created before the cog unloads.

Pushing a fix through, just made sure it's not intended. Already included a bool if check on the access_token in https://github.com/python-discord/bot/pull/785/commits/e8e2fa9ee8f607bb6593b7c8325446dc074a972d

ebon magnetBOT
#

Build 20200226.11 succeeded

Requested by

GitHub

Duration

00:01:48

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200226.12 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
#

In that case, follow in its footsteps and also ignore symbol only characters. Probably can merge the number and symbol check together by checking that at least one letter exists.

I don't know what exactly the regex problem is. If the above does not fix it, then the regex should support symbols too (if it's feasible). If it's too much trouble then I suppose the symbols should be completely blacklisted.

regal archBOT
ebon magnetBOT
#

Build 20200226.13 succeeded

Requested by

GitHub

Duration

00:02:54

Build pipeline

Bot

#

Build 20200226.14 succeeded

Requested by

GitHub

Duration

00:01:37

Build pipeline

Bot

regal archBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200226.15 succeeded

Requested by

Joseph Banks

Duration

00:03:19

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200226.16 succeeded

Requested by

GitHub

Duration

00:01:33

Build pipeline

Bot

#

Build 20200226.17 succeeded

Requested by

GitHub

Duration

00:01:27

Build pipeline

Bot

#

Build 20200226.18 succeeded

Requested by

GitHub

Duration

00:01:51

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200226.19 succeeded

Requested by

GitHub

Duration

00:02:53

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#
[python-discord/bot] New branch created: antimalware\-logging
plucky glen
#

Go home GitHub you're drunk

regal archBOT
ebon magnetBOT
#

Build 20200227.1 failed

Requested by

GitHub

Duration

00:00:25

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20200227.2 failed

Requested by

GitHub

Duration

00:00:26

Build pipeline

Seasonal Bot

north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20200227.3 failed

Requested by

GitHub

Duration

00:00:25

Build pipeline

Seasonal Bot

#

Build 20200227.4 failed

Requested by

GitHub

Duration

00:00:25

Build pipeline

Seasonal Bot

#

Build 20200227.5 failed

Requested by

GitHub

Duration

00:00:27

Build pipeline

Seasonal Bot

regal archBOT
#

This can raise 3 exceptions:

Raises:

  • HTTPException โ€“ Removing the reaction failed.
  • Forbidden โ€“ You do not have the proper permissions to remove the reaction.
  • NotFound โ€“ The user you specified, or the reactionโ€™s message was not found.
    You can read more about it here - discord.Reaction.remove

While this can be rare, if this happens just once the entire loop will end, leaving all reactions on the messa...

ebon magnetBOT
#

Build 20200227.6 succeeded

Requested by

GitHub

Duration

00:00:43

Build pipeline

Seasonal Bot

#

Build 20200227.7 succeeded

Requested by

GitHub

Duration

00:00:46

Build pipeline

Seasonal Bot

#

Build 20200227.8 succeeded

Requested by

GitHub

Duration

00:00:46

Build pipeline

Seasonal Bot

regal archBOT
#

In the pull request template, we have asked you whether you have remembered to:

  • If dependencies have been added or updated, run pipenv lock?
  • Lint your code (pipenv run lint)?

You said yes to both of these, in spite of the fact that you obviously did not do either of them.

You have also added a dependency, requests, which has no place in an asyncronous bot. The most astounding thing is that you are using it alongside aiohttp in this pull request, which you're using to create a ...

ebon magnetBOT
#

Build 20200227.9 succeeded

Requested by

GitHub

Duration

00:00:48

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200227.1 succeeded

Requested by

GitHub

Duration

00:02:00

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200227.2 succeeded

Requested by

GitHub

Duration

00:01:33

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20200227.3 succeeded

Requested by

GitHub

Duration

00:03:12

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#
[python-discord/bot] New branch created: bug/mod/bot\-1v/infr\-edit\-task\-cancel
ebon magnetBOT
#

Build 20200227.4 succeeded

Requested by

GitHub

Duration

00:01:38

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20200227.5 succeeded

Requested by

GitHub

Duration

00:03:19

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200227.6 succeeded

Requested by

GitHub

Duration

00:01:40

Build pipeline

Bot

regal archBOT
#

Tested it and here is what the exception looks like when raised:

2020-02-27 10:09:00,551 | asyncio | ERROR | Exception in callback Scheduler._task_done_callback(34)(<Task finishe...Error('aaah')>)
handle: <Handle Scheduler._task_done_callback(34)(<Task finishe...Error('aaah')>)>
Traceback (most recent call last):
  File "/opt/pyenv/versions/3.7.5/lib/python3.7/asyncio/events.py", line 88, in _run
    self._context.run(self._callback, *self._args)
  File "/home/mark/repos/python/b...
regal archBOT
#

I think that user-specific feedback would be rather difficult to accomplish, since there could be a long time between the user action and the failing of scheduled task. It also creates the issue of logistics: How are we going to know what to do from within the generic "done callback"?

Another option would be that, for more critical schedulers, we add an additional, scheduler-specific callback that handles it in some way. For the moderation scheduler, this could be a callback that has the M...

ebon magnetBOT
#

Build 20200227.7 succeeded

Requested by

GitHub

Duration

00:01:26

Build pipeline

Bot

regal archBOT
#

Looking over this is very confusing. Correct me if I'm wrong, but you're creating aliases for long genre names.

It would be a lot more maintainable to handle the aliasing logic in a generic loop, test it to make sure it works properly, and then simply define the aliases on the side.

aliases = {
    "Role-playing (rpg)": ["Role-playing", "Rpg"],
}

for original, aliases in aliases.items():
    for alias in aliases:
        genres[alias] = original[original]

In this p...

regal archBOT
ebon magnetBOT
#

Build 20200227.8 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
#

Okay I think I'm going to log it for now because that's that looks better.
This change feels out of the scope for this pull request because it may
require a relatively significant redesign. As we said we can redesign it so
it's not inherited but composition instead and maybe that pull request can
also include your idea.

Den tors 27 feb. 2020 12:25Sebastiaan Zeeff notifications@github.com
skrev:

@SebastiaanZ commented on this pull request.

In bot/ut...

native joltBOT
ebon magnetBOT
#

Build 20200228.1 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200228.1 succeeded

Requested by

GitHub

Duration

00:02:07

Build pipeline

Site

regal archBOT
#
[python-discord/site] branch deleted: bug/backend/s329/docker\-compose\-tty
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200228.2 succeeded

Requested by

GitHub

Duration

00:03:50

Build pipeline

Site

regal archBOT
#
[python-discord/snekbox] branch deleted: ci\-improvements
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200228.1 succeeded

Requested by

GitHub

Duration

00:01:24

Build pipeline

Snekbox

north knotBOT
#

Postgres backup completed!

regal archBOT
#

The issue seems that the typing error is caused by the fact that the eval timed out, because using a 3 seconds sleep doesn't cause the bug, but using asyncio also cause the bug to appear. Also, this seems like an heisenbug since this bug seems to randomly appear. This behavior is even more peculiar knowing that the typing functionality is triggered by a context manager.

https://github.com/python-discord/bot/blob/aa5c905d5dc368e4132c37656be504548578aac4/bot/cogs/snekbox.py#L206-L225

ebon magnetBOT
#

Build 20200228.2 succeeded

Requested by

GitHub

Duration

00:01:53

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200228.3 succeeded

Requested by

GitHub

Duration

00:01:43

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: feat/backend/b496/rename\-constants
north knotBOT
ebon magnetBOT
#

Build 20200228.4 succeeded

Requested by

Leon Sandรธy

Duration

00:03:14

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200228.5 succeeded

Requested by

GitHub

Duration

00:02:02

Build pipeline

Bot

regal archBOT
#

6f25814 Moderation: fix member not found error not bein... - MarkKoz
a83d268 Error handler: create separate function to hand... - MarkKoz
eab4b16 Error handler: create separate function to hand... - MarkKoz
29e3c3e Error handler: log unhandled exceptions instead... - MarkKoz
806c69f Error handler: move tag retrieval to a separate... - MarkKoz

#
[python-discord/bot] branch deleted: feat/backend/b131/error\-handling
north knotBOT
oak estuaryBOT
ebon magnetBOT
#

Build 20200228.6 succeeded

Requested by

Leon Sandรธy

Duration

00:03:23

Build pipeline

Bot

ebon magnetBOT
#

Build 20200228.1 succeeded

Requested by

GitHub

Duration

00:00:46

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20200228.7 succeeded

Requested by

GitHub

Duration

00:01:28

Build pipeline

Bot

regal archBOT
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200228.2 succeeded

Requested by

GitHub

Duration

00:01:24

Build pipeline

Snekbox

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20200228.3 succeeded

Requested by

GitHub

Duration

00:01:09

Build pipeline

Snekbox

regal archBOT
#
[python-discord/snekbox] branch deleted: compose
north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20200228.4 succeeded

Requested by

GitHub

Duration

00:01:17

Build pipeline

Snekbox

regal archBOT
#

Note: this is written as if #755 has already been merged.

Current Problems

  1. Scheduling different coroutines cannot be done easily
  2. With the inheritance design, classes can't really share a scheduler
  3. There's no way for end users to see errors which occur within tasks

Description

The scheduler currently designed with inheritance. The task scheduled is an abstract method which subclasses have to implemented. This design is restrictive because it only supports that one ...

regal archBOT
#

This is great work. Thanks for taking the initiative to fix those bugs and, of course, add the very useful re-evaluation feature. It's a simple and intuitive design. I believe it will be much appreciate by the users (I made a change to hopefully help them know about it). 100% coverage on the test suite is impressive - I know how tedious achieving that can be, especially for larger features such as snekbox.

ebon magnetBOT
#

Build 20200228.8 succeeded

Requested by

GitHub

Duration

00:01:39

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20200228.9 succeeded

Requested by

GitHub

Duration

00:03:11

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20200228.10 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200228.11 succeeded

Requested by

GitHub

Duration

00:01:32

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200228.12 succeeded

Requested by

GitHub

Duration

00:01:27

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200228.13 succeeded

Requested by

GitHub

Duration

00:01:35

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200228.14 succeeded

Requested by

GitHub

Duration

00:01:25

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: bug/info/fuzzy\_search/wrong\_annotation
#
[python-discord/bot] branch deleted: bug/info/fuzzy\_search/wrong\_annotation
native joltBOT
#

Changelog

[v2.0.1]

Added

  • #71 Add pep8-naming to linting toolchain
  • Expand pre-commit hooks
    • Add black
    • Add check-merge-conflict
    • Add check-toml
    • Add check-yaml
    • Add end-of-file-fixer
    • Add mixed-line-ending
    • Add python-check-blanket-noqa

Changed

  • Add argument names to Argument and Function __repr__ methods to make the string more helpful to read

Fixed

  • #70 Fix incorrect column index for missing return annotatio...
native joltBOT
native joltBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20200229.1 succeeded

Requested by

GitHub

Duration

00:01:54

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] New branch created: bug/info/\_fuzzy\_search/wrong\_annotation
ebon magnetBOT
#

Build 20200229.2 succeeded

Requested by

GitHub

Duration

00:01:49

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20200229.3 succeeded

Requested by

GitHub

Duration

00:02:01

Build pipeline

Bot

regal archBOT
#

Okay, I got two issues with this:

  1. It's a bit strict. For example, if there are only pipes before but not after the word, this will break. If the words are wrapped in single pipes instead of doubles, this will break. Perhaps it would be better to get rid of an arbitrary amount of pipes, or to just get rid of all the pipes in the entire word before filtering.

  2. Do we really need regex for just getting rid of pipes? maybe we should solve this with just content.replace or something.

north knotBOT
ebon magnetBOT
#

Build 20200229.4 succeeded

Requested by

GitHub

Duration

00:03:24

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20200229.5 succeeded

Requested by

GitHub

Duration

00:01:41

Build pipeline

Bot

regal archBOT
#

A few observations here:

  • I don't think this is necessary today, because we've implemented a design where these features just raise exceptions and then we handle the error embed sending inside the bots error handler.
  • There are many unrelated style changes in this PR, which makes the PR a bit hard to read. Did you run it through black or something?
  • It fails lint.
  • It's been stale for like 4 months.
  • There's a lot of changes and only 1 commit.

All of this taken into account, I ...

regal archBOT
#

closes #777

This PR is to remove API reliability for the Tags and use static files instead, so adding, editing or deleting of a tag will happen only through a PR and not from a discord bot command.

  • Added all the static tag files in the resources folder.
  • Added white spaces on the lines before the bullet points for proper GitHub rendering of .md files.
  • Modified cogs/tags.py to use the static files rather than using the API. Removed all methods which call the API for adding, edit...
regal archBOT