#👾-core-development

1 messages · Page 203 of 1

brazen bone
#

!remind 23m

shut vineBOT
#

Alright @brazen bone, in 23 minutes: …

💡 Did you know you can set your timezone with "!timezone set"?

pine topaz
#

!remind 23m die

shut vineBOT
#

Alright @pine topaz, in 23 minutes: die

limber skiff
#

!remind 23m revive korbo

shut vineBOT
#

Alright @limber skiff, in 23 minutes: revive korbo

💡 Did you know you can set your timezone with "!timezone set"?

glass jasper
#

!remind 24m kill korbo again

shut vineBOT
#

Alright @glass jasper, in 24 minutes: kill korbo again

pine topaz
#

oh egads!

inland fable
#

hii sorry to bother, have you guys already found a fix? i think i found 2 potential fixes no idea which one would be better
basically it used to explicitly pass message as a prop and now it does so by spreading this variable so it's not matching "message:" there, would it be better to make the patch bigger to match "message:" earlier on or to match this spread and attempt to do ?.message and if message doesnt exist it could be handled from _buildPopoverElements i think

#

sorry for my wording

inland fable
austere talon
#

got damn

fallen vale
#

is that automated reviewing?

gritty canyon
#

shig sh

shut vineBOT
#

@brazen bone, <t:1722377393:R>: …

austere talon
gritty canyon
#

AI!

austere talon
#

it definitely is AI

shut vineBOT
#

@pine topaz, <t:1722377416:R>: die

austere talon
fallen vale
pine topaz
#

looks like this is the end for ol' korbo.

shut vineBOT
#

@limber skiff, <t:1722377441:R>: revive korbo

pine topaz
#

oh boy!

#

im saved!

shut vineBOT
#

@glass jasper, <t:1722377489:R>: kill korbo again

pine topaz
#

awww...

charred monolithBOT
austere talon
fallen vale
austere talon
fallen vale
#

im scared

surreal fiber
#

urbandictionary something?

fallen vale
#

@austere talon why did you blur that lol

austere talon
#

cause it's unrelated

surreal fiber
#

so uhh are you aware that last update to visual refresh breaks stuff like message action buttons

limber skiff
#

you mean the message popover api

surreal fiber
#

maybe

limber skiff
#

yep we are

#

reporter said patch failed already

surreal fiber
#

oh I see now (only skimmed chat and missed anything related to it)

limber skiff
#

ngll vencord would not be the same without reporter

#

it's fucking fire

inland fable
#

in case it helps all i did was match /{...(\i)}/ to find all the props and get the message prop there -- the old broken patch was matching "message:" but its now passed via spread operator instead of explicitly so its not matching it anymore

limber skiff
#

ah I see what happened

#

do they still destructure message above?

inland fable
#

yeah

limber skiff
#

okay easy fix

austere talon
#

u forgot to escape .

inland fable
#

oh

austere talon
#

so it's actually matching 3 random characters

inland fable
#

guess i got lucky that didnt break

limber skiff
#
        replacement: {
            // foo && !bar ? createElement(reactionStuffs)... createElement(blah,...makeElement(reply-other))
            match: /\i&&!\i\?\(0,\i\.jsxs?\)\(.{0,200}renderEmojiPicker:.{0,500}\?(\i)\(\{key:"reply-other"(?<=message:(\i).+?)/,
            replace: (m, makeElement, msg) => `...Vencord.Api.MessagePopover._buildPopoverElements(${msg},${makeElement}),${m}`
#

try that

#

let me know if it works

#

I missed a } but doesn't matter

#

that should work in both stable and canary also

inland fable
#

works

limber skiff
#

pr if you want

#

I don't mind the commit being from you

inland fable
#

srry git scares me

dusk blaze
#

learning git is the best thing you could ever do as a programmer

#

yes that includes commands

inland fable
limber skiff
#

I don't mind whoever makes a pr, just someone do and I will merge

charred monolithBOT
inland fable
#

idk how to pr sorry if smth is wrong

charred monolithBOT
frail skyBOT
#
Bad Patches

ShowConnections (had no effect):
ID: 958120
Match: ```
/currentUser:\i,guild:\i,onOpenProfile:.+?})(?=])(?<=user:(\i),bio:null==(\i)?.+?)/


**__ShowHiddenThings (found no module):__**
ID: `-`
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName
Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ShowConnections (had no effect):
ID: 958120
Match: ```
/currentUser:\i,guild:\i,onOpenProfile:.+?})(?=])(?<=user:(\i),bio:null==(\i)?.+?)/


**__ShowHiddenThings (found no module):__**
ID: `-`
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName
Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

outdated pr 😔

charred monolithBOT
#

This is mainly a change for Vesktop users as the menu you're referencing does not exist. What this does is allow users to switch the "Filter List" to a blacklist so duplicate RPC detection can be blocked.
image
In this image you can see that genshin is detected as a "process" and via ipc. IPC is when the game itself adds rpc support and process is when discord scans the running processes and sees the game ru...

austere talon
limber skiff
#

It is

#

isn't that from the pr you just merged?

#

yeah it is

frail skyBOT
#
Bad Patches

ShowConnections (had no effect):
ID: 958120
Match: ```
/currentUser:\i,guild:\i,onOpenProfile:.+?})(?=])(?<=user:(\i),bio:null==(\i)?.+?)/


**__ShowHiddenThings (found no module):__**
ID: `-`
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName
Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ShowConnections (had no effect):
ID: 958120
Match: ```
/currentUser:\i,guild:\i,onOpenProfile:.+?})(?=])(?<=user:(\i),bio:null==(\i)?.+?)/


**__BetterUploadButton (found no module):__**
ID: `-`
Match: ```
Messages.CHAT_ATTACH_UPLOAD_OR_INVITE

ShowHiddenThings (found no module):
ID: -
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

austere talon
#

oh lol

#

@rugged spire fix when

#

we need to add automatic pr testing somehow

#

but it's not possible safely 😭

#

maybe manual trigger

nimble plaza
#

make the workflow require manual runningh

#

yea

austere talon
#

well anyway

#

can u push to main nuckyz

#

just the dev changes

#

my pc already off

#

u can fix the broken stuff first if u want but eh it's whatever

#

can fix it another time

glass jasper
# frail sky

White name is gonna complain. If an update that doesn’t fix these gets pushed.

austere talon
#

the showhiddenthings is new

#

so nothing is broken

#

xd

glass jasper
#

i’m just saying if they fill support saying “ I just updated, but I still can’t see hidden things”

#

or something

charred monolithBOT
limber skiff
#

going to travel friday so that's when I will be with it again

austere talon
#
e_ = ["en-US", "en-GB"].includes(em) ? H.Z.Messages.CHAT_ATTACH_PLUS_BUTTON_A11Y_LABEL : H.Z.Messages.MORE_OPTIONS
#

wtf is discord cooking

charred monolithBOT
frail skyBOT
#
Bad Patches

ShowHiddenThings (found no module):
ID: -
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ShowHiddenThings (found no module):
ID: -
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

charred monolithBOT
rugged spire
#

yes

limber skiff
#

actually your pr was merged

#

but it was broken lol

rugged spire
#

yes I just noticed

rugged spire
#

Time to debug it blobhuskcozy

austere talon
#

I looked into it earlier for a minute but it wasn't trivial so I didn't bother

#

they changed the logic

#

and I didn't know what exactly you were doing with the patch

rugged spire
#

basically just stealing variables from the normal role list mapper

#

ok after looking at my original screenshot of what I was doing, it turns out they just bombed one line

#

@austere talon do you recommend using a regex find and matching multiple unique Messages strings instead of these attributes?

limber skiff
#

avoid regex find

#

only use if it's the last option

rugged spire
#

thought so shiddohwell

#

i will admit my original screenshot of what the patch does was kinda blehhhhh

austere talon
#

there's another module that has tooltipContentClassname right after that aria label

#

first tooltipClassname then tooltipContentClassname

#

I was looking at that

rugged spire
#

i would assume that code is for this

#

guhhhh

charred monolithBOT
rugged spire
charred monolithBOT
#

this is kinda confusing for users cause they will have no clue why it's missing

    service: {
        description: IS_WEB ? "Translation service (Not supported on Web!)" : "Translation service",
        type: OptionType.SELECT,
        disabled: () => IS_WEB,
        options: [
            { label: "Google Translate", value: "google", default: true },
            { label: "DeepL Free", value: "deepl" },
            { label: "DeepL Pro", value: "deepl-pro" }
        ]
...
jagged cloak
#

SHIGGYBOT

rugged spire
#

shiggybot is cool but when venniebot

austere talon
heavy bloom
austere talon
#

yes

#

nodejs has fetch inbuilt

heavy bloom
#

neat. i haven't kept up with electron in a long while

heavy bloom
# austere talon yes

unless i'm doing something wrong, it's just returning {} everytime haha. doesn't matter what i fetch

austere talon
heavy bloom
# austere talon show code

i just have this within my native function

const res = await fetch(url, {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "Authorization": `DeepL-Auth-Key ${apiKey}`
    },
    body: payload
});

res is just {}. this is the same if i just do a random GET request, too.

austere talon
#

body: JSON.stringify(payload)

heavy bloom
#

it's already stringified before passed into native function

#

its typeof string already

austere talon
#

oh

#

are you returning res

#
return res.json()
heavy bloom
#

i got it

#

you can't return an entire Response object NODDERS

austere talon
#

because it's a class

#

and classes cant be serialised

#

you can only send serialisable stuff via ipc

heavy bloom
#

i was only doing it for debugging so i could get the status code since logging doesn't seemingly work in native functions

austere talon
#

it does

#

but it goes to the terminal

heavy bloom
#

right

#

thank you

charred monolithBOT
opaque silo
gritty canyon
#

bro forgot to remove themselves from the devs constant??!

gritty canyon
#

ok.

fallen vale
#

./s

gritty canyon
#

lmao

#

but honestly they are right, discord does show "No Mutual (x)"

fallen vale
charred monolithBOT
opaque silo
# charred monolith

WHAT THE FUCK I MADE A REVIEW FOR THIS SHIT A WEEK AGO AND ITS ON PENDING HELLO GITHUB WHAT IS THIS

#

am I insane

long stream
#

pending means it's still a draft

opaque silo
#

dropping a bomb on github ux

#

I pressed the comment button it should comment!!!

long stream
#

you have to press "review changes" at the top for it to actually send the reviews

long stream
opaque silo
#

grrrr

opaque silo
gritty canyon
limber skiff
#

should we rename findByProps -> findByEntries?

#

that would match Object.entries and I also don't really like how findByKeys sound

austere talon
#

meh

#

it's fine I think

limber skiff
#

ig

brazen bone
#

It matches getOwnProperty and all that

limber skiff
#

findByPropsAndExtract -> findProp?

limber skiff
#

I forgot those were called properties there

charred monolithBOT
limber skiff
still wasp
#

Break a ton of unofficial plugins

limber skiff
#

you dont know about my branch then lol

austere talon
limber skiff
austere talon
limber skiff
#

and even then I'm still keeping backwards compatibility

austere talon
#

anyway in case of change the old stuff would be left in for a while as deprecated

#

as transition period

limber skiff
#

yep

austere talon
#

(if plausibly possible)

limber skiff
#

that's what I'm doing already

#

speaking of that I need to re add top level destructuring for backwards compatibility

#

temporarily

verbal pumice
#

tf

#

why change a really important part more or less because you feel like it

limber skiff
#

?

#

that is not the reason

jagged cloak
#

i mean that was talked about a while ago anyway so just do it

dapper crest
#

The patch in Experiments that makes the Favourites Server experiment allow favouriting DMs and threads is seemingly broken
I tested the patch and it looks like it should work, but if you set a breakpoint where it should be injecting, it isn't applying

limber skiff
#

I remember I fixed that one

#

are you sure it's not applying

#

it changes a value to true or false I don't remember which so it's easy to miss it

dapper crest
#

manually changing it to false in the debugger fixes functionality

frail skyBOT
#
Bad Patches

ShowHiddenThings (found no module):
ID: -
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

okay then it's maybe a duplicate find

frail skyBOT
#
Bad Patches

ShowHiddenThings (found no module):
ID: -
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

limber skiff
#

and check if the find has more than one result

dapper crest
limber skiff
#

search in the devtools

dapper crest
dapper crest
#

even after doing loadLazyChunks()

limber skiff
#

Vencord.plugins.patches (iirc)

#

does it include that patch

#

might be Vencord.Plugins I'm not sure

dapper crest
#

which is odd because I have experiments enabled

limber skiff
#

where is the patch going then lmao

dapper crest
#

¯_(ツ)_/¯

limber skiff
#

wtf

#

it's definitely applying somewhere

#

okay hmm

#

if you wanna continue a little go to patchWebpack

#

insert in the line after the find check a log for the module id and the find

#

then check what's the id of the module being patched with that

dapper crest
#

trying to do that but struggling

limber skiff
#

show screenshot if you are confused

dapper crest
#

100% being stupid

limber skiff
#

id instead of module

dapper crest
#

pointed me back to the correct place

limber skiff
#

search for that id in devtools

dapper crest
limber skiff
#

okay so it is there

dapper crest
#

its properly patched too

limber skiff
#

does it work now lol

dapper crest
#

what the fuck

limber skiff
#

lmao

#

magic

dapper crest
#

still works after removing console.log

#

I am so confused

#

cause this thing has been effecting me on vesktop and normal, dev or not, for a week

limber skiff
#

weird

#

if it happens again we can try to debug more

charred monolithBOT
jagged cloak
#

is there a way to conditionally use natives if not then no

limber skiff
#

just dont invoke anything

#

if you try to access a native in browser it's gonna be undefined

jagged cloak
#

i dont think anyone gonna try to use this plugin in browser but more ppl use this than i thought lmao

#

but okay noted

#

not going to do it immediately

limber skiff
#

but yeah just saying there is no issue with having a native defined

#

if you are not gonna use just don't call any methods of it

jagged cloak
#

alright banger

limber skiff
#

console shortcuts does it kinda

jagged cloak
#

alr simple

#

but i still dont want to do it right now lol

#

!remindme 3d maybe

limber skiff
#

yeye

shut vineBOT
#

Alright @jagged cloak, in 3 days: maybe

limber skiff
#

maybe

charred monolithBOT
austere talon
#

horror youtube added ads to embeds

rugged spire
austere talon
#

possibly

charred monolithBOT
heavy bloom
#

😭 no way i had already written the fixes in my local git commits

austere talon
#

xD

#

sorry

#

i decided to fixit for u

heavy bloom
#

hahaha

austere talon
#

instead of aksing for so many changes

#

i feel bad asking for 3 million changes

jagged cloak
#

smh

#

thats only fine with MY prs

heavy bloom
#

no it's fine, it's your project. i'll revert what i've done and pull yours. but i'm almost done splitting the supported languages

#

DeepL has different languages supported for input & output, so there's a bit of logic rewrite but it's not bad

austere talon
#

what is wrong with deepl 😭

heavy bloom
#

it can take in more input than it can actually translate into, it seems

#

it also splits some things en-us and en-gb for output, but only accepts en for input

gritty canyon
heavy bloom
#

and though it does support en for output, it says please don't use it and specify en-us or en-gb

austere talon
#

oh wait

#

it's the same

#

there's no need to split

#

the only diff is that target lang has variants

#

like en-GB and en-US

heavy bloom
#

ya

#

should i just

#

ignore that

austere talon
#

honestly

#

fuck splitting

heavy bloom
#

OK i'll just revert everything then clueless

austere talon
#

we just gonna pass the deprecated unspecified variants

heavy bloom
#

i respect it

austere talon
#

or actually

heavy bloom
#

i've already rewritten the logic anyways clueless

austere talon
#

i would just use the target list

#

and split by -

heavy bloom
austere talon
#

and only take first half

heavy bloom
#

i just translated that

#

with the plugin

#
export function getLanguageObject(settingsKey: typeof LanguageSettingKeys[number]): Record<string, string> {
    if (settings.store.service === "google") {
        return GoogleLanguages;
    } else if (settingsKey.includes("Input")) {
        return DeepLSourceLanguages;
    } else {
        return DeepLTargetLanguages;
    }
}
Object.entries(getLanguageObject(settingsKey)).map(...
austere talon
#

Entrada 😭

heavy bloom
#

ahhahaha

austere talon
#

i was about to ask wtf Entrada is

heavy bloom
#

😭

austere talon
#

but yeah

#

we don't need separate objects

heavy bloom
#

OK

austere talon
#

just use the target languages

heavy bloom
#

what about the variants?

#

just shave off the -

#

for the inputs?

austere talon
#

yes

heavy bloom
#

kk

austere talon
#
const sourceLanguage = settings.store[`${kind}Input`].split("-")[0];
heavy bloom
#

you got it

austere talon
#

well you're gonna have to undo the change i made in my last commit xd

heavy bloom
#

time to undo everything WeirdChamp

austere talon
#

or ig no

austere talon
#

also uhh

#

how bad is the deepl api quota

#

500,000 characters per month

#

idk how much that is

heavy bloom
#

for the free one

#

personally i've never went over that quota

#

when i used the betterdiscord plugin

austere talon
#

well in the future we might add a feature that will auto translate the entire chat

heavy bloom
#

yeah i saw the PR

austere talon
#

maybe we could add a setting to fallback to google api if deepl hits quota limit

heavy bloom
#

maybe a good idea

austere talon
#

google seems to have no limit

#

makes sense cause it's an internal api

heavy bloom
#

if its auto-translating the whole chat, you might reach 500,000 characters in a month. i guess it depends on how often you use it

austere talon
#

no rate limit whatsoever

heavy bloom
austere talon
heavy bloom
#

let me finish reverting this stuff right quick

#

discarding all of my hard work...

#

will this change the modal if they switch services?

#

i'm unfamiliar with how that works

heavy bloom
#

oh cool it does

austere talon
#

if it's stateful yes

#

but technically they might end up with invalid settings

charred monolithBOT
heavy bloom
#

it changes the model but yeah they don't seem to be compatible

#

since it would be en-us on deepl and en on google

austere talon
#

yea

heavy bloom
#

and same with auto, it's "auto" on google but "" on deepl. i could change it to auto in the object and then explicitly check for "auto" when passing the source lang

#

since if you pass "auto" for source_lang it'll throw an invalid error since auto is not a language

#

you need to pass ""

austere talon
#

i think if u switch service it should just reset the languages to defaults

heavy bloom
#

i think it does not haha

austere talon
#

no i mean

#

that's what it should optimally do

#

it doesn't rn

heavy bloom
#

right

austere talon
#

it should be very rare for a user to switch service

heavy bloom
#

true

#

is there a function that runs

#

on a value change

austere talon
#

yes

#

onChange:

heavy bloom
#

ok epic

#

alright, i think that's everything then

#

i added the supported languages for deepl and made it set the settings to default on service change

austere talon
#

looks good

heavy bloom
#

actually wait

#

the deepl languages are sorted by language code rather than english alphabetically

#

let me fix that so it's consistent with google languages

#

ok there we go

austere talon
#

you keep inlining / duplicating the implementation details everywhere

#

the translation modal doesn't care if you're using google or deepl, it only cares about the language list

#

handle the implementation logic in one single place and everything else just calls that

#

makes it much more maintainable

#

not just in vencord but in any project

#

imagine it like a black box (or an interface)

you need:

  • getLanguages()
  • translate(text)

you don't care what goes on inside the box

heavy bloom
#

yeah i reckon, that's an issue i've had for a long time and i'm aware of it at least. i have trouble gauging what's worthy of its own function and what isn't, so i apologize for that

#

feel free to change any of the logic around to your liking

austere talon
#

alr did xD

#

i'm just telling you cause I think it's good feedback

heavy bloom
#

i appreciate it

austere talon
#

obviously also don't overdo it, abstracting away too much makes it harder to maintain again

but there's a good balance

#

it's why languages like C# push interfaces so much

#

because generally you don't care about the implementation

#

idk if you ever worked with C#

heavy bloom
#

C# is my primary language

austere talon
#

oh sweet

heavy bloom
#

and i do it much better in C# if you take a look at my github hahaha

austere talon
#

so you know how there's ArrayList, LinkedList, etc

#

but you usually don't give a fuck what kinda List you are working with

#

so you use the generic List interface

#

which has operations like add, contains, but you don't know how exactly the methods work

heavy bloom
#

yea. i'm very new to typescript in general and for me it was odd to take a language thats primary distinction was type freedom and then throw type safety into it, but i'm getting more into it as things go on

#

since i used javascript before

austere talon
#

you don't care if it's DeeplLanguages or GoogleLanguages, you just need Languages

heavy bloom
#

right

austere talon
heavy bloom
#

i appreciate the feedback

austere talon
#

:3

heavy bloom
#

i'm currently rewriting my primary project into typescript

#

it was made in javascript and i kinda frankensteined it so much at this point that it's just unmaintainable

austere talon
#

should we do the falling back to google if deepl has hit limit?

heavy bloom
#

it would just be one line of code i reckon

austere talon
#

a bit more

heavy bloom
#

ahahha

austere talon
#

nono

#

have to do a few translations

#

nb -> no

#

zn-hans -> zh-CN
zh-hant -> zh-TW

#

en-* -> en

heavy bloom
#

for the fallback?

austere talon
#

ye

heavy bloom
#

so keep the settings, but just fall back for just that request

austere talon
#

quite shrimple

woeful sable
austere talon
#

well

woeful sable
gritty canyon
#

you probably want to uh display that the quota exceeded with a toast or something

heavy bloom
#

doubling all requests is incredible

austere talon
#

it's fine

austere talon
#

yeah

gritty canyon
austere talon
#

you don't really know how long it will last

heavy bloom
#

yeah that's true

austere talon
#

also uh

#

people are fucking stupid

#

so

#

we should add some handling for missing credentials

heavy bloom
#

what credentials

austere talon
#

api key

heavy bloom
#

i did

austere talon
#

yes but

#

users are stupid

#

they enable auto translate and then complain in support that vencord has "autocorrect"

heavy bloom
#

what kind of handling do you have in mind then

gritty canyon
austere talon
heavy bloom
#

translate with google same request too?

gritty canyon
rugged spire
gritty canyon
heavy bloom
#

you definitely just tested it

gritty canyon
#

coz-overload...

rugged spire
#

i cant even read the error shiddohwell

austere talon
#

i think because too much text

rugged spire
austere talon
#

maybe need to add subway surfers gameplay

austere talon
gritty canyon
#

also RED

woeful sable
#

force vencord users to do a dopamine detox

rugged spire
gritty canyon
#

force them to type "I aknowledge that turning this option on will automatically translate all Discord messages."

rugged spire
#

you can then abuse code I already wrote to effectively force them to read the message

#

like I do for the changelog in my fork

austere talon
#

i have a good idea

#

we hire the dumbest people from support as testers

#

and have them test new features

austere talon
#

you don't need them

#

you need the dumb users for testing

gritty canyon
#

every time i make anything for an average consumer i follow hakitas advice which is to dumb down everything as much as possible as every thousandth user is the absolute dumbest person on the entire planet

rugged spire
rugged spire
austere talon
#

the last one is my favourite

gritty canyon
#

this motivated me to design my tea bags in a way where if you put the label into the water it explodes

rugged spire
#

this is why vencord can add crypto miner plugin that blatantly says "THIS USES YOUR PCS RESOURCES JUST LIKE MALWARE DOES AND YOU GAIN ABSOLUTELY NOTHING FROM IT" and users would still enable it

#

i really want to see Vencord analytics but because Nerds they would disable

rugged spire
austere talon
#

people keep installing it

rugged spire
gritty canyon
austere talon
#

no

gritty canyon
heavy bloom
#

go to all plugins, toggle on, restart

rugged spire
austere talon
#

because users are genuinely single braincelled individuals

#

you have to design all ur software with that in mind

#

😭

#

if you have any switch

#

users will toggle it without reading what it does

heavy bloom
#

it must be a good feature if it's a plugin

rugged spire
austere talon
grizzled halo
#

help i turned on norpc, why is my rpc not working

heavy bloom
austere talon
#

or why people enable NoProfileThemes then complain why they have no profile themes

gritty canyon
austere talon
#

or turn on NoRPC

#

it's kinda depressing 😭

#

support made me lose faith in humans

rugged spire
gritty canyon
#

you lose.

rugged spire
silk ocean
#

broken

heavy bloom
#

truly incredible

gritty canyon
#

incredible that someone is so stupid they not only refuse to read the channels, couldnt find vencord support and went to core development but also then realized that they cant type and decided that the best course of action is figure out how to create a thread and post a screenshot

#

THEY HAD VENCORD SUPPORT OPEN IN THE SCREENSHOT now im mad

rugged spire
heavy bloom
#

anything else i should be doing on the deepl fork

austere talon
#

oh

#

onChange isnt triggered when changing via code

#

seems to work fine

#

but "translated from en"

#

gonna fix that

heavy bloom
rugged spire
#

im a bit bored

#

and i'm gonna do something really really insane

crude raptor
#

hi a bit bored

#

its kibty

rugged spire
#

I'm going to go find an interesting sounding plugin request and make it

#

fuck it this is a 5-10 minute job

#

wait no i need thread to test

verbal pumice
#

no one with a tiktok brain gonna read that

rugged spire
#

oh wtf

#

okay

#

so

gritty canyon
rugged spire
#

and I was wondering why the fuck is thread-context its own thing

#

Turns out, thread-context doesn't have the guild property

#

Why, discord

#

Why the fuck

gritty canyon
#

we need to get an underpaid child or something to clean up plugin request issues i think

rugged spire
brazen bone
#

So you're saying you're an underpaid child

rugged spire
#

most detailed git commit

gritty canyon
rugged spire
austere talon
rugged spire
gritty canyon
fallen vale
fallen vale
topaz spoke
#

VSCode

rugged spire
#

yes, it is vscode

fallen vale
gritty canyon
#

i hope you can recover soon

fallen vale
#

i love using a text editor as an IDE

gritty canyon
#

seems like you also love waiting like a year for indexing!

austere talon
#

but there's a problem with that

fallen vale
#

i literally just use vsc as a notepad alternative

austere talon
#

it shows on top of modals too

rugged spire
#

SO GOOD

rugged spire
gritty canyon
#

is there a way for plugins to store arbitrary data between sessions?

austere talon
#

but what kind of data

gritty canyon
fallen vale
gritty canyon
#

like just some json

gritty canyon
austere talon
#

if it's small then settings

#

if it's large then DataStore (indexeddb)

rugged spire
#

use settings for small, synced data
use DataStore for bulk, non synced data

fallen vale
austere talon
#

indexeddb can store gigabytes

gritty canyon
#

ah

#

right

#

indexeddb

rugged spire
austere talon
#

indexeddb is also a sql-like db

#

so you can store thousands or millions of rows

gritty canyon
#

isnt it sqlite?

austere talon
#

and index stuff

rugged spire
austere talon
gritty canyon
#

oh

fallen vale
austere talon
gritty canyon
#

😨

fallen vale
austere talon
#

sqlite is an sql driver / library

fallen vale
#

kk

gritty canyon
#

sql is the language you use to query data

fallen vale
#

why not just put it in the pr message ;-;

fallen vale
#

i'd read it

rugged spire
#

anyway back to husk LIST OF PLUGIN REQUESTS

rugged spire
austere talon
#

how do we more clearly communicate to the user that auto translate is on

rugged spire
#

i am an unpaid volunteer

austere talon
#

without a tooltip

topaz spoke
#

bug report in plugin requests

rugged spire
rugged spire
#

and i fixed blobcatcozy

rugged spire
austere talon
fallen vale
#
  1. i think so
  2. i mean like, send one, once its gone, send another, etc.
prime dew
topaz spoke
fallen vale
#

ppl would probably just think its that or something

prime dew
#

Make it bigger blobcatcozy

fallen vale
#

can sm1 blobcatcozy react that so i can as well

gritty canyon
rugged spire
topaz spoke
heavy bloom
#

Message #general with auto translate clueless

austere talon
#

hard

#

and people won't read

heavy bloom
#

true

#

confirmation message before send until dismissed

fallen vale
#

^^^

#

but make the popup like, short

heavy bloom
#

send toast when message was successfully translated during auto translate, indicating that it is, in fact, translation plugin and not autocorrect

dusk blaze
#

something like that

fallen vale
topaz spoke
#

maybe something like this?

dusk blaze
#

comic sans husk

prime dew
fallen vale
austere talon
#

this is kinda horror

#

a

rugged spire
prime dew
#

How about adding the translation icon next to messages sent with autotranslate on?

fallen vale
#

vc trans
vencord transheart

prime dew
#

I dunno

fallen vale
rugged spire
#

presend listener setting property on the message?

rugged spire
#

fuck

#

i had it on

charred monolithBOT
fallen vale
fallen vale
prime dew
#

Autotranslate ig

fallen vale
#

what language combination turned yop into yup

austere talon
#

aaaaaaaaaa

fallen vale
austere talon
#

guess it will just show this every time mikushrug

heavy bloom
#

incredible

spark cove
#

does #2707 need any like

#

testing work to be done

austere talon
#

i genuinely don't know any other solution that isn't awful

austere talon
fallen vale
#

holy shit when was this added

prime dew
spark cove
#

oh ok interesting

dusk blaze
austere talon
#

wait i have an idea

spark cove
#

is this for sending

dusk blaze
spark cove
#

u could just make an obvious glowing translation icon next to the attachment button

gritty canyon
# austere talon but where

im just kidding 😭 probably like under the message maybe? You already have a little label with dismiss you could maybe change that to "Auto translated from to" or whatever

rugged spire
dusk blaze
#

"This message was translated from türk to türk by Vencord auto-translate"

topaz spoke
fallen vale
#

also funi

dusk blaze
#

insane

rugged spire
spark cove
#

true you could add translated message IDs to a store and then add a UI element to them too

fallen vale
fallen vale
rugged spire
# dusk blaze or use clyde messages

@austere talon this just reminded me, you know how Discord will warn you if you try to ping everyone in a large server, how do you feel about an API for that similar to the existing presend listener hook, where plugins could modify the text in the popup. this would probably be useful in SupportHelper in some way or another

dusk blaze
#

this could be nice

austere talon
rugged spire
#

vee i have no idea what the fuck that code is doing anymore

austere talon
#

aaaaaaaaaa

#

aaaaaaaaaaaaaaaaaaaaaaaa

uneven needle
austere talon
rugged spire
#

i think i slightly get it

#

OH

#

no its completely different to what I was originally thinking

#

I like that

austere talon
#

it will show a tooltip on the chat bar button for 2secs whenever a message is automatically translated

rugged spire
#

but not the fade out bug

austere talon
#

xD

rugged spire
rugged spire
uneven needle
#
find(m=>Array.isArray(m)&&m.length===2&&m[0].check)
``` push to that array {check: functiok, body: the text you want to show}
rugged spire
austere talon
charred monolithBOT
rugged spire
#

a

austere talon
#

idk if i can call u ash but i'll do it anyway

charred monolithBOT
austere talon
#

🐫

rugged spire
#

test

austere talon
#

the horror

rugged spire
#

what are you doing now

charred monolithBOT
rugged spire
#

oh

charred monolithBOT
rugged spire
austere talon
#

also wow i hate that plugin

#

i turned it on and it makes me think i have pings everywhere

#

😭

rugged spire
#

HORROR

#

are pings still separate?

austere talon
#

i know i keep saying "can be done with css shouldn't be a plugin" but at this point maybe we could add a plugin that hides various annoyances because it is such a commonly asked thing

rugged spire
rugged spire
austere talon
#

meh

#

not really a valid use case for me

rugged spire
#

wdym

austere talon
#

why are you keyboard navigating up there

rugged spire
#

keyboard navigation so good

austere talon
#

yes but

#

you're in some dm channel

#

and alt tab / down to switch channel

#

why are you going above the channel list

#

it's so rare that you need the friends tab

rugged spire
#

nono

#

its because the friends tab is the default

#

and you have 2 useless pages between there and your dms

austere talon
#

hop on keeplastchannel

#

and you will never ever be on the friends tab again

rugged spire
#

blobcatcozy true

#

but also at the same time I had the idea to bomb friends tab being the default and add real homepage with USEFUL FUNCTIONALITY (Inbox as a full page and also less shit Active Now)

#

i still think its a Good Idea

gritty canyon
rugged spire
#

though end users would probably have no idea what "Annamox" does

austere talon
uneven needle
austere talon
#

lc.gem what is the relation of annamox and nitro

rancid idolBOT
# austere talon lc.gem what is the relation of annamox and nitro
what is the relation of annamox and nitro

Annamox and Nitro: A Clarification

There seems to be a misunderstanding.

Annamox

  • Annamox is a biological process where ammonium ions (NH₄⁺) are oxidized to nitrite ions (NO₂⁻) under anaerobic conditions. It's a crucial part of the nitrogen cycle.

Nitro

  • Nitro is a common prefix used in chemistry and biology, often referring to compounds containing nitrogen.
    • Nitrite (NO₂⁻), a product of annamox, is a nitro compound.
    • Nitrate (NO₃⁻), another nitrogen compound, is often produced from nitrite through nitrification.

Relationship

Therefore, the relationship between annamox and nitro is that:

  • Annamox is a process that produces nitrite, a nitro compound.

Would you like to know more about the nitrogen cycle or the specific role of annamox in it?

austere talon
#

fym misunderstanding

#

i was just asking how they relate

#

rude ass ai

verbal pumice
#

ai should tell me to kill myself

gritty canyon
rugged spire
gritty canyon
#

Discord does not need a home page

brazen bone
verbal pumice
#

ai summaries from your servers

#

great idea

rugged spire
#

there was server home

#

are the API endpoints for that dead yet?

#

i know client side code is gone

verbal pumice
#

dont think so

#

but idk

gritty canyon
rugged spire
gritty canyon
#

oh?

rugged spire
#

this is Summaries

gritty canyon
#

oh you mean server home

#

didnt see that message

rugged spire
#

yes

gritty canyon
#

my brain skipped over it

rugged spire
#

discord will warn you if you send this in chat blobcatcozy

verbal pumice
#

mfw the message manufactured to trigger filters triggers filters

rugged spire
#

yop

#

idk i still find it funny that it is possible

#

anyway

#

does anyone think that pre-send warning message should be a feature in MessageEventsAPI

#

a

charred monolithBOT
gritty canyon
#

i wonder if discord gets paid to put ads into embeds?

austere talon
#

no

#

it's youtube embed

#

google put them there

gritty canyon
#

oh?

austere talon
#

discord has no control over youtube embeds

gritty canyon
#

never seen them before

austere talon
rugged spire
#

let me test something stupid

glass jasper
austere talon
charred monolithBOT
#

hmm i feel like it would be more useful if it worked via modifier key?

normal paste -> embed shift + paste -> suppress embed

I'd argue otherwise purely because the point of masked links is to keep messages with links neat and tidy, another issue with embeds is they strip URL parameters so things like game invits break often.

Having it be a toggle without the need to restart vencord worked well and I recon most people would opt to have links not embed when masking them.

glass jasper
still wasp
#

😭

glass jasper
charred monolithBOT
frail skyBOT
#
Bad Patches

ShowHiddenThings (found no module):
ID: -
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

#
Bad Patches

ShowHiddenThings (found no module):
ID: -
Match: ```
Messages.GUILD_MEMBER_MOD_VIEW_PERMISSION_GRANTED_BY_ARIA_LABEL,tooltipContentClassName

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

verbal pumice
charred monolithBOT
frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

verbal pumice
#

while im here
bump #2692

frail skyBOT
#
Bad Patches

None

Bad Webpack Finds

None

Bad Starts

None

Discord Errors

None

rugged spire
verbal pumice
#

lol

rugged spire
austere talon
#

sometimes i also watch entire videos inside discord if they're a few minutes

spark cove
#

i fullscreen the videos

austere talon
#

but if it's longer than 5 minutes i'm opening in browser

rugged spire
#

No, Discord does not popup the warning

rugged spire
#

i might watch videos inside discord if there was sponsorblock

charred monolithBOT
verbal pumice
charred monolithBOT
#

9cc42bf MutualGroupDms: make display consistent with Mu... - ZoamIl
6c12a33 fix(BetterFolders): Close folders when switchin... - n1ckoates
d47be6c MentionAvatars: Add option to hide @ symbol(#2725) - Luna-devv
2382294 Decor: add copy preset id button (#2737) - jenkuuuuuu
f8b01c1 Translate: Add DeepL support (#2721) - AshtonMemer

#
[Vendicated/Vencord] New tag created: v1.9.7
glass jasper
rugged spire
#

configuration would be so painful to implement

dawn coyote
crude raptor
#

could just have a single plugin with a lot of toggle settings

fallen vale
#

wouldnt that require page manipulating

brazen bone
#

What do you mean page manipulation

fallen vale
#

like document.whatever

brazen bone
#

Why would it?

fallen vale
#

how else do you load css like that?/genq

rugged spire
#

Isnt theme stuff the one acceptable use case for DOM manipulation

brazen bone
#

Or you can delete the offending elements instead of cssing them away

#

Much more fun

rugged spire
#

I agree that is much more fun

brazen bone
#

But if you do want to css, there's apis for manipulating stylesheets at runtime

#

Like ML's highlight style

#

(Don't really see the point of that though, just add a class to root)

fallen vale
#

do what quickcss does

charred monolithBOT
#

hmm i feel like it would be more useful if it worked via modifier key?
normal paste -> embed shift + paste -> suppress embed

I'd argue otherwise purely because the point of masked links is to keep messages with links neat and tidy, another issue with embeds is they strip URL parameters so things like game invits break often.

Having it be a toggle without the need to restart vencord worked well and I recon most people would opt to have links not embed when masking them.
...