#dev-contrib
1 messages Ā· Page 6 of 1
Sounds about right, yeah
Again, I just use pycharm ui to do the commands for me š¤·
It'll also error when checking out to a different branch if there's uncommited (and unstashed) changes iirc
yeah, just got this error ```
PS C:\Users\tenuk\sir-lancebot> git checkout main
error: Your local changes to the following files would be overwritten by checkout:
bot/exts/utilities/bookmark.py
Please commit your changes or stash them before you switch branches.
Aborting
Yeah
So the correct think to do here is I believe stash things
But I always commit and then rebase to drop the commit
Since I don't know how to stash š¬
doesn't git add do the commit changes?
so if I want to checkout to main and do git pull, do I do git commit in the branch i'm in?
(usually git commit -m "commit message")
Well I think you're supposed to stash, but unless @cold island can inform on that (idk how to stash) you can commit and then later rebase to remove the commit (which is the lazy but overcomplicated way that I do)
If you don't want to commit you can stash yeah. I'd avoid stashing before a merge because then unstashing might cause its own conflict and that's just a mess of its own
If you just want to change branches then yeah you can stash, and then unstash when you come back
Right, fair enough.
In which case you want to commit here @surreal veldt
So git add then git commit -m "Temporary Commit" or something
yeah I'd personally commit whatever you have and then amend that later
and unfortunately..i used the black formatter but flake8 doesn't complain much. is it okay?
It's fine for now
We can sort that out later
Or
Have you committed yet?
If not we can setup the pre-commit stuff
You can run flake8 and isort, since those are the ones used by CI checks. Or just do the poetry run lint.
flake8 won't complain about code formatted with black, but... did you format your changes specifically?
the whole file. On VSCODE, I had it enabled for using the black formatter on the current file when I save it
Then you'll have to do undo that 
That might be okay if it didn't change anything, but black could potentially do a lot of changes since it's more opinionated than flake8
Because that means that git diff/blame stuff is gonna be broke which we don't want
i'm waiting for a response on sir-lancebot#932 before doing the second commit. I made a PR already (or were you talking about the temporary commit?)
I'm talking about the temporary commit
If you have already done it no big deal
when I switched to main and did git pull, it looks like it copied the changes from the other branch i had
Do git log --oneline and see if "Temporary Commit" shows
no 6f860961 (HEAD -> main, origin/main, origin/HEAD) Fix lint issues b8badc81 Use buttons for allowing others to receive a bookmark b63cc91e Empty commit for CI a7624603 Add jokes command (#1081) c812b610 Fix incorrect type hints (#1073) 195a2438 Bump lxml from 4.7.1 to 4.9.1 (#1068) b55e6439 Bump pycares from 4.1.2 to 4.2.0 (#1067) 1cd363ee Update .uwu to work with replies (#1070) 26cfbe1e Merge pull request #1066 from python-discord/ichard26/remove-redundant-space-in-alias-help 53a5b323 Help: remove redundant space in subcommand aliases c245348a RealPython home page displayed on no user search. (#1063) ce55771d Merge pull request #1058 from PH-KDX/patch-1 db1e80d2 Merge branch 'main' into patch-1
Then it hasn't got the changes from your branches presumably
sec
The bookmark stuff is probably from the PR that was just merged
On your fork, are you developing on the main branch?
nope
when I did git pull on main, it just copied what I had from by bookmark branch to main
i don't see the updates from the bookmark.py PR that was just merged (https://github.com/python-discord/sir-lancebot/pull/1049/files)
What does this mean when running docker-compose up?
ERROR: Service "snekbox" was pulled in as a dependency of service "bot" but is not enabled by the active profiles. You may fix this by adding a common profile to "snekbox" and "bot".
yeah I'm struggling to understand how this happened. This should only happen if you did git merge <your branch name>
What do you get for git remote -v?
What if I try to get the updates from github itself. I made a clone of the folder so it's okay if code gets messed up
origin https://github.com/Diabolical5777/sir-lancebot.git (fetch)
origin https://github.com/Diabolical5777/sir-lancebot.git (push)```
Do you have the most recent docker compose changes from bot?
We changed it up recently, so that the 3.11-dev image is the default
If that works for you then go ahead, I'm really not sure what happened here
i need to press the sync fork button right?
Sounds right? I don't use the github UI for this š
Looks like it https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork
@fossil veldt merged š

and..after doing sync fork i did git pull and messed the file..yikes
I have some >>>>>>> 950a7fb290fe4e8acfab33847d3f2edaec421d93 lines scattered between lines
!mute @cold island 2h lets test the new feature!
:incoming_envelope: :ok_hand: applied mute to @cold island until <t:1660944260:f> (1 hour and 59 minutes).
Testing in prod smh
Eh
that is showing you all the merge conflicts
Oh is it not deployed yet
ah lol
This is likely because your local main has your changes
i'll just make a new repo so the changes are there
your repo isn't the issue
It... might be
but if i make a new one, the new code will be there
His local main has his changes from another branch
there are merge conflicts because the same file has bene changed, and git is asking you which change you want to keep
ah, fun
!help ban
!ban <user> [duration_or_expiry=None] [reason=None]
You cannot run this command.
*Permanently ban a user for the given reason and stop watching them with Big Brother.
If a duration is specified, it temporarily bans the user for the given duration. Alternatively, an ISO 8601 timestamp representing the expiry time can be provided for duration_or_expiry.*
Alright it's live now I guess
!mute @vocal wolf 4h thanks
:x: According to my records, this user already has a mute infraction. See infraction #68435.
Lol
thanks
!mute @timid sentinel 4h thanks
:incoming_envelope: :ok_hand: applied mute to @timid sentinel until <t:1660951622:f> (4 hours).
Nice
sorry but can I bump sir-lancebot#932 so that I can PR it?
it already seems approved?
oh
Ah, maybe I'd checked out an old branch or something
I thought I already said that sounded fine?
didn't realise you were waiting for it still
ah, so it's fine now?
Yeah
I was wondering why that issue wasn't auto closed since the PR was merged
Then followed the PR link into that š
how does the unbookmark command work? I invoke it in DM's replying to a bookmark embed sent by the bot?
Yeah
So...what's the point exactly of it?
To declutter the dms ig
Get rid of old bookmarks that you don't care about anymore
are PR's tested by a sir lancebot clone before being merged?
Pretty much yes
People clone your PR and then run it on their own bot (in a separate server)
Would anyone like to take over working on sir-lancebot#985 for me? I'm soon not gonna have a lot of time to work on it due to school starting soon for me so it would be nice if someone could take over for me. I have started working on it earlier so I recommend you continue working off of the code that I have written thus far -- you can view it here: https://github.com/DMFriends/sir-lancebot/tree/sudoku-take-3/bot/exts/fun/sudoku
Thanks!!
Also anyone know what's up with the current skipped test in bot?
Do we have a plan to make that work or remove it? 
Thought you should know about this unique specimen
I don't think it's supposed to send 4 messages
Reproducible in this channel too
ah
.close
lmao how does that occur
can't get it to happen in #sir-lancebot-playground
There's already an issue for that on gh :)
sir-lancebot#1090
The issue is that for invalid commands, it'll look for similar commands and then for each of the similar commands see if the user can run them before recommending.
However, there was a bug in the PR that added this which wasn't caught in that we forward any errors the command.can_check raises, but in reality we want to suppress any exceptions and move to the next command to see if that one can be run
Cc @fallen patrol if you're interested
(and that's why you couldn't get it replicated in #sir-lancebot-playground, since the error isn't raised)
ah is this only reproducible with a permission error?
It's any check failure
E.g. .ha causes it because it goes for the different hacktober commands, which can only be run Sep-Nov
.ha
oh wait what
I thought that only searches for commands
it attempts to run them as well?
(it doesn't try to run the command, it just runs the checks)
Yes
how is it sending a ctx message?
But the issue is that we then pass the catched error to on_command_error (which sends the ctx message)
Which we shouldn't
It's all better detailed in the issue
^
š¤·
does it do something we need?
Note that prior to #1064 we called on_command_error so removing the call may break other parts of the bot that call this function (would have to check to see what's best implementation wise).
From the issue
No clue if we care or not
(Also the isn't hasn't been approved yet, so you shouldn't be assigning yourself/anyone) @fossil veldt
I'll leave it there I guess
but I assume we want to fix it? Behavior clearly broken
Yeah, but there may be a different approach wanted etc.
well here's the diff for 1064
I guess... we used to call if not cmd.hidden?
is that maybe allowing some extra commands into the final stage
Nah I doubt it
hm..
!d discord.ext.commands.Command.hidden
If True, the default help command does not show this in the help output.
ah well
we used to return after the error
now we continue
I guess maybe it was broken before but just happened once only
so nobody noticed it
Yeah I guess
Or maybe it was wanted then but not anymore (seems unlikely though)
when lancebot unit tests š
This is the commit that originally added the behaviour https://github.com/python-discord/sir-lancebot/commit/f6215bb61fed2e1247237752414e38f539d54015
Though honestly should we add some tests for at least the core functions of lancebot?
I get the more external utils and fun cogs should have a low level of entry for contrib but as it grows issues like this will be harder to test and reviews is gonna take longer.
Weāve historically had a very bad time with tests for d.py bots, we donāt have a good strategy for them to keep them easy to understand for people who arenāt familiar with testing
99% of our test code is just mocking stuff because we canāt do network requests
I mean. Yeah that's fair I guess
I've updated my comment on the issue
@gritty wind if you're able to give it a check, can we get an approval on this?
Part of the issue process is discussing an approach if we think itās necessary
I donāt have a PC on hand, so I canāt look into the possible approaches
Right, fair enough
For reference, I'd say there's three approaches:
- leave as it is (which I don't think is the move given that 2 people have separately reported this behaviour as buggy)
returninstead of continue (go back to behaviour before #1064)- remove the call to
on_command_error, which imo is a bug and shouldn't be there
which IMO doesn't make sense
Hm?
I guess the original idea was to self-delete all errors to prevent clogging channels
I mean that's reasonable for not spamming a bunch of errors on missing commands
!e
code
!eval [python_version] <code, ...>
Can also use: e
*Run Python code and get the results.
This command supports multiple lines of code, including code wrapped inside a formatted code block. Code can be re-evaluated by editing the original message within 10 seconds and clicking the reaction that subsequently appears.
If multiple codeblocks are in a message, all of them will be joined and evaluated, ignoring the text outside of them.
By default your code is run on Python's 3.11 beta release, to assist with testing. If you run into issues related to this Python version, you can request the bot to use Python 3.10 by specifying the python_version arg and setting it to 3.10.
We've done our best to make this sandboxed, but do let us know if you manage to find an issue with it!*
i mean
I mean @stable mountain doesn't but š¤·
.uwu
Your input was invalid: Your message must have content or you must reply to a message.
Usage:```
.uwu [text]
it may be a good concept but the execution is confusing
.uwu
youw input was invawid: youw message must have content o-ow you m-must w-wepwy t-to a message.
usage:```
.uwu [text]
there's not much consistency between @dusky shore and @stable mountain or even within themselves (at least with this)
Well they pretty much weren't meant to share anything iirc
I don't know the history fully though
i feel like the help and errors should probably be somewhat consistent between the two but its not mine to call
In @dusky shore we only self-delete cooldown and check errors
just leads to a confusing user experience
And it's after 7.5 secs
Ah
meanwhile python deletes help, cooldown, check, invoking, and more messages etc
I honestly don't see a path where raising the error from the fuzzy check is useful in any way so far
sometimes the
deletes the invoking message, sometimes it doesn't
its just all very uneven
code
!eval [python_version] <code, ...>
Can also use: e
*Run Python code and get the results.
This command supports multiple lines of code, including code wrapped inside a formatted code block. Code can be re-evaluated by editing the original message within 10 seconds and clicking the reaction that subsequently appears.
If multiple codeblocks are in a message, all of them will be joined and evaluated, ignoring the text outside of them.
By default your code is run on Python's 3.11 beta release, to assist with testing. If you run into issues related to this Python version, you can request the bot to use Python 3.10 by specifying the python_version arg and setting it to 3.10.
We've done our best to make this sandboxed, but do let us know if you manage to find an issue with it!*
Or not
Any reaction based deletions use the wait_for_deletion util iirc
Which should check the reaction being added matches
why don't they use components š„²
Eh..
I wouldn't really do a delete component
That's a lot of vertical space on a lot of messages
I've also realised this issue & corresponding PR should probably be moved to bot-core, seeing as the util applies to both @stable mountain and @dusky shore
Weāve been struggling to move a lot of the shared cogs into bot-core for a while
We canāt agree on a way of sharing constants
There are portions that do, for instance the error message says go to x channel
Right
Thatās a part of the constants
But it also applies a lot more to some of the other dogs
that same argument could be used for embeds
Which check roles and whatever
I mean in this case it's actually just ctx.channel
bot/exts/backend/error_handler.py line 238
await ctx.send(embed=e, delete_after=10.0)```
š¤·
Iām referring to the rest of the error handler
Right, but can we not just extract this part?
I mean I can see that maybe we wouldn't want to have handling in different places
one of these is a lot easier to see and appears instantly
Yes we can, is it used in bot?
using buttons is about 1.25 seconds faster than using reactions for a paginator
This specific function is in bot and sir-lancebot, with a couple minor differences (a return vs continue upon a command not being runnable, lancebot not checking cmd.hidden, etc)
I donāt see the ease argument, but like you wonāt convince people their visual tastes are wrong
āOh I think this looks worseā
āNo, youāre wrongā
look at the timing tho :P
buttons: appear instantly
reactions: take at least 1.25 seconds to fully appear for a paginator
I think a 1.5 second improvement is not really noteworthy here
Itās nice if we can have it, but not if we sacrifice something else
we're not decided against buttons are we? i would welcome them on infraction search embeds
true, discord.py doesn't properly support the best way to implement that, anyways
No, Iāve argued in favor of them before, but weāre split on staff and the main thing it comes down to is looks
while their bigger size sucks, I'd prefer buttons as the bot's a bit limited with reactions disabled
I suppose you can't do one of those single user only messages from a normal text command?
Nope
Buttons allow ephemeral responses, show up immediately and don't use extra API requests unlike reactions
They can also be disabled
I think for the bookmark command, instead of saying "Bookmark", put the link to the original message and delete it from the bottom of the embed, like so:
What do y'all think?
it only says bookmark if there's no title provided though
if you provide a title it uses that
Am I right in thinking discord only resolves mentions that ping?
working on bot#1917 and wondering if it's possible to make the user mentions show properly without pinging the user
what do you mean resolves?
Like converts the ID to name?
yeah, so it doesn't look like most of these
hm..
A normal text message with allowed mentions set to not mention doesn't seem to work either
this works though?
I can ping someone outside of the channel at least on client
!raw 1010587895251337297
== Raw message ==
@brave ether
I donāt think thatās the case
I think itās just cache
Yeah, I guess if they aren't cached pinging the users makes discord get them then? Otherwise it doesn't try
Maybe if there's another way of making them cached, I guess if the roles were shown in the member list there's a higher chance?
Itās your cache, not boy cache
yeah
actually can you do a !raw on that here?
I wonder if it's because of the deprecated exclamation point mention flag
Weāve had it for a long time in mod commands, thereās no good fix
However
Itās probably fine to just show the name here instead of a mention
Doesn't seem to be
color: 0x2a82bd
description: @hoary haven (minaāÆā©āÆ#0001)
@woven moss (lāĆ©clisse#7776)
@wispy goblet
(CK#2121)
@tranquil topaz (eivl#1134)
title: Patreon III
type: rich
hm...
yeah, I think i'll probably have to
oh wait
is that in this server?
or in the test one
in this one
huh
is it only people not in the channel who are IDs?
if it's caching issues it should at least fix itself pretty quickly
I'll send it here, one sec
looks like this case it's broken continuously
!int e
import discord
from bot import constants
PATREON_TIERS: list[tuple[int, int]] = [
(3, 743400204367036520),
(2, 743399725914390631),
(1, 505040943800516611),
]
def get_patreon_tier(member: discord.Member) -> int:
for tier, role_id in PATREON_TIERS:
if any(role_id == role.id for role in member.roles):
return tier
return 0
guild = self.bot.get_guild(constants.Guild.id)
embed_list = []
for tier, role_id in PATREON_TIERS:
role = guild.get_role(role_id)
# Filter out any members where this is not their highest tier.
patrons = [member for member in role.members if get_patreon_tier(member) == tier]
patron_names = [f"{patron.mention} ({patron.name}#{patron.discriminator})" for patron in patrons]
embed = discord.Embed(
title=f"{role.name}",
description="\n".join(patron_names),
colour=role.colour
)
embed_list.append(embed)
main_embed = discord.Embed(
title="Patreon Supporters",
description=(
"Thank you to the users listed below who are already supporting us!"
),
)
await ctx.send(embeds=(main_embed, *embed_list))
Thank you to the users listed below who are already supporting us!
@hoary haven (minaāÆā©āÆ#0001)
@woven moss (lāĆ©clisse#7776)
@wispy goblet (CK#2121)
@tranquil topaz (eivl#1134)
@boreal arrow (UltimateChaos#8390)
@silent wing (Monterey#8302)
@rustic zephyr (Network2501#0932)
@bronze sand (doodspav#4727)
@strong knoll (Kanin#0001)
@plain portal (Moros#0741)
@kind compass (DraĆocht i mo chroĆ#3333)
@haughty citrus (Refisio#9732)
@fossil veldt (ionite#7700)
@blazing magnet (Fisher#0060)
@severe hearth (Achlys#0227)
@mellow trench (BrainDead#6105)
@paper robin (Deleted User bf9c8f73#3065)
@vocal wolf (Xithrius#1318)
@spice gorge (Pythonic#6090)
In [4]: import discord
...: from bot import constants
...: PATREON_TIERS: list[tuple[int, int]] = [
...: (3, 743400204367036520),
...: (2, 743399725914390631),
...: (1, 505040943800516611),
...: ]
...: def get_patreon_tier(member: discord.Member) -> int:
...: for tier, role_id in PATREON_TIERS:
...: if any(role_id == role.id for role in member.roles):
...: return tier
...: return 0
...: guild = self.bot.get_guild(constants.Guild.id)
...: embed_list = []
...: for tier, role_id in PATREON_TIERS:
```... response truncated; full contents at https://paste.pythondiscord.com/eyinixagis.py
hm..
are those people not in the server?
@strong knoll@kind compass
oops
sorry about that
:P
not quite, if they're in your cache you'll see them shown properly
so for example with the two you pinged they should now show in the embed
btw when I first typed this it showed up as @DeletedUser@DeletedUser
very strange
e
If a user isn't in your local cache their mention won't display properly
Once they're added it updates
Canary doesn't seem to be different
I think with normal messages when the cache resolves the name does as well
but with embeds apparently it stays forever?
Try refreshing?
Can we un-italicize the docstring in a !help <command>? I feel like it makes it harder to read for no reason.
Yeah I agree ^ although I wouldn't say it's harder to read personally, it just doesn't look good imo
!help eval
!eval [python_version] <code, ...>
Can also use: e
*Run Python code and get the results.
This command supports multiple lines of code, including code wrapped inside a formatted code block. Code can be re-evaluated by editing the original message within 10 seconds and clicking the reaction that subsequently appears.
If multiple codeblocks are in a message, all of them will be joined and evaluated, ignoring the text outside of them.
By default your code is run on Python's 3.11 beta release, to assist with testing. If you run into issues related to this Python version, you can request the bot to use Python 3.10 by specifying the python_version arg and setting it to 3.10.
We've done our best to make this sandboxed, but do let us know if you manage to find an issue with it!*
hm...
can I do this if this gets made into an issue?
Why are we getting lance spitting out multiple error messages with one "command"?
Ah, I see the lance issue now
Site 3.10 is now ready, but blocked on site#768
Both pretty simple PRs, the one above is like 3 changes
fwiw flake8-bandit is updated to 4.1.0 with flake8 5.X compat
but it's not available on pypi yet
tylerwince/flake8-bandit#25
At least they're not these guys https://github.com/bastibe/python-soundfile
Been asking them to release, they haven't made a pypi release in 3 years.
The GitHub version is a major version and a half over the pypi one
A fairly minimal code diff, but the bump to 3.10 and stable 2.0 should warrant some testing metricity#27
I've done my own testing and it seems to be alright.
This is a very small PR that is very low risk king-arthur#17
(The high risk ones are coming, don't worry)
Could a core dev please take a look at sir-lancebot#1000 and maybe approve? Thanks!
Also bump
I've finally figured out why my tests broke after updating pycharm
The plugin I use for loading the .env file is broken, and pycharm hasn't managed to add it in 11 years :D
I know someone here has jetbrains contacts, can we have it please? š„ŗ
There is the Jetbrains Community Discord server: https://discord.gg/jetbrains
Can https://github.com/python-discord/sir-lancebot/pull/1091 be checked?
~~Do any of you have any opinions about sir-lancebot#1056? (specifically these 2 comments:
Also sir-lancebot#1051
Can bot#2244 potentially be approved as a lance bot feature (invoke only without monitoring) since that might fit the scope more?
Hello can someone help me run the @stable mountain bot on dedicated server that I hosted on pterodactyl
A guide to setting up and configuring Bot.
That lists how to get it running with docker I guess
Though it will require you to host the site and other things as well, it's not really that general purpose
thanks
Hello
can someone tell me how to host the bot locally
Im using Vs code
Please do turn the mention on while replying š
Have you read and followed the guide linked above?
yes
It says I can't find the module botcore
I did pip install botcore
and it installed it
Still it shows the same error
I had pip installed other modules like discord too
Did you use poetry to install the dependencies?
no O_O
how do I do it?
I typed pip install modulename
It's under "Setting up a development environment" section in the guide.
Ok one sec lemme try
If youāre not interested in developing the bot, youāll have a much better time extracting the functionality you want into a separate bot
@stable mountain is a very bespoke project with a very intensive setup required
So if I'm understanding this correctly @cold island, for the re-run part of sir-lancebot#1062, we want:
- A PR on bot-core adding the util (invocation -> response -> edit invocation -> reaction -> return new content or None)
- A PR on bot removing the snekbox util that does this and replacing with the new bot-core util
- A PR on sir-lancebot adding re-run functionality to
.latex, using the bot-core util
And then another PR for the interaction part of #1062 (adding ā to delete etc.)
Does this sound right?
I guess so. My one worry is that it might make the re-eval functionality less configurable if we ever want to change it
Right, yeah
I mean I don't see us ever changing the functionality for one and not the other (changing eval but not latex and vice-versa)
So I don't think it's an issue personally
I don't see any reason for having them independent of each other (as in, I don't think we'll ever want the functionalities different)
Does anyone remember why we did that? https://github.com/python-discord/bot-core/commit/c9daa6f3774380794968cf28faf9ba4bde1f68e2
Yup itās because discord has wonky behavior for invites
Check the security advisory
Iirc a TL;DR example is included
If this is regarding #community-meta
I vote to ignore it
What we have now is pretty conservative to account for discord doing whatever they want in terms of implementation
Opened an issue in any case https://github.com/python-discord/bot-core/issues/129
After playing with it some more it looks like it only works with a question mark
With other characters it continues parsing the invite code
We could just make it look at the last /[characters] before a whitespace or a question mark
since that's what Discord does it seems
The behavior is not consistent on different platforms
It might only parse x on PC and iOS, and do y on android
Iirc that was the way it was split up
hmm the question mark seems to work the same on Android
In terms of which server it links to?
Why are you not allowed to send a .txt file?
Edit: I think I should have used #community-meta, my bad
Since you asked here, it was originally because Discord didn't preview txt files, but now because we don't want people dumping large amounts of code as a txt file (they should instead use the paste site, as the bot says when you try to send a txt file -- that way keep syntax highlighting etc.)
At least I believe that was the reasoning
So can't it be something like if you send a txt file, the bot deletes it and uploads it to paste bin automatically and sends the link instead?
we wouldn't do that, as it subverts a user's expectations when they upload a text file
You wouldn't expect by uploading a file, it would be deleted and then reuploaded to a 3rd party service, without your consent
we also don't have a way for users to delete their own pastes.
Hey there I was wondering while downloading the poetry where should me directory be set to in powershell?
When installing poetry, you can install it anywhere as long as itās in your systemās python install
When running poetry install, thatāll be in the bot projectās folder
I did it in projects folder
what should I do next?
What happened when you ran it?
If youāve followed the setup guide and have your environment and server variables set up, you can run poetry run task start
Ok
I made a .env file
What do you have in there?
And what do you have in your config file under the bot token section
That looks correct, what about the config?
There is a bot token section in config?
I used the alternate config file provided in the guide
Itās nested as fields, so itāll be a field called token under a section called bot
in the config.yml?
Uhh I cant seem to find it
Not necessarily in the config file, it combines both
It does appear however to have not found it in either
Try adding it to the config just in case
It looks like:
token: !ENV "BOT_TOKEN"
ok
You can put it right under the prefix key in the screenshot
and add bot token inside the inverted commas - ""?
shows same error oof
Should I delete the old defualt-config.yml?
That has to stay
I have to run right now, but hopefully people will be coming online soon
Otherwise I can help later today
I have both of them
ok
š
@gritty wind Btw I found what was causing the issue, I had accidently placed the .env file in bot folder instead of the main project folder. but now I have another issue.
You need to start the projectās dependencies, including the site, snekbox, postgres, and optionally a redis server
How do I do that?
You can do all that with docker compose up provided you have docker
You donāt have docker installed
Since youāre on windows, go to the docker website and install ādocker desktopā
It should have all you need to start with docker
ok
Make sure it started (youāll see a docker desktop application in your taskbar), then in the project folder run docker compose up -d
This will start the bot as well, provided the configuration is set for docker. If you donāt want that, you can stop the bot-bot_1 container from the docker desktop application
Slight problem
it says docker desktop stopped
in the taskbar
Have you followed the steps linked there to update WSL?
It should be a few commands to copy pasta
oh that
I did upto this
and downloaded ubuntu 20.04
Oh great, restart your PC and docker should work
then it says this
but when I opened ubuntu it says press any key to conitnue and it auto closes
nothing happens after that
How are you opening it
Open cmd and type ubuntu instead
You might need to restart your PC first
tried powershell too
Kk brb 0/
Gl
lemme try that
nope
im dowloading a diff version
instead of downloading from appstore
@gritty wind "Could not connect to site API. Is it running?" it's showing the same in docker
You have to specifically set the environment variables for docker if you want to run the bot in docker
I managed to reach this far
We just need the site and the other deps running, you can choose where to run the bot
how do I do this^
In your config.yml, you'll want to set the url in the urls.site and bot.redis.host sections
For running the bot locally, it'll be something likelocalhost:8000, and for docker it'll be web:8000
That's for the site specifically
Redis would be localhost and redis for running locally and in docker respectively
There's also another one, snekbox, but that doesn't need to be set to start the bot, just to run !e
I figured, like I said this is an insane amount of setup to get eval running
Instead check out
It takes the relevant code from the bot repository to make eval work
ok :(
If you want to continue with the setup for bot, you can, it's just a matter of setting the correct variables for the links at this point
I do want to
How many people have done this before ?
Set up the bot in general, or set it up for snekbox?
general
A lot, but most people tend to go through the guide š
There's ~150 contributors on the bot project
i.e people who've submitted code to be added
Are you going to be running the bot in docker, or locally?
docker
Yup, that's correct
where do I find this ?bot.redis.host
Probably a few lines above the one in your screenshot
It's line 5 in the template on the site
oke
what should I put?
should I keep it the way it is?
@gritty wind is the api issue caused because of this
I copied it from the guide
and put it on .env
No, that key is incorrect, and the error is unrelated
Yes this is fine for docker
key is incorrect?
Sorry, correct*
Are you still getting the error when you run docker compose up -d?
^^
bot-1 always gets the error of api
That's because of the issue above, the API is not starting
yes
Do you have something already running on that port?
Alright, could you open the docker-compose.yml file?
Should I delete it and reinstate it ?
Nope
Delete lines 26 through 30 of that file
Then run docker compose down followed by docker compose up -d --build
I should delete line 26-30
that includes both 26 and 30right?
Yeah, it should look like:
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pysite"]
interval: 2s
timeout: 1s
retries: 5
Ok
This is the deleted portion
done
now this?
Yup
oh its removing those umm.. smthn
Yup, it'll delete the containers and recreate them, which should allow us to make sure things are still fine
Oke
its building now (I ran docker compose up -d --build)
oh god this postgres is always unhealthy
but it's running
If you press the run button beside that web-1 container, does it turn green?
Right, now do that with the bot container
Great, the bot should now be live in the server you configured it for
Could you click into it and see what is written there?
so did the bot 1
one sec
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
django.db.utils.OperationalError: FATAL: database "metricity" does not exist```
Have you followed the section in the guide on setting up metricity?
You probably don't want metricity, it should have auto created those tables
Trying to figure out why it didn't
Click the run button beside metricity here
oh
did
Now run the site again
Ill do it one by one
Check that it says everything is good in the logs
first metricity
Yup
yeah it did stop before
Ill bb in 15 mins after my dinner
my mom's screaming at me ffs
š©
Could someone take a look at sir-lancebot#1094
Is this change being done pre-emptively as they are changing the intent from being enabled by default? I would expect the bot to be hardly operational if it was current disabled.
or is there a active fault/issue with the bot? if so, could you link
It's going to become mandatory in a few days
Bots without the intent won't get message content anymore
alright, I'll stick that on the PR and approve it. so anybody viewing it can understand why
As the popularity and number of Discord bots grow, it's important to keep our users and developers safe and healthy. This means from time to time, like any maturing platform, we need to update our ...
probs should have just googled it 
I'm going to be deleting this line in my other PR anyway, as it's not needed
This PR is just here because the other PR is large, and unlikely to be merged before end of the month
@gritty wind the metricity one auto - exits
.
it's intentional. If you aren't working with metricity, it will just run the migrations and exit
of course, if instead there are error logs from that pod, do let us know
are there any logs in it?
If it's running properly then it's probably the bot config
hat's what I thought, but the url looks fine, sine the bot log says it's trying to connect to web:8000
yes
And it was started with docker compose?
Hey @sweet glacier!
You either uploaded a .txt file or entered a message that was too long. Please use our paste bin instead.
.bm
bruh I cant upload text file
read the message the bot sent.
the bot says api issue
This message
2022-08-28 17:12:30 | discord.client | WARNING | PyNaCl is not installed, voice will NOT be supported
2022-08-28 17:12:31 | bot | INFO | Attempting site connection: 1/3
Traceback (most recent call last):
File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/bot/bot/__main__.py", line 78, in <module>
asyncio.run(main())
File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/local/lib/python3.10/asyncio/base_events.py", line 646, in run_until_complete
return future.result()
File "/bot/bot/__main__.py", line 74, in main
await _bot.start(constants.Bot.token)
File "/usr/local/lib/python3.10/site-packages/discord/client.py", line 781, in start
await self.connect(reconnect=reconnect)
File "/usr/local/lib/python3.10/site-packages/discord/client.py", line 707, in connect
raise PrivilegedIntentsRequired(exc.shard_id) from None
discord.errors.PrivilegedIntentsRequired: Shard ID None is requesting privileged intents that have not been explicitly enabled in the developer portal. It is recommended to go to https://discord.com/developers/applications/ and explicitly enable the privileged intents within your application's page. If this is not possible, then consider disabling the privileged intents instead.
Found `config.yml` file, loading constants from it.
2022-08-28 17:12:39 | botcore.utils._monkey_patches | DEBUG | Patching send_typing, which should fix things breaking when Discord disables typing events. Stay safe!```
yeh I saw
Please make sure you have read and followed the contributing guided fully.
This is all explained in there
what wait , I dont get it
A guide to setting up and configuring Bot.
What do I have to do? about the priviliged intend?
Read the section of the guide I linked above.
ok
btw scaleios deserves a promo
frfr
he hung along all the way from beginning and patiently helped me out throughout the journer
@gritty wind do you want to be promoted to admin?
Lmao
why not :)
If you want to be in on the joke, I was an admin and stepped down
tf
Bump
@viscid badge status
Does anyone if the official cpython devs have a discord? Or if I have a question can I write it here?
If you have questions about how CPython works, you can ask in #internals-and-peps.
There's no official Discord.
Not particularly a question. I opened my first PR (very simple, nonbreaking changes) in CPython but it was (somewhat) buried and received no reviews. Was hoping to request any core-devs to review it and provide feedback/merge it
anyone have opinions on bot#2244 ?
Could move it to be implemented on sir-lancebot as well
I'd rather people didn't upload weird links or files here
Also something to keep in mind is that in the filters redesign "Anti-Malware" is just a file extension filter, because that's really all it is atm
Not that it should block any work that we think is necessary
In short, adding the API to the filter is something to think about, but not in favor of having it on lance
Its probably worth keeping in mind that virustotal collects anything that is sent to them which sounds like something that isnt in line with our privacy policy at the moment as I understand
if you submit Samples to the Services, we will collect all of the information in the Sample itself and information about the act of submitting it
Am unsure at the moment if frequency of malicious files being sent in our server is high enough to compromise privacy of all users
Im trying this now
I realize this is actually going to stop working in a few days because it needs d.py updated, but I donāt have the bandwidth for that right now
Maybe later
I've done a bit of it, but there's just so much more now because of all the things @stable mountain supports. Bumping to 3.10, d.py 2, and even bumping the internal and error_handler cogs, and the utils is pretty easy, but keeping the snekbox cog in sync is a pain. I might just push what I have now and have the project deviate from @stable mountain
Hello World
.bm
The message the bot links to in this message seems to be the wrong message?
It links to my .bm message, rather than the "Hello World" message (which is what the bookmark is to)
bot/exts/utilities/bookmark.py lines 115 to 121
reaction_embed = discord.Embed(
description=(
f"React with {BOOKMARK_EMOJI} to be sent your very own bookmark to "
f"[this message]({ctx.message.jump_url})."
),
colour=Colours.soft_green
)```
i.e. ctx.message.jump_url should instead be target_message.jump_url
Or is this an intentional thing that just has bad wording?
previously you couldnt bm on reply so it would bookmark to the command invocation so it was correct before
Right, I see
Is this something we want to update?
I.e. if the .bm is a reply, then the link goes to the reply
In fact, even then it was wrong actually
Since you'd still pass a link to the message you were bookmarking
The bookmark content wasn't in the message (the title of the bookmark is)
So even before the reply-bm functionality it should still have linked to target_message and not ctx.message
In fact, when the feature was first added, it did link to target_message: https://github.com/python-discord/sir-lancebot/commit/bdfeef5d16ff64a7ca8a9a610d39a654f2e1fb99#diff-78696f797f28babafb73808f001b3afa4a5603760943a372882e89f0cb4bfa8cR72
yeah because it was required
later it was made optional
so it made more sense to link to the invocation I suppose
since you could do .bm check <some-link> or what have you
I suppose we could differentiate between the two and link accordingly though
This commit changed it from target_message to ctx.message https://github.com/python-discord/sir-lancebot/commit/4d9477bf72eba8c6110c59a5edbb12ed617092a3
It was always required that you have either a reply or message though
You either provide a message, or reply to a message
yeah
So it was never truly optional
but since the message is optional you cant link to something that doesnt exist
Meaning you should just always link to target_message
It does exist though, because it would be set to the reply if they didn't give a message
I mean when it isnt a reply
.bm like this
ok fair
I misunderstood completely
I think I mistook that command for syntax for other bot, apologies
You have to provide a message or a reply. Whichever you provide will be set to target_message. If you provide neither, then an error is given, meaning target_message is always defined
Yes yes I understand now, sorry
@vale ibex was this an intentional change (since you did the commit)?
If not, I'll create an issue for reverting it back to target_message.jump_url
(For the PR I made about switching the command to buttons, it'd be fixed by that also) sir-lancebot#1091
Right, yeah, assuming it doesn't get undone by merge conflicts or something
doesn't seem like it
feel free to fix
I'll leave it since it seems that @surreal veldt's PR will already fix it
@surreal veldt is your PR finished (aside from review)?
!remind 10d review if not already merged
Your reminder will arrive on <t:1662661738:F>!
Can someone help me fix this error? ```
File "C:\Users\tenuk\sir-lancebot\bot\exts\utilities\bookmark.py", line 173, in bookmark
await ctx.send(embed=embed, view=view)
File "C:\Users\tenuk\AppData\Local\pypoetry\Cache\virtualenvs\sir-lancebot-gb-kPGWv-py3.9\lib\site-packages\discord\abc.py", line 1370, in send
components = view.to_components()
File "C:\Users\tenuk\AppData\Local\pypoetry\Cache\virtualenvs\sir-lancebot-gb-kPGWv-py3.9\lib\site-packages\discord\ui\view.py", line 197, in to_components
children = sorted(self.children, key=key)
AttributeError: 'SendBookmark' object has no attribute 'children'
Actually, I realized I forgot the super call
right yeah, would it be better if we did the option as a command invocation only? Or would it probably not see that much usage to justify 
It might be ok as a moderation command, but at that point it might be better to use the website
I deleted the repo from which I made the sir-lancebot#1091 and replaced it with sir-lancebot#1095 (sorry if that was bad, but I had a lot of problems on the first one)
Go ahead and leave a comment on the new one saying that it's a replacement for the old one
What issues are you having?
I noticed you're working off of your main branch in both of your forks.
When you create a fork, you get the big green "sync fork" button, which takes all the new commits on the main branch from our repo and adds them to the main branch on your forked repo.
So, when you create commits on the main branch on your fork, and then you create a PR, once that PR gets merged, those commits will be added onto the main branch of our repo.
The problem with that is, when you try to "sync fork", GitHub will get confused because it thinks it sees duplicate commits, and it won't let you sync.
You'll always need to create a new branch when working with forks
Oh...I keep forgetting to make a new branch whoops. Also you mean git checkout right?
You can, yeah
git checkout -b <branch-name>
You need the -b when creating new branches
!contribute
Contribute to Python Discord's Open Source Projects
Looking to contribute to Open Source Projects for the first time? Want to add a feature or fix a bug on the bots on this server? We have on-going projects that people can contribute to, even if you've never contributed to open source before!
Projects to Contribute to
⢠Sir Lancebot - our fun, beginner-friendly bot
⢠Python - our utility & moderation bot
⢠Site - resources, guides, and more
Where to start
- Read our contribution guide
- Chat with us in #dev-contrib if you're ready to jump in or have any questions
- Open an issue or ask to be assigned to an issue to work on
This tag has a lot of info
We have the contrib guides on our site (run !contribute), but you can start by having a look through the issue trackers for something you wanna work on
can someone help me with eval bot?
hi, this channel is to discuss contributions to our repos directly
so we can assist with setup if you're thinking of contributing
Hi, new contributor and also the author of https://github.com/python-discord/site/pull/771. My changes were trivial yet I fail multiple netlify checks and it reports Deploy Preview forĀ pydis-staticĀ failed., any reason for this?
The netlify builds have been broken for a while, thereās a PR up to fix them, but itās pending review
In terms of your PR, you just need to worry about the ones marked Required
Please clean up the PR body though, mention what it does and what issue it closes
Iām pretty sure the grammar change in the first one is wrong though ("what contributing ⦠involves"), and I think the second sentence reads better without the of
i agree with Scale
the third change of the comma is fine though.
was there an issue for this, or did you ask about this in the channel earlier? (i remember someone did, but not sure if it was you)
I finished with sir-lancebot#1095, can I bother someone to check? I think there's another PR waiting on this that's why
There was not, I found the grammar issues when reading thru the contributing guide on the site. Should I typically create issues for trivial grammatical changes or is it ok to open PR directly?
I am fairly new to the discord, so just asking as to learn the best practices
yes, typically an approved issue is required on the repo, or an approval from a core dev on discord <@&587606783669829632> < this role

though this is not a "discord thing," but an us/python discord thing
edit: i misread your message but o well
What happens if you ask a helper and they say OK? Just curious
Helpers aren't allowed to approve; it has to come from a core dev
We typically ask you open issues first so we can coordinate features and work, and make sure what youāre working on is in fact desired
Yup, helpers canāt approve, but we try our best to give everyone involved the best experience
Helpers can give feedback etc. ofc (as can anyone), but the final approval most be from a core dev
Good to know, thanks. Will seek approval from core dev before opening PRs in the future
https://www.pythondiscord.com/pages/guides/pydis-guides/contributing/ and https://www.pythondiscord.com/pages/guides/pydis-guides/contributing/contributing-guidelines/ are good reads
A guide to contributing to our open source projects.
Guidelines to adhere to when contributing to our projects.
BTW ^
wdym for this?
But it's actually a different issue
And that one is already merged
oh it's that one?
yeah
oh
That same thing happened in another project I was working on
Because the PR also came from main
Lemon was actually the one that figured it out
I just did
gh repo clone
gh pr checkout
git status
# new commits? I haven't done anything yet? Let's see what they are:
git push
And then the PR was merged
can't do a full review right now, but it seems like a lot of lines are being broken up when they don't need to
the project's line-length is set to 120
I'm guessing you ran black against the file?
We don't have a black config, so it will use defaults.
I don't think so - let me check
Hi @vale ibex
Please add black config
Thanks
You can run black on our files, sort of, so long as you limit to the file youāre working on and pass it the line length option. Wouldnāt recommend it though because our style isnāt 1:1 with black. Lint with pre-commit, if it passes, youāre probably fine. If you havenāt seen it before, read our style guide
Also, we use multi-line splits in this project EG py embed = discord.Embed( title=title, description=target_message.content, colour=Colours.soft_green ) Rather than ```py
embed = discord.Embed(
title=title, description=target_message.content, colour=Colours.soft_green
)
we don't have black in lint, instead we have https://www.pythondiscord.com/pages/guides/pydis-guides/contributing/style-guide/
Coding conventions for our Open Source projects.
Yup, not everything can be enforced with pre-commit, hence itās a good idea to read the style guide to get the big picture
Yes
Can I get one example of a line that's too broken up?
bookmark_function in the SendBookmark function sig
that's the first one
also, I'm not sure Callable is the right typehint there
I think collections.abc.Awaitable is the correct one
maybe colelctions.abc.Coroutine
I can't remember
But isn't callable for funds?
I totally use the second form too if it fits into one line 
Yea, it's a coroutine that can be called and awaited
I can leave a proper review in a couple of days
I'll try to not make the lines so short in the meantime
It's worth pointing out that my sir-lance PR that bumps the d.py version will break this
duscord.ui.Button.callback has ti's button and interaction args swapped
to be consistent with app commands
so we will just need to remember to fix it in whichever PR gets merged second
okay
.bm
@ornate kayak hi there and welcome! this channel is for discussing our open source projects listed above ^^^
@gritty wind Can I host @stable mountain using heroku?
Not really because it needs to have access to the site database, and the other dependancies (especially snekbox in your case)
Youād need to host those separately
Anyway heroku is removing the free tier soon š
is there any other way I can host this bot locally
other than docker
docker is not functioning properly on my pc
If you're having issues with docker, you could ask for help in #tools-and-devops
Setting the bots up outside docker is not something we really assist with because there's a lot of setup you'd have to manually do
It's an unwritten expectation that the more one deviates from the guide on the site, the less help they should expect to get
you can try GCP :p
cloud compute provides a free 2 core 1GB VM instance monthly
I can use it to host python bot , ok!!
though uh, our bot functions are pretty specific to here, I'm not sure how well it would work in other servers
there are a lot of config options required, but if you supply reasonable values and channels for all of them it should be fine
Well the defualt-config is completely specific to this server but the guide provided online comes with a custom config.yml for local servers
A guide to setting up and configuring Bot.
it's provided here
in the #configure-the-bot section
That is still a template, youād need to specify the channels yourself to avoid errors
Yeah I did
Im just facing issues with the wsl
now
That's the reason docker won't operate properly
Bump
ClientConnectorError: Cannot connect to host snekbox-311.default.svc.cluster.local:80 ssl:default [Temporary failure in name resolution]
Trying to run python-discord/bot through docker, why is it looking for snekbox-311? I just want it to run snekbox
3.11 is the default now. You can update your config.yml with the path to snekbox, or you can set the SNEKBOX_311_EVAL_API env var
If you're running under docker it'll be http://snekbox-311/eval iirc
Is the port 8060 or 8065?
Oh also, I've switched to running it locally because it's easier for development. How would the URL be different now?
Ah, if you're running the bot locally, it'll be localhost:port/eval
where the port is the one on the left in the docker-compose
can't remember off the top of my head
So for snekbox-311:
# Snekbox
snekbox_eval_api: "http://localhost:8065/eval"
```?
snekbox-311:
<< : *logging
<< : *restart_policy
image: ghcr.io/python-discord/snekbox:3.11-dev
init: true
ipc: none
ports:
- "127.0.0.1:8065:8060"
privileged: true
docker-compose.yml
let me try that
Nope, different error though:
ClientConnectorError: Cannot connect to host snekbox-311.default.svc.cluster.local:80 ssl:default [nodename nor servname provided, or not known]
Only bot is running locally, snekbox and web are running in the docker instance
doesn't look like the config.yml isn't being loaded
oh
it's snekbox_311_eval_api
Do I have to manually edit the key, because snekbox_eval_api is the only one i see
# Snekbox
snekbox_eval_api: "http://localhost:8060/eval"
snekbox_311_eval_api: "http://localhost:8065/eval"
like so?
yea
let me give that a shot
anything in the snekbox logs?
pydis-bot-snekbox-311-1 | 2022-09-02 19:11:20,522 | 11 | snekbox.nsjail | INFO | Executing code...
pydis-bot-snekbox-311-1 | 2022-09-02 19:11:20,606 | 11 | snekbox.nsjail | WARNING | clone(flags=CLONE_NEWNS|CLONE_NEWCGROUP|CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWUSER|CLONE_NEWPID|CLONE_NEWNET) failed: Invalid argument
pydis-bot-snekbox-311-1 | 2022-09-02 19:11:20,606 | 11 | snekbox.nsjail | ERROR | Couldn't launch the child process
pydis-bot-snekbox-311-1 | 2022-09-02 19:11:20,607 | 11 | snekbox.nsjail | INFO | nsjail return code: 255
pydis-bot-snekbox-311-1 | 2022-09-02 19:11:42,035 | 11 | snekbox.nsjail | INFO | Executing code...
pydis-bot-snekbox-311-1 | 2022-09-02 19:11:42,114 | 11 | snekbox.nsjail | WARNING | clone(flags=CLONE_NEWNS|CLONE_NEWCGROUP|CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWUSER|CLONE_NEWPID|CLONE_NEWNET) failed: Invalid argument
pydis-bot-snekbox-311-1 | 2022-09-02 19:11:42,114 | 11 | snekbox.nsjail | ERROR | Couldn't launch the child process
pydis-bot-snekbox-311-1 | 2022-09-02 19:11:42,115 | 11 | snekbox.nsjail | INFO | nsjail return code: 255
yeah
macOS?
..yeah
I faced the same issue on macOS too, works on Linux.
last time this was discussed, we just ended up deciding not to debug it further, because it works on Linux.
other than using Linux, not AFAIK.
yikes okay
i do have a linux system but i honestly have everything set up here already
you'd have to debug the snekbox container, which I did, but tweaking the clone options for the process didn't help much.
and alt solution is to run the snekbox container on a linux system and make it available to your mac machine
i could do that, how exactly would that work though? i haven't done anything like that before
provided they can be on the same network and ssh probably.
yup, same network
@sharp crag is there an issue for bot#2269?
If so you should link it by putting "Closes #xxxx" somewhere in the description
I'm pretty sure there was, I just can't find it now for some reason
I believe it was by @outer oasis
sir-lancebot#1089
Oh oops, I was confusing it with sir-lancebot#1089
yikes yeah
I thought it was eval for some reason.. i'm dumb
I'm going to delete the PR and make a new issue.. if the issue is approved i'll just PR again and it should be easy
Make an issue and a PR at the same time?
Isn't it protocol to have an issue, discuss it first, then make a PR if the issue is go?
... Didn't you say the PR already exists?
Yah I have the code and I've tested it, I just didn't make an issue for it first
The code is in another branch in a fork of mine
If you've already done it then it's (probably) fine
The idea is just so that you don't spend time developing something which we end up deciding we don't want
But it's already developed, so there's no harm at this point
yeah. It wasn't much work, it was like an extra 30 lines lol. I think i'll just have it sitting in the fork, and if the issue does end up passing through, it should be very easy to make a PR with the existing code
If the issue is approved, the PR can be reviewed & merged, else the PR can be closed
I'd just leave the PR if you haven't already deleted
There's no harm in having it
Yeah you're right, might as well just leave it
You can make a comment on the issue that you've got the PR
yup just did that
What the cat happened to the Workflow for these?
ERROR: Can not combine '--user' and '--prefix' as they imply different installation locations
i honestly don't know.. i ran the pre commits and flake8 and whatnot locally and they all passed
i hope i didn't break anything
Looks like it just pulled a new version of Poetry or something, and a command option changed somewhere
Hmm. Debug mode didn't say much
and as for the bookmark context menu..
The button is implemented in sir-lancebot#1095
