#πŸ‘Ύ-core-development

1 messages Β· Page 106 of 1

austere talon
#

why bother

#

if it works

#

also wtf is komac

turbid hatch
#

komac is the underlying software

#

that the action uses

#

its a kotlin-based app

#

but honestly it leaves much to be desired in terms of being able to contribute

austere talon
#

why doesnt it use fetch 😭

#

shelling out to iwr is cursed

turbid hatch
#

christ knows

#

i just dont like how any of this is written

austere talon
#

yeah but why care if it works

turbid hatch
#

work habit

#

i rewrite a lot of stuff because i dont like how its written

fiery osprey
#

Hi, can I use the patcher on other websites like twitter? KitaBreakdown

verbal pumice
#

well

fiery osprey
#

Me be trying to modify its behavior but it has a lot of chunks

verbal pumice
#

in theory yes

#

but it's gonna be a way different experience probably

fiery osprey
#

Well yeah. I found the actual method I need to patch but I'm not sure how to run the patcher there. It also uses react and webpack

austere talon
#

you can use Vencord framework on any site using webpack

#

but u might find it easier to monkey patch than regex patch

lime stone
#

wouldn't you need to copy the code? I don't think it's a library.

#

theft

fiery osprey
#

I do enjoy stealingforking

lime stone
#

forking??

#

port everthing to twitter??

#

FakeTwitterWhatever

fiery osprey
#

Just removing most things hopefully will work

median rapids
#

VenX

#

part of the venware suite

lime stone
#

maybe just copy / take inspiration from the stuff you need

#

(respect the license though)

fiery osprey
#

It's gonna be opensource too and removing existing copyrights is gonna be unnecessary

lime stone
#

i think the whole thing will need to be gpl 3.0

fiery osprey
#

I'm gonna try make it work first and then think of a license xD

charred monolithBOT
charred monolithBOT
#

Discord Account

No response

What happens when the bug or crash occurs?

like the title says, message search history is completely broken (just not visible)

What is the expected behaviour?

it should work

How do you recreate this bug or crash?

enable experiments isStaff setting

Errors

No response

Request Agreement

  • [X] I am using Discord Stable or tried on Stable and this bug happens there as well
  • [X] I have read the requirements for opening an issue above
austere talon
#

is there even any point in the isStaff patch?

#

@umbral hedge what exactly does it do

#

discord devtools work without it

fiery osprey
#

So I made a patch and installed the thing using violentmonkey and it errored out with csp FelixPeek

austere talon
#

then you cant eval

#

you need to remove csp or not use eval

#

hmm

nocturne haven
austere talon
#
function Oe() {
        var e, t = he.Z.get("disable_new_search"), n = !0 === (null === (e = be.default.getCurrentUser()) || void 0 === e ? void 0 : e.isStaff()), r = (0,
        ye.n5)("showNewSearch");
        return !t && (n || r)
    }
#

if this returns true history isnt added

#
function shouldSkipHistory() {
  return !disableNewSearch && (isStaff || showNewSearch)
}
#

so it has something to do with new search

limpid badger
#

since when tf discord added new search

austere talon
#

probably an unfinished experiment rn

#

okay i fixed

#
{
    find: 'get("disable_new_search")',
    predicate: () => settings.store.enableIsStaff,
    replacement: {
        match: /(?<=showNewSearch"\);return)\s?!/,
        replace: "!1&&!"
    }
},
nocturne haven
austere talon
#

idk this is like shouldUseNewSearch()

#

but ig new search isnt done yet

#

so it just hides old search history

#

that also means we're getting better search soon?? πŸ‘€

nocturne haven
#

they are checking for both disable_new_search& showNewSearch

austere talon
#

ig the former is entirely disabling it, like the "use legacy chat input" accessibility setting

#

and the latter is the experiment?

nocturne haven
#

discord engineering, will never fully understand it

nocturne haven
austere talon
#

@shy veldt rn:

shy veldt
#

whatdo you want

shy veldt
#

its for mobile

#

xd

austere talon
#

LOL

#

so they are working on mobile searcg

#

and made it break desktop search (for isStaff = true)

shy veldt
#

yeah

#

tabs v2

austere talon
#

amazing

limpid badger
#

Funniest shit ever

shy veldt
#

since the design toggle only exists on mobile

#

and it disables the new search ui on tabs v2

shy veldt
austere talon
#

but theyre using the pref in desktop code

#

so maybe its coming to desktop

#

or maybe theyre just stupid

shy veldt
quaint sapphire
#

oh just finished backreading, someone else already said it

torn knot
#

they seriously hardcoded --background-primary and --background-secondary

charred monolithBOT
charred monolithBOT
teal halo
#

somehow

main trout
#

Vee

blazing dome
#

fixed the fork?

frail skyBOT
#
Bad Patches

MoreUserTags (had no effect):
ID: 609853
Match: /children:\[(?=\i,\(0,\i\.jsx\)\("span",{className:\i\(\)\.botText,children:(\i)}\)\])/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i)\.name.+?null/

IgnoreActivities (errored):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i\.application)\.name.+?null/
Error: Unexpected token ','

IgnoreActivities (had no effect):
ID: 881335
Match: /!(\i)(\)return null;var \i=(\i)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

ForceOwnerCrown (found no module):
ID: -
Match: .renderOwner=

MoreUserTags (found no module):
ID: -
Match: .renderBot=function(){

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%c[KeybindsStore] 
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SAVE_CLIP but it doesn't exist in this version. Skipping
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
#
Bad Patches

MoreUserTags (had no effect):
ID: 609853
Match: /children:\[(?=\i,\(0,\i\.jsx\)\("span",{className:\i\(\)\.botText,children:(\i)}\)\])/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i)\.name.+?null/

IgnoreActivities (errored):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i\.application)\.name.+?null/
Error: Unexpected token ','

IgnoreActivities (had no effect):
ID: 881335
Match: /!(\i)(\)return null;var \i=(\i)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

ForceOwnerCrown (found no module):
ID: -
Match: .renderOwner=

MoreUserTags (found no module):
ID: -
Match: .renderBot=function(){

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 resetSocketOnError ReferenceError: Cannot access 'Dye' before initialization
    at Module.default (WebpackModule132978:2:50)
    at VencordWeb:13:748
    at yg (VencordWeb:6:10735)
    at VencordWeb:6:10832
    at [vencord.lazy.get] (VencordWeb:6:8202)
    at Ms.<computed> [as get] (VencordWeb:6:8676)
    at Object.handleProtoChange (VencordWeb:49:51126)
    at CONNECTION_OPEN (WebpackModule473419:2:5861)
    at https://canary.discord.com/assets/b244ade5362bb4090103.js:12281:975
    at https://canary.discord.com/assets/b244ade5362bb4090103.js:12271:847
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
charred monolithBOT
fringe basalt
#

ty vee

charred monolithBOT
charred monolithBOT
tawdry light
#

Hola

charred monolithBOT
livid heath
charred monolithBOT
quaint sapphire
#

(talking about var a = (doSmth(), 5); a === 5)

#

should prob remove that log, lmao

nocturne haven
#

i use it for quick debugging

#

sometimes I also write console.log(variable) || doStuff()

austere talon
#

cursed

quaint sapphire
#

do you use it in arrow functions in order to not have a block or smth?

#

like ```js
const a = () => (doSmth(), 5);
a() === 5;

austere talon
#

usually in patches or for a quick and dirty console.log

quaint sapphire
#

hmm

#

in these cases I prefer kotlin's approach

austere talon
#

they also work wonders in ternarys

quaint sapphire
#
val a = (5).also { doSmth() }
a == 5;
#

there is also .let and .apply

#

you could patch the Object prototype to add them, in fact I've done that a few times, but patching prototypes is an anti-pattern

austere talon
#

you can just make them funcs

quaint sapphire
#

that removes the charm out of it

austere talon
#
function also<T>(o: T, func: (o: T) => void): T {
     func(o);
     return o;
}

const x = also(parseInt("42"), console.log)
#

not as pretty tbf

turbid hatch
#

Object.prototype.also

austere talon
#

kill

quaint sapphire
lime stone
quaint sapphire
#

that specific example is

verbal pumice
quaint sapphire
#

I got one better scenario in C#

#

lemme find it

lime stone
#

i feel like things like also would just reduce readability though

quaint sapphire
#

they aren't meant to be overused

austere talon
#

cause people overuse them so heavily

lime stone
#

what's a good use

austere talon
#

they're nice if used for very short blocks but unreadable if nested

quaint sapphire
#

wait a min, looking through my C# code

austere talon
#

a good use is a very short block

lime stone
#

which actually increases readability

austere talon
#

like

val thing = getObjSomehow().apply { someField = true }
quaint sapphire
#

to avoid defining an extra variable

austere talon
#

Ok()

quaint sapphire
#

for 200 response

austere talon
#

usr
why 😭

quaint sapphire
#

I don't like shadowing variables

#

user is already defined

#

another example for .also

austere talon
#

you will shadow

#

idk how to break it to u but the same code without also would be a line shorter

austere talon
quaint sapphire
#

especially when it is only used in the return block

#

yeah I could move the logic outside

#

but fuck you for being correct

lime stone
lime stone
austere talon
#

i find apply prettier

#

also apply becomes a lot more useful in inline contexts

quaint sapphire
#

yes I've done that before

austere talon
#

i also like apply for android ui code

quaint sapphire
#

btw, this is what happens when you don't know that .DistinctBy exists

austere talon
# austere talon i also like apply for android ui code
        Button(ctx).apply {
            text = "Load missing themes"
            setOnClickListener {
                ThemeLoader.loadThemes(false)
                reRender()
            }

            linearLayout.addView(this)
        }

        TextView(ctx, null, 0, R.i.UiKit_Settings_Item_Header).apply {
            text = "Transparency Mode"
            typeface = ResourcesCompat.getFont(ctx, Constants.Fonts.whitney_semibold)

            linearLayout.addView(this)
        }
lime stone
#

that seems like a good use

quaint sapphire
#

that is a great use

austere talon
quaint sapphire
#

in the below usecase, .also may not have saved me lines of code, but it did allow me to group the lines in a meaningful way

#

in js I would do

const user = baseUser.ToUser();
{
   /* the rest of the lines here */
}
#

but in js that is...weird for some people

lime stone
#

huh why

#

shouldn't you declare the variable in the scope, not out

quaint sapphire
#

people associate {} with if,while, function and other statements

#

they don't associate it with scopes

quaint sapphire
lime stone
#

if (thing)
const asdfghj = "asdfghj";
i assume this is still scope limited lol

quaint sapphire
#

in python it isn't

charred monolithBOT
lime stone
#

java probably stops you from doing if (asdfghj) /* var declaration */

austere talon
# austere talon this is also the one time where i like nesting them because it makes children ne...
        mFooterLayout = LinearLayout(ctx).apply {
            setPadding(dp8, dp8, dp8, dp8)
            orientation = HORIZONTAL
            gravity = Gravity.CENTER_VERTICAL
            layoutParams = LayoutParams(LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)

            setBackgroundColor(ColorCompat.getThemedColor(ctx, R.b.colorBackgroundSecondaryAlt))
            mFilenameView = TextView(ctx, null, 0, R.i.UiKit_TextView_Bold).apply {
                gravity = Gravity.CENTER_VERTICAL
                layoutParams = LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT).apply {
                    weight = 1f
                }

                text = "${attachment.filename} (${FileUtilsKt.getSizeSubtitle(attachment.size)})"
                addView(this)
            }

            addView(makeImageView(R.e.ic_copy_24dp, "Download", 4.dp) {
                if (mExpanded && mFullContent != null ) {
                    Utils.setClipboard("content", mFullContent!!)
                    Utils.showToast("Copied to clipboard!")
                } else if (mContentPreview != null) {
                    Utils.setClipboard("content", mContentPreview!!)
                    Utils.showToast("Partial content copied. Expand the preview to copy the full content.")
                }
            })

            addView(makeImageView(R.e.ic_file_download_white_24dp, "Download", 4.dp) {
                alpha = 0.5f
                isEnabled = false
                val commonCallback = { _: String? ->
                    alpha = 1f
                    isEnabled = true
                }
                NetworkUtils.downloadFile(context, Uri.parse(attachment.url), attachment.filename, null, commonCallback) {
                    logger.errorToast("Failed to download ${attachment.filename}", it)
                    commonCallback(null)
                }
            })

            addView(makeImageView(R.e.ic_visibility_white_24dp, "Close preview") {
                it as ImageView
                if (mHidden) {
                    mTextView.visibility = View.VISIBLE
                    it.setImageDrawable(getThemedDrawable(R.e.ic_visibility_white_24dp))
                } else {
                    mTextView.visibility = View.GONE
                    it.setImageDrawable(getThemedDrawable(R.e.ic_visibility_off_white_a60_24dp))
                }
                mHidden = !mHidden
            })
        }
lime stone
#

i can't remember but i feel like it did

austere talon
#

jumpscare

quaint sapphire
#

it doesn't feel weird if you are used to python

#

but when I learnt C-style languages I...

austere talon
lime stone
#

kotlin feels like it has too much syntactic sugar (if that's the correct term)

austere talon
#

yes it does

quaint sapphire
austere talon
#

it makes it very unreadable if you use it too much

#

kotlin is very nice if you use it like a better java

quaint sapphire
lime stone
#

4.dp seems kind of dirty to me

austere talon
#

but terrible if you make it too kotliny

quaint sapphire
austere talon
#

4.dp > pxToDp(4)

quaint sapphire
#

would you rather dp(4)?

lime stone
#

i find it similar to macros (where i prefer not to use them)

quaint sapphire
#

macros are made to be abused, if you don't use them, then you ain't cool

lime stone
#

i don't like it

quaint sapphire
#

someone added reflection to C++ using a preprocessor, basically macros

quaint sapphire
lime stone
#

especially when there's a whole class for Dp 😭 that feels overengineered

austere talon
#

uh why?

#

DP is used heavily in android codebases so it makes sense

lime stone
#

i'd just use a primitive

austere talon
#

then it's less convenient

quaint sapphire
#

it is basically .apply

austere talon
#

the reason is that in js it's very vague

#

you don't know where something is coming from

lime stone
quaint sapphire
austere talon
#

in kotlin, it's always clear what property you're accessing

#

in js it isn't

quaint sapphire
#

bc kotlin is a strongly typed language

lime stone
#

doesn't it have any

crude hearth
lime stone
#

i guess c and c++ does (void *)

quaint sapphire
#

I only use any when dealing with json parsing/serializing when the type is too verbose to type in classes
and I simply don't care about most of the json values

lime stone
#

you should write everything in java using eclipse ide πŸ’ͺ

quaint sapphire
#

eclipse sucks

#

also I prefer C#

#

and Rider is the best jetbrains IDE

lime stone
austere talon
#

the fact that js lets u dynamic stuff like this makes with terrible in js

#

in kotlin this couldn't happen since its strongly typed

#

and like with is even compile time

quaint sapphire
#

oh yeah I can see that happening in js

#

thats cursed

#

a friend of mine wrote some cursed python that allowed him to do this

lime stone
#

πŸ—Ώ

quaint sapphire
#

w/o mutability it makes more sense now I think

lime stone
#

mutability is cool you should totally modify everything

#

😎

lime stone
#

this is the way

quaint sapphire
#

Credit: @jagged heart (@justfoolingaround on github)

def with_(variable, func):
    current_scope = globals()
    previous_state = current_scope.copy()

    for f in dir(variable):
        attr = getattr(variable, f)
        current_scope[f] = attr

    content = func()

    for _ in current_scope.copy():
        if _ in previous_state:
            current_scope[_] = previous_state[_]
        else:
            del current_scope[_]

    return content
lime stone
#

use eclipse ide for php developers and php-gtk to develop your amazing applications

jagged heart
#

AYO DEFILING MY NAME WITH MY CURSED SHIT

quaint sapphire
#

kek

quaint sapphire
lime stone
#

NO

#

i actually kind of like eclipse :3

#

when it works

quaint sapphire
#

soon you'll say that you like netbeans

lime stone
#

eclipse for java developers is pretty cool but buggy lol

#

everything else is sh*t

quaint sapphire
# quaint sapphire
Object.defineProperties(Object.prototype, {
    also: {
        value(cb) {
            cb(this);
            return this;
        },
        writable: false
    },
    let: {
        value(cb) {
            return cb(this);
        },
        writable: false
    },
    apply: {
        value(cb) {
            with(this) {
                cb()
            }
            return this
        },
        writable: false
    }
});

.apply doesn't work, maybe you can fix it or smth, I dunno

lime stone
quaint sapphire
#

I think you just hate gradle

#

for the loading times

lime stone
#

wdym?

#

you can use gradle with eclipse

quaint sapphire
#

do you?

lime stone
#

i have previously

quaint sapphire
#

:pepeLeaves:

lime stone
#

i even made an eclipse plugin :333

charred monolithBOT
lime stone
#

it makes it look cool

#

I didn't finish it though 😭

#

and since i have intellij idea ultimate i should probably make use of it lmao

#

(i think i can only use it for open source development though)

quaint sapphire
#

Eh, did you get it as a student for free?

#

If so, then it should be fine as long as it is not used professionally or smth

lime stone
#

nope, open source thingy

#

because i made a lot of commits on silly minecraft launcher

quaint sapphire
#

Huh, people actually get it like that?
Thought it was for famous repositories only

#

Like React or smth

lime stone
#

well the repo does have 4k stars

#

i guess not famous

crude hearth
#

society if you could use xml in aliucord

charred monolithBOT
turbid hatch
charred monolithBOT
crude hearth
#

Compose is unreadable

#

I hate

charred monolithBOT
cunning badger
#

Hello, is there a plugin that only lists users with any badges on the server?

charred monolithBOT
quaint sapphire
cunning badger
jagged cloak
quaint sapphire
#

For example here is the code to get all the users that have a custom pfp in this server

{
    const wpCommon = Vencord.Webpack.Common;
    const serverId = 1015060230222131221n;

    const users = wpCommon.UserStore.getUsers();
    const memberIds = wpCommon.GuildMemberStore.getMemberIds(serverId);
    
    const members = Object.entries(users)
        .filter(([id, user]) => {
            return memberIds.includes(id) && user.hasAvatarForGuild(serverId)
        })
        .map(([k,v])=>v);

    console.log(members)
}
#

dunno if UserStore.getUsers actually returns all the users you are in a server with, or just cached users

crude hearth
quaint sapphire
#

I didn't individually fetch each user

lime stone
#

yeah but youd need to

quaint sapphire
#

?

#

I mean, if UserStore.getUsers only has cached users, then yes

jagged cloak
#

which it does

quaint sapphire
#

so I am only viewing the cache

#

which is ok with me, since I didn't plan to use this either way

quaint sapphire
#

nah, it didn't appear to be like that

quaint sapphire
#

(no api abuse ofc)

jagged cloak
#

heres your homework assignment make codeblocks collapsable

nocturne haven
nocturne haven
quaint sapphire
#

I asked if its a proxy, bc that would mean they can have a getter, which would mean they could be making api calls every time you access a value in that object

#

but it aint one

#

so its ok

nocturne haven
#

basically you need perms in the server to view the members list inside settings to be able to fetch all guild members

charred monolithBOT
nocturne haven
quaint sapphire
#

yeah

#

also Proxies do have a special appearance in the console

nocturne haven
#

and the function source is also basically just getUsers() {return someVar} and getUser(id) {return someVar[id];}

austere talon
quaint sapphire
#

smth like

{ [Target]: {}, [Handler]: {} }

nocturne haven
austere talon
#

but yeah you're also right shiggy

#

99% of the time sync funcs will just be local

quaint sapphire
nocturne haven
#

yeah it's just that one discord developer that doesn't anything about codeflow

austere talon
#

you need mod to list all members

quaint sapphire
#

an API limitation?

nocturne haven
#

yes

quaint sapphire
#

no api abuse

austere talon
#

fetching members isn't api abuse

nocturne haven
#

you'll get a total of 120 members (iirc)

austere talon
#

the ServerProfile plugin fetches members

lime stone
nocturne haven
#

it really depends on context

austere talon
#

then they did smth that was actually api abuse

jagged cloak
#

VSCode πŸ”

lime stone
#

fetching profiles, that is

austere talon
#

requesting members is one single api call and normal

lime stone
#

i guess fetching members is a bit different

austere talon
#

requesting profiles is one request per user

lime stone
#

but to see badges you need profiles

#

which = api abuse

austere talon
#

ye

quaint sapphire
#

i aint talking about badges

lime stone
#

the initial person was

nocturne haven
# quaint sapphire

this is the cached value, I mean that if you call the api for members even if you don't have perms to see all, you'll get around 120

median rapids
#

the api is designed to not allow users to easily obtain all members in a server

quaint sapphire
nocturne haven
median rapids
#

however, you can do it if you have kick, ban, or manage roles perms, or if the server has less than 10k members

#

and you can bruteforce members in other ways

austere talon
#

search for every letter shiggy

median rapids
median rapids
#

but funnily enough

quaint sapphire
median rapids
#

the gateway has an rl of 120/60

#

per SESSION

#

users can have infinite sessions

nocturne haven
#

this is a true discord moment because they didn't spent more than 2s to think about it

median rapids
#

so you can bruteforce by spamming op 8

quaint sapphire
austere talon
#

you don't get that til you open profile

quaint sapphire
median rapids
quaint sapphire
nocturne haven
lime stone
median rapids
#

abusing search recent members though

#

that shouldnt be abuse

quaint sapphire
#

gotta install vesktop bc fml discord crashing due to memory limits aint fun during plugin dev

nocturne haven
#

hop on x64

quaint sapphire
#

there is an x64 version?

nocturne haven
#

iirc development, canary & ptb are available for x64

jagged cloak
#

stable x64 when

quaint sapphire
#

eh, I don't want canary as that uhh, can have unexpected crashes that are only temporary bc they are trying things out

jagged cloak
#

they hate stable users (real)

nocturne haven
#

afaik tho

quaint sapphire
#

it has happened more than once, so I am aware of it
well, it was more like vencord causing the crash bc discord code was unpredictable during patches or smth

median rapids
#

bro thinks they test before pushing to stable

#

i love my discord blobcatcozy

quaint sapphire
median rapids
#

i tried loading all chunks (mistake)

nocturne haven
#

crazy how this has grown

median rapids
#

i love my 64 bit

nocturne haven
#

yeah

#

this was my motivation to make something that loads all client mods (it only does two lol)

austere talon
#

vencord ci does that daily

median rapids
#

too lazy to track it down

quaint sapphire
#

found a neat icon, since it's late I'll be resuming this tomo

lime stone
#

coool

median rapids
#

vencordians will figure out whatever the fuck friend_token is blobcatcozy

austere talon
#

discord be passing undefined for that shit all the time

median rapids
#

my guess is it's supposed to be for linking your profile to people who don't have a mutual with you

#

but i can't figure out what the actual token is

#

i'd say not implemented but i did confirm the param exists on both eps it's referenced in

teal halo
#

wtf balls

lime stone
#

best of vencord-dev

charred monolithBOT
azure jay
median rapids
#

whats that

#

oh yeah it's max 100 chars (tho that doesn't really narrow it down much)

austere talon
median rapids
teal halo
#

tried mine?

cunning badger
#

Is there a plugin like this plugin available in vencord?

turbid hatch
#

no

#

because its useless

cunning badger
#

Alright

limpid badger
#

that just sounds like for flexing purposes

#

i don't really see a use for it

teal halo
#

flexing badges (or anything else for that matter) is cringe

limpid badger
#

fr, back to waiting for channel tabs plugin to release

olive aurora
#

literally no one else can see it

orchid cargo
frail skyBOT
#
Bad Patches

MoreUserTags (had no effect):
ID: 609853
Match: /children:\[(?=\i,\(0,\i\.jsx\)\("span",{className:\i\(\)\.botText,children:(\i)}\)\])/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i)\.name.+?null/

IgnoreActivities (errored):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i\.application)\.name.+?null/
Error: Unexpected token ','

IgnoreActivities (had no effect):
ID: 881335
Match: /!(\i)(\)return null;var \i=(\i)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

ForceOwnerCrown (found no module):
ID: -
Match: .renderOwner=

MoreUserTags (found no module):
ID: -
Match: .renderBot=function(){

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%c[KeybindsStore] 
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SAVE_CLIP but it doesn't exist in this version. Skipping
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
#
Bad Patches

MoreUserTags (had no effect):
ID: 609853
Match: /children:\[(?=\i,\(0,\i\.jsx\)\("span",{className:\i\(\)\.botText,children:(\i)}\)\])/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i)\.name.+?null/

IgnoreActivities (errored):
ID: 238852
Match: /(?<=\(\)\.badgeContainer,children:).{0,50}?name:(\i\.application)\.name.+?null/
Error: Unexpected token ','

IgnoreActivities (had no effect):
ID: 881335
Match: /!(\i)(\)return null;var \i=(\i)\.overlay.+?children:)(\[.{0,70}overlayStatusText.+?\])(?=}\)}\(\))/

ForceOwnerCrown (found no module):
ID: -
Match: .renderOwner=

MoreUserTags (found no module):
ID: -
Match: .renderBot=function(){

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 resetSocketOnError ReferenceError: Cannot access 'Dye' before initialization
    at Module.default (WebpackModule132978:2:50)
    at VencordWeb:13:748
    at yg (VencordWeb:6:10735)
    at VencordWeb:6:10832
    at [vencord.lazy.get] (VencordWeb:6:8202)
    at Ms.<computed> [as get] (VencordWeb:6:8676)
    at Object.handleProtoChange (VencordWeb:49:51126)
    at CONNECTION_OPEN (WebpackModule473419:2:5861)
    at https://canary.discord.com/assets/b244ade5362bb4090103.js:12281:975
    at https://canary.discord.com/assets/b244ade5362bb4090103.js:12271:847
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
charred monolithBOT
austere talon
#

its almost like i told u this would confuse them

olive aurora
#

typescript was a mistake

charred monolithBOT
#

since there are even more complications now, i have no choice but to drop support. i am tired of having to fight with mozilla and their annoying guidelines / requests

firefox users may either install manually or use the userscript (the current firefox extension is neutered already, so there is not much difference)

charred monolithBOT
median rapids
charred monolithBOT
carmine berry
charred monolithBOT
frail skyBOT
#
Bad Patches

MoreUserTags (had no effect):
ID: 609853
Match: /children:\[(?=\i,\(0,\i\.jsx\)\("span",{className:\i\(\)\.botText,children:(\i)}\)\])/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.activityTitleText.+?children:(\i)\.name.*?}\),)/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.activityCardDetails.+?children:(\i\.application)\.name.*?}\),)/

MoreUserTags (found no module):
ID: -
Match: .renderBot=function(){

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%c[KeybindsStore] 
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SAVE_CLIP but it doesn't exist in this version. Skipping
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
limber skiff
#

you have to be kidding me

#

of course the rewrite already has a broken patch

frail skyBOT
#
Bad Patches

MoreUserTags (had no effect):
ID: 609853
Match: /children:\[(?=\i,\(0,\i\.jsx\)\("span",{className:\i\(\)\.botText,children:(\i)}\)\])/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.activityTitleText.+?children:(\i)\.name.*?}\),)/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.activityCardDetails.+?children:(\i\.application)\.name.*?}\),)/

MoreUserTags (found no module):
ID: -
Match: .renderBot=function(){

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 resetSocketOnError ReferenceError: Cannot access 'Dye' before initialization
    at Module.default (WebpackModule132978:2:50)
    at VencordWeb:13:748
    at Kf (VencordWeb:6:10726)
    at VencordWeb:6:10823
    at [vencord.lazy.get] (VencordWeb:6:8193)
    at ms.<computed> [as get] (VencordWeb:6:8667)
    at Object.handleProtoChange (VencordWeb:49:50890)
    at CONNECTION_OPEN (WebpackModule473419:2:5861)
    at https://canary.discord.com/assets/cfad5b6623a1dbd0682c.js:12281:975
    at https://canary.discord.com/assets/cfad5b6623a1dbd0682c.js:12271:847
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
limber skiff
#

well I fix later

charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
charred monolithBOT
livid heath
livid heath
quaint sapphire
#

I mentioned in the past that I am doing PHP w/o laravel, well, this is how I cope

charred monolithBOT
limpid badger
lime stone
#

rip

charred monolithBOT
quaint sapphire
#

why do I get like 2 stars every month on this repo?

#

it is my 3rd most starred repo

#

on another note, github is very good for hosting automatic rss feeds

lime stone
quaint sapphire
#

true

austere talon
#
/someMatch(?<=(\i).thing.+?)/
#

this will walk back from match to find \i.thing

verbal pumice
#

im replacing discord's code for checking what the tag should be with my own

#

but thank you

half notch
#

has anyone started working on a plugin or textreplace filter to remove the sig from file links

lime stone
#

why would you

half notch
#

its not needed for sending files in the discord client, also it looks ugly

lime stone
#
  • I'm pretty sure they're forced
#

i doubt it's client sided

verbal pumice
#

they will be forced*

lime stone
#

well i'm pretty sure they're added on the backend

#

that seems likely at least

half notch
#

maybe it will finally get people to stop using discord as a file host or readme alternative Β―_(ツ)_/Β―

lime stone
#

readme??

#

you can still have info channels

half notch
#

people like to use discords like guides or wikis

#

"join our discord to learn how to config this"

#

instead of just supplying a normal guide

tame escarp
austere talon
#

i think the params are not needed when sending links inside discord cause they'll likely just add them for you, but they're still useful for (temporarily) linking outside of discord

half notch
#

its like buying a motherboard and they just give you a qr code to the manual instead of an actual book

tame escarp
#

you'll never fucking believe this

half notch
#

(gigabyte does that lmao)

tame escarp
#

not necessarily bc link rot but that is an acceptable sacrifice to save paper waste

half notch
#

yeah if a link just dies one day or they change domains, the qr code is useless

#

its also nice to just have a booklet with literally everything youd need to know in it

tame escarp
#

the wayback machine in question:

tame escarp
half notch
#

i keep all my manuals lol

austere talon
#

nerd m

tame escarp
#

fr

half notch
austere talon
#

i have not once in my life used a physical manual unless it was ikea furniture

tame escarp
#

ive used manuals to set things up and they immediately went into the trash can after

half notch
#

ive been building computers for so long i dont ever need them, but i just like to keep them

tame escarp
half notch
#

nearest ikea is like 8 hours away here

tame escarp
#

i WANT to walk in and grab a blahaj instead of waiting for it to ship

austere talon
#

ikea is 30mins drive away

half notch
tame escarp
austere talon
half notch
#

do you live in sweden by chance

austere talon
#

no

#

deutschland

half notch
#

that makes sense

#

any eu country has ikeas like a 7/11

tame escarp
austere talon
#

85 miles

#

that's not that far

#

you'll go there

tame escarp
#

still like an hours drive away

austere talon
#

more than that

half notch
austere talon
#

like one and a half or two

tame escarp
#

and we would literally ONLY go as pilgramage to blahaj homeland (not even trans)

half notch
#

thats the NEAREST one

tame escarp
#

american drivers are

#

shall we say

#

very good at getting places fast

austere talon
#

definitely not as much as germans

#

some people drive like 200km/h or even 300km/h on the autobahn

tame escarp
#

the roads here arent good enough for that

#

youd literally ram into a pothole and flip over multiple times

#

pulverizing you and any passengers

austere talon
charred monolithBOT
charred monolithBOT
robust thunder
#

so firefox support used to exist and no other userscript manager other than the closed-source one work either? q-q-q-q-q-q

nimble plaza
#

nop

#

any userscript manager that impliments greasemonkey apis work

#

like violentmonkey

robust thunder
# nimble plaza like violentmonkey
// this UserScript DOES NOT work on Firefox with Violentmonkey or Greasemonkey due to a bug that makes it impossible
// to overwrite stuff on the window on sites that use CSP. Use Tampermonkey or use a chromium based browser
// https://github.com/violentmonkey/violentmonkey/issues/997
nimble plaza
#

oh wha

#

damn

robust thunder
#

wait, but that issue is closed

#

if i have the userscript installed, what should happen?

nimble plaza
#

it should just work

#

check settings

robust thunder
#

i.e. how does vencord look in its default state

robust thunder
nimble plaza
#

a plugins tab in discord settings

robust thunder
robust thunder
#

'tis not q-q

nimble plaza
#

damn

#

nothing we can do then

austere talon
robust thunder
#

at this point

#

since that one is at least open

austere talon
#

try with this one

#

see if it works

robust thunder
#

but i guess this is foss???

#

lmao

austere talon
#

I mean the description literally says you should extract the xpi for source code

robust thunder
austere talon
#

PaimonShrug unlucky then

#

just use tampermonkey

robust thunder
austere talon
#

or just use chromium or firefox nightly

#

blame mozilla for this terrible situation

robust thunder
robust thunder
austere talon
#

yes because you can install unsigned extensions on nightly

robust thunder
#

so what happened to signed ff extension anyway?

austere talon
charred monolithBOT
austere talon
#

it's just mozilla to blame

limpid badger
#

it's strange that it's only allowed on nightly

austere talon
#

they claim to care about freedom and decentralisation, then make it so that you LITERALLY CANNOT install non mozilla approved extensions unless you use nightly

#

crappy hypocritical company

robust thunder
#

what feature flag do they enable in their release compiles that it disables support for them?

#

also who the fuck thinks of that

robust thunder
austere talon
#

?

#

that's what i did

robust thunder
#

oh shit, based

austere talon
#

and no there really isn't

#

chrome is unsafe?
android is unsafe?
windows is unsafe?
linux is unsafe?

there is no risk involved with allowing extensions from third party sources. if someone wants to scam you and you're stupid, you're gonna get scammed either way

robust thunder
#

i.e. everything is unsafe lmao

austere talon
#

that has nothing to do with allowing apps from third party sources

#

also just fyi the majority of extensions on the firefox store are not checked at all

#

there is a lot of malware

limpid badger
#

isn't chrome web store has the same issue

austere talon
#

yes but that is irrelevant

main trout
#

firefox bad

austere talon
#

the point is that locking down your store has no security benefit

main trout
#

shrimple

austere talon
#

mozilla addons is just horrible

robust thunder
robust thunder
#

it's less about whether or not things are actually secure with companies, it's that someone can be held accountable when it isn't :^) society

robust thunder
robust thunder
#

i'd disagree

austere talon
#

??

#

did you read the thing u posted

robust thunder
#

what the fuck is an add-on ID

limpid badger
#

alr, nevermind on that one, apologize for it

austere talon
charred monolithBOT
#

Not only do i not want to give them my account, it also isn't even possible because of how discord's login from new location verification works

Yeah dude, it's soooooo hard to get a token to an alt account dude, it's like what, top tier security to get a Discord token? Pfff, it's not like you can give it to them a token to an alt, or worse, give them login credentials to an alt, that's too hard! 😡

limpid badger
robust thunder
austere talon
#

le blocked

charred monolithBOT
topaz thistle
# charred monolith

@austere talon I'll also add github-actions here to automatically build the binaries instead of having them in the git-repo

austere talon
#

yeah that's nice

#

i mostly did it cause it was just quick and dirty to get a POC going

#

they should be in releases eventually

topaz thistle
#

Let me know if the PR is good as is currently

austere talon
austere talon
#

not sure, i think i initially named it vencord-virtmic? that way it still contains the name of the general project so it's not gonna conflict with other virtmic impls but also generic

topaz thistle
#

Alright

austere talon
topaz thistle
#

vencord-screen-share?

austere talon
#

cmake/cpm.cmake is very large, is that supposed to be gitignored?

topaz thistle
topaz thistle
austere talon
#

also feel free to change the license to whatever open source license you want

i think a more permissive license would be better so other projects can use it too without needing to be gpl

#

Apache or LGPL or something along those lines

but if you have any specific preference that's also fine

topaz thistle
#

MIT?

austere talon
#

sure

#

the only reason i made it gpl was because it used some code from discord-screenaudio

#

ill give a more thorough review later, although ill probably not be able to comment too much on the code itself since you're way better at C++ than me azu_laugh

#

also out of curiosity, why the switch from napi to v8? is it better?

topaz thistle
#

we use napi

#

:)

austere talon
#

oh

#

I meant it the other way round

#

v8 to napi

topaz thistle
#

napi is abi stable

#

and the recommended way to write node-addons

austere talon
#

really? the official node addon guide has v8 at the very top so i figured v8 was recommended

topaz thistle
#

It is intended to insulate addons from changes in the underlying JavaScript engine and allow modules compiled for one major version to run on later major versions of Node.js without recompilation. The ABI Stability guide provides a more in-depth explanation.

austere talon
#

ah i see

#

thank you

charred monolithBOT
robust thunder
#

@topaz thistle your files somehow miss their ending newline..

topaz thistle
#

Which? The source files?

robust thunder
robust thunder
topaz thistle
#

That's intended and done by clang-format

robust thunder
#

interesting, why would one do that?

topaz thistle
#

Well why should I not

robust thunder
#

writing text at the end of the file would create a change in the line before it

austere talon
#

trailing newlines are common *nix practice

robust thunder
#

i.e. here lines 36+ would appear, but so would 36

austere talon
#

Benefits of trailing newlines include the ability to concatenate or append to files as well as output files to the terminal without interfering with shell prompts.

robust thunder
#

and if you were to output the file in a she-

#

exactly

#

if you cat the file, the missing newline would just put my prompt after your last line

#

breaking my setup a little

austere talon
robust thunder
#

(yeah most shells account for that, say zsh)

robust thunder
#

i.e. source isn't text?

topaz thistle
#

alr fixed

robust thunder
#

i guess vscode does actually call itself a code editor, which is surprisingly pretentious

#

nvim as an ex:

topaz thistle
#

Is pnpm avaiable in dnf?

robust thunder
topaz thistle
robust thunder
robust thunder
topaz thistle
#

Yeah got it already ^^

robust thunder
#

alr

topaz thistle
#

Have a build workflow for arch and fedora, arch has it in the repos, that's why I was curious if fedora has it as well

robust thunder
# quaint sapphire why is it pretentious?

because it's not a structural editor, it's barely an ide, intellisense isn't in the text editor but supplied via the lsp. it's in all senses of the word a text editor frontend for monaco.

quaint sapphire
#

bro, people call Notepad++ a code editor, if Notepad++ is a code editor, then vscode is an IDE by that standard

topaz thistle
#

Github Workflows :')

robust thunder
real flower
#

yeah

robust thunder
quaint sapphire
robust thunder
#

pardon?

#

oh that's triple negated

#

good lord

#

it's for the reason that microsoft didn't want to implement support for every language themselves, they developed lsp, i agree

topaz thistle
#

(β•―Β°β–‘Β°)β•―οΈ΅ ┻━┻

austere talon
#

also installing it from the repos is pointless you can just install it with npm

quaint sapphire
austere talon
#

the pnpm action has goodies like caching dependencies across runs

quaint sapphire
lime stone
#

no, vscode

#

vscode often does feel like an ide with actions to launch and content assist

austere talon
quaint sapphire
#

vscode is nice when someone has configured the debug stuff, so you can step into function calls

#

although, if that is enough to call it an IDE, then dnSpy is an IDE for C#

lime stone
#

oh well does it really matter

#

& what has this to do with vencord

topaz thistle
#

inb4 it breaks the worklfow again :)

lime stone
austere talon
robust thunder
#

there's the whole nix aproach, but that's not bulletproof either

topaz thistle
#

wdym writing workflows is the best thing ever agony

#

couldn't imagine a more fun thing to do

topaz thistle
#

is there a (putting gun into his mouth) emoji?

#

there better be

robust thunder
#

whaaa

#

but it's nix flakes, only a little more convoluted

topaz thistle
#

About to auto click this button

robust thunder
#

actually @austere talon would you merge a working nix flake into this?

robust thunder
turbid hatch
#

we will never support nix

#

no one here knows how to maintain nix and none of us use nix

robust thunder
#

alright alright xD

#

no worries

turbid hatch
#

if we had an active core contrib that actually used it then it might be feasible, but we can't merge something in and then never support it because people will expect support

#

sorry

#

also re code editors: if you can edit code in it it's a code editor, who cares if it doesnt syntax highlight or if you cant get extensions, notepad can edit code and i have very much made changes to c++ code in notepad

robust thunder
#

nah, specifically with the c++ project it would maybe make sense, specifically to remove the need for any work on workflows

turbid hatch
#

:^)

#

que

robust thunder
turbid hatch
#

and i am being pedantic but on the other side of the spectrum

robust thunder
# turbid hatch que

there's a nix flake bot that just runs your tests and tries building using the flake, which is sort of nice

turbid hatch
#

bleh

robust thunder
# turbid hatch bleh

the unixporn discord has a few beautiful emotes, one of them is just the nixos symbol crossed out

#

we love nix

turbid hatch
#

as much as i think its a cool idea i find it causes some issues with a lot of software which then requires extensive time to fix

#

too much suffering for me

robust thunder
#

yeah no, i used to daily-drive nixos. but when you're actually forced to write nix-exprs and affix overlays and such it's a hassle

turbid hatch
#

only use case i have for it really

#

is redeploying vms

#

or making replicas

#

when i dont want to or cant use containers

robust thunder
austere talon
#

I don't get the point of daily driving nix personally

#

every time I hear about nix it's something negative or inconvenient

olive aurora
#

STOP DOING NIX

PACKAGES WERE NEVER MEANT TO BE ISOLATED
YEARS OF PACKAGE MANAGEMENT yet NO REAL-WORLD USE FOUND for going further than Flatpak
Wanted to do it anyway for a laugh? we had a tool for that: it's called PODMAN
"error: infinite recursion encountered, at undefined position" statements dreamed by the utterly deranged

austere talon
#

oh you want to do super basic thing? yeah that's really easy you just need to edit some system config then run some nix update command and add two overlays and it's really that easy

turbid hatch
#

reproducability is cool but i could also write a windows group policy to achieve the same thing with windows server deployments

#

:P

robust thunder
#

eh, nix the language kind of sucks. guix did the right thing to stick with something existing, and scheme is malleable enough to become a hermetic package manager anyway

olive aurora
#

reproducibility? yeah man you can copy my ssd no problem

austere talon
#

or people complaining to me that they can't build one of my programs cause they lack the most basic libraries ever (like the c++ stdlib), although ig that's more of a user error

robust thunder
#

but, i used to have an inpersistent setup

lapis sleet
#

I don't know any normal nix users

#

They scare the shit out of me

olive aurora
#

nix manages to be more pain than gentoo

robust thunder
#

gentoo is pain?

olive aurora
#

see

robust thunder
#

emerge does its job, no?

olive aurora
#

you have used nix for too long

robust thunder
#

bruh, emerge is fine

austere talon
#

average nix user content

#

gentoo is painful but the good kind of pain

#

i installed gentoo on a single core 1gb ram hdd laptop from 2005, it was great fun and definitely didn't take me 6 hours

olive aurora
#

true

#

im gonna revive my old laptop and install gentoo on it

#

poor thing the chassis is barely holding up and the trackpad is literally Gone

lime stone
#

so i think it's even more of a code editor

topaz thistle
turbid hatch
#

except in a couple of rare cases

topaz thistle
#

Mine does as well and I'd say they both deserve to rot in hell for using windows servers

turbid hatch
#

tbf we dont have a choice xd

topaz thistle
#

Are you using some windows exclusive components?

turbid hatch
#

no, we're a windows software dev company

#

:P

#

we write software exclusive to windows because it's the easiest to work for

#

we're using .net framework still because loads of our stuff is legacy codebases that we cant move to .net sdk

#

i mean we have stuff that still runs on vb6

#

so

#

though fortunately that's rarer now

topaz thistle
#

ouch

turbid hatch
#

yip

#

i'm only just encouraging them to use like

#

CI and stuff

#

xd

topaz thistle
#

Btw regarding the virtual mic as far as I can tell it's only used in Vesktop, could we also load node modules from a normal Vencord plugin?

charred monolithBOT
#

but Mozilla is great as a company

Then how come AMO has been an issue for almost 4 years now?
Lest we forget advertising on upgrade, succumbing to Cloudflare's monopoly via DNS-over-HTTP, and Thunderbird going to shit after being given to a sub-organization of Mozilla.

Mozilla is not a good company to me in my opinion, even if I will keep coping using their products.

austere talon
#

the idea is to also turn it into a plugin for normal discord

topaz thistle
#

nice ^^

charred monolithBOT
#

locking this before it derails

also the downvotes are unreasonable. blame mozilla for being hypocritical and not actually caring about freedom / decentralisation and instead locking their extension ecosystem down more than apple locks down ios. it's not our fault.

small flare
#

alright noticing voicemessages plugin is hit or miss on ios

using the actual voice recorder is fine and will pretty much always work

upload file usually always works on android, ios it never works. im thinking its maybe being encoded as the wrong codec

#

idk WHY that would be happening, the code looks fine from my very limited knowledge of js

charred monolithBOT
austere talon
#

anything else will not play on ios

#

but will play on all other platforms

small flare
#

what is this for then

charred monolithBOT
austere talon
#

you can use an online converter tool to convert to opus ogg

small flare
#

ah i see

#

theres not going to be a way to change the codec when its uploaded right

#

at least on desktop

woeful sable
spark pivot
#

W plugin though

limpid badger
#

Sounds useful

charred monolithBOT
charred monolithBOT
charred monolithBOT
woeful sable
frail skyBOT
#
Bad Patches

MoreUserTags (had no effect):
ID: 609853
Match: /children:\[(?=\i,\(0,\i\.jsx\)\("span",{className:\i\(\)\.botText,children:(\i)}\)\])/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.activityTitleText.+?children:(\i)\.name.*?}\),)/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.activityCardDetails.+?children:(\i\.application)\.name.*?}\),)/

MoreUserTags (found no module):
ID: -
Match: .renderBot=function(){

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SOUNDBOARD_HOLD but it doesn't exist in this version. Skipping
%c[KeybindsStore] 
font-weight: bold;
color: purple;
 [kb store] KeybindStore: Looking for callback action SAVE_CLIP but it doesn't exist in this version. Skipping
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
#
Bad Patches

MoreUserTags (had no effect):
ID: 609853
Match: /children:\[(?=\i,\(0,\i\.jsx\)\("span",{className:\i\(\)\.botText,children:(\i)}\)\])/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.activityTitleText.+?children:(\i)\.name.*?}\),)/

IgnoreActivities (had no effect):
ID: 238852
Match: /(?<=\(\)\.activityCardDetails.+?children:(\i\.application)\.name.*?}\),)/

MoreUserTags (found no module):
ID: -
Match: .renderBot=function(){

Bad Starts

None

Discord Errors
font-weight: bold;
color: purple;
 resetSocketOnError ReferenceError: Cannot access 'Dye' before initialization
    at Module.default (WebpackModule132978:2:50)
    at VencordWeb:13:748
    at Kf (VencordWeb:6:10726)
    at VencordWeb:6:10823
    at [vencord.lazy.get] (VencordWeb:6:8193)
    at ms.<computed> [as get] (VencordWeb:6:8667)
    at Object.handleProtoChange (VencordWeb:49:50890)
    at CONNECTION_OPEN (WebpackModule473419:2:5861)
    at https://canary.discord.com/assets/28d246ff9e4fc2179b3f.js:12282:975
    at https://canary.discord.com/assets/28d246ff9e4fc2179b3f.js:12272:847
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Unable to process domain list delta: Client revision number is null
%c[FetchBlockedDomain] 
font-weight: bold;
color: purple;
 Downloading the full bad domains file ```
charred monolithBOT
charred monolithBOT
spark cove
#

This message is to let you know that recently you have violated Mozilla's Community Participation Guidelines ("CPG"). The actions that are alleged to have violated the CPG are:

  • Disrespectful behavior in conversation with the reviewer
    Your next step is to indicate you have received this email and agree to cease actions like this in the future.
#

insane

spark cove
small flare
#

is ffmpeg enough

#

would that be too much of a hack

spark cove
#

yea thats not sane

#

is there like a ffmpeg wasm build or something

#

ideally it'd be something that is just for opus encoding

#

and in js probably

#

because getting the PCM data from the file is pretty easy

small flare
#

sure hope that exact library exists for that one hyperspecific application 😒

#

mannnn

austere talon
#

audio conversion is kinda out of scope of the plugin

#

just use a site for it

spark cove
#

ngl it shouldnt be cus vesktop recording

#

unless that virtual mic is

#

a solution to that

austere talon
#

yes but that's not audio conversion

#

you just need an opus encoder

spark cove
#

whats the difference between encoding and converting

#

chrome has a built in decoding for like every format

#

ig any browser with modern web audio apis would

austere talon
#

encoding only needs opus

spark cove
#

ahh i see

#

makes sense for that to be out of scope but it is simple to do

austere talon
#

maybe with web apis reencoding would be easy but no idea

spark cove
#

its still on my list of things to do when motivated again

austere talon
#

wait am i insane or is this encoder pure js

spark cove
#

it is lol ol ol

#

theres a purejs version and a wasm version

#

actually that one u sent looks like wasm version

spark cove
austere talon
#

the js file??

spark cove
#

im looking at a different repo

austere talon
#

cause the only wasm file i can find is the decoder

#

kinda weird that the decoder is wasm but the encoder is pure js

spark cove
#

and yea the one u sent initializes a wasm module with a base64 string

austere talon
#

OHHH

#

cursed wtf

#

why isn't it a separate file

spark cove
#

yea super

#

xdxd

#

if u scroll thru thats like 90% of the file

#

THIS is purejs

#

i think its literally

#

libopus C library

#

compiled to js

austere talon
#

that looks so similar to the other one

#

like same code

#

ig it's auto generated by emscripten or whatever

spark cove
#

yea i think emscripten lets u either

austere talon
spark cove
#

compile to purejs or make it a wrapper to wasm calls

austere talon
#

it's like asm in js

spark cove
#

yea you love HEAP32

austere talon
#

this code is so weird

spark cove
#

holy shit

austere talon
#

you can't tell me v8 can optimise that well

spark cove
#

labels being used as GOTOs

spark cove
austere talon
spark cove
#

MEMORY INITIALIZER

austere talon
#

horror

#

regex crossword moment

spark cove
austere talon
#

WTF IS THAT

#

KILL

#

wait can you convert those to kb/mb