#πΎ-core-development
1 messages Β· Page 106 of 1
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
yeah but why care if it works
Hi, can I use the patcher on other websites like twitter? 
well
Me be trying to modify its behavior but it has a lot of chunks
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
yes, it functions very similarly
you can use Vencord framework on any site using webpack
but u might find it easier to monkey patch than regex patch
I do enjoy stealingforking
Just removing most things hopefully will work
but you'll have all the commits
maybe just copy / take inspiration from the stuff you need
(respect the license though)
It's gonna be opensource too and removing existing copyrights is gonna be unnecessary
i think the whole thing will need to be gpl 3.0
I'm gonna try make it work first and then think of a license xD
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
is there even any point in the isStaff patch?
@umbral hedge what exactly does it do
discord devtools work without it
So I made a patch and installed the thing using violentmonkey and it errored out with csp 
unlocks some settings tabs and adds some other UI components that are usually hidden
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
since when tf discord added new search
probably an unfinished experiment rn
okay i fixed
{
find: 'get("disable_new_search")',
predicate: () => settings.store.enableIsStaff,
replacement: {
match: /(?<=showNewSearch"\);return)\s?!/,
replace: "!1&&!"
}
},
what kind of spaghetti did they write this time
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?? π
they are checking for both disable_new_search& showNewSearch
ig the former is entirely disabling it, like the "use legacy chat input" accessibility setting
and the latter is the experiment?
discord engineering, will never fully understand it
waiting for DP to announce this after you found it

@shy veldt rn:
no
its for mobile
xd
LOL
so they are working on mobile searcg
and made it break desktop search (for isStaff = true)
amazing
Funniest shit ever
since the design toggle only exists on mobile
and it disables the new search ui on tabs v2
pretty sure idk i didn't test that one
but theyre using the pref in desktop code
so maybe its coming to desktop
or maybe theyre just stupid
because they cant fucking code π£οΈ
didn't they add a new search on the mobile app a while ago?
oh just finished backreading, someone else already said it
and not just in JS:
they seriously hardcoded --background-primary and --background-secondary
LMAO
not the only place in the app where itβs like that
somehow
Vee
How much do I have to bribe you with for you to merge https://github.com/Vendicated/Vencord/pull/1621
fixed the fork?
Seems like this never actually got merged, somehow: https://github.com/Vendicated/Vencord/blob/main/src/plugins/serverProfile/GuildProfileModal.tsx#L173
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(){
None
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 ```
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(){
None
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 ```
sorry i was hungry and the commit looked extra delicious
(something went wrong in the mirror pipeline and it swallowed some commits, i added them back manually but apparently missed yours)
c33d59b serverProfile: fix crash with lurked guilds - Vendicated
desktop and react native codebases share common stuff
duh?
this is the first time I've seen this technique used outside a minifier
(talking about var a = (doSmth(), 5); a === 5)
should prob remove that log, lmao
i use it very rarely
i use it for quick debugging
sometimes I also write console.log(variable) || doStuff()
cursed
is there a specific reason why you use it?
do you use it in arrow functions in order to not have a block or smth?
like ```js
const a = () => (doSmth(), 5);
a() === 5;
usually in patches or for a quick and dirty console.log
they also work wonders in ternarys
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
you can just make them funcs
that removes the charm out of it
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
kill
that looks like a bit of a code smell
that specific example is
horror
i feel like things like also would just reduce readability though
they aren't meant to be overused
they absolutely do in kotlin
cause people overuse them so heavily
what's a good use
they're nice if used for very short blocks but unreadable if nested
wait a min, looking through my C# code
a good use is a very short block
which actually increases readability
like
val thing = getObjSomehow().apply { someField = true }
here is where I would use it
to avoid defining an extra variable
Ok()
usr
why π
I don't like shadowing variables
user is already defined
another example for .also
you will shadow
idk how to break it to u but the same code without also would be a line shorter

it doesn't feel right for me to define an extra variable above the return line
especially when it is only used in the return block
yeah I could move the logic outside
but fuck you for being correct
? this still isn't as readable as
val thing = getObjSomehow()
thing.someField = true
again this just makes the code over-complicated
I disagree
i find apply prettier
also apply becomes a lot more useful in inline contexts
it is much better than ((o)=>{ o.someField = true; return o })(getObjSomehow())
yes I've done that before
i also like apply for android ui code
btw, this is what happens when you don't know that .DistinctBy exists
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)
}
that seems like a good use
that is a great use
this is also the one time where i like nesting them because it makes children nested so it's kinda like XML layout which is easier to understand than flat code
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
people associate {} with if,while, function and other statements
they don't associate it with scopes
the variable is used out of the scope in later lines
if (thing)
const asdfghj = "asdfghj";
i assume this is still scope limited lol
java probably stops you from doing if (asdfghj) /* var declaration */
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
})
}
i can't remember but i feel like it did
jumpscare
it doesn't feel weird if you are used to python
but when I learnt C-style languages I...
this is aliucord plugin code 
kotlin feels like it has too much syntactic sugar (if that's the correct term)
yes it does
imagine how ugly that would look if it was written in dart
it makes it very unreadable if you use it too much
kotlin is very nice if you use it like a better java
and that's why I love kotlin
4.dp seems kind of dirty to me
but terrible if you make it too kotliny
eh
would you rather dp(4)?
i find it similar to macros (where i prefer not to use them)
macros are made to be abused, if you don't use them, then you ain't cool
compose also does this btw https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp
i don't like it
someone added reflection to C++ using a preprocessor, basically macros
well, it is a compiler plugin, so not a macro per se
especially when there's a whole class for Dp π that feels overengineered
i'd just use a primitive
then it's less convenient
btw, coming from kotlin, I don't find this to be cursed
but the js community hates it...
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/with
it is basically .apply
the reason is that in js it's very vague
you don't know where something is coming from
i prefer this to apply

bc kotlin is a strongly typed language
doesn't it have any
guh stop porting kotlin to js
i guess c and c++ does (void *)
it is like typescript's unknown
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
you should write everything in java using eclipse ide πͺ

function log(context) {
const log = console.log;
with (context) {
log("hi")
}
}
log({})
log({ log() { console.log("bruh") } })
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
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
πΏ
actually ig that screenshot doesn't show much
w/o mutability it makes more sense now I think
i take that back.
The essential tools for any PHP developer, including PHP language support, Git client and editors for JavaScript, TypeScript, HTML, CSS and XML. Click here to raise an issue with Eclipse PHP Development Tools. Click here to open a bug report with the Eclipse Web Tools Platform. Click here to raise an issue with the Eclipse Platform.
this is the way
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
use eclipse ide for php developers and php-gtk to develop your amazing applications
AYO DEFILING MY NAME WITH MY CURSED SHIT
kek
use PHPStorm or the vscode extension for PHP
soon you'll say that you like netbeans
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
well, everything else is even more buggy
do you?
i have previously
:pepeLeaves:
i even made an eclipse plugin :333
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)
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
Huh, people actually get it like that?
Thought it was for famous repositories only
Like React or smth
well the repo does have 4k stars

i guess not famous
https://github.com/PrismLauncher/PrismLauncher fork of multimc with more stars than multimc lol
writing views without xml should be a crime
society if you could use xml in aliucord
me when jetpack compose
Hello, is there a plugin that only lists users with any badges on the server?
no
no, but you should be able to write some pretty simple javascript to achieve that
I'm not knowledgeable about that.
opinions like this get you sent to the vencord gulag
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
do not the api abuse
wheres that
I don't think I did that
I didn't individually fetch each user
yeah but youd need to
which it does
so I am only viewing the cache
which is ok with me, since I didn't plan to use this either way
wait, is it a Proxy object?
nah, it didn't appear to be like that
this gave me an idea for a plugin
(no api abuse ofc)
heres your homework assignment make codeblocks collapsable
its just a plain object, it's TS definition could be like {[userId: string]: UserObject}
quick note: members list access is restricted to non-staff
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
basically you need perms in the server to view the members list inside settings to be able to fetch all guild members
could simply identify that because it's not an async method
and the function source is also basically just getUsers() {return someVar} and getUser(id) {return someVar[id];}
tbf there are a few sync functions that may trigger requests
smth like
{ [Target]: {}, [Handler]: {} }
yeah fair enough
for example there is an ensure method for reactions
but yeah you're also right 
99% of the time sync funcs will just be local
I am too smooth brained to understand the intent and meaning of that note
yeah it's just that one discord developer that doesn't anything about codeflow
you need mod to list all members
here's your explanation
an API limitation?
yes
aaaah, its ok, I only planned on using cached users either way
no api abuse
you'll get a total of 120 members (iirc)
the ServerProfile plugin fetches members
it was when somebody posted it in #π-js-snippets
it really depends on context
then they did smth that was actually api abuse
π
fetching profiles, that is
requesting members is one single api call and normal
i guess fetching members is a bit different
requesting profiles is one request per user
ye
i aint talking about badges
the initial person was
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
the api is designed to not allow users to easily obtain all members in a server
yeah thats fine for me, my plugin will only work with cached values
I guess that's for raid prevention
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
search for every letter 
it's to prevent data harvesting (it does not prevent data harvesting)
yea but this isnt the most efficient
but funnily enough
was thinking of a user search plugin, instead of searching for messages you would be searching for users by their status, about me, nickname, etc
within guild
ah right
this is a true discord moment because they didn't spent more than 2s to think about it
so you can bruteforce by spamming op 8
about me won't work lol
well, if we go that route then that may be considered api abuse lol
you don't get that til you open profile
whatever is available
yea this is not something that id do in a plugin 
is that not cached anywhere?
it's abuse either way
heh i guess they haven't heard of nukes /s
gotta install vesktop bc fml discord crashing due to memory limits aint fun during plugin dev
hop on x64
there is an x64 version?
iirc development, canary & ptb are available for x64
stable x64 when
eh, I don't want canary as that uhh, can have unexpected crashes that are only temporary bc they are trying things out
they hate stable users (real)
that doesn't happen very often
afaik tho
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
i tried loading all chunks (mistake)
crazy how this has grown
i love my 64 bit
yeah
this was my motivation to make something that loads all client mods (it only does two lol)
searching for something in an obscure chunk
too lazy to track it down
found a neat icon, since it's late I'll be resuming this tomo
coool
vencordians will figure out whatever the fuck friend_token is 
u ignore
discord be passing undefined for that shit all the time
i figured out when they pass it
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
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
wtf balls
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
whats that
oh yeah it's max 100 chars (tho that doesn't really narrow it down much)
tried it π
tried mine?
Is there a plugin like this plugin available in vencord?
Alright
flexing badges (or anything else for that matter) is cringe
fr, back to waiting for channel tabs plugin to release
literally no one else can see it
what plugin is that
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(){
None
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 ```
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(){
None
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 ```
this has way too many wildcards. why do you match this much code? that's most likely not needed
const displayName = user && ((UserStore.getUser(userId) as any).globalName ?? user);
use a variable to make it cleaner, also as any as string is nonsense
typescript was a mistake
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)
common chromium W 
47a39a0 Fix Vesktop SettingsCog context menu - Vendicated
df214e1 chore: remove legacy code - Vendicated
f66e35b fix(SendTimestamps): Do not add to ReviewDB input - Vendicated
664dd0a ReviewDB: allow deleting reviews on own profile - Vendicated
c0f2c97 ReviewDB: proper multi account support - Vendicated
sad to see but makes sense
Vesktop changes the system volume of the input device when the loudness is above a certain threshold.
I've tried to turn off this behavior, but so far, I've not found a working solution.
I thought that the Automatic Gain Control switch would control that, but it doesn't seem to affect it in any way.
88f4565 improve windows & linux download tabs - Vendicated
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(){
None
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 ```
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(){
None
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 ```
well I fix later
Unknown as I'll be unable to reproduce it. We no longer use the bot for unrelated reasons.
is this still happening now?
idk if this comment will get removed but I can confirm the 2nd one doesn't happen anymore
anything gateway isn't abuse π
simply making sources for kirby's next paycheck
me when safari has support for that one css feature that chromium has been lacking for multiple releases
I mentioned in the past that I am doing PHP w/o laravel, well, this is how I cope
Rest In Peace review db
rip
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
isn't this more #π§©-plugin-development
true
@verbal pumice you can also match variable names with lookbehinds
/someMatch(?<=(\i).thing.+?)/
this will walk back from match to find \i.thing
that doesnt apply here
im replacing discord's code for checking what the tag should be with my own
but thank you
has anyone started working on a plugin or textreplace filter to remove the sig from file links
why would you
its not needed for sending files in the discord client, also it looks ugly
they will be forced*
maybe it will finally get people to stop using discord as a file host or readme alternative Β―_(γ)_/Β―
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
yes actually that is Exactly the point
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
its like buying a motherboard and they just give you a qr code to the manual instead of an actual book
you'll never fucking believe this
(gigabyte does that lmao)
that's a good thing
not necessarily bc link rot but that is an acceptable sacrifice to save paper waste
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
the wayback machine in question:
congrats everyone but you throws it away the day after and killed a tree for no gain
i keep all my manuals lol
nerd m
fr

i have not once in my life used a physical manual unless it was ikea furniture
ive used manuals to set things up and they immediately went into the trash can after
ive been building computers for so long i dont ever need them, but i just like to keep them
guh why does everywhere but the southern US get an ikea every 5 miles
nearest ikea is like 8 hours away here
i WANT to walk in and grab a blahaj instead of waiting for it to ship
ikea is 30mins drive away
nearest microcenter is a whole day trip away π
closer than one million four hundred and two
do you live in sweden by chance
lol
still like an hours drive away
more than that
lmao
like one and a half or two
and we would literally ONLY go as pilgramage to blahaj homeland (not even trans)
thats the NEAREST one
not really tbh
american drivers are
shall we say
very good at getting places fast
definitely not as much as germans
some people drive like 200km/h or even 300km/h on the autobahn
the roads here arent good enough for that
youd literally ram into a pothole and flip over multiple times
pulverizing you and any passengers

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
nop
any userscript manager that impliments greasemonkey apis work
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
wait, but that issue is closed
if i have the userscript installed, what should happen?
i.e. how does vencord look in its default state
what should i see?
a plugins tab in discord settings
(also, sorry for putting basically support related stuff into #πΎ-core-development)
shit feature (real)
cause they refuse to fix it
dammit, there's even a comment afterwards a la:
also you shoud probably link to https://github.com/violentmonkey/violentmonkey/issues/1001
at this point
since that one is at least open
try with this one
see if it works
this person has the strangest repo structure: https://github.com/erosman/support
but i guess this is foss???
lmao
I mean the description literally says you should extract the xpi for source code
hmm, no π²
why do cup-noodles have to tell me this q-q
tm is supposedly the devil
wait, nightly fixes this issue somehow?
so what happened to signed ff extension anyway?
it's just mozilla to blame
it's strange that it's only allowed on nightly
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
what feature flag do they enable in their release compiles that it disables support for them?
also who the fuck thinks of that
there's some funny argument about security to be made, but if you're forced out of the store anyways, why not include the features that changing/removing csp adds?
oh shit, based
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
linux is currently going through glibc's prelude having an arbitrary execution exploit
i.e. everything is unsafe lmao
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
isn't chrome web store has the same issue
yes but that is irrelevant
firefox bad
the point is that locking down your store has no security benefit
shrimple
mozilla addons is just horrible
does it not? if every plugin actually had to be inspected first, that would make people at least liable if malware appeared in the store
.
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
does mozilla addons require you to submit your plugin for inspection?
if it didn't force my home directory to look like:
i'd disagree
what the fuck is an add-on ID
lemme re-check, usually have understanding issues so i can get confused easily
alr, nevermind on that one, apologize for it

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! π΅

what in the world
le blocked
As discussed on the discord this Pull Request makes it possible to build the virtmic as a node-module and rest-server.
Also, the rohrkabel code has been updated to the latest version ^^
@austere talon I'll also add github-actions here to automatically build the binaries instead of having them in the git-repo
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
Let me know if the PR is good as is currently
consider using pnpm instead of normal npm
a more generic name would be better, since the idea is to make this also be used for Discord Desktop, armcord, etc
:sweat_smile: from my part the acknowledgement obviously goes to cmake-js ^^
Name is Vesktop Screen-Share, what would you prefer?
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
Alright
i just had to chuckle a bit when I saw that
vencord-screen-share?
cmake/cpm.cmake is very large, is that supposed to be gitignored?
Your reply was really funny xD
No, it's supposed to be in the repo, however, we could also fetch it at configure time
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
MIT?
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 
also out of curiosity, why the switch from napi to v8? is it better?
really? the official node addon guide has v8 at the very top so i figured v8 was recommended
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.
honestly vendicated, get a life. its discord, do you expect no harrassment?
@topaz thistle your files somehow miss their ending newline..
Which? The source files?
holy shit
yeah..
That's intended and done by clang-format
interesting, why would one do that?
Well why should I not
writing text at the end of the file would create a change in the line before it
trailing newlines are common *nix practice
i.e. here lines 36+ would appear, but so would 36
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.
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
oh wait what https://unix.stackexchange.com/a/18789
(yeah most shells account for that, say zsh)
i don't comprehend what they're trying to say
i.e. source isn't text?
alr fixed
i guess vscode does actually call itself a code editor, which is surprisingly pretentious
nvim as an ex:
Is pnpm avaiable in dnf?
.gitignore, {,addon/,server/}CMakeLists.txt, package.json
https://packages.fedoraproject.org/search?query=pnpm doesn't seem like it
Ah thanks, only ran clang-format earlier
no worries uwu
they want you running
curl -fsSL https://get.pnpm.io/install.sh | sh -
Yeah got it already ^^
alr
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
why is it pretentious?
it's not in copr either: https://copr.fedorainfracloud.org/coprs/fulltext/?fulltext=pnpm
q-q
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.
bro, people call Notepad++ a code editor, if Notepad++ is a code editor, then vscode is an IDE by that standard
Github Workflows :')
@quaint sapphire whilst i'm being pedantic, let me at least be thorough. when we get stuff like dion system's stuff, then we can talk about "code editors" https://dion.systems/assets/rename_A338D24E-0B4EB638-6EF02674-8FB3D1A4.gif
I remember when I first got into programming
I thought notepad++ was the coolest stuff ever
now its
yeah
wait, what do i care if: "people call Notepad++" whatever. it isn't.
vscode invented LSP, so it ain't really smth that it can't take credit for
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
it kind of is with plugins
just use the pnpm action
(β―Β°β‘Β°)β―οΈ΅ β»ββ»
also installing it from the repos is pointless you can just install it with npm
Kate editor is much much better than notepad++
the pnpm action has goodies like caching dependencies across runs
no, vscode
vscode often does feel like an ide with actions to launch and content assist
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#
Thanks!
inb4 it breaks the worklfow again :)
notepad++ is nice and light though
been there π writing workflows is such a pain
why isn't there better ci tooling?
there's the whole nix aproach, but that's not bulletproof either
wdym writing workflows is the best thing ever 
couldn't imagine a more fun thing to do
https://flake.parts/ uwuwuwu
About to auto click this button
actually @austere talon would you merge a working nix flake into this?
is that also in response to the nix flake?
we do not wish to support nix
we will never support nix
no one here knows how to maintain nix and none of us use nix
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
nah, specifically with the c++ project it would maybe make sense, specifically to remove the need for any work on workflows
i mean, i was being pedantic
and i am being pedantic but on the other side of the spectrum
there's a nix flake bot that just runs your tests and tries building using the flake, which is sort of nice
bleh
the unixporn discord has a few beautiful emotes, one of them is just the nixos symbol crossed out
we love nix
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
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
only use case i have for it really
is redeploying vms
or making replicas
when i dont want to or cant use containers
yeah, server-side it's p cozy
I don't get the point of daily driving nix personally
every time I hear about nix it's something negative or inconvenient
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
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
reproducability is cool but i could also write a windows group policy to achieve the same thing with windows server deployments
:P
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
reproducibility? yeah man you can copy my ssd no problem
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
but, i used to have an inpersistent setup
nix manages to be more pain than gentoo
gentoo is pain?
see
emerge does its job, no?
you have used nix for too long
bruh, emerge is fine
average nix user 
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
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
notepad++ has syntax highlighting though
so i think it's even more of a code editor
Windows Servers are a sin that will send you straight to hell
my company uses them exclusively
except in a couple of rare cases
Mine does as well and I'd say they both deserve to rot in hell for using windows servers
tbf we dont have a choice xd
Are you using some windows exclusive components?
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
ouch
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?
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.
yes
the idea is to also turn it into a plugin for normal discord
nice ^^
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.
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
it needs to be opus ogg
anything else will not play on ios
but will play on all other platforms
what is this for then
Plugin for detailed timestamps (time formats are customizable).
that's just us telling discord it's opus, but the actual file is whatever you upload
you can use an online converter tool to convert to opus ogg
ah i see
theres not going to be a way to change the codec when its uploaded right
at least on desktop
oml been waiting for a plugin like this π
W plugin though
Sounds useful
aliucord jumpscare
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(){
None
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 ```
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(){
None
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 ```
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
we could we just need an opus encoder library
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
sure hope that exact library exists for that one hyperspecific application π’
mannnn
ngl it shouldnt be cus vesktop recording
unless that virtual mic is
a solution to that
yes but that's not audio conversion
you just need an opus encoder
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
converting would need decoders for every format you wanna support
encoding only needs opus
maybe with web apis reencoding would be easy but no idea
its still on my list of things to do when motivated again
wait am i insane or is this encoder pure js
it is lol ol ol
theres a purejs version and a wasm version
actually that one u sent looks like wasm version
sike
the js file??
im looking at a different repo
cause the only wasm file i can find is the decoder
kinda weird that the decoder is wasm but the encoder is pure js
and yea the one u sent initializes a wasm module with a base64 string
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
that looks so similar to the other one
like same code
ig it's auto generated by emscripten or whatever
yea i think emscripten lets u either
oh my god this is so cursed
compile to purejs or make it a wrapper to wasm calls
it's like asm in js
yea you love HEAP32
holy shit
you can't tell me v8 can optimise that well
labels being used as GOTOs
yea i do wanna see performance
gonna do that from now on
rate






unlucky then
