#dev-log

1 messages ยท Page 55 of 1

regal archBOT
ebon magnetBOT
#

Build 20201006.1 succeeded

Requested by

GitHub

Duration

00:02:49

Build pipeline

Bot

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: mbaruh\-star\-patch
ebon magnetBOT
#

Build 20201006.2 succeeded

Requested by

GitHub

Duration

00:03:41

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: mbaruh\-star\-patch
north knotBOT
ebon magnetBOT
#

Build 20201006.3 succeeded

Requested by

GitHub

Duration

00:05:33

Build pipeline

Bot

oak estuaryBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201006.2 succeeded

Requested by

GitHub

Duration

00:01:06

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
#
jb3
[python-discord/forms-frontend] New branch created: discord/add\-oauth2\-authorize
#
jb3

This PR adds a browser OAuth2 flow which opens the authorize window in a new tab and then closes it once the authorization has completed.

It will fetch the correct redirect URI based on the page the user is currently looking at.

Once the authorization has completed the pop-out tab will post a message back to the opener with the OAuth2 code which will in future be forwarded onto the backend for authorization.

#
jb3
[python-discord/forms-frontend] branch deleted: discord/add\-oauth2\-authorize
#

Description

Discord does not allow requests made with body greater than 2040 in length. When .hacktoberissues comes across an issue with long enough description, the command does not respond and fails with the traceback shown in "Actual Behaviour section"

Steps to Reproduce

Repetitively using .hacktoberissues command until it comes across an issue with long enough description.

Expected Behaviour

The bot could either paginate the description or put a limit on how muc...

regal archBOT
#

Hey, thanks for your work so far, although the rules for the hactoberfest changed again.

Now, any PR on a repository with the hacktoberfest label OR a PR with the label hacktoberfest-approved will count, we need to update the code accordingly.

What you should do is revert your new query parameter (sorry), and use a loop to filter out any PR that doesnโ€™t match the requirements.

regal archBOT
ebon magnetBOT
#

Build 20201006.3 failed

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201006.6 succeeded

Requested by

GitHub

Duration

00:01:02

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201006.9 succeeded

Requested by

GitHub

Duration

00:00:53

Build pipeline

Seasonal Bot

regal archBOT
#

Relevant Issues

Closes #486

Description

This PR puts a limit on how long the response sent by the .hacktoberissues is going to be by limiting the issue body up to it's first 500 characters. This avoids http 400 errors (see #486 ) when dealing with issues with very long body.

Did you:

  • [x] Join the Python Discord Community?
  • [x] If dependencies have been added or updated, run pipenv lock?
  • [x] Lint your code (pipenv run lint)?
    ...
ebon magnetBOT
#

Build 20201006.10 succeeded

Requested by

GitHub

Duration

00:01:02

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201006.11 succeeded

Requested by

GitHub

Duration

00:00:57

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201006.1 succeeded

Requested by

GitHub

Duration

00:02:13

Build pipeline

Site

ebon magnetBOT
#

Build 20201006.12 failed

Requested by

GitHub

Duration

00:01:15

Build pipeline

Seasonal Bot

#

Build 20201006.13 succeeded

Requested by

GitHub

Duration

00:00:48

Build pipeline

Seasonal Bot

regal archBOT
#

Common problem is people leaving their voice on while having background discussions or not realizing their VOX activation level is too low so their mic is picking up every mouth noise they make.

Specifications:
It would work similar to voiceban or tempmute where role could be temporarily placed.
This command should not work on a staff member, or on a member that does not have the speaking role.
This feature should have unit tests.

Dependences
The speaking permission role mus...

regal archBOT
regal archBOT
#
jb3
[python-discord/forms-frontend] New branch created: discord/improve\-oauth2\-flow
#
jb3

Once a user starts the authorization flow the OAuth2 button disables, if the code is received the button comes back however if the user manually closes the auth window then the button will stay disabled. This PR fixes that by checking every 500ms (JavaScript does not provide an event listener for this it seems due to cross origin security) whether the child window has been closed. In future these two flows will become a bit different, one will pop a notification up saying auth was cancelled a...

#
jb3
[python-discord/forms-frontend] branch deleted: discord/improve\-oauth2\-flow
regal archBOT
#
jb3
[python-discord/forms-frontend] New branch created: sentry/add\-sentry
#

Have you considered using just a single cache?

Since we're already serializing the perms as JSON, it could be something like:

{
  permissions: { ... },
  timestamp: 123
}

For the sake of "safety" I'd probably feel tempted to write a class Silence, instances of which can serialize themselves into such a JSON, and can be created from one. That would create more of a "protocol" for what is allowed to exist in the cache, but I realize that I'm basically reinventing a table her...

#

My comment here is mainly motivated by the fact that one param restricts the valid values of the other, i.e.:

if None is passed persistent should be True to not log None

I generally try to avoid that and see if I can find a way to represent the information using a single value that cannot exist in an invalid state. Here I think the solution is fairly easy, unless I'm missing something.

#

@quanta-kt Thanks for the examples, I agree that 500 is a more sane value, especially since you can just click the link to read more.


@Den4200 @Akarys42 Are you sure that textwrap.shorten is the better choice here? The problem with it is that it removes newlines. Consider this issue, which gets formatted like so:

![image](https://user-images.githubusercontent.com/44734341/95248481-a3c81180-0817-11eb-93af-db65a0e07172....

#

Ahh right, I forgot that textwrap.shorten removes newlines. Good catch,
sorry @quanta-kt.

On Tue, Oct 6, 2020 at 3:08 PM kwzrd notifications@github.com wrote:

@quanta-kt https://github.com/quanta-kt Thanks for the examples, I
agree that 500 is a more sane value, especially since you can just click
the link to read more.

@Den4200 https://github.com/Den4200 @Akarys42
https://github.com/Akarys42 Are you sure that textwrap.shorten is the
...

regal archBOT
ebon magnetBOT
#

Build 20201006.4 failed

Requested by

GitHub

Duration

00:01:49

Build pipeline

Bot

#

Build 20201006.2 failed

Requested by

GitHub

Duration

00:44:59

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201006.4 failed

Requested by

GitHub

Duration

00:01:29

Build pipeline

Site

regal archBOT
#

Had to change the logic a bit, so that it would actually take the code block when there is only one code block, but there is another one inline before it:

@staticmethod
def prepare_input(code: str) -> str:
    """Extract code from the Markdown, format it, and insert it into the code template."""
    if match := list(FORMATTED_CODE_REGEX.finditer(code)):
        blocks = [block for block in match if block.group("block")]

        if len(blocks) > 1:
            code = '\n'.joi...
ebon magnetBOT
#

Build 20201006.5 has been canceled

Requested by

GitHub

Duration

00:00:00

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201006.6 failed

Requested by

GitHub

Duration

00:01:30

Build pipeline

Site

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: bug/ci/cache\-continue\-on\-error
ebon magnetBOT
#

Build 20201006.7 failed

Requested by

GitHub

Duration

00:01:56

Build pipeline

Site

ebon magnetBOT
#

Build 20201006.7 has been canceled

Requested by

GitHub

Duration

00:00:00

Build pipeline

Site

regal archBOT
#

Restoring from cache is non-critical. The CI can recover if cache tasks fail.

I'm not sure if we can rely on cacheHitVar remaining unset when a cache task fails. This variable is used in the condition of pipenv steps:

condition: and(succeeded(), ne(variables.PY_ENV_RESTORED, 'true'))

If it's not true, then pipenv won't be installed along with dependencies. If the cache task sets the variable before trying to restore (and failing), then this will make the job fail anyw...

ebon magnetBOT
#

Build 20201006.5 succeeded

Requested by

GitHub

Duration

00:02:26

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201006.8 failed

Requested by

GitHub

Duration

00:02:09

Build pipeline

Site

ebon magnetBOT
#

Build 20201006.6 succeeded

Requested by

GitHub

Duration

00:02:52

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20201006.7 succeeded

Requested by

GitHub

Duration

00:04:19

Build pipeline

Bot

oak estuaryBOT
regal archBOT
ebon magnetBOT
#

Build 20201006.8 failed

Requested by

GitHub

Duration

00:02:16

Build pipeline

Site

ebon magnetBOT
#

Build 20201006.8 succeeded

Requested by

GitHub

Duration

00:02:41

Build pipeline

Bot

regal archBOT
regal archBOT
#

@Akarys42 the current logic will still apply for PRs before october 3, then (probably in a separate function?) find PRs after october 3 that doesn't have invalid label or spam, AND in in a repo that has a hacktoberfest topic in it (unless the PR is labeled hacktoberfest-accepted)

I should probably also implement the "pending", "mature period", etc labels, and the 14d timer (which could probably be done later).

regal archBOT
#

Description

hacktoberissues command returns issues, but the repo should also have "hacktoberfest" topic for it to count (and i don't really think a hacktoberfest label is needed but i may be wrong, please let me know)

with current logic, it finds issues with hacktoberfest label, without checking if the repo is even eligible

Possible Solutions

loop through results, only include those that has hacktoberfest label

Would you like to implement a fix?

***Note: For high...

regal archBOT
ebon magnetBOT
#

Build 20201007.1 succeeded

Requested by

GitHub

Duration

00:02:14

Build pipeline

Site

north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20201007.2 succeeded

Requested by

GitHub

Duration

00:04:28

Build pipeline

Site

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201007.3 succeeded

Requested by

GitHub

Duration

00:02:05

Build pipeline

Site

regal archBOT
regal archBOT
#

It depends on the kind of accuracy the mod team wants, but yes, I tend to agree that it isn't worth using. Anyway, you still need to fix the sub_clyde issue. Now that I think about it, it'd be more convenient to do it within send_attachments i.e.

    webhook_send_kwargs = {
        'username': message.author.display_name,
        'avatar_url': message.author.avatar_url,
    }
    webhook_send_kwargs.update(kwargs)
    webhook_send_kwargs['username'] = sub_clyde(webhook_send_...
ebon magnetBOT
#

Build 20201007.1 succeeded

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201007.4 succeeded

Requested by

GitHub

Duration

00:02:29

Build pipeline

Site

north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: purgeban
#
            dice = " ".join(self._get_random_die() for _ in range(num_rolls))

It's fine that _get_random_die is a @staticmethod, but we should still call it with self. Using the class name here violates the locality ideal, and also has a few other problems to consider:

  • What happens if we rename this cog? Well, the method would break.
  • What happens if you try to inherit from this cog, and then implement your own _get_random_die method? Then this would create s...
ebon magnetBOT
#

Build 20201007.1 succeeded

Requested by

GitHub

Duration

00:03:07

Build pipeline

Bot

regal archBOT
#

I'm not a fan of this way of unpacking the data. data["verified_at"], is a very surprising way to do this, in my opinion. My gut instinct was that it had to be a typo, until I realized that fetchone() probably returns two things instead of just one, in spite of its crystal clear method name.

An immediate fix for this would just be to do [0] instead of the weird comma, but that's also kind of ugly. Maybe there's a beautiful way to do this?

ebon magnetBOT
#

Build 20201007.2 failed

Requested by

GitHub

Duration

00:01:05

Build pipeline

Seasonal Bot

regal archBOT
#

The first line in a commit should be limited to 50 characters, in order to prevent this:

Will do! I did set up precommit after the fact, but I'm not sure it would've caught the thing I fixed. Anyway, I'll try to look future PRs over an extra time before I push them.

Lastly, it looks like our builds are failing because the coverage was reduced on the user endpoint - can you write a unit test for the new endpoint?

I'm already on that as I discussed with Joe last night, I just had t...

regal archBOT
#

Thanks for the contribution, it works great!

Before we merge this, we would be interested in cleaning up the history because there are 5 commits for a 1-line change. In practice, what we would want to do is only keep the first 2 commits, and drop the last 3. This is not your fault, as we told you to make a change and then asked you to revert it.

Are you familiar with git rebase and would you feel confident trying to do this? If not, that's ok, a core dev can help you or do it for you.

ebon magnetBOT
#

Build 20201007.3 failed

Requested by

GitHub

Duration

00:00:57

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
#

Yes I am familiar with rebasing but still a little hesitant to do it, can you check this dummy PR here and confirm if that's what I'm supposed to be doing?

Commands used-

git rebase -i issue-486~5 issue-486 # And picking only the first commit
git push origin +issue-486 # A forced push

Also, shouldn't it get squashed into a single commit automatically if one chooses to "Squash and merge" on GitHub?

ebon magnetBOT
#

Build 20201007.4 succeeded

Requested by

GitHub

Duration

00:00:53

Build pipeline

Seasonal Bot

#

Build 20201007.5 succeeded

Requested by

GitHub

Duration

00:01:00

Build pipeline

Seasonal Bot

#

Build 20201007.6 succeeded

Requested by

GitHub

Duration

00:00:58

Build pipeline

Seasonal Bot

#

Build 20201007.7 succeeded

Requested by

GitHub

Duration

00:01:00

Build pipeline

Seasonal Bot

regal archBOT
#

Your dummy PR looks good, but you would want to keep the 2nd commit as well (reducing the dots from 4 to 3).

I think there is an easier way, we actually don't need to rebase because we only need to drop the last 3 commits:

git reset --hard HEAD~3

You can use git log to verify that only commits 5f02c61 and 8645da6 remain. Then git status should say that your local branch is 3 commits behind the remote. Finally git push --force will remove the commits from the remote as we...

ebon magnetBOT
#

Build 20201007.8 succeeded

Requested by

GitHub

Duration

00:01:06

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201007.9 succeeded

Requested by

GitHub

Duration

00:03:09

Build pipeline

Seasonal Bot

north knotBOT
night lilyBOT
#
SeasonalBot

Connected!

ebon magnetBOT
#

Build 20201007.10 failed

Requested by

GitHub

Duration

00:00:58

Build pipeline

Seasonal Bot

#

Build 20201007.11 succeeded

Requested by

GitHub

Duration

00:00:57

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201007.12 succeeded

Requested by

GitHub

Duration

00:01:02

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201007.13 succeeded

Requested by

GitHub

Duration

00:01:14

Build pipeline

Seasonal Bot

regal archBOT
#

Relevant Issues

Closes #490
Closes #450

Description

After testing, I found that urllib.parse.quote is parsing spaces to %2520% that YouTube API don't support. Changing this to urllib.parse.quote_plus make this parsing spaces to + what YouTube API can read and then return again proper response with items key defined.

Did you:

ebon magnetBOT
#

Build 20201007.14 succeeded

Requested by

GitHub

Duration

00:01:05

Build pipeline

Seasonal Bot

#

Build 20201007.15 succeeded

Requested by

GitHub

Duration

00:00:58

Build pipeline

Seasonal Bot

#

Build 20201007.16 succeeded

Requested by

GitHub

Duration

00:01:02

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201007.17 succeeded

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
#

Is this warning like:

YouTube API error. Full response looks like {'kind': 'youtube#searchListResponse', 'etag': 'pG-yJlSqu9dpyZEZ1HjJUOB2Us8', 'regionCode': 'EE', 'pageInfo': {'totalResults': 0, 'resultsPerPage': 5}, 'items': []}

because when this looks similar to this, then problem is still it, as YouTube API respond such response when this can't find videos and reason why this can't find videos is that this can't parse %2520% to space.

ebon magnetBOT
#

Build 20201007.18 succeeded

Requested by

GitHub

Duration

00:00:53

Build pipeline

Seasonal Bot

regal archBOT
night lilyBOT
#
SeasonalBot

Connected!

regal archBOT
regal archBOT
#

Description

When running the seasonalbot, I occasionally get an error:

Ignoring exception in on_reaction_add
Traceback (most recent call last):
  File "~\.virtualenvs\seasonalbot-9qy_Ovb8\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "seasonalbot\bot\utils\decorators.py", line 79, in guarded_listener
    return await listener(*args, **kwargs)
  File "seasonalbot\bot\exts\halloween\candy_collection.py", line 76, in on_r...
ebon magnetBOT
#

Build 20201007.3 succeeded

Requested by

GitHub

Duration

00:02:26

Build pipeline

Bot

north knotBOT
ebon magnetBOT
#

Build 20201007.19 succeeded

Requested by

GitHub

Duration

00:03:01

Build pipeline

Seasonal Bot

night lilyBOT
#
SeasonalBot

Connected!

regal archBOT
#

Description

I was thinking of adding a .yoda command that transforms text into yoda-like speech.
Example:
.yoda You must have patience my young Padawan.
Returns:
Patience you must have my young Padawan. Hrmm

Reasoning

I recently saw the .snake snakify command, and thought it would be nice to implement a command that converts normal text to yoda-like text. It seems like a really fun implementation.

Proposed Implementation

Yoda's speech is always switched...

north knotBOT
#
Auto-deployed: metricity
north knotBOT
#
Auto-deployed: metricity
regal archBOT
north knotBOT
#
Auto-deployed: metricity
regal archBOT
ebon magnetBOT
#

Build 20201007.4 succeeded

Requested by

GitHub

Duration

00:02:45

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201007.5 succeeded

Requested by

GitHub

Duration

00:02:29

Build pipeline

Bot

regal archBOT
shrewd jacinth
#

wrong issue

ocean rock
#

lol

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201007.5 succeeded

Requested by

GitHub

Duration

00:02:08

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201008.2 succeeded

Requested by

GitHub

Duration

00:02:39

Build pipeline

Bot

#

Build 20201008.1 succeeded

Requested by

GitHub

Duration

00:02:48

Build pipeline

Bot

regal archBOT
regal archBOT
#

Apologies for so many incremental reviews. I've finally done a comprehensive review and test of the API. Along with my request changes, here are the issues I encountered:

  • Posting a single user (i.e. no bulk_create) that already exists results in a 500 response because of an IntegrityError. This should be re-raises as 400 error instead.
  • Posting multiple users which exist with bulk_create works but the response still includes objects for users which were duplicates. It's just a copy...
ebon magnetBOT
#

Build 20201008.1 succeeded

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201008.2 succeeded

Requested by

GitHub

Duration

00:01:22

Build pipeline

Seasonal Bot

#

Build 20201008.3 succeeded

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

#

Build 20201008.4 succeeded

Requested by

GitHub

Duration

00:00:53

Build pipeline

Seasonal Bot

#

Build 20201008.5 succeeded

Requested by

GitHub

Duration

00:01:01

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201008.3 succeeded

Requested by

GitHub

Duration

00:03:43

Build pipeline

Bot

regal archBOT
north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20201008.1 failed

Requested by

GitHub

Duration

00:02:22

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201008.4 succeeded

Requested by

GitHub

Duration

00:04:36

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20201008.2 succeeded

Requested by

GitHub

Duration

00:02:32

Build pipeline

Site

ebon magnetBOT
#

Build 20201008.6 succeeded

Requested by

GitHub

Duration

00:01:23

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201008.7 succeeded

Requested by

GitHub

Duration

00:01:00

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201008.3 succeeded

Requested by

GitHub

Duration

00:02:41

Build pipeline

Site

ebon magnetBOT
#

Build 20201008.8 succeeded

Requested by

GitHub

Duration

00:01:03

Build pipeline

Seasonal Bot

regal archBOT
#

I have tested it locally and so far it works fine for me.

The code loops through the PRs and first checks whether the PR is made before October 3rd, and immediately continues to next iteration if so. Then it checks whether 'hacktoberfest-accepted' is one of its labels (if any), and if still doesn't apply, it proceeds to query GitHub's topic API and checks if it has the hacktoberfest topic. I have also updated the docstrings for the new rules accordingly, and the logic would obviously need...

ebon magnetBOT
#

Build 20201008.4 succeeded

Requested by

GitHub

Duration

00:03:22

Build pipeline

Site

ebon magnetBOT
#

Build 20201008.5 succeeded

Requested by

GitHub

Duration

00:03:09

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201008.6 succeeded

Requested by

GitHub

Duration

00:02:25

Build pipeline

Site

ebon magnetBOT
#

Build 20201008.5 succeeded

Requested by

GitHub

Duration

00:04:04

Build pipeline

Bot

regal archBOT
regal archBOT
regal archBOT
regal archBOT
regal archBOT
regal archBOT
#

Previously the max page was hard-coded, so I figured I'd just go that route for now, and improve it if it's deemed necessary. There are 16 pages in the search results for "snake". In the future, as more movies are added to TMDB, there will eventually be more pages, but that won't break anything here, and I do not expect there will ever be fewer pages than the amount there are now.

This could be fixed by setting the upper range of the random number generation to the total_pages field retu...

#

Would you then put that on a timer, so it triggers every hour say?

In about how much much time should the event trigger? Every day? Twice every day? Every two hours?

just wondering if we could make this like a global event rather than channel wise.
The bot sends the name in the off topic and event channels at once and people can come up with a halloweenified version of it.

I was thinking it could be a thing only for the #seasonalbot-commands channel?

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201008.7 succeeded

Requested by

GitHub

Duration

00:02:20

Build pipeline

Site

oak estuaryBOT
ebon magnetBOT
#

Build 20201008.8 succeeded

Requested by

GitHub

Duration

00:02:16

Build pipeline

Site

regal archBOT
#
[python-discord/bot] New branch created: fix\-ping\-processing\-time
ebon magnetBOT
#

Build 20201008.6 succeeded

Requested by

GitHub

Duration

00:03:40

Build pipeline

Bot

regal archBOT
#

c035a75 Changed send_attachments so kwargs could be giv... - wookie184
f701523 Add use_cached argument to send_attachments, a... - wookie184
1481d8f Changed dm_relay to include user id in webhook ... - wookie184
64b7016 made sure to use sub_clyde on username passed t... - wookie184
af9ab45 PR #1209: Improve 'send_attachments' - kwzrd

#
[python-discord/bot] branch deleted: fix\-ping\-processing\-time
north knotBOT
ebon magnetBOT
#

Build 20201008.7 succeeded

Requested by

GitHub

Duration

00:05:49

Build pipeline

Bot

oak estuaryBOT
regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20201008.8 succeeded

Requested by

GitHub

Duration

00:04:24

Build pipeline

Bot

oak estuaryBOT
ebon magnetBOT
#

Build 20201008.9 succeeded

Requested by

GitHub

Duration

00:02:12

Build pipeline

Site

regal archBOT
#

c035a75 Changed send_attachments so kwargs could be giv... - wookie184
f701523 Add use_cached argument to send_attachments, a... - wookie184
1481d8f Changed dm_relay to include user id in webhook ... - wookie184
64b7016 made sure to use sub_clyde on username passed t... - wookie184
888c427 Fix millisecond time for command processing time - gustavwilliam

ebon magnetBOT
#

Build 20201008.9 succeeded

Requested by

GitHub

Duration

00:02:36

Build pipeline

Bot

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

Build 20201008.10 succeeded

Requested by

GitHub

Duration

00:04:21

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

4644084 add pagination for GET request on /bot/users en... - RohanJnr
8e636a5 add support for bulk updates on user model - RohanJnr
792af71 Add reference links in UserListSerializer methods - RohanJnr
303cb19 Except AttributeError when self.instance is Non... - RohanJnr
567f7f0 Add code to replace restframework_bulk package ... - RohanJnr

#

Relevant Issues

Closes #495

Description

The older code was storing candy spawn information in the json, which I think is unnecessary. I have replaced it all with two sets- candy_messages and skull_messages which contain the message ids of the messages where the spawns were made and pop them out when someone reacts to it.
The old schema looked like-

{
   "msg_reacted": [
      {
         "reaction":" \ud83c\udf6c",
         "msg_id": 514442502460276740,
...
ebon magnetBOT
#

Build 20201008.9 failed

Requested by

GitHub

Duration

00:00:57

Build pipeline

Seasonal Bot

north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20201008.10 succeeded

Requested by

GitHub

Duration

00:04:23

Build pipeline

Site

#

Build 20201008.11 succeeded

Requested by

GitHub

Duration

00:02:49

Build pipeline

Bot

regal archBOT
#

681027b refactor code to GET users from site endpoint ... - RohanJnr [0436f69](https://github.com/python-discord/bot/commit/0436f69476243f7c3bf8e5c0520933e71d2f5fda) Merge remote-tracking branch 'upstream/master' ... - RohanJnr [ec0db2d](https://github.com/python-discord/bot/commit/ec0db2dd98e55f8bf5ba1c07375e196933129f99) Refactor code to make use of bulk create and up... - RohanJnr [eca87e3](https://github.com/python-discord/bot/commit/eca87e32948142863c562664bde262bf9054ca94) fix type and add variable type hinting - RohanJnr [3f87c52`](https://github.com/python-discord/bot/commit/3f87c52f484afc1316e87f67f4055d5d615b054a) Update users on bot start via HTTP PATCH method... - RohanJnr

ebon magnetBOT
#

Build 20201008.10 succeeded

Requested by

GitHub

Duration

00:01:15

Build pipeline

Seasonal Bot

#

Build 20201008.12 succeeded

Requested by

GitHub

Duration

00:04:29

Build pipeline

Bot

north knotBOT
oak estuaryBOT
regal archBOT
regal archBOT
regal archBOT
regal archBOT
#

So the current behavior of the help channel cooldown feels a bit off. As it's written right now, a user claims a channel and then receives the Help Cooldown role. After 15 minutes, whether or not their channel is still open, they can claim another channel. This means that every 15 minutes, someone can open a help channel and still keep the other ones open.

I propose that we either link the person with their channel and only start the 15 min cooldown after the channel has been closed, ...

#
jb3
[python-discord/forms-frontend] branch deleted: sentry/add\-sentry
regal archBOT
#
jb3
[python-discord/forms-frontend] New branch created: sentry/add\-sentry\-prefix
#
jb3
[python-discord/forms-frontend] branch deleted: sentry/add\-sentry\-prefix
regal archBOT
#

Out of the moderation tools we have available, the superstar command is the odd one out.

  • It doesn't ping the user being superstarred, instead posting a special embed (albeit a pretty funny one)
  • It doesn't send the reason in the DM.

That leads to some confusion for users on what happened and why it happened.
We don't have to remove the special embed, but:

  • It should still give a standard "applied superstar to " so that the user is pinged if it's applied in a public channel
  • The...
regal archBOT
regal archBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
regal archBOT
#

I agree with mbaruh that people may often want to follow up a question soon after closing a channel, so I don't think always having to wait 15 minutes after closing your channel is great.

I also don't really like the idea of automatically closing the first channel, I don't think people would expect this to happen and I reckon people would end up accidentally closing active channels and getting confused.

That said, I don't see a reason a user should need to have two channels open at once...

regal archBOT
#

Relevant Issues

closes #477

Description

this fixes candy_collection.py throwing
TypeError: 'HistoryIterator' object is not an iterator when
an arrow button is pressed after the .help command.

Reasoning

Before:

Traceback (most recent call last):
  File "/home/hedy/.local/share/virtualenvs/seasonalbot-S5lMGbTO/lib/python3.8/site-packages/discord/client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "/mnt/c/Users/hedyh/codeproj...
#

Thank you for contributing to Python Discord!

Please check out the following documents:

ebon magnetBOT
#

Build 20201009.1 failed

Requested by

GitHub

Duration

00:01:04

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201009.2 succeeded

Requested by

GitHub

Duration

00:01:21

Build pipeline

Seasonal Bot

#

Build 20201009.3 failed

Requested by

GitHub

Duration

00:01:02

Build pipeline

Seasonal Bot

#

Build 20201009.4 failed

Requested by

GitHub

Duration

00:01:28

Build pipeline

Seasonal Bot

#

Build 20201009.5 succeeded

Requested by

GitHub

Duration

00:01:01

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201009.6 succeeded

Requested by

GitHub

Duration

00:01:04

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201009.7 succeeded

Requested by

GitHub

Duration

00:01:24

Build pipeline

Seasonal Bot

#

Build 20201009.8 succeeded

Requested by

GitHub

Duration

00:01:17

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201009.2 succeeded

Requested by

GitHub

Duration

00:02:41

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20201009.9 succeeded

Requested by

GitHub

Duration

00:01:10

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201009.10 succeeded

Requested by

GitHub

Duration

00:01:05

Build pipeline

Seasonal Bot

regal archBOT
#

The spookyavatar/savatar command currently accepts an optional user input, but it doesn't actually seem to use that for the image, using the message author instead anyway, so this could also be fixed. Relevant line: https://github.com/python-discord/seasonalbot/blob/ba6536cf2011dc52d1e103407d75aa699975656b/bot/exts/halloween/spookyavatar.py#L39

I think you can count this as approved and start working on it if you want to.

regal archBOT
#

Looks good, works well. Again sorry for the time it took to get this reviewed. :disappointed:

I've done a code review and tested the cog, I did not spend too much time on the tests, hope that's ok. For the autospec, it's difficult for me to give a review there, but as far as I can tell the way we patch should be safe (i.e. it won't make a test that should fail pass instead). I agree that the new behaviour should be more convenient and have no issues with the monkeypatch as long as it do...

regal archBOT
#

81711d7 Created file for moderation utils tests + added... - ks129
1549690 (Moderation Utils Tests): Added imports, modifi... - ks129
fa6a0ae (Moderation Utils Tests): Created tests for ha... - ks129 [98f7a37](https://github.com/python-discord/bot/commit/98f7a3777152b32bfda24f9d5add938479827c85) (Moderation Utils Tests): Created tests for no... - ks129
4a746fc (Moderation Utils Tests): Created tests for `no... - ks129

ebon magnetBOT
#

Build 20201009.11 succeeded

Requested by

GitHub

Duration

00:01:16

Build pipeline

Seasonal Bot

#

Build 20201009.3 succeeded

Requested by

GitHub

Duration

00:02:48

Build pipeline

Bot

regal archBOT
#

If I understand correctly, the proposal is for unsilence to simply set the cached overwrites, or Nones on cache miss? I'm impartial, it makes sense to me to only allow unsilence to be used if the channel was silenced using the cog, on the other hand, maybe mods would find it convenient and it would probably simplify the code quite a bit, so why not. I'm not opposed to it, but I'll leave the decision to you.

regal archBOT
#

:wave: The logic here doesn't quite match how Hacktoberfest handles PRs -- it looks like spam/invalid labelled PRs are being completely excluded for example.

I created a (rather bad) flow chart which covers the basic state check/flow that PRs go through in Hacktoberfest:

image

You can also read through the raw logic in https://github.com/digitalocean/hacktoberfest/blob/master/app/...

regal archBOT
regal archBOT
#
[python-discord/bot] New branch created: kwzrd/unittest\-parallel
#

Hi @MattIPv4, thanks for the flowchart. The main problem is probably because the current and previous results doesn't show the difference between 'valid' and 'waiting', it also doesnt take care of the 'PR acceptance logic', all it does is exclude invalid/spam PRs, and (for after oct 3) the ones that aren't in a hacktoberfest repo (unless hacktobefest-accepted label). @gustavwilliam has said to update the rules ASAP and do the rest (pending, in review period) in a separate issue/pr later. So I...

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201010.1 succeeded

Requested by

GitHub

Duration

00:02:43

Build pipeline

Bot

ebon magnetBOT
#

Build 20201010.1 succeeded

Requested by

GitHub

Duration

00:00:56

Build pipeline

Seasonal Bot

north knotBOT
#

Postgres backup completed!

ebon magnetBOT
#

Build 20201010.2 succeeded

Requested by

GitHub

Duration

00:02:39

Build pipeline

Bot

regal archBOT
#

you can check if self.candy_records validates to True before sorting and getting the top_five.
This can be a separate function too.

    def generate_leaderboard(self):
        if not self.candy_records:
            return "No candies."
        top_sorted = sorted(
            ((user_id, score) for user_id, score in self.candy_records.items()),
            key=lambda x: x[1],
            reverse=True
        )
        top_five = top_sorted[:5]

        leaderboard = ...
ebon magnetBOT
#

Build 20201010.2 failed

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201010.3 succeeded

Requested by

GitHub

Duration

00:01:07

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201010.3 failed

Requested by

GitHub

Duration

00:00:58

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20201010.4 succeeded

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201010.5 succeeded

Requested by

GitHub

Duration

00:01:03

Build pipeline

Seasonal Bot

#

Build 20201010.6 succeeded

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201010.7 succeeded

Requested by

GitHub

Duration

00:01:12

Build pipeline

Seasonal Bot

regal archBOT
#
[python-discord/seasonalbot] branch deleted: space\-out\-dice
north knotBOT
ebon magnetBOT
#

Build 20201010.8 succeeded

Requested by

Leon Sandรธy

Duration

00:03:07

Build pipeline

Seasonal Bot

night lilyBOT
#
SeasonalBot

Connected!

regal archBOT
ebon magnetBOT
#

Build 20201010.9 succeeded

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201010.1 succeeded

Requested by

GitHub

Duration

00:02:37

Build pipeline

Site

regal archBOT
#

What would be the reasoning behind changing an event name?
If it's just a typo at the moment of creation, they can just delete and make a new one.
If it's a matter of changing the purpose of the event, I'm not sure we want to allow that. The purpose of having an events table is to allow users to subscribe to them. Users who subscribe to an event about Yu-Gi-Oh! won't want to suddenly find out they're subscribed to an event about the Spice Girls.

Also, even if you use the UID the event n...

regal archBOT
ebon magnetBOT
#

Build 20201010.2 failed

Requested by

GitHub

Duration

00:02:12

Build pipeline

Site

regal archBOT
#
jb3

c8c6cb8 Added metricity db connection and user bot API - Lucas Lindstrรถm
c3752e5 Merge branch 'master' into feat/397-398-metrici... - dementati
a188ab8 Fix minor style issue. - Lucas Lindstrรถm
85a0d57 Merge branch 'feat/397-398-metricity-db-and-api... - Lucas Lindstrรถm
15086b4 Added total message count to metricity data res... - Lucas Lindstrรถm

north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20201010.3 succeeded

Requested by

Joseph Banks

Duration

00:04:29

Build pipeline

Site

regal archBOT
#

Given that message links jump to deleted messages sometimes, it's hard to figure out who was the perputrator.

Within the incidents channel, it may be a good idea for the bot to provide a user ID for the message link owner so mods+ can look into their message history.

If the message link returns nothing, then maybe (if it's possible) the bot can send a message to redirect to a deleted message in the message-change-log channel.

#

Still, those kinds of situations sound pretty limited, and I still think the name should be unique. I wouldn't want two events with the same name.

Even if it's not the primary key, it seems that like how change of ownership should only be allowed by an admin, so does changing the name. It seems to me that more often than not a name change would mean that something is up with the event, and a name being changed can confuse the users, so the aim should be to do it as little as possible.

ebon magnetBOT
#

Build 20201010.4 failed

Requested by

GitHub

Duration

00:01:58

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201010.8 failed

Requested by

GitHub

Duration

00:01:55

Build pipeline

Site

regal archBOT
#
jb3

I've made a few fixes:

  • Fixed the CSS so it no longer overrides our own CSS
  • Removed the read more buttons, I think these events are summed up enough in a sentence or two.
  • Prettified the CSS and HTML so it is easier to work on
  • Enabled the JS since the load animations work on my MacBook, let me know if you experience otherwise (I don't think it won't work on phones, which is fine)

![image](https://user-images.githubusercontent.com/20439493/95655355-96a07080-0afe-11eb-82e3-29931b63...

#
jb3

The voice gate requirements we have decided on are:

  • The user must have verified over 3 days ago.
  • The user must have over 50 messages.

Both of these statistics are reported from the Metricity API located at api.pythondiscord.com/bot/users/{user_id}/metricity_data

A sample response looks like:

// GET https://api.pythondiscord.com/bot/users/165023948638126080/metricity_data
{
  "verified_at": "2020-10-06T00:04:37.096203",
  "total_messages": 13664
}
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201010.10 failed

Requested by

GitHub

Duration

00:01:37

Build pipeline

Site

regal archBOT
#
[python-discord/bot] New branch created: ducky\-rescue\-mission
ebon magnetBOT
#

Build 20201010.4 succeeded

Requested by

GitHub

Duration

00:02:44

Build pipeline

Bot

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201010.11 succeeded

Requested by

GitHub

Duration

00:02:04

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201010.15 succeeded

Requested by

GitHub

Duration

00:02:28

Build pipeline

Site

north knotBOT
regal archBOT
ebon magnetBOT
#

Build 20201010.16 succeeded

Requested by

Joseph Banks

Duration

00:04:16

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201010.10 succeeded

Requested by

GitHub

Duration

00:00:52

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201010.11 succeeded

Requested by

GitHub

Duration

00:00:42

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201010.12 succeeded

Requested by

GitHub

Duration

00:01:00

Build pipeline

Seasonal Bot

ebon magnetBOT
#

Build 20201010.13 succeeded

Requested by

GitHub

Duration

00:00:59

Build pipeline

Seasonal Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20201010.14 succeeded

Requested by

GitHub

Duration

00:02:39

Build pipeline

Seasonal Bot

night lilyBOT
#
SeasonalBot

Connected!

regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201011.1 succeeded

Requested by

GitHub

Duration

00:02:32

Build pipeline

Site

ebon magnetBOT
#

Build 20201011.1 succeeded

Requested by

GitHub

Duration

00:02:49

Build pipeline

Bot

ebon magnetBOT
#

Build 20201011.2 succeeded

Requested by

GitHub

Duration

00:02:34

Build pipeline

Bot

regal archBOT
north knotBOT
ebon magnetBOT
#

Build 20201011.3 succeeded

Requested by

GitHub

Duration

00:04:28

Build pipeline

Bot

oak estuaryBOT
north knotBOT
#

Postgres backup completed!

regal archBOT
#

plan.pdf
I made a diagram(view the pdf).
Here is what I am suggesting again:

  • Store the ID of the message which will be sent in the #user_events channel(this channel will list all events by listing their name, description, organizer and status).

  • Add reaction to that message to toggle subscription.

  • When the event starts, the bot sends an announcement in #user_events_announcements channel by sending the event name, de...

regal archBOT
ebon magnetBOT
#

Build 20201011.4 succeeded

Requested by

GitHub

Duration

00:02:42

Build pipeline

Bot

regal archBOT
#
[python-discord/bot] branch deleted: ducky\-rescue\-mission
north knotBOT
ebon magnetBOT
#

Build 20201011.5 succeeded

Requested by

Leon Sandรธy

Duration

00:04:40

Build pipeline

Bot

oak estuaryBOT
regal archBOT
#

I'd rather the ping wasn't automatic. There's no guarantee that the organizer is actually available at the assigned time, for whatever reason, in which case pinging everyone isn't ideal. So the ping option should be invoked manually imo.

I might be wrong, but looking at the plan it seems you want to use the description when pinging. My impression when you suggested it is that you want to use the description for the scheduling, which seems appropriate if that's where you add the subscriptio...

#
[python-discord/site] branch deleted: remove\_oauth
#

I think this tries to solve a problem we don't have. Is anyone really abusing this to create lots of channels? Does it matter if some members occasionally have two channels open?

Imagine a member who has received an answer in his first help channel and now needs help with a second, unrelated matter. He's not aware that there's a !close function because he's new to the community, and has observed that his previous help channel just closed automatically after a while, so he's decided to wa...

regal archBOT
#

I think having a one channel at a time system is most intuitive, and the cool down is mainly there to stop people spam opening and closing channels (maybe it could even be reduced with this proposal).

I agree that the problem it is solving is a fairly small one, but it does still happen. From what I've seen nearly all of the people who have two help channels open at once are asking the same question in both (granted that is purely anecdotal and someone asking the same question would likely b...

regal archBOT
#

This PR implements bot side of Voice Gate and Voice Ban (infraction).

Voice Gate

  • Added voiceverify command that checks does user pass Voice Gate. When user pass, give role but when not, send he don't pass.
  • Bot automatically clean up voice gate channel, only staff messages will be not deleted.
  • In this cog, InWhitelistCheckFailure exception will be suppressed.

Voice Ban

  • Added new infraction type Voice Ban.
  • This is available as 2 formats: permanent and temporary.
  • ...
ebon magnetBOT
#

Build 20201011.6 succeeded

Requested by

GitHub

Duration

00:02:41

Build pipeline

Bot

regal archBOT
ebon magnetBOT
#

Build 20201011.9 succeeded

Requested by

GitHub

Duration

00:00:55

Build pipeline

Seasonal Bot

#

Build 20201011.8 succeeded

Requested by

GitHub

Duration

00:00:57

Build pipeline

Seasonal Bot

#

Build 20201011.10 succeeded

Requested by

GitHub

Duration

00:00:58

Build pipeline

Seasonal Bot

#

Build 20201011.13 succeeded

Requested by

GitHub

Duration

00:01:01

Build pipeline

Seasonal Bot

regal archBOT
ebon magnetBOT
#

Build 20201011.14 succeeded

Requested by

GitHub

Duration

00:01:02

Build pipeline

Seasonal Bot

regal archBOT
regal archBOT
regal archBOT
ebon magnetBOT
#

Build 20201011.2 failed

Requested by

GitHub

Duration

00:01:31

Build pipeline

Site

regal archBOT
#
[python-discord/branding] New branch created: more\_wallpapers
ebon magnetBOT
#

Build 20201011.3 failed

Requested by

GitHub

Duration

00:02:03

Build pipeline

Site

regal archBOT
#
jb3

c8c6cb8 Added metricity db connection and user bot API - Lucas Lindstrรถm
c3752e5 Merge branch 'master' into feat/397-398-metrici... - dementati
a188ab8 Fix minor style issue. - Lucas Lindstrรถm
85a0d57 Merge branch 'feat/397-398-metricity-db-and-api... - Lucas Lindstrรถm
15086b4 Added total message count to metricity data res... - Lucas Lindstrรถm

ebon magnetBOT
#

Build 20201011.4 failed

Requested by

GitHub

Duration

00:02:11

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201011.5 failed

Requested by

GitHub

Duration

00:01:46

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201012.1 failed

Requested by

GitHub

Duration

00:01:40

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201012.2 failed

Requested by

GitHub

Duration

00:01:40

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201012.3 succeeded

Requested by

GitHub

Duration

00:02:32

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201012.4 failed

Requested by

GitHub

Duration

00:01:39

Build pipeline

Site

regal archBOT
ebon magnetBOT
#

Build 20201012.7 succeeded

Requested by

GitHub

Duration

00:02:14

Build pipeline

Site

regal archBOT
regal archBOT
#

Personally not a fan of this oneline. Much easier to read if you split it up into an if,else

if len(category_emojis) > 1:
    emoji_info = f"There are **{len(category_emojis)}** emojis in the **{category_name}** category"
else: # assuming there can't be 0 at this stage.
    emoji_info = "There is **1** emoji in the **{category_name}** category"

Don't commit the suggestion, definitely not indentation compatible.

regal archBOT
#

Could you elaborate on what you have in mind?

The current design is that this package provides convenient data types to work with, which are "incidentally" backed by redis for persistence. The types currently implemented and planned for the future are not meant as "thin" wrappers around the redis data types. For example, the RedisCache is not just a thin wrapper around a Redis hash data type (although it uses a Redis hash for its persistence).

The problem with exposing the underlying ...

north knotBOT
#

Postgres backup completed!

regal archBOT
ebon magnetBOT
#

Build 20201012.1 succeeded

Requested by

GitHub

Duration

00:01:20

Build pipeline

Seasonal Bot