#🧩-plugin-development

1 messages · Page 4 of 1

near aurora
#

commits

slow charm
#

gui tbh

near aurora
#

its pain

slow charm
#

git kraken

silver cave
#

@dull magnet @dull magnet @dull magnet @dull magnet @dull magnet do mpris NOW

lilac cipher
#

conflict@near aurora @near aurora

near aurora
#

yes i know

#

how

dull magnet
#

skull issue then

slow charm
#

link pr

crisp jungle
lilac cipher
silver cave
#

you will do this
dom manipulation horrible do not do this i will send so many bombs to your home your entire city will disappear

dull magnet
near aurora
#

how

crisp jungle
dull magnet
#

WHAT FOR

slow charm
#

this is so funny

crisp jungle
#

for dom patching yes

silver cave
crisp jungle
silver cave
dull magnet
#

goose mod 2

dull magnet
#

aa gamer loves goosemod pure dom settings ui

silver cave
#

they moved it to reacy

crisp jungle
#

i'm not gonna share the plugin

dull magnet
#

why

#

we dont have any plugin guidelines cause were not stupid bd

silver cave
dull magnet
#

so you can make whatever tf u want

slow charm
#

crying sobbing choking throwing up

slow charm
#

i will dom manipulate you

silver cave
#

horror

#

YOU DON'T EVEN NEED TO

#

bruh

dull magnet
#

btw aagamer did u see that weird client mod that recursively compiles files at runtime then evals that and regex patches desktop core to add node integration

#

deranged

silver cave
#

horrible wtf

#

send NOW

dull magnet
proud parrotBOT
# dull magnet https://github.com/Dorumin/Dorucord/blob/master/src/Patcher.js#L124-L153

**Patcher.js: **Lines 124-153

const scriptsContents = await Promise.all(scripts
    .filter(name => !name.startsWith('!'))
    .filter(name => name.endsWith('.js'))
    .map(async file => {
        return await this.compileFile(path.join(path.dirname(__dirname), 'scripts', file));
        // const code = await fs.readFile(path.join(path.dirname(__dirname), 'scripts', file), {
            // encoding: 'utf8'
        // });
        // return
    })
);
const stylesContents = await Promise.all(styles
    .filter(name => !name.startsWith('!'))
    .filter(name => name.endsWith('.css'))
    .map(file => {
        return fs.readFile(path.join(path.dirname(__dirname), 'styles', file), {
            encoding: 'utf8'
        });
    })
);
const jsInject = this.makeInjectable(scriptsContents.join(''));
const cssInject = this.makeInjectable(stylesContents.join(''), `
    let style = document.createElement('style');
    style.type = 'text/css';
    style.rel = 'stylesheet';
    style.className = 'dorucord-main-stylesheet';
    style.textContent = <injected-content>;
    document.head.appendChild(style);
`);
const pluginsInject = this.makeInjectable(plugins, `window._plugins = <injected-content>;`);
dull magnet
#

this.compileFile = rollup

#

then they expose require to renderer

#

and those bundles call require

silver cave
#

HORRIBLE EXPLODE NOW

dull magnet
#

its so bad

near aurora
#

i dont even know how to solve this motherfucking shit

#

@lilac cipher

dull magnet
near aurora
#

done

#

i dont know

#

i literally just staged all and commited

dull magnet
#

whaaaa

near aurora
#

an empty commit

#

and it works

#

im losing my mind

dull magnet
#

does the nice theme come with the pr

slow charm
#

is that catppuccin or what

lilac cipher
#

yeah

#

mocha

lilac cipher
near aurora
#

afn merg

wanton sierra
#

affen blobcatcozy

near aurora
#

i want to get this over with

lilac cipher
dull magnet
#

aaa github

near aurora
#

all my braincell is dead

lilac cipher
#

@wanton sierra @wanton sierra

near aurora
#

thanxs

#

@dull magnet pliz merg

#

i did all the changes

#

i even approved them myself

slow charm
#

wjat did she mean by this

near aurora
silver cave
#

regex insan

dull magnet
#

false, i dont use named groups

#

so bad

silver cave
#

horro

dull magnet
#

wtf is that language btw

#

python?

silver cave
#

py love

near aurora
#

yes

#

python has a re. package

dull magnet
#

so bad

slow charm
#

based

near aurora
#

i cannot look at it any more

slow charm
#

feast ur eyes

near aurora
#

how

#

where

dull magnet
#

unused import

silver cave
#

merge now

dull magnet
#

soon

lilac cipher
#

@near aurora you're insane

near aurora
#

oh

slow charm
#

just mark as resolved tonguecat

near aurora
#

tooltip

#

i am insane

lilac cipher
#

how did you make everything eed

#

red

slow charm
#

clumsy boy

dull magnet
#

scary red

#

the album name hover is really weird

dull magnet
#

is that just me or can u reproduce

#

no need to squash

near aurora
#

its wierd yeah

#

brightness something

silver cave
#

you will split into 9 million commits

slow charm
#

can be squashed on merge

dull magnet
#

can u make the bar hitbox thicker

slow charm
#

on github

dull magnet
#

its kinda pain to press

near aurora
#

which one

dull magnet
#

the seekbar

near aurora
#

how do you mean

#

oh

#

ehh idk how

#

just thicker?

#

6px instead of 4?

#

or 5

dull magnet
#

like clicking it is kinda pain

near aurora
#

pick

#

rn its 4px, same as in popout

#

ok sec

#

afn no merging yet

lilac cipher
#

whar

near aurora
#

dont merg yet

#

ill resovle all things with ven first

lilac cipher
#

ahriebzbwjqs

#

djensjss

#

fsja

near aurora
#

asdfja;sldfkjdas

#

fikd

#

ik

dull magnet
#

you cant tell me the second one isnt better

#

second one is top 50%

near aurora
#

@dull magnet its so thick

dull magnet
#

first one is ur 45

near aurora
#

ehhhhhhhhh

#

ok

dull magnet
#

what

#

that looks like ur theme is messing with it lol

dull magnet
near aurora
#

no i have uiscale

#

i think

#

ok fine

#

guh

#

ill leave at 50

#

also i sclaed down the icon

#

and ven join in on listening party were not done yet

dull magnet
#

whys that

near aurora
#

were listening to joji

dull magnet
#

would it be better to have these be swapped?

near aurora
#

which ones

slow charm
#

yea probably

dull magnet
#

holy shit big no

slow charm
#

listening alone on bottom

near aurora
#

ok

dull magnet
#

this is so much worse

#

nah keep it the old way

near aurora
#

ok

dull magnet
#

i think its really ugly

near aurora
#

it looks good

#

context separation

slow charm
#

the cover being close to the edge not good

near aurora
#

spotify
spotify
profile

#

ok

lilac cipher
#

no it's bad

near aurora
#

it's aligned

lilac cipher
#

because then the player is shifting a lot

#

because of someone listening

near aurora
#

how is it shifting

slow charm
near aurora
#

it's literally not shifting for me

#

guhh

lilac cipher
near aurora
#

is my theme magically goated

#

oh i get wha tyou mean

dull magnet
#

is it just me or does the thingie look off center

near aurora
#

ye old way is better

near aurora
slow charm
#

rent free

dull magnet
#

ur mom

near aurora
#

were vibing

dull magnet
#

square pfps is so gay

lilac cipher
#

correct

slow charm
#

ur so gay but no one complained

near aurora
#

what does this mean ven

#

like

dull magnet
#

btw the title thing doesnt show as popup

near aurora
#

how did it get out of sync

dull magnet
near aurora
#

skill issue

#

dont move ur mouse a bit

#

like 1s

dull magnet
#

oh u gotta hover for longer

#

my bad

near aurora
#

it will show

near aurora
dull magnet
#

idk bozo

near aurora
#

like im making a pr ofc i want my changes to happen

slow charm
#

why aren't using a different branch

near aurora
#

idk how to use branches

#

git is so bad

slow charm
#

what

near aurora
#

like

#

i know what branches are

#

but i hate using them

#

million different branches

slow charm
#

skill issue

dull magnet
#

is it just me or is the fact that theres 0 indicator for hovering over the seekbar kinda meh

#

i mean its discords fault not urs but still

#

looks like spotify has 0 indicator either

near aurora
#

huh

#

which one

slow charm
#

because u can't seek in popout

dull magnet
#

youtube does it way better

near aurora
#

skill issue?

slow charm
#

if that's what u mean

dull magnet
near aurora
#

ohh

#

yeah

#

lazy

#

don't want to reimplement entire bar

dull magnet
#

yeah no need to change

#

discords fault

slow charm
#

how

dull magnet
#

youtube does it way better

near aurora
#

okay but how to resolve the conflict i have no idea

#

just pull?

dull magnet
#

wdym

#

how tf r u having conflicts as the only guy working on it btw lmao

#

conflicting with urself pensive_cat

near aurora
#

fixed it

#

@lilac cipher now merg

#

last one hopefully (what i said 20million times before)

dull magnet
#

btw sorry for the many nitpicks

#

just wanna make sure everything top notch

#

where the music go xen

slow charm
#

can't u like

.vc-spotify-progress-bar[class*="barFill"]:hover {}
#

have not tested

dull magnet
#

roseboxcord

#

it looks good but the fact that some things are like greyed out makes it kinda depressing

#

like this

near aurora
#

yea

#

it's supposed to be muted and low contrast

#

i made during COVID-19

dull magnet
#

do u wanna make any more changes

#

or good now

near aurora
#

for now probably good

dull magnet
#

why is the workflow not running german

near aurora
#

maybe in the future seekbar rewrite if i hate myself enough

slow charm
#
#vc-spotify-progress-bar [class*="bar"]:hover {
  cursor: pointer;
}
dull magnet
#

whats ur theme btw @lilac cipher

#

just curious

near aurora
#

no idea

#

and no doxx pls kthx

dull magnet
dull magnet
#

if its supposed to be private change ur gh email asap

silver cave
#

yeah skill issuer

dull magnet
#

@near aurora can u fix this plox

#

the emote picker is resizable u know..

#

but ur theme breaks it

near aurora
#

no resize allowed

dull magnet
#

NOOOO

#

SO MEAN

near aurora
#

#wontfix

#

bc

#

lazy trolley

dull magnet
#

so mean

#

fix immeiately

near aurora
#

pr fix if so fancy

dull magnet
#

locking u up in my basement until u fix

oblique prairie
#

thats not a punishment

near aurora
#

the emoji picker in my theme is an abomination that i think emma from powercord wrote in 2020 it uses pixel perfect translates and rotates

#

i tried to rewrite it twice and it did not go well

#

so feel free to rewrite and allow resize

slow charm
#

why is it horizontal

#

fugly

near aurora
#

bc i liked it

#

and i still do

lilac cipher
near aurora
#

send codes

lilac cipher
#

@near aurora GUHH how do you have so many prs

near aurora
#

i have no idea

#

@lilac cipher what color theme is ur site

lilac cipher
#

I made it myself

silver cave
#

@lilac cipher@lilac cipher@lilac cipher@lilac cipher@lilac cipher@lilac cipherguhhh you will tell what lanyard.rest is

#

zt refused

#

guh

#

g

lilac cipher
#

exposes discord rich prescence

#

so you can access it through an api

#

ignore banner

silver cave
#

TROL

#

i had something like this with my shitty bot

lilac cipher
#

they also have a websocket

near aurora
dull magnet
#

you love their server banner @silver cave

near aurora
#

ffs

silver cave
#

trol

silver cave
#

i will unkill stupit bot one day

#

i used it for dumb svg of status on my github profile

lilac cipher
viral roost
#

when the server banner is sus

silver cave
#

discord when explodod (that took ages to send)

#

@dull magnet you will fix

lilac cipher
#

delete

silver cave
#

HORROR

#

you are deranged

#

bluecord developer is artist

#

trol

#

GUHHH but why

#

you already exploded it

#

who cr

dull magnet
#

wait do admins bypass automod

#

they do ok

#

but theres only one single word banned

#

guess

silver cave
#

do

floral burrow
#

hard n

#

It's in audit log

dull magnet
#

you can

#

why not

lilac cipher
#

hungry ven

near aurora
#

it would be good if i could disable better screenshare res and sticker bypass

#

i do not care for better res because it lags my computer + is detectable

#

i do not care for stickers, they are polluting my autocompelte and i never use them anyway

dull magnet
#

xd

near aurora
#

ok thx

#

found it

#

it wasn't a thing before iirc

keen light
proud parrotBOT
# keen light time to try and clone this for vencord https://github.com/GooseMod-Modules/Usern...

**index.js: **

import { username } from '@goosemod/patcher';
import { findByProps } from '@goosemod/webpack';
import { React } from '@goosemod/webpack/common';

const MessageClasses = findByProps('compact', 'repliedMessage', 'username');

let unpatch;

export default {
  goosemodHandlers: {
    onImport: () => {
      unpatch = username.patch(({ message, author }) =>
        React.createElement('span', {
          className: [MessageClasses.username, 'authorUsernameHint'].join(' '),
          style: {
            color: author.colorString,
            filter: 'brightness(0.5)',
            marginLeft: author.nick === message.author.username ? '' : '5px'
          }
        }, author.nick === message.author.username ? '' : `(${message.author.username})`
        )
      );
    },

    onRemove: () => {
      unpatch();
    }
  }
};

keen light
#

what it used to look like when i used it on goosemod

dull magnet
#

username patcher api that's awesome

#

goosemod poggers

opal fern
#

is there db thingy

#

to like save items

dull magnet
#

DataStore

hollow inlet
#

@dull magnet you should make a plugin that does the thing where

#

the folder background is the same color as the folder when open

#

wait this isn't general

opal fern
#

SEXSEXSEXSEX

#

Any examples on using DataStore

dull magnet
#

await DataStore.get("key")

#

DataStore.set("key", literallyAnythingHereWellAlmostAnything)

opal fern
#

alr

#
import { DataStore } from "../api/index";
#

This is correct way to import, right?

dull magnet
#

no

#

api/DataStore

opal fern
#

what

#

Figured out

#

Anyways, do you think I can fetch a list of all commands currently available?

#

Figured out

cedar olive
#

if you really want an example IgnoreActivities uses it

near aurora
#

text replacement omegaplugin rewrite when

keen light
cinder wigeon
#

@dull magnet I know why it doesn't work

#

you are dumb and made the ""!==(.{1,2})&& a positive lookbehind

#

which means it doesn't get deleted

#

which means it actually checks for the experiment

#

that was deliberately not a lookbehind so it would delete that code

#

ok and it looks like the regex is a little more messed up but ill fix it later I need sleep

cursive plank
#

Ven is dum dum

#

Can't even write regex correctly

dull magnet
#

idk i wasnt fully sure what that regex was supposed to match exactly cause the children layout changed so much

cinder wigeon
#

I might just delete the patch and completely remake it

dull magnet
#

uh

#

is this not correct

#

cause it doesnt show

#

uh

#

its never called??

#

it uses this one now

#

super small module way easier to patch

#

im gonna patch this one instead

#

uhhh discord

dull magnet
#

cause no way to find out whose profile is open

cinder wigeon
#

I already made a wrapper it just needs to be updated for the new component structure I guess

dull magnet
#

I did

lilac cipher
#

æ

cinder wigeon
#

æ

granite vault
#

æ

oblique prairie
#

æ

austere gulch
#

æ

wanton sierra
#

æ

floral burrow
#

æ

oblique prairie
#

I don't have :(

wanton sierra
#

😭

oblique prairie
#

i knoww SadItadori

cursive plank
#

@dull magnet how does a command prevent from sending?

#

nvm

wraith carbon
#

is there a way of getting all members in a guild

opal fern
#

kinda

#

but it would be messy on big servers because api spam

wraith carbon
#

only gonna be small servers

cursive plank
#

lul

#

you can make urself a system user

#

wait a minute...

#

I can view the fucking audit log

#

phew, for a second i thought that discord had bad security

dull magnet
#

i just gave everyone permission to do it

cursive plank
#

cause i had set myself as the server owner locally

#

wait a second

#

what?

#

is discord security that bad? or just a UI bug?

oblique prairie
#

try it trolley

cursive plank
#

lemme test on a throw away server

simple folio
#

its not a bug

#

its an api restriction

cursive plank
#

that'd be a UI bug then

dull magnet
#

how is it a ui bug

#

you locally made yourself owner

#

so it thinks you can do that

cursive plank
#

if the API replies with a 403 to every request i make

#

it shouldn't just ignore it

dull magnet
#

why

green vessel
dull magnet
#

you're messing with the app's internals

#

it's in an unexpected state

cursive plank
dull magnet
#

it already does checks for permissions

#

why would they handle "edge" cases that are impossible to happen

dull magnet
green vessel
dull magnet
#

this isnt north korea you're allowed to know what's going on

green vessel
#

lets make it north korea

potent fox
cursive plank
#

Lmao

#

I did try on a dummy server

#

Got a 403

potent fox
#

😭

#

horror

simple folio
#

forces client to think im server owner
client treats me like im the server owner
pika

granite vault
snow shard
#

free software

proper wigeon
cursive plank
#

It is possible for it to happen w/o modifying the cache

#

Unprobable? Yes
Impossible? No

dull magnet
#

??

#

clearly you should have locks on every door in your house then

#

it's not impossible that someone could appear in your bathroom

cursive plank
#

What kind of door does not have a lock?

#

You prob should have picked a better analogy

dull magnet
#

do you lock them

cursive plank
#

That's a different matter

dull magnet
#

Well discord has checks but by manipulating their cache to make yourself admin you're unlocking the locks

cursive plank
#

The cache is temporary

#

Not my problem that discord doesn't refresh it

#

Anyways, my point was that the UI should always check the API responses before showing that smth worked

dull magnet
#

then it'd feel laggy

cursive plank
#

It could update the UI later to reflect the error then

cursive plank
#

They aren't impossible to happen

dull magnet
#

they are

cursive plank
#

What if I transfer ownership to another person (using a different device)

And my local cache still says that I'm the owner

The UI will show normally but the API will error

dull magnet
#

there's no way anything could happen in between you opening the delete modal and submitting the delete

dull magnet
#

so why would they need to handle errors purposely caused by you

#

makes no sense

#

"well technically the user could plant a piece of c4 in the car before starting it so clearly the car should first check for the presence of c4"

#

?????

viral roost
#

wait you actually think the client should handle that correctly?

cursive plank
#

Dude, first of, why are you like that?

I can't even troll in this server?

And also, you should always handle any edge case

dull magnet
#

edge cases that are reasonably possible

cursive plank
viral roost
dull magnet
cursive plank
#

You should also account for atomic clocks

dull magnet
#

they already do check for cases like message sending

#

where it actually is reasonably possible to run into an error

cursive plank
#

That's the backend doing the checks

#

Not the frontend

dull magnet
#

?

#

the ui shows you

#

that the message failed to send

cursive plank
#

Indeed it does

#

PS: why do you always find conflict with what I say?

Like, most of the time I'm joking
But when you respond like that I take it seriously

granite vault
#

People are genuinely that stupid so I'd say it's hard to tell that it's a joke

dull magnet
granite vault
dull magnet
#

a lot of the times you're joking it's not very obvious

#

you gotta add more trolleys trolley

viral roost
#

aint no way that was joking bruh

#

💀

granite vault
cursive plank
# viral roost 💀

Oh yes, in what context would I mod myself to be the owner other than trolling?

granite wharf
#

why did it change from createElement

dull magnet
#

New React runtime

granite wharf
#

guh

granite wharf
#

@dull magnet how do i get devtools again

dull magnet
#

wha

#

ctrl shift i

#

or what do u mean

granite wharf
#

oops

#

i meant react devtools

dull magnet
#

enable

granite wharf
#

where

dull magnet
#

in settings

granite wharf
#

WHERE

#

oh

#

guhhh im blind

dull magnet
#

correct

oblique prairie
dull magnet
edgy archBOT
oblique prairie
#

(thats me)

deft hull
#

suggestion: you should be able to see the changelog in updater

#

or something

#

instead of having to click the link and see commit history

#

oh didn't see that

#

when you're up to date

#

not when there are updates available

#

there so that you know what changed since the last time you updated it

slow charm
#

it shows commit message when there are new updates idk what ur on about

dull magnet
#

like you want to be able to see all commits when you're up to date?

deft hull
#

yeah

#

that

#

or someway to know what the changelog was

slow charm
#

i usually just read before updating

#

i don't think there's any real solution other than just having the whole git history

deft hull
#

I do too, but I forget

#

🙂

#

fuck off @clever mulch

granite vault
#

Forgor

#

💀

dull magnet
#

u can block the bot if u dont want it reacting to u lmao

granite vault
#

Poor bot fr

deft hull
#

didn't know that works

deft hull
dull magnet
#

nop

#

I love that bot

#

🙂

#

it failed to react

#

this is so sad

granite wharf
#

does arguments[0] impact perf much

dull magnet
#

nop

granite wharf
#

good

#

HOW

dull magnet
#

lmao

#

you love

granite wharf
#

i should leave it at that

green vessel
#

the funny context menu loading

granite wharf
#

troller

dull magnet
#

nono

granite wharf
#

WHY DOES IT KEEP LOADING

#

oh

#

its just that when its empty

slow charm
#

why is it so cute

granite wharf
#

if i turn on dev mode to show the copy id then it shows copy id

dull magnet
granite wharf
#

i will push now

dull magnet
#

can you check an attachment?

granite wharf
#

works

simple folio
#

add explode option

granite wharf
#

husk

dull magnet
#

love

#

Good job @granite wharf @granite wharf @granite wharf blobcatcozy blobcatcozy

granite wharf
#

yop

#

i will push now

dull magnet
granite wharf
#

headpats

#

done @dull magnet

simple folio
#

venlogger

granite wharf
#

tokenlogger

#

coming in december

granite wharf
#
.messageLogger-deleted {
    background-color: inherit !important;
}

.messageLogger-deleted div {
    color: #f04747 !important;
}
``` @dull magnet
dull magnet
#

wh

granite wharf
#

red text

#

explod

dull magnet
#

you will not the important

#

I will add switch to logger

#

@granite wharf

green vessel
#

color highlight based

dull magnet
#

love copilot

granite wharf
#

guh

dull magnet
#

discord loves me adding random class to the body

granite wharf
#

good

dull magnet
#

actually uh

#

could just do funny css

granite wharf
#

merge

#

love

dull magnet
#

soon

#

i rewrote in jsx

#

okay i pushed @granite wharf

#

check changes to see if it ok

#

help u cant disable the plugin troller (vencor 🐛)

#

@granite wharf chck NOW

#

so i can merge before sleep

granite wharf
#

merge

#

wait no

dull magnet
#

merge highlight default makes 0 sense

#

90% of people use text

granite wharf
#

make highlight default

#

i want

dull magnet
#

no

granite wharf
#

yop

dull magnet
#

it makes no sense

granite wharf
#

text is garbage

dull magnet
#

okay but thats you

#

majority of people like text

#

you love

#

EMBED

green vessel
#

LOL

dull magnet
#

you love @granite wharf

granite wharf
#

nop

dull magnet
#

you love that i pushed unrelated fix to ur pr

#

its a really small fix i dont wanna make a separate commit for xd

#

i merged

amber ferry
#

probably blacklist clyde from message logger

granite wharf
#

husk

#

option to blacklist all bots

#

ven will do

potent fox
#

I wanna see deleted clyde messages

green vessel
#

ay, so... I’m working on a plugin and things are going smoothly so far, though i have a question as the documentation seems not to have much.

  • Is it possible to insert a react component on the main view with the current plugin’s API? (i.e: insert a button under the discord home button) if so can anyone provide any example.
dull magnet
#

there's a bunch of plugins inserting ui elements

#

find the code responsible for that part of the ui and patch it to insert your own code that calls a function on your plugin

#

then make that function return a component

green vessel
#

oh there is plugin that insert ui? i didn’t find any 💀

dull magnet
#

Spotify controls

#

View Icons

#

Settings

potent fox
#

ReviewDB(not merged)

near aurora
#

as it should be

#

no more bloat to userpopout

opal fern
#

what we thinkin

potent fox
#

insane

granite wharf
#

do we have typing indicators yet

#

@dull magnet @dull magnet make dmcategories

dull magnet
granite wharf
#

GUH

dull magnet
#

you will make trolley

granite wharf
#

I might make indicators

dull magnet
#

btw will you work on persisting logger?

granite wharf
#

force zt to make dmcategories

dull magnet
#

i think u wanted to make

granite wharf
dull magnet
#

you love this role colour style

granite wharf
#

guhhh

dull magnet
#

dot cute

granite wharf
regal rune
#

make it a shared database

#

lol

#

see everyone's logged messages!!!!

dull magnet
#

do they look better without the weird background

#

i cant decide

slow charm
cinder wigeon
granite wharf
#

love

near aurora
#

somebody plz rewrite spotifyControls to use discord's ui shit maybe then the glitching will be fixed

granite vault
#

What

near aurora
#

the spotifycontrols glitch around and shit

granite vault
#

Never had it happen, skill issue

dull magnet
#

it literaly uses discords ui bro

unique marlin
#

Is A plugin To open links In Mpv possible to implement

dull magnet
#

ye

#

you can add an ipc call for launching mpv

#

or does it support a custom protocol

#

like mpv://bleh

granite vault
#

Don't think it has a custom protocol

#

At least not by default trolley

dull magnet
#

"its incredibly unsafe"

#

lmao

#

so basically opening stuff in mpv = arbitrary code execution

#

i think it can still be added though if it's made clear to the user that this risk exists

granite vault
dull magnet
#

actually it seems if it's only https urls it's safe?

granite vault
#

How tf are you going to executed arbitrary code with a scheme handler

#

I'm lost trolley

dull magnet
#

read the thingi linked

#

mpv://av://lavfi:ladspa=file=/some/evil/so/here.so

#

but again if it only passes http urls it's safe

granite vault
#

Yeh

#

Essentially MPV is too lazy to secure it

unique marlin
#

fair

dull magnet
#

well anyway yes it can be added

#

it can be made secure by properly validating the input

unique marlin
#

yea that's what i thought

granite vault
#

Yeah, thats why I said MPV devs too lazy

unique marlin
#

when reading that

dull magnet
granite vault
#

¯\_(ツ)_/¯

#

Lazy/don't want to bother with it, same thing trolley

dull magnet
#

im guessing smth like this?

#

obviously less ugly

#

or how do you imagine it

granite vault
#

I'm lost lol

#

Not sure if I'm confused but they meant open MPV when clicking on video, from my understanding

dull magnet
#

lol why

unique marlin
#

when i was on web app discord i had this extension to open links in mpv by right clicking on them and selecting the play with mpv from the menu

#

but i think if it was directly accessible from the embed i think it would be better

#

like you did

dull magnet
#

that extension seems unsafe btw since it uses mpv:// schema like warned against in the issue

#

so might wanna test if what that person posted is accurate

unique marlin
#

looked at the source code it doesn't seem like it

#

just a python script that calls subprocess.open with mpv and the url

granite vault
unique marlin
#

alongside with the extension, you had to run a script to make it Just Work

granite vault
dull magnet
#

LOL ITS VULNERBALE

granite vault
dull magnet
granite vault
#

Lmfaooo

unique marlin
#

😭

cursive plank
#

Me bouta RCE all the Firefox users that have this addon by hacking the dev's email and uploading a new version

dull magnet
#

nahhh not the xtension

#

any site you visit can do it

granite vault
#

The middleman is vulnerable trolley

dull magnet
#

basically that extension gives any site the ability to execute arbitrary code on your machine as long as they somehow get a .into your system

#

im gonna open an issue lmao

cursive plank
#

So only Linux/android shit?

#

Actually, android url protocols work differently

#

So only Linux?

granite vault
#

So site can force download it

#

Altho they need your home path for the forged url

cursive plank
#

Btw, do y'all get a notif about FUSE appimagekit error or smth when you open links via discord?

granite vault
#

No?

cursive plank
#

Or is it just appimagemanager using a diff name on the notif?

granite vault
#

Might be that

#

Never seen that notif

cursive plank
#

Kinda annoying, cause it is a false error

granite vault
#

Unfortunate trolley

dull magnet
#

opened an issue trolley

unique marlin
#

i actually didn't use this one, i used another one called ff2mpv

#

not sure if it does the same thing

dull magnet
proud parrotBOT
dull magnet
#

but it seems to have the same vulnerability also

at least it's only doable by clicking the extension context menu entry which i don't think websites can do? so it should be fine

#

anyway got very sidetracked trolley

#

my bad

unique marlin
#

pretty funny tho

dull magnet
#

LOL the second one is vulnerable too afterall

#

we having a field trip today

cursive plank
#

Ven on his way to write "security researcher" in his CV

granite wharf
#

yop

granite wharf
#

guh what the fuck

#

@dull magnet fix

elfin latch
granite wharf
#

i will force him to fixa

#

lahamaudlillah

potent fox
granite wharf
#

yop

#

@dull magnet merge reviewdb

#

he put a ton of effort into it

potent fox
#

YOP

granite wharf
#

although can you move the reviews after the notes section

#

its annoying to scroll

#

oh wait it got fixed love

potent fox
#

Horror

#

Terrible things happened in vens house

#

Its a miracle he is still alive

dull magnet
granite wharf
#

react is a mystery

dull magnet
#

it's likely not getting connection open

#

aka never firing Webpack.onceReady

#

run await Vencord.Webpack.onceReady in the console

#

if it stalls forever, that's why

dull magnet
#

@granite wharf @granite wharf

granite wharf
#

I sleep

dull magnet
#

ok fixed

fierce tendon
#

@dull magnet why is CI stopped

#

am I safe to use the one from releases

#

or

#

idk

#

like

dull magnet
#

yeah it's always updated

#

I just don't make a new release now

fierce tendon
#

OH

#

I GET IT]

#

lmaoo

#

nice

dull magnet
#

there were like weird issues with the old one where it would sometimes make the release a draft and then there was no more release

#

this one works nicer

fierce tendon
#

oh yeah that happens on armcord too sometimes

dull magnet
#

I just migrated to using gh cli, it's pre installed in workflows which is cool

#

so no need for the third party action

#

very cool

proud parrotBOT
dull magnet
#

should be

#

are you trying to do
.myElement. contextMenu {}

#

that won't work because context menus are implemented in a really cursed way, it's basically a top level element that they just show on demand

#

same goes for tooltips

opal fern
wraith carbon
#

I can't find

dull magnet
#

no

#

there isn't

wraith carbon
#

ah

#

Samu said yes

dull magnet
#

bots can do it

#

users can too, probably, but the official client doesn't

#

it just fetches on demand

#

when u scroll members

#

idk investigate network tab

wraith carbon
#

I have an old script

#

But it's before discord changed webpack or whatever they did

#

Also this

dull magnet
#

I think if the server is small it's simple

#

but if its big then the only way to fetch everyone is to search for every letter

granite vault
#

Which would be spamming api I think?

near aurora
#

is zig good lang?

#

what can i write in zig

#

what type of shit

granite wharf
dull magnet
#

i honestly wouldnt learn it

#

learn rust or go

near aurora
#

rust is wierder and i tried to learn go but didn't like it

granite wharf
#

zig is more weird than rust

near aurora
#

also spotify controls don't have any of the wierdness if i play on phone (and it only controls through api)

wraith carbon
near aurora
#

@dull magnet spotifycontrols fixed itself, or, well you did at some point

#

it is no longer buggy

#

lfg

dull magnet
#

I didn't change anything

#

but that's good to hear xd

near aurora
#

because i didn't like any of the date formatting token standards, i made my own

#

this is exclusively date, not time

green vessel
#

okay so..., is there a way to use react router and routes

#

in powercord it had getModule

#

to be more specific

#

i wanna open dms channel

#

the way i know of Router.transitionTo(Routes.CHANNEL('@me', channelId)); }

cedar olive
#

reverse engineer discord and find what they call to switch to a channel

green vessel
#

it’s unclear how they do the DMs because of the minifying crap

#

i found a way but it’s half working only

#

they dispatch CHANNEL_OPEN

#

it opens the dm channel

#

but the left side will still be the last server you were on

#

so instead of showing other friends - nitro - DMs menu

#

it will show server channels

#

but the dms will be the correct dms

cedar olive
#

does anything happen after they dispatch it

#

or before

green vessel
#

because they do the transition to if the type is dm

cedar olive
#

I would guess they have an export for something used to transition to another channel

green vessel
#

i tried looking for one but seems to be inconvenient

#

i will try finding a way to call transitionTo and CHANNEL function ig thats my best bet for now

dull magnet
#

uh

#

look how the update notification opens settings

#

in Vencord.ts

#

navigating to channels might be the same module

#

figure it out shiggy

#

but that's the settings router

#

so it might not do channels, but the channel router would probably look similar

#

you can also just try open("https://discord.com/channels/1015060230222131221/1032770730703716362")

#

it might work 🤷‍♂️

green vessel
#

i tried setting window href but that hard reloads the page instead transitioning

dull magnet
#

i found out how it works

#

its really simple tbh

green vessel
#

me waiting

dull magnet
#
const Router = mapMangledModuleLazy("Transitioning to external path", {
  transitionTo: filters.byCode("Transitioning to external path"),
  transitionToGuild: filters.byCode("transitionToGuild"),
  goBack: filters.byCode("goBack()"),
  goForward: filters.byCode("goForward()"),
});
green vessel
#

but i don’t wanna transition to a guild 😭

#

i wanna open a dm

#

i already have servers working using the dispatch

dull magnet
#

that can do dms??

#

transitionTo can do anything

#

that can do everything

green vessel
#

uh

#

oh

dull magnet
#

btw theres also this lol

green vessel
#

i don’t really get how filter and bycode findbyprops waitfor and those things

dull magnet
#

findByProps("openPrivateChannel").openPrivateChannel(USER_ID)

#

...work?

green vessel
#

i found open private channel but i didn’t know how to call it

green vessel
#

im sorry this is literally the second day for me with this stuff 😭

dull magnet
#

findByProps finds modules by export names (export.getCurrentUser)
findByCode finds functions by their code
mapMangledModule is more advanced, it first finds a module by its source code, then renames imports by the filter functions, so you can turn

export {
  A: func1,
  B: func2,
  C: foo,
}
``` into ```js
{
  foundFunc1: func1,
  foundFunc2:, func2,
  foundFoo: foo
}```
green vessel
#

wtf 😭

#

ok find by props sounds more understandable to me

#

i thought that “export” is a class instance

dull magnet
#

you shouldn't worry about mapMangledModule

cedar olive
#

ohh

#

that makes way more sense now

green vessel
#

^^

dull magnet
#

here's what mapMangledModule does

cedar olive
#

so goBack() is part of the source code of one of those exports

#

it finds it and renames

dull magnet
# dull magnet here's what mapMangledModule does

basically the first thing is the actual module, but as you can see the export names aren't really usable. So mapMangledModule checks each export against your filter function to find the desired one then renames it to your name

cedar olive
#

gonna use it on ignore activities brb

dull magnet
#

and the Lazy suffix in the function name just makes it lazy, aka it doesn't search for the module until you use it in some way

cedar olive
#

I thought about using mapMangledModule but I hadn't quite understood it

#

you should explain it better on the code

dull magnet
#

you can always just ask

cedar olive
#

yah

green vessel
#

and wait for just waits for a module to have that export?

plucky ginkgo
dull magnet
#

just the code you wanna search for

plucky ginkgo
#

ooooh

#

I was over thinking it

#

ty

dull magnet
#

take this function for example

opal fern
#

nobody saw that

dull magnet
#

these all work

#

you should just make sure that your search is unique, so it only finds exactly one module

plucky ginkgo
#

that makes perfect sense, tyvm

dull magnet
cedar olive
#

does destructuring work with lazy

green vessel
#

vendy so chaddy actually

#

this is cool shit

#

i have a very similar arch in cpp for to find stuff in memory bonk

#

if you don’t mind me asking though, what does the lazy stuff do then? like lazyWebpack (sorry if this is too stupid)

plucky ginkgo
green vessel
#

i’ll save this link, you are a king

cedar olive
#

does using the byProps filter on mapMangledModule not check if the export name is the prop