#dev-contrib

1 messages ¡ Page 44 of 1

molten bough
#

haha

eternal owl
#

oh

#

feature issues are also called tickets?

glass pecan
#

tbh i don't know the origin of why i called them that

molten bough
#

issues == tickets

eternal owl
#

okay

glass pecan
#

but i think of them like support or job tickets

#

which they are sorta

eternal owl
#

okay

glass pecan
#

ok, you'll want to space out the "the problems we know are with an extra line above it

#

it needs to be clearly structured, so we can see that the statement is beginning the list you have under it

#

another option is to use a header

eternal owl
#

okay

glass pecan
#

# Current Problems as an example

#

and then the list within it

eternal owl
#

got it

glass pecan
#

good judgement on reducing the header level

eternal owl
#

I will use 2 # , 1 is too big

molten bough
#

there is a semantic reasoning to the different headers too

glass pecan
#

do you know how to show an image in markdown?

eternal owl
#

nop....

#

i only know that markdown is for code

glass pecan
#

here's a useful reference

eternal owl
#

thx!

glass pecan
#

so instead of the inline link, you'd use

![image](https://cdn.discordapp.com/attachments/542272993192050698/676055841220067338/Screenshot_20200209-131812.jpg)
molten bough
#

Markdown is truly one of the most useful things going

#

it's a shame the guy that came up with it is so grabby

eternal owl
#

updated

glass pecan
#

ok so your first issue is:

The command does a double embed edit which means it gets rate limited pretty quickly.

#

I don't know what you mean by this

eternal owl
#

dont ask me what it means

molten bough
#

the embed is edited twice

#

a double embed edit

eternal owl
#

if you spam the right paginate fast, then you dont get anything

glass pecan
#

in what context. when it starts, when it's navigated, when it's just sitting around being itself

molten bough
#

it does it if you don't spam as well

eternal owl
#

when u navigate

molten bough
#

When you click a navigation reaction, it blanks the embed, and then fills it again

glass pecan
#

ok

eternal owl
#

sometimes it dosent fill

#

it stands like that forever

glass pecan
#

blanking is a pretty horrible method, but i reckon i know why it's done

#

but for now, lets adjust the wording to appropriately explain the issue

#

something like

#

When navigating using reactions, the embed is edited twice in succession, first making the embed blank and then with the new content. This sometimes results in slow updating and the embed staying blank.

eternal owl
#

okay

glass pecan
#

hopefully you can agree that is easier for others to understand and to easily reproduce the issue themselves when testing

eternal owl
#

yep!

glass pecan
#

then you have a line

#

(We need to figure out a way to solve this)

#

that's the entire point of an issue ticket

#

it can be removed

eternal owl
#

okay

glass pecan
#

next is about the user agent

#

you're describing the solution, not the problem

eternal owl
#

okay lemme get that

glass pecan
#

ok

eternal owl
#

Should i mention the problem and the solution in the same place?

glass pecan
#

you can in this case

eternal owl
#

okay

glass pecan
#

keep in mind, it's more of a "this should be replaced with something similar to the Python bot's User Agent, such as python3:python-discord/seasonalbot:1.0.0 (by /u/PythonDiscord)"

#

rather than a "change it to x"

#

sometimes the recommended fixes in issues aren't always the most suitable, as fixes are done in the PR stage

eternal owl
#

okay

#

I said app/client

woeful thorn
#

It's also more than just changing the user agent, you need to add an authentication flow for the API

#

Which also requires us to generate the credentials and add them to Seasonalbot's environment

glass pecan
#

that's the next point, yep. it's missing from the issue currently

eternal owl
#

i dont understand authentication flow

#

what credentials

glass pecan
#

ok

#

for example the bot has an api token for authenticating with discord

#

without it, it can't interact with the api

eternal owl
#

but reddit does not need one

glass pecan
#

reddit requires one as per their developer terms

#

without that token, we lose benefits

eternal owl
#

Oo i never knew that

glass pecan
#

the rate limit is greatly decreased for example

eternal owl
#

so I should set it to an env var

glass pecan
#

you'll want to reference the implementation in the Python bot repo when you go to fix it

#

but in the issue ticket you'll just want to outline that it is missing and needs to be added

#

Currently the API does not use an authenticated request. We should make sure to use an app token from Reddit the same as the Python Bot does also. This bot will need one created by an admin specific to Seasonalbot.

eternal owl
#

oki

glass pecan
#

you'll also want to add in the error from Suhail's comment

eternal owl
#

updated

glass pecan
#

"In the code" isn't unnecessary to add, as a note. Any code changes is in the code, and tbh it's more important that it's actually about an output string that users see.

eternal owl
#

okay

glass pecan
#

good stuff

#

that's a much clearer issue ticket. we just merged a PR for issue ticket templates also that was worked on a while ago. so in future, there'll be more details requested, but hopefully it gives a better outline on what we need to see.

eternal owl
#

cool

#

thanks for the guidance!

glass pecan
#

no probs

eternal owl
hardy gorge
#

I think I've read some people had some additional considerations before we go ahead with it, so I'm not sure.

eternal owl
#

okay

jade tiger
#

What's the best/suggested way to pull changes from upstream? I'm about 600 commits behind, lol. It's part of an open PR and last time I tried to do something like that it didn't end well

green oriole
#

You could create a new remote upstream and use git pull upstream/master inside your master branch

#

Once you have fetched it

#

But you should have write access to the repos, right?

jade tiger
#

pull to master --> git pull origin/master to update branch? --> git push changes to branch?

#

yeah this was before I had write access, and I'm less likely to break something if I'm working on a fork 😂

green oriole
#

pull upstream/master, not origin/master

#

You can’t break anything, you don’t have access to master, and the history is rewritable

jade tiger
green oriole
#

No, you shouldn’t use rebasing when you don’t need to

#

merging master gaves a merge commit anyway, it is just hidden by github when it is from the same remote

jade tiger
#

ok so should be all good to go now, yeah?

green oriole
#

Yes I think

jade tiger
#

👍 cheers

green oriole
eternal owl
#

this is the together java server and they have a very good way of indicating whether a channel is free or not and that is the bot adding free emoji to the channel name

molten bough
#

I think they have a plan at this point

eternal owl
#

Just wanted to show it xD

crude gyro
#

I hate it, just for the record.

eternal owl
#

okay

green oriole
#

It is pretty ugly yeah

#

But I mean, c’mon they are Java devs, they don’t like beautiful things

crude gyro
#

that 🆓 emoji is god awful

#

if they had made a custom one, maybe it would've looked okay

woeful thorn
#

Ugliness isn’t really the problem, it’s that it’s equally as nondeterministic as the free command we already have

crude gyro
#

yes, but arguably a little more immediate

green oriole
#

The lack of space between the channel name and the emoji is bad too

crude gyro
#

more convenient

#

but ultimately misleading and not the right solution

#

I think the bit of friction we have where users have to use the !free command, and the additional wording in the !free command that makes it clear that these might not in fact be free are kind of essential

#

!free

stable mountainBOT
crude gyro
#

there are no promises made here that we can't deliver on

#

but a 🆓 emoji makes a promise that it cannot keep.

hardy gorge
#

Honestly, I think the system we have in mind is far better and it isn't even that complicated

crude gyro
#

agreed.

green oriole
#

A clock emoji maybe, just to tell there wasn’t any message in a certain amount of time, not that the channel is indeed free?

#

Yep!

hardy gorge
#

No, let's not make too many changes to the help channel system

#

I want a clean pilot test of the new system without any more shenanigans going on in the mean time

crude gyro
#

yep.

hardy gorge
#

The help channels are the core of our community

green oriole
#

It wasn’t really a suggestion, it was just a reaction type of thing, your idea is far better

clever wraith
#

maybe channel description can call free ?

gusty sonnet
#

Hmm @green oriole why increasing from 10 lines to 11? What if it has 12 lines and you truncate the final line anyway?

#

Would having a dynamic limit better in this case?

green oriole
#

No no, we have a limit of 11 lines, if the output is greater, we truncate it and upload to paste.pydis.com, but with the current setup, if the output is exactly 11 lines long, the last line get truncated but it doesn't properly detect it and the original output isn't uploaded to the paste service @gusty sonnet

#

There is more details in the corresponding issue

#

And I didn't expected people to delete the bot response before re-evaluating, gonna fix that :P

#

If you don't delete it yourself and let the bot do it, you can see the feature working

gusty sonnet
#

Hmm, so we have a hard cap of 11 lines? What if the output is exactly 12? Can we argue that in that rare case, it should still be shown?

green oriole
#

@gusty sonnet the striping in done a big higher in the code, as it is now everything is balanced, we strip up to 11 eleven lines and show them correctly, the issue was that two values wasn't set correctly

#

You left two comment on lines I didn't modified, it isn't really fair :D

gusty sonnet
#

Well, since you are doing stuff with it, might as well do some refactoring 😄

#

To be honest it is working fine so you can also disregard it until it becomes a problem. Having working feature comes first!

green oriole
#

I can do it, that's fine :D

#

So did you get the 11 lines thingy?

gusty sonnet
#

Ye the 11 lines is fine, I resolved the conversation about it, we can always go with it and raise another issue if it becomes a problem later

#

I will go over the tests tomorrow

green oriole
#

Nice!

cold moon
mellow hare
#

It'll be two pronged. Part of it will have to be done on the bot, the other on the site

#

The API will have to be listening for that request

hardy gorge
#

Have we decided on whether or not we want that feature?

mellow hare
#

No idea

green oriole
#

An admin said yes before I wrote it

woeful thorn
#

Worth making an issue for discussion isn't the same thing as worth implementing the feature

green oriole
#

Yep

cold moon
#

Hardest thing to contribute to any Python Discord project is setting up env. Just my computer crash

mellow hare
#

Well that's bizarre

molten bough
#

At what step did that happen to you?

brazen charm
#

PySide2 docs repeat themselves in the symbol permalinks, I assume because of the nature of it being packages under the main one with a different docs structure. (PySide2.QtTest.PySide2.QtTest.QTest.qExpectFail as an example)
Would this be worth handling when getting the symbol from users here to fetch it? Or should it just stay general for all the module docs that may come

cold moon
#

I tried setup Docker, but after this computer crashed

tawdry vapor
#

Have you tried setting it up without Docker?

tawdry vapor
#

@woeful thorn How do I install flake-annotations from git now that setup.py is gone?

#

Do I have to go through poetry?

#

I tried simply ```sh
pip install -e git+git@github.com:python-discord/flake8-annotations.git@TYP-to-ANN#egg=flake8-annotations

#

But it errors cause setup.py does not exist

woeful thorn
#

If you want an editable install you have to use poetry

#

Since pip won’t do an editable install with the TOML

tawdry vapor
#

Bah.

woeful thorn
#

Poetry makes a temporary setup.py to do it

tawdry vapor
#

Poetry it is

woeful thorn
#

It’s annoying

tawdry vapor
#

Can poetry install from git?

#

I'll find out soon enough. Pip has been really slow to install things today

patent pivot
#

it can

woeful thorn
#

That’s for adding dependencies, not installing from source

#

I think you have to clone it

tawdry vapor
#

Yeah that sounds like the better option

woeful thorn
#

I guess they don’t expose the setup.py fakery

#

Though you’d have to clone it anyway to do that

#

That might be a fun helper to write

tawdry vapor
#

Sorry I don't really know how to do this

woeful thorn
#

?

tawdry vapor
#

Not sure how to use poetry. Do I need to create my own project and then add flake8-annotations as as a dependency?

woeful thorn
#

No

tawdry vapor
#

I just want to make a venv and then install flake8-annotations to it.

woeful thorn
#

It’s the same flow as Pipenv

#

poetry install in the source directory, if you have the env activated it will install to it

tawdry vapor
#

I thought that would just install its dependencies rather than the project itself

#

That's how it seems to be worded in the help menu anyway. After all, I do not consider a project to be a dependency of itself.

#

Not normally, anyway

#

But I will try that, thanks

woeful thorn
#

If there’s a way to word it more clearly I’d be happy to adjust it

tawdry vapor
#

"you can install the projects and its dependencies to create a development environment using: ..."

#

Also noticed the note below still mentions a Pipfile

woeful thorn
#

oops

tawdry vapor
#

Meant to have projects be singular there

woeful thorn
#

Is this clearer?

### Development Environment
This project uses [Poetry](https://python-poetry.org/) to manage dependencies. With your fork cloned to your local machine, you can install the project and its dependencies to create a development environment using:

Note: An editable installation of `flake8-annotations` in the developer environment is required in order for the plugin to be registered for Flake8. By default, Poetry includes an editable install of the project itself when `poetry install` is invoked.
tawdry vapor
#

Yes, thanks

#

Meanwhile my install has been chugging along for the past 30 minutes

#

Only 25 packages to go...

clever wraith
#

can we complete the 'planning' on this one ? i purpose a timeout system thatr emove all reaction and then put the 📨 in the end . so that on_reaction does not cluster

hardy gorge
#

Can you add your proposal to the issue?

clever wraith
#

done

hardy gorge
green oriole
#

Race condition?

cold moon
eternal owl
#

I think it can merged with the recommend game command

eternal owl
cold moon
#

But is these both available to-do? And where should this fetch games data? From IGDB?

eternal owl
#

currently the recommend game command uses static files(json), but I think it will be better if we use an API for more games

#

IGDB looks good, we could use steamAPI as well

green oriole
#

IGDB looks like a good idea

cold moon
#

Just 50k requests limit

eternal owl
#

thats plenty

cold moon
#

Ye

eternal owl
#

is it 50k per month/year/forever?

green oriole
#

Even if it is per forever, that's enough

eternal owl
#

yea

cold moon
cold moon
green oriole
#

Are you HeroicHitesh?

eternal owl
#

@cold moon dude you can make game recommendations on any theme, not only horror, let's make it universal

green oriole
#

Because I mean, if it isn’t you, you should ask them first if they are still working on it

eternal owl
#

I created a similar issue for movies a few days back

cold moon
#

I'm not, but pull request is closed due copyrights, and there is no response after Oct 2019

green oriole
#

Hmm yeah, they deleted their branch, it should be fine

eternal owl
#

are you currently working on any issue @green oriole ?

green oriole
#

I need to apply reviews on my latest PR

#

Why? ^^

eternal owl
#

nothing much, Im having some issues running the website

#

I did docker-compose up

#

but when I go to localhost:8000, it says disallowed host(I did setup my hosts file)

#

and am I allowed to edit the allowed hosts list?

green oriole
#

You need to go to http://pythondiscord.local:8000

eternal owl
#

fak

#

thank you very much

crude gyro
#

maybe it would be nice if we set up localhost.pythondiscord.com

#

I have a design for making that work

green oriole
#

You can also use the ALLOWED_HOST env var to override it if you need to, I did it on my dev server so I can access it outside of the server itself

#

Not sure if it is a good idea

#

What the api endpoint would be?

#

api.localhost.pythondiscord.com?

crude gyro
#

something like that.

hardy gorge
#

Is this to avoid adding entries to a hosts file?

#

Like, the remote redirects to localhost or something

crude gyro
#

you'd avoid everything. you'd just run the containers and go to localhost.pydis.com and it would work

#

no port, https supported

#

no hosts file

green oriole
#

Supporting https and not using a specific port isn’t that hard

#

I mean, we could just use http://localhost:8000, it is the same as localhost.pydis,com

#

Doesn’t change much

hardy gorge
#

I guess the point is that with a setup like lemon's, configuration gets way easier

#

People don't have to worry about setting up a hosts file and/or ports

eternal owl
#

hey guys can we have .vscode in gitignore for the site repo

crude gyro
#

yes that would probably be fine @eternal owl

#

it's a popular editor and I don't see any reason we shouldn't have it in the gitignore

hardy gorge
#

I'm all for cutting down on the number of configuration steps

eternal owl
#

okay

green oriole
#

http://localhost:8000/ doesn’t need any additional configuration

#

No host file

crude gyro
#

yeah and it's http and you have to specify a port

hardy gorge
#

How does it work with our Django set-up that relies on subdomains?

green oriole
#

It uses django-host iirc

hardy gorge
#

It does, yes, but that's not what I'm asking

#

Our site's routes depend on the subdomains

green oriole
#

We could use a nginx or apache config, or whatever you use

crude gyro
#

it is a little bit of work to do properly though @hardy gorge.

basically you set up the DNS zone file to forward the domains to 127.0.0.1, as you might expect.

then, if we don't already have one used locally (I forget), you'd need an nginx container in the docker-compose, which would host the site. If you want hot-reloads (which we do), you might need some sort of plugin to allow that because nginx might disable it by default. Then you'd have a self-signed certificate on the repo itself which the nginx would use for SSL, this would allow https requests to work.

we might also need a mechanism to keep the self-signed certificate from expiring.

hardy gorge
#

We do not use nginx or apache locally at the moment, though

#

that was for Akarys, by the way

crude gyro
#

oh I know, just laying out the design

#

we use this at dignio and it works well

green oriole
#

I mean, on the pydis server

#

You could create a custom config that soft redirect to localhost:8000

#

Please don’t add nginx in the container

#

It would make a windows setup even harder

crude gyro
#

not sure why it would affect windows setup at all

#

because you can't get docker working?

green oriole
#

Home edition can’t yeah

crude gyro
#

right okay

#

that's a fair point, I guess

#

we could explore this idea of just having the site itself redirect requests to localhost:8000 when they come in on localhost domains. I wonder how feasible that would be

#

could maybe even set up our nginx config for those localhost domains to automatically redirect https to http

#

that way we'd sort of (but not really) support https

green oriole
#

My point was to add a new nginx config on the pydis server, it should be feasible

crude gyro
#

okay, to do what

green oriole
#

I can try some thing with my dev server if you want

#

To redirect to localhost:8000

#

With same subdomain and request URL

#

But with http I guess

crude gyro
#

hm, yeah, that might work too.

#

and would be by far the easiest

#

does localhost:8000 work right now? or would we need to change ALLOWED_HOSTS ?

green oriole
#

We would need to add it yeah

crude gyro
#

okay, I like this idea. good suggestion, @green oriole

#

I'll open an issue on the salt repo.

hardy gorge
#

Okay, but localhost doesn't work with subdomains without modifying hosts

crude gyro
#

that's true. okay. how do we work around that

hardy gorge
#

would such a redirection keep the original subdomain headers intact?

#

i.e., if both api.local.pydis and local.pydis redirect to localhost, would django-hosts still work?

crude gyro
#

no, it wouldn't.

#

it needs to be able to parse out a subdomain

#

so that's a valid point

#

might be a showstopper for this suggestion

#

but

#

okay I have one idea

hardy gorge
#

We could rewrite our entire routing for this to work, but that's not something we should change without serious consideration. It should be easy to either just ditch the subdomains or have them redirect to the main domain with a subpath (api.pydis -> pydis/api)

crude gyro
#

right, we had the same idea there

#

I think we could do both?

#

I actually.. hmm

hardy gorge
#

It would mean we wouldn't have to worry about cross-subdomain login cookies

crude gyro
#

if we ditched subdomains altogether, you mean?

hardy gorge
#

or have them as simple redirects

crude gyro
#

we wouldn't need wildcard SSL certs either..

#

well, we would for redirects

hardy gorge
#

We may want to keep paste.pydis

green oriole
#

api.localhost:8000 works fine

#

I set pydis.dev.<mydomain> as a valid host on my dev server, and api.pydis.dev.<mydomain> is the api endpoint

crude gyro
#

I'm not convinced that's true. it is of course true that Django doesn't care, but I'm not sure an attempt to add a subdomain to localhost would survive if you process it through nginx

green oriole
#

Okay, one second

eternal owl
crude gyro
#

sure

eternal owl
#

someone is already assigned but that was in october

crude gyro
#

I unassigned them

#

want me to assign you?

eternal owl
#

sure, let me comment, I want to try it

#

thank you

crude gyro
#

cool, would be nice to see. This issue is lacking some design, so please start by discussing how this should be designed before attempting it

#

we always start with design.

green oriole
#

The screenshot contains some sensitive informations, mind if I DM you lemon?

eternal owl
#

Yea my very first question is where should it be

crude gyro
#

I've never killed someone for DMing me, @green oriole

eternal owl
#

I mean should it come under the more section?

green oriole
#

Haha okay

crude gyro
#

definitely not under More.

#

that's full enough as it is

eternal owl
#

Do we have a page dedicated to our bots? like all the features of them(I might be blind)

crude gyro
#

I don't think we do, but such a page might not be a bad idea.

eternal owl
#

cool

crude gyro
#

I imagine we might want a general server information page as the parent of that bot page, too

#

but anyway, just make the tags page independent for now

#

and we can worry about where to link to it from later on

eternal owl
#

okay

#

where to make tag page?

crude gyro
eternal owl
#

okay cool

#

should i add .vscode to gitignore while I work on this?

#

nvm I will use sublime text for this

molten bough
#

A compliant network stack should always return 127.0.0.1 for <whatever>.localhost

#

I don't see why nginx would be unhappy with that

hardy gorge
#

@eternal owl I've added the ignore to the site's master

#

So, if you update/rebase your local branch, you don't have to use a different editor than the one you're used to

eternal owl
#

okay

#

path('pages/', include('wiki.urls')),
i cant find any wiki folder

#

how does it work

hardy gorge
#

The wiki articles are stored in the database, so your local installation will not have any content in the wiki

eternal owl
#

okay

hardy gorge
#

url paths in Django do not represent actual directories; it defines how urls are parsed and routed to views.

eternal owl
#

I need a bit of education of the project structure, its so diff from django-admin startproject xyz

molten bough
#

It's not that different

hardy gorge
#

In this case, we include all the urls of the wiki after /pages/ on the url

molten bough
#

They basically ended up consolidating some stuff

eternal owl
#

so if I want to write a view for the pages/tags, where should I

hardy gorge
#

We use a central directory for templates and static files

molten bough
#

The same place you usually would - in the app

eternal owl
#

home app?

molten bough
#

Depends on the view you're writing

#

What're you up to?

eternal owl
molten bough
#

That probably belongs in home, I guess, yeah

cold moon
eternal owl
#

it should be approved

cold moon
#

Oh, approved missing?

molten bough
#

Well, I guess you need to start at the bottom and work up

#

Why don't you leave a comment on the PR and ask to take it over?

cold moon
#

ok

eternal owl
#

hey @molten bough, you got some time now?

molten bough
#

What do you need, Ice?

eternal owl
#

some more info on how the site works 😅

molten bough
#

Well, I can try, haha

eternal owl
#

okay

molten bough
#

I have updates installing but I can start IDEA after that

eternal owl
#

so from where are the wiki templates rendered

#

i mean there has to be a view right

molten bough
#

They're rendered by django-wiki

crude gyro
#

there is no view.

molten bough
#

yup

crude gyro
#

we change them on the site itself

molten bough
#

well there is a view, but it's not one of ours

eternal owl
#

so its django built in?

molten bough
#

No, it's a third party app

eternal owl
#

okay

molten bough
#

If you want to add wiki pages, you'll have to use the django admin

eternal owl
#

so now i need to make a new url end point

#

ooh

molten bough
#

What's the plan, in your mind?

#

Are you planning to have it under pages/?

eternal owl
#

yea

#

pages/tags/

molten bough
#

Yeah, so you could add that before the current pages/ url route in the home app

crude gyro
#

yeah, the tags page does need a normal view

clever wraith
#

ok how will it get updated ?
using a connection between bot and website
we alredy have an API in @stable mountain afaik

molten bough
#

that's already done

#

this is a public view page

#

You almost certainly don't want to render a wiki view, Ice

#

I suggest creating a new template for this

#

You can always model it on the wiki one I wrote

hardy gorge
#

@clever wraith Tags are stored in the database

eternal owl
#

where is the wiki one

clever wraith
#

no he purposed it contain commands and description of each bot .

molten bough
#

templates/wiki/article.html

clever wraith
#

how can we make a connection between bot and web

molten bough
#

you might need to unravel things a little, there's a lot of template inheritance going on

#

@clever wraith this is just a tags page

clever wraith
#

tags as
WIP
priority level . kind kf things ?

#

of*

hardy gorge
#

No, the tags we have for our bot

#

!tags

#

Things like

#

!ask

stable mountainBOT
#
ask

Asking good questions will yield a much higher chance of a quick response:

• Don't ask to ask your question, just go ahead and tell us your problem.
• Don't ask if anyone is knowledgeable in some area, filtering serves no purpose.
• Try to solve the problem on your own first, we're not going to write code for you.
• Show us the code you've tried and any errors or unexpected results it's giving.
• Be patient while we're helping you.

You can find a much more detailed explanation on our website.

clever wraith
#

ahhh got it

#

why i can control it if it was called by @hardy gorge

eternal owl
#

so step 1 is to write the url endpoint @molten bough ?

molten bough
#

Well, I usually start with the template

#

but it's really up to you

#

Create the view, add the URL route, and then get hacking

clever wraith
#

did i just found a bug ?

eternal owl
#

where to create the view

hardy gorge
#

Since tags are just stored in the database, a ListView and DetailView class with appropriate templates should basically provide the backbone.

molten bough
#

Not a bug

#

Under the home app

hardy gorge
#

Then you can route the url to those view classes and it would work fine

eternal owl
#

okay I will make a new view in the apps/home/views/home.py?

molten bough
#

No

#

Make a file

#

Or rather, make a tags package with two files

clever wraith
#

there must be a reactor == ctx.author check ?

molten bough
#

Since you need two views

#

@clever wraith It was intentional back when I worked on that part of the bot

hardy gorge
#

@clever wraith Why? It's quite handy to allow others to browse paginations as well.

#

We use that all the time with infractions

eternal owl
#

what is package

clever wraith
#

but one person can be eivl and press the delete function

molten bough
#

pydis_site.apps.home.views.tags - that's a package

#

so what?

hardy gorge
#

if people get obnoxious, they'll get an infraction

clever wraith
#

function here means button*

eternal owl
#

I made the folder and now I should create a file called views.py and start writing my view

hardy gorge
#

Anyway, the view classes are probably just going to be four lines or so

molten bough
#

No, again, make two files, one for each view

hardy gorge
#

They could also live in one file, as far as I'm concerned

clever wraith
#

in class you say

eternal owl
#

why do I need 2files for 2 views

molten bough
#

That wouldn't be too bad either, yeah

eternal owl
#

I need a ListView and detailView

molten bough
#

I guess I'm used to the conventions other languages impose, the one file one class deal

eternal owl
#

okay

#

what will be the naming convention

molten bough
#

If they're short then one file is probably fine

#

You could look at the other views for that

eternal owl
#

okay

#

it will be list.py and detail.py i guess

molten bough
#

That sounds fine

eternal owl
#

okay cool

cold moon
#

I hope PR #306 author check this PR. I just can't mention him

eternal owl
#

something is wrong with my lappy, it hung for 10s and then discord and mozilla just closed, lol

molten bough
#

Out of RAM?

eternal owl
#

8gigs

#

should be enough pithink

#

how can i check my db

molten bough
#

Check in what sense?

eternal owl
#

I want to see the tags in the db

molten bough
#

You can use the django admin

hardy gorge
#

@cold moon It was their first contribution to PyDis and it seems they were only active on GH during Hacktober. It's so stale I wouldn't mind someone else taking over.

eternal owl
#

okay

cold moon
#

ok, thanks

eternal owl
#

btw can i see the db from psql?

hardy gorge
#

yes

#

but, there probably aren't any tags in your database if you haven't added any yourself

eternal owl
#

whats the db name

molten bough
#

pysite, I think

eternal owl
#

docker will create db right?

molten bough
#

Yup

eternal owl
molten bough
#

Is that a local postgres server?

eternal owl
#

yea i think so

molten bough
#

It runs its own in Docker

eternal owl
#

oh

molten bough
#

It's exposed on port 7777

#

local only

eternal owl
#

okay

molten bough
#

and yep, it's pysite

#

user and pass are also pysite

eternal owl
#

okay

hardy gorge
#

You can also docker exec into psql within the container

#

something like

molten bough
#

Oh yeah

hardy gorge
#
$ docker exec -it site_postgres_1 psql -U pysite
eternal owl
#

okay

hardy gorge
#

depending on the name of the container, obviously

molten bough
#

it should be docker-compose exec postgres psql -U pysite

#

or something like that

eternal owl
#

im in \o/

#

had to use sudo tho

hardy gorge
#

docker exec should work

#

oh

#

you're not in the docker group?

eternal owl
#

not yet

cold moon
#

But should I use current OMDB, or add new env var for TMDB?

eternal owl
#

TMDB it is

#

there was an issue which said to change to tmdb from omdb

molten bough
#

maybe check that

eternal owl
molten bough
#

Did you wait for it to finish starting?

eternal owl
#

it says Watching for file changes with StatReloader in terminal

molten bough
#

Sounds right

#

Are you using the right port?

#

Did you add that domain to your hosts file?

eternal owl
#

it was working fine before

molten bough
#

local machine, port 8000

#

check your hosts entry

hardy gorge
#

What did you change between a working state and a non-working state?

#

Alternatively, restart your devserver and see if it starts normally

eternal owl
#

i changed the urls.py file, created new files, edited those

#

okay

#

I had a typo in an import statement

#

i fixed it and now it works

molten bough
#

ah, yeah, that'd do it

eternal owl
#

I got the views working now, time to make the web page pretty

molten bough
#

\o/

eternal owl
#

\o/

#

btw If im using docker, I dont have to setup env vars right?

molten bough
#

You shouldn't need to, yeah

eternal owl
#

but I get error that secret key is missing

#

wait

#

how to run docker and python manage.py shell together

molten bough
#

using docker-compose exec service_name command

eternal owl
#

what can be service name

molten bough
#

Whatever is in the compose file

#

Looks like web

eternal owl
#

okay

#

thanks

#

!tags

#

is there a way I can get all the tags from pydis database?

#

I not sure what do give in the embed section other than description

molten bough
#

It's an embed object, the same as Discord would use normally, I think

eternal owl
#

oohk

#

Tag embed must contain one of the fields {'video', 'image', 'title', 'fields', 'description'}.
how will the fields dict look

hardy gorge
#

You can also add tags using your bot, but this is an example of an actual tag:

#
{"description": "**Off-topic channels**\n\nThere are three off-topic channels:\n\u2022 [#ot0-psvm’s-eternal-disapproval](/guild/267624335836053506/channel/291284109232308226/) \n\u2022 [#ot1-perplexing-regexing](/guild/267624335836053506/channel/463035241142026251/) \n\u2022 [#ot2-never-nester’s-nightmare](/guild/267624335836053506/channel/463035268514185226/) \n\nTheir names change randomly every 24 hours, but you can always find them under the `OFF-TOPIC/GENERAL` category in the channel list."}
eternal owl
#

okay

#

do some tags have fields also?

#

or should I only display description

molten bough
#

I think all tags right now only have description

#

from what I've seen anyway

#

it's just there in case they want to add tags with other fields

#

but for the sake of future-proofing you should handle all of them

eternal owl
#

okay, but I will need an example with all those values

#

example with {'video', 'image', 'title', 'fields', 'description'}

molten bough
#

Check the Discord API docs

#

That's what I recommend

eternal owl
#

okay

hardy gorge
#

These are just the normal fields from the json/dict respresetnation of a Discord embed

#

The current tag command only adds a description field, but that may change in the future

eternal owl
#

for some reason my <h1> , <ul> and <li> are not showing up

molten bough
#

Need to be in a content div

eternal owl
#

oh

#

okay @hardy gorge

eternal owl
rocky bloom
#

aren’t fields just nested dictionaries ?

eternal owl
#

it says array of embed field objects so it probably a list of dicts

rocky bloom
#

that makes sense

eternal owl
#

how is it

woeful thorn
#

Seems like a reasonable start, should be alphabetized though

eternal owl
#

okay

cold moon
#

How about adding amount of movies to .movie <genre> (I'll use subcommands)? Default should 5, max 20 and min 1

#

Seasonalbot

eternal owl
#

or maybe get 5 always and paginate them?

#

I think you can do it without subcommands

cold moon
#

I can do, but managing and code style I think is better with subcommands

green oriole
#

You just use a database query to get all the tags right?

#

Because you directly call .sort_by on it to sort them

cold moon
#

Just there is much genres

#

and I mean this will paginate 1-20 movies

eternal owl
#

I think I should make that hr darker

hardy gorge
#

The spacing on the top are breadcrumps using a nav tag with the breadcrumb css class

#

It contains an ul of the breadcrumb items

#

Example from a random wiki page:

<nav class="breadcrumb is-pulled-left" aria-label="breadcrumbs">
        <ul>
          <li>
              <a href="//pythondiscord.com/pages/">Index</a>
          </li>
          <li class="is-active">
            <a href="//pythondiscord.com/pages/">Code Jams</a>
          </li>
        </ul>
      </nav>
#

@eternal owl Just a few things upfront, the "official" command to display tags is !tags <name>; in general, using !<name> will also work, but only if we don't have a command with the same name/alias.

#

The reason is that the individual tags are not commands, but whenever someone issues a non-existing command, we check if we have a tag by that name; if so, we return that instead.

#

So, !<tagname> may not always work (although we should probably prevent such shadowing)

mellow hare
#

Do we currently have any instances of conflicts?

hardy gorge
#

I don't think so

mellow hare
#

Yeah I can't think of any

eternal owl
#

okay, thanks @hardy gorge

#

I need some feedback on those pages guys

#

The 2 pics are above

cold moon
eternal owl
#

confirming complete embed json:

{
    "title": "This is a title.",
    "description": "This is a descriptin.",
    "image":{
        "url": "https://somepic.jpg",
        "proxy_url": "some_url",
        "height": 100,
        "width": 100
    },
    "fields":[
        {
            "name": "Some name",
            "value": "xyz",
        },
        {...},
        {...}
    ]
}```
( I dint add video as its almost similar to image)
#

@hardy gorge

hardy gorge
#

I'm not sure, I'm not home. (I'm at the hairdresser actually)

eternal owl
#

oh okay

hardy gorge
#

Looks right

eternal owl
#

okay cool

hardy gorge
#

Aren't there more options, like author and the like?

eternal owl
#

yep there are plenty

hardy gorge
#

In principle, the database can store everything

#

We currently don't use everything, though.

#

Maybe an author field would make sense in the future for keeping track of who wrote what

eternal owl
#

okay cool

hardy gorge
#

Haven't thought it through yet.

#

Anyway, that's just to indicate that future updates may add features.

#

Not every field has to be rendered on our website; it should just not break it if we decide to store another field.

eternal owl
#
all_keys = {
        'title', 'type', 'description', 'url', 'timestamp',
        'color', 'footer', 'image', 'thumbnail', 'video',
        'provider', 'author', 'fields'
    }
one_required_of = {'description', 'fields', 'image', 'title', 'video'}```
i just found this in `api/models/bot/tag.py`
#

I think I will impliment for all_keys

#

shouldn't be hard

#

lemme know if there are any format changes(like which should be list and which should be dict n stuff)

rocky bloom
#

i might look into unit tests and help out with them

#

for bot

eternal owl
#

cool

rocky bloom
#

after like half a year of never talking/participating here i feel like i need to do something 😂

hardy gorge
#

There are going to be some small changes to our helpers once we upgrade to 3.8

#

Soonish

rocky bloom
#

soon™️

hardy gorge
#

That's one of the area's in which 3.8 is a significant update: mocks for async stuff

rocky bloom
#

so shall i leave it until 3.8 or start it anyway

#

will much change besides the mock classes themselves?

eternal owl
#

my format passed the validator

hardy gorge
#

@rocky bloom No, the changes will be minimal

rocky bloom
#

ah so i'll start learning and doing some

eternal owl
#

I need to learn testing as well pithink

#

I found a bug

#

in django admin interface, when I am trying to update/edit a tags object, it insted keeps the old one and makes a new one with the updated/edited details

#

So its kinda impossible to edit an object without creating a new one and then deleting the old one.

hardy gorge
#

It doesn't do that for me

#

It doesn't do that on our actual website as well

#

So, I can't replicate what you found

eternal owl
#

Let me share vid

#

damn this emoji is soo good pithink

hardy gorge
#

Okay, I only edited the actual tag, not the title

eternal owl
#

yea the title edit is bugged

clever wraith
#

Since i no see activity , I am pulling a PR with my purposal in mind

woeful thorn
#

What does that mean?

clever wraith
#

wait a sec , let me link the issue it is reffered with

woeful thorn
#

So rather than being patient, you're just going to go ahead and do what you want?

#

You're free to do that, but keep in mind that it might end up being a waste of time if what you intend to do doesn't align with what ends up being planned

clever wraith
#

its ok

hardy gorge
#

@eternal owl It's not really a bug in that the behavior is easily explained: The title is apparently the primary key of that model.

clever wraith
#

I did it with creating bookmark command itself, and it got passed cuz it was a good idea. going same with this one

hardy gorge
#

So, if you "change" it, you literally saving something with a different pk

eternal owl
#

ooh

#

gotcha

woeful thorn
#

I think you have a very different interpretation of history, the last PR you just tossed in without discussion underwent a pretty significant rewrite before it was merged

eternal owl
#

Is there any bulma class to add top padding?

hardy gorge
#

Top padding for what part?

eternal owl
clever wraith
#

don't mock me atleast ;-;

hardy gorge
#

Bulma assumes you're placing your content in the appropriate container classes; that should sort out the spacing for you

eternal owl
#

here, need some space at the top

#

I am currently using content and container class

hardy gorge
#

I think you could look at the wiki pages to see how it's done there

eternal owl
#

okay

hardy gorge
#

They have a similar lay-out but with the desired spacing

eternal owl
#

btw the tags /thing is not working

hardy gorge
#

Did you use breadcrumbs in the appropriate nav container?

eternal owl
#

there is no space after / and the link is not clickable

#

I used ur code

#
<div class="container">
        <nav class="breadcrumb is-pulled-left" aria-label="breadcrumbs">
            <ul>
                <li>
                    <a href="{% url 'list_tags' %}">Tags</a>
                </li>
                <li class="is-active">{{ object.title }}</li>
            </ul>
        </nav>
    </div>```
woeful thorn
#

@clever wraith I'm not mocking you. My point is that it saves everybody time and effort if you start from a solid foundation instead of charging ahead before the task is appropriately laid out

hardy gorge
#

I don't see a url in there, @eternal owl

#

just a title

eternal owl
#

% url 'list_tags' %

#

the line above that

clever wraith
#

can we then point our attention to that issue , cuz i wanna complete it, cuz people asked for it today , and maybe i will not be available day after tomorrow

hardy gorge
#

hmm, does that actually resolve properly? Shouldn;t it be something like home:list_tags?

#

How does the url render?

eternal owl
#

we can specify without app name also

#

<a href="{% url 'detail_tags' title=obj.title %}">{{ obj.title }}</a>
this works in the tags listing page

#

i just use detail_tags insted of home:detail_tags

hardy gorge
#

What's in your urls.py for home?

clever wraith
#

@stable mountain not working

stable mountainBOT
#

Can I send you a private message?

No. We do not provide one-on-one tutoring - you can hire someone locally if you really need that. We also prefer that questions are answered in a public channel as it means that everyone else present is able to learn from them. If you're working with code that you are unable to disclose for any reason, you should try to make your question more general and write a separate, small piece of code to illustrate your problem.

clever wraith
#

ok it slowed down

eternal owl
#
path('pages/tags', TagsListView.as_view(), name="list_tags"),
path('pages/tags/<str:title>', TagsDetailView.as_view(), name="detail_tags"),```
these are the new urls I added
hardy gorge
#

@clever wraith in what way?

clever wraith
#

It didn't responded for over 5 seconds

clever wraith
#

what is the d.py version of @dusky shore ?

clever wraith
#

any idea why its still 1.2.5 ?

woeful thorn
#

Because that's what it was when we locked the dependencies, and 1.3.1 hasn't been tested yet

clever wraith
#

so i can't use some of the thing from docs '='

woeful thorn
#

Like what?

clever wraith
#

like clear()

woeful thorn
#

Reaction.remove() still exists

clever wraith
#

have to loop in that

woeful thorn
#

Ok

glass pecan
#

assuming you're not in need of leaving a reaction behind

cold moon
woeful thorn
#

Probably not, I don't think the user needs the "I've sent this" feedback for all eternity

glass pecan
#

double newline probably isn't necessary @cold moon

#

also is this paginated

cold moon
#

Ye, this is paginated

glass pecan
#

did you see if the markdown bug is still present

cold moon
#

What?

glass pecan
#

markdown in embeds used to not clear on embed edits

#

i have not heard that being fixed yet

#

so it would result in weird double text or leftovers

cold moon
#

For me everything works correctly

glass pecan
#

at least until you visited another channel and came back

#

righto then, that's a good sign. it's pretty obvious when it happens, so should be fine

eternal owl
glass pecan
#

whats this

eternal owl
#

tags detail page

glass pecan
#

is it just me or does this look like a wiki page though

cold moon
#

This looks nice

eternal owl
#

thanks @cold moon

molten bough
#

The link in the breadcrumb probably shouldn't say Bulma

#

haha

eternal owl
#

oh yea

#

hows the UI, g

#
{
    "url":"https://github.com/RohanJnr",
    "image":{
        "url":"https://assets.pokemon.com/assets//cms2-en-uk/img/misc/_tiles/pokemon-day/2020/pokemon-day-2020-169-en.jpg"
    },
    "author":{
        "name":"Iceman"
    },
    "fields":[
        {
            "name":"Field One",
            "value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ac rhoncus velit."
        },
        {
            "name":"Field Two",
            "value":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ac rhoncus velit."
        }
    ],
    "footer":{
        "text":"footer text",
        "icon_url":"https://cdn.discordapp.com/emojis/638729835442602003.png?v=1"
    },
    "description":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus ac rhoncus velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce nisi dui, faucibus sit amet egestas eu, imperdiet vel lectus. Aliquam vulputate volutpat porta. Interdum et malesuada fames ac ante ipsum primis in faucibus."
}```
i am using this for Testing
#

I have not added all the fields tho

#

like video, time, etc

glass pecan
#

@eternal owl command and author details at the top i'd probably use bulma tags.
The tag content itself can either be as you've got it, or you could choose to adjust it to be embed-esque so it's familiar to the discord view.

eternal owl
#

what is embed-esque

glass pecan
#

similar to the style of the discord embeds

eternal owl
#

where can I find it

#

is it a bulma thing?

glass pecan
#

no

#

if it's too complex a thought, don't worry about it, was just a thoughty

eternal owl
#

So its like a discord embed stype

#

its not hard i guess

#

lemme try

molten bough
#

I wrote some CSS that kind of does that with the messages framework

eternal owl
#

where can i find discord embed background color

#

where can I find that css g

molten bough
#

Probably in the static folder

#

I don't think I have it cloned here

clever wraith
molten bough
#

We're not talking about the bot.

clever wraith
#

ohhh

#

i was working on the bot so first thing popped was that only

molten bough
#

Yep, it's in static/css/base/notification.css

#

Do not attempt to make a messages div

#

that won't do what you want

#

but this should give you an idea of how I gave it that signature left border

eternal owl
#

I need figure out better colours

molten bough
#

well you'd still need to make it.. look like an embed

#

also, the site doesn't have a dark theme

#

use the light theme embeds

#

I wrote CSS for that too

eternal owl
#

wait

#

arent embeds dark?

molten bough
#

Not in the light theme

eternal owl
#

ohh there exists a light theme, right

molten bough
#

oh, iceland

#

haha

eternal owl
#

lol

glass pecan
#

yes pls use lighttheme embed style lol

eternal owl
#

will do

#

But Im done for today, I will do the rest tmw

glass pecan
#

maybe down the line we'll add a theme switcher to the site, but it's super low priority. for now better to be consistent

#

and sure thing

eternal owl
#

I will look into ur css, g

#

but tmw

molten bough
#

the CSS I wrote for that currently requires is-dark bot set on the notifications if you want dark theme

#

might be best to change that

eternal owl
#

night

molten bough
#

so you can just set it on the body or something, dark-theme or whatever

#

Later, rohan

glass pecan
#

@clever wraith can you please fix your PR. Your description doesn't describe anything, it's just basic commentary and your reasoning is useless

#

If you want to keep contributing, I hope to see a little effort in what you bring to the table please

#

Communication is a very important aspect of contributing, and it doesn't feel like you're really caring much about it

clever wraith
#

wait i think i need to put some pressure on my mind

#

ok i want help in reasoning

molten bough
#

What PR is this?

clever wraith
molten bough
#

lol, "people requested this"

#

didn't you request this?

glass pecan
#

I also edited out the top section that's meant to be part of the template defaults.

clever wraith
#

ahh man i am so bad at this job

molten bough
#

The reasoning is the "why"

#

so like, why is this feature useful?

#

what does it bring to the table?

#

the description doesn't describe what the PR is, either

clever wraith
#
## Description
Can't belive the 338 just needed 
    if target_message is None:
        target_message = ctx.message
otherwise i tried to include it previously with a bug related update
but it needed some planning and improvement so we doing it now 
it basically create a temp list of the people who alredy got the bookmark , 
when someone react with pin emoji it check if user in that list if not it sends the 
bookmark to prevent spamming. and after 5 minutes it removes all the reaction.


## Reasoning
People requested this
Also it provide less keyboard typing to do same thing which can be done like this 
#

what about this one ?

#

@glass pecan you know thats the only thing i suck at.
I think its better now

glass pecan
#

what's the only thing you suck at?

#

communication?

clever wraith
#

yeah

#

ok you are typing for so long

glass pecan
#

Communication covers things like these issue and pr tickets, your commit messages, planning features, being a constructive part of discussions rather than just demanding things, listening to feedback from others and actually considering them when moving forward especially when it's from people who have been working on these projects for a fair amount of time.

#

If you think it's "the only thing you suck at" and it's fine to overlook, you're greatly mistaken

#

It's an absolutely massive part of contributing, impacts almost every single stage of things and truly results in extreme frustration when you're not willing to improve

#

And honestly, I've really not seen much of an effort from you to improve in these aspects yet, so take these words to heart because if you don't start making more of an effort, I'm not really going to let it keep going as it is

clever wraith
#

ok got it

#

is it ok now ?

#

or more ?

cold moon
#

Should scarymovie and romancemovie stay as different commands or should they 1 movie call to new movies command?

glass pecan
#

@clever wraith ill read it soon, i'm writing my own tickets atm

#

@cold moon it's a good consideration to merge it, so your question is good

#

would you feel it makes more sense to put each type under a parent command of movies instead

#

like movies scary and movies romance for example

cold moon
#

This is what I'm making, just these (scary and romancemovie) would ctx.invoke, so basically like alias of like .movies horror

glass pecan
#

the purpose of the alias is backward in that case though

#

the alias is mostly for direct invoking things that would be hidden in subcommands instead

#

such as some of our site commands

#

!help site

stable mountainBOT
#
Command Help

!site
Can also use: s

Commands for getting info about our website.

Subcommands:
faq
Info about the site's FAQ page.
help
Info about the site's Getting Help page.
home
Info about the website itself.
resources
Info about the site's Resources page.
rules [rules...]
Provides a link to all rules or, if specified, displays specific rule(s).
tools
Info about the site's Tools page.

glass pecan
#

you'll see !site rules often used as !rules instead

#

in your case, both your commands are already top levels

cold moon
#

yeah, then should I remove these cogs after my work is done?

glass pecan
#

in what sense?

#

sorry, just don't know if you're deciding on one way or the other atm regarding command structure

cold moon
#

I mean these RomanceMovieFinder and ScaryMovie. When .movies command is added these commands is available there too. Just they are available always.

mellow hare
#

Are they not all under the same movie cog?

woeful thorn
#

No

mellow hare
#

That's my mistake then

glass pecan
#

feels like they kinda should be though eh

#

is the code similar

woeful thorn
#

Yes, that's the point of this PR

glass pecan
#

then if you're combining them into one @cold moon, you'll defs want to change their commands

#

that way they both share the parent command group of movie

#

feels the most sensible option to me

mellow hare
#

Agreed

#

Also means you don't have to worry about unloading certain cogs

#

You just have the one that's always loaded ready to roll

molten bough
#

I'm able to edit other people's issues/PRs on GH, is that intentional or just a limitation of their permissions system?

glass pecan
#

it's a limitation of GH perms

molten bough
#

Fair 'nuff

glass pecan
#

contribs can edit issues

#

same deal with labels

molten bough
#

I believe the "Closes" line in this PR is formatted incorrectly

#

in AG's PR, I mean

glass pecan
#

GH has a terrible granularity

molten bough
#

it only links one of the issues, not both

glass pecan
#

and yeah it is gdude lol

green oriole
#

Edits is useful to tick boxes on checklists though

molten bough
#

True, Ak

glass pecan
#

but don't edit it, i'd suggest commenting on it if you can gdude

molten bough
#

Okay

glass pecan
#

that way people can make sure they learn through repetition

#

if we do it for them, they might not remember for next time

molten bough
#

Good point

#

I need to read up on that feature tbh, let's see..

#

yep, it is how I thought it was only, no shorthand

glass pecan
#

i seen something new earlier today

molten bough
#

Oh?

glass pecan
#

hang on, still writing my big book

molten bough
#

Haha, okay

#

Material dark Github userstyle is great, by the way

green oriole
#

I did used it, but I removed it because something was off

molten bough
#

A lot of styles don't theme the top bar thing

green oriole
#

I can't remember what though

molten bough
#

this one does though

glass pecan
green oriole
#

Oh yeah, there is little things like this everywhere

molten bough
#

Oh, that's neat

#

I don't see that

#

although I'm not requested reviewer haha

green oriole
#

There is the same for PR merges too

molten bough
glass pecan
#

looks nice

molten bough
#

I wish I could theme windows this way, but it's too risky

glass pecan
#

at the risk of going too far off topic, i'll mention briefly that the idea of theming windows gives me throwbacks to the old Windows transformation packs you could get that fully changed core files and half of the time broke explorer lol

molten bough
#

oh my god yes, I remember that

glass pecan
#

i think i changed XP to Vista UI once just because why not

molten bough
#

I did the same thing too haha

#

I think stardock had a product that did it as well

glass pecan
#

knowing them, it was probably less breaky lol

molten bough
#

oh, windowblinds is still.. maintained

#

impressed

glass pecan
#

the github cli also looks quite nice

#

i might try it out sometime

green oriole
#

Hub?

molten bough
#

I've heard a few good things about it, but I just use PyCharm's stuff

#

or the site

glass pecan
#

i still use git cli a lot

#

diffs and commits are super nice in pycharm though so i do use that

hardy gorge
#

The CLI is still my go-to, but I'm starting to use PyCharm more for git.

cold moon
#

DONE! I'll make PR soon for SeasonalBot .movies command

glass pecan
#

i wish the PR view in pycharm wasn't so hidden though

#

excellent ks, thanks

#

don't forget to lint

#

(you should have precommit installed already tho)

molten bough
#

it has a PR view?

#

well, case in point I guess, haha

glass pecan
molten bough
#

Dang, nice

glass pecan
#

i use it because i can just

#

Right Click -> "Create New Local Branch"

#

even if it's on a fork

clever wraith
#

@molten bough it works fine at my point the closes thing , but still you are better in this so i edited it

glass pecan
#

no it doesn't close both in the original format you had it as

#

only the first one

hardy gorge
#

@glass pecan oh, man, I love you. That's a great feature and I had no idea it existed.

glass pecan
#

does your partner know about this

#

am i becoming a home wrecker

rocky bloom
#

the fact that noone knew about this kinda reinforces the fact it's so hidden 😂

glass pecan
#

it definitely is

#

i can maybe show how bad its hidden

rocky bloom
#

yikes

green oriole
#

Ya see @molten bough what I was saying about features hidden in submenus ^^

wispy quail
#

Hello! I do not mean to come off as impatient, but I'm the author of the #741 PR request- it's a refactor of the information.py cog. I can get this issue with the PR too, but I just want to make sure that it is okay for it to be in the PR 😁
https://github.com/python-discord/bot/issues/744

I know I left a comment on the issue and should wait for a response, but I'm changing everything based on the requested changes on the PR- so I just wanna make sure that I can get this issue with it before the PR is accepted (if all the changes are okay) 😁

glass pecan
#

i must have missed this

#

thank you for bringing it to attention

#

dammit ela

#

beat me to it

#

lol

woeful thorn
#

🙂

#

You got distracted by discord, I got distracted by github

glass pecan
#

i was reading okay

crude gyro
#

@wispy quail yeah, you're good.

glass pecan
#

in general, or just for now

crude gyro
#

both

wispy quail
#

Awesome, thank you very much for the quick response 😁 I'll go ahead and do it up! 😄

long garnet
#

if the name randomizer for the staff lounge were to work as the one for the OT channels, would it be better if it changed a bit more often?

#

like 3 times a day at least

woeful thorn
#

Once a day is fine

crude gyro
#

@clever wraith you closed the valentines PR?

long garnet
#

mmm that's less to worry about anyway

#

and test

clever wraith
#

yes, apologies

crude gyro
#

but. why?

clever wraith
#

I'd rather not go into it if that's ok

crude gyro
#

eh. sure.

clever wraith
#

nothing to do with you or this community

molten bough
#

Feel free to poke me if you need to talk about anything, hax

rocky bloom
#

ok unit testing looks way too difficult for a noob like me 😂 especially knowing me i'd forget something here and there

#

i think i'm just gonna stick to seasonalbot for now

crude gyro
#

unit tests are optional in bot

rocky bloom
#

yeah i know

#

but i wanted to help with the unit tests

#

so i looked into it but it looked too difficult 😂

crude gyro
#

it's easier than it looks

#

Corey has a nice unittest series.

#

you need to know a few basic concepts, like what's a mock? what's coverage? what are some good tools that will help do this? why is it sometimes a good idea to write more than one test for the same piece of code?

#

then you're more or less good to go.

clever wraith
#

with @dusky shore its help section is the default one and doesn't uses paginator .
If someone work on it , should it be similar to @stable mountain help menu ?

eternal owl
clever wraith
#

I know there is a Issue with that

eternal owl
#

it open so you can work on it

clever wraith
#

actually my own bot have a help .
wonder if that looks good to be in @dusky shore

eternal owl
#

you have to use the paginator built for seasonalbot

clever wraith
#

its pretty same

#

no one saw nothing

#

@eternal owl what kind of weird paginator it is

eternal owl
#

It's not weird

#

Even I thought It was but it fairly simple

#

Look at the reddit command for example

clever wraith
#

it uses ImagePaginator , i will use LinePaginator

green oriole
#

Oh yes more lemoji!

rocky bloom
#

YES LEMOJI

eternal owl
#

?

green oriole
eternal owl
#

ooh

eternal owl
hardy gorge
#

You're using is-info

eternal owl
#

yea

hardy gorge
#

Which is a bulma modifier of that color

eternal owl
#
.messages .notification.is-info {
    background-color: #fdfdfd;
    border-left-color: #1c8ad3;  /* Bulma default colour */
    color: #4a4a4a;  /* Bulma default colour */
}```
#

I am using the one in the notification.css

rocky bloom
#

love the pokemon logo

eternal owl
#

btw why isnt there space btw .notification and .is-info

rocky bloom
#

because they're part of the same element