#๐พ-core-development
1 messages ยท Page 124 of 1
or make it an esbuild constant
oki
GUH
still shows the updates but no update button
do what it says :3
OH YOURE TALKING TO ME
no i dont
im dumb
This is untested as i would have to wait for the commit to be pushed there but should work
@nimble plaza I will merge that into dev and you test
oki
it's gonna scream at you that your local copy has more recent commits though
doesnt it have the fix you just made lol
well whatever then you will have to manually pull and build
lmao
we are checking for updates using origin/branch though
your origin dev won't have the upstream dev commits
so checking wont work
origin is vendicated/vencord for me
ohh
makes sense
how do you close tabs in your browser 
ctrl+w
brain.exe has crashed
this is like in american english, crisps is chips, chips are fries, jam is jelly, jelly is jello, or the previous three terms are just used interchangably
ctrl+w closes a tab or the whole window
Content
Can you add NotificationSounds plugin from BetterDiscord?
Request Agreement
- [X] I have read the requirements for opening an issue above
[X] I have read the requirements for opening an issue above
I have read the requirements for opening an issue above
have you?
ALWAYS FIRST USE OUR SUPPORT CHANNEL! ONLY USE THIS FORM IF YOU ARE A CONTRIBUTOR OR WERE TOLD TO DO SO IN THE SUPPORT CHANNEL.
@austere talon you might as well post a link to #1765
what
CustomSounds

and insane badges plugin it seems
seems to be discord related
hm
there's nothing we can do
a long time ago you could make emotes bigggee than 256kb
ohhhhh
I have some emotes that are 1mb
can we make it use a lower resolution?
so it needs a resize
mm
theres ezgif
I would personally just keep not supporting them, but maybe show a better error
free online resize
explaining why it happens
its 258ko
people will just ask why not keep the limit at 1mb then
resized it
to below 256ko
and it works now
added it to my server
thanks for the help ๐
since we use gifenc for fakenitro, can we use that to scale it down?
gifenc
(has know clue what gifenc does https://cdn.discordapp.com/emojis/902180197107916870.png?size=48&quality=lossless)
it's only encoder
ah
you'd also need decoder
blehh
you'd need to decode the gifs, resize the frames with canvas and then reencode
eww
and optimally do multiple runs to achieve the highest possible resolution
or somehow figure out how to do it with math
seems complicated
i think a better error message saying to resize the gif yourself is a better option
i might pr later
yeah agreed
are there any emotes that are large in vencord that i can test with
no
rip
it was only possible many years ago
make new account
^
tiny shiggy!!!!

= undefined is less broken
= 0 breaks file uploads
that doesnt work for me, i have to Vencord.Webpack.findStore("UserStore").getCurrentUser().premiumType = <type here>
it's like it thinks you have nitro type 0 which doesn't exist ๐ญ
you sure?
hm
well it doesn't seem to exist on the client
IDK ๐ญ
your premium type is null
discord code moment
at this point i just want to completely rewrite the client
that makes so much sense, that's why everything kept breaking when I set premium type to 0
omfg this company
my bad, i wrote in the thread now
it's okay
jumpscare

cool person
imdespair
[Vendicated/Vencord] New star added
did the updater break on dev?
i thought the git function returned a string waaa
OH I NEED .stdout.trim()
ill pr
oki
no problem haha, just noticed while trying to debug my plugin
thanks for reporting lol
np
It would be great if we could either supply the path for or have Vesktop download arRPC into a default directory and then have it automatically start and stop as needed.
arrpc is fully integrated, you just need to enable rich presence in settings. p0
old header, ik this is rnnoise code but itd be good to update it
if youre making major changes to a plugin, you can add yourself to the devs
just a couple nitpicks, sorry
e05c630 SHC: Make Chat Input Bar channel list include h... - Nuckyz
8967288 PermViewer: Fix incorrectly displaying some rol... - Nuckyz
how???
javascript evaluates it to false ๐คท
if it's empty it gets reset and the asterisk clearly indicates it needs to have a value
Invis character I think
no idea if it's a space or what
\uFEFF
lmao
broo this bundler uses so much comma
all of this and I can't even see the semicolon
just replace a , with a ;, insert your own shit and then end it with ;let
i do it all the time when i dont care to find the return/a break in variables
lmao that's smart
I just inserted my thing there though
i mean if you're adding to props anyways yeah that works
ye
what i did in some patches was changing it to themeOverride_$: r = myOwnValue
.<
forcing r to always be my own value
also smart damn
betterfolders stll dead?
:)
:)
Hello,
That's a native issue too but I may have a suggestion to make it work.
When you're streaming on discord (at least on wayland via xwayland or pipewire for now) the framerate of the app or game are extremely slow. But when discord is the focused window it's smooth again.
My suggestion would be to have a toggle (via a plugin or directly integrated) to keep the screenshare preview without having the window focused. (Disabled by default because I don't know it this issue affect wi...
Adds a plugin that lets you add your own icons to the in-app icon list.
Non-nitro users have to use FakeNitro alongside this plugin as the list is completely disabled for them; re-enabling it here is pointless and out of the scope for this PR anyway.
(thanks @RealSimplyData for fixing my garbage code)
sounds alright imo
guh
absolutely not
im on mobile so cant review but can someone yell at them for that patch
good
if it was only on mobile then it would be alright but the fact that it's added to the desktop makes it look like cash grabbing considering that you have css
can u not easily do this with css
maybe but imo its convenient and it just looks nicer
you could say the same about the banger plugin
I'm having a smooth brain no wrinkles moment - I vaguely recall seeing a doc about setting up and creating a vencord plugin but I cannot find it for the life of me
docs folder
fake profile colors and effect using only 13 3y3 chars
there are 126 possible 3y3 values
im using the 126th as the separator and encoding the base10 profile colors and profile effect id to base125
yeah but you're forgetting that tag characters are 2 byte characters
i did not forget
discord counts it as 38 chars
exactly
im just comparing it to the other plugin
anyone know why navigator.clipboard.writeText() converts \u{0000d} to \u{00020}?
it seems to only be happening with this character
not using this to copy in the plugin, just using it to test
setTimeout(async()=>await navigator.clipboard.writeText(""), 3000)
I have something to say
that's only client side right
thanks i would have forgot nookies lmao
wdym
I did something
that shit would have still been there in 2 years
As in, should i be able to see it?
its saved in your about me and anyone with the plugin will see the fake profile colors and fake profile effect
what does Clipboard from @webpack/common use to write to the clipboard
its a cross platform wrapper
hopefully whatever that is wont change codepoints
if you're on web it checks queryCommandEnabled("copy") and queryCommandSupported("copy")
otherwise it'll use the copy function in DiscordNative
yeah it doesnt use the modern clipboard api
otherwise it uses DiscordNative.clipboard.copy
interesting
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
@austere talon we love
๐ฉ
yeah did you not know that browsers copy raw html in some cases
firefox does
and discord used to parse it
endpwn had an install method that abused the fact it parsed it
using onload and onerror
the onerror would trigger when parsing the image for the upload shelf
yeah it was
not anymore tho
this was like 2018 so
and it also abused the fact that native module require wasnt sandboxed properly
thus set the webapp/update endpoint to target for installing endpwn
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
idk when im going to fix highlight pr for rspack
cause i also have to fix folder structure
Clipboard does the same thing
\u{0000d} gets changed to \u{00020}
import { Clipboard } from "@webpack/common";
const num: bigint = 1139323101881061467n;
const base125Num: Array<number> = [];
for (let i: bigint = num; i > 0n; i /= 125n)
base125Num.unshift(Number(i % 125n + 1n));
const testString: string = String.fromCodePoint(...base125Num);
for (let i: number = 0; i < testString.length; i++)
console.log(testString.codePointAt(i).toString(16));
Clipboard.copy(testString);
why the redundant type annotations 
i like types
it correctly prints d at index 6 but \u{00020} gets copied to clipboard
though if i do Clipboard.copy("\u{000d}") it works
this makes 0 sense

Same issue here on Arch 6.5.9-1 (only tested using vencord-desktop-bin as -git doesn't compile for whatever reason)
Adding '--disable-gpu' to the arguments fixes it, but obviously this isn't an ideal solution.
Might be an electron issue, as the same thing happens with VSCode for me.
if --disable-gpu fixes it, then that's an issue with your gpu driver
the only way to do this is to use eval() ๐
The Vesktop app seems to ignore Equalizer APO settings after joining a VC. I can open the settings and hear myself with the Equalizer APO properly processing my audio until I go into a voice channel, after this the Vesktop app starts to use unprocessed audio even after a restart.
Another audio related thing I've noticed is that it shows microphones twice in the Vesktop app, while only showing one in the official app. Not sure if that is related.
 - lumap
import { Clipboard } from "@webpack/common";
const num: bigint = 1139323101881061467n;
const base125Num: Array<number> = [];
for (let i: bigint = num; i > 0n; i /= 125n)
base125Num.unshift(Number(i % 125n + 1n));
const testString: string = String.fromCodePoint(...base125Num);
let stringToBeCopied: string = '"';
for (let i: number = 0; i < testString.length; i++) {
const h: string = testString.codePointAt(i).toString(16);
console.log(h);
stringToBeCopied += "\\u{" + h.padStart(5, "0") + "}";
}
Clipboard.copy(eval(stringToBeCopied + '"'));
not even this works
This is not a bug. This happens b/c whenever dev tools is open, discord hides your token to prevent dumb users from being scammed. if your discord reloads for any reason (such as running out of memory due to having the dev tools open), discord can't find your token and you are logged out.
Fix: enable the NoDevtoolsWarning plugin
Enabling the plugin does in fact prevent forced log outs, however dev tools are still inaccessible given that Discord will reload a few seconds past relea...
This issue was closed 5 months ago. Please do not necro old issues
wtf this doesn't work either
Clipboard.copy("\u{00014}\u{0000f}\u{0002a}\u{0005a}\u{00033}\u{00027}\u{0000d}\u{00075}\u{0005d}");
actually wrong autumn
ah
so it's just discord broke it
elements tab is just broken cause discord stupid lol
doesnt happen on vesktop but it does on vencord
I just installed Vesktop 0.4.2 for MacOS (intel chip), and even though I have the notifications set to "Only use Desktop notifications when Discord is not focused," I am not getting any desktop notifications, though I do hear the ping sound. I am using MacOS Ventura 13.1.
that option has nothing to do with notifications. Make sure you have them on in discord notification settings. use our support channel if you need furtehr help
Ah, my bad. I got confused because I thought it was only just the plugin.
Hi Noah, this seems to be a function that captures the screen on an electron application however Discord's client doesn't make use of getUserMedia, they use their native node module instead
Btw Vesktop devs, I added Vesktop as a way to screenshare with audio on my repo here https://github.com/edisionnano/Screenshare-with-audio-on-Discord-with-Linux#for-beginners
to answer your question: no there isn't, and it doesn't seem possible without replacing discords electron with standard electron
discord removed getUserMedia from their electron fork, so it is not available on discord desktop. unless there is a way to do it without it, it likely isn't possible
in any case, vesktop strives for (mostly) feature parity with discord desktop, so you don't really notice you're not using the desktop app
there are only a few features not ported, for example global keybinds
venmic for macos
does discord support audio on mac
yeah they have a extension that adds it
idk if its a kernel or system
it's lame tho bc it's not needed
you make
nuh uh..
Also need to figure out windows audio share soon
yeah I'm aware, the fork is public
the quality is so bad for some reason
they have some patches that they apply on every release
hi, is it possible to make plugin that improves the perfomance of discord? Make it less cpu usage and etc?
but why would you use getUserMedia on the client? the biggest advantage of the client is it not using conventional webrtc
nvm idgaf ab venmic on macos anymore
i updated the kernel extension
its still lame but it works
is the vesktop same as vencord or its different?
to retrieve an audio stream of venmic. directly patching discords voice stuff seems pretty unreasonable because it's all native. you'd need to patch the binary or use some hooking framework or similar
so apple silicon users need to get it directly from rouge amoeba
do you have any better idea?
venbot not support
someone actually did that using frida
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
they managed to add support for wayland and there's also an experimental branch for audio
my idea was rewriting the whole discord-voice module
btw is this a vesktop bug that the text just appears behind the titlebar when using transparancy(for context this isnt a real mac os titlebar its done with css)
that's definitely out of scope, unless an outside contributor wants to work on that and their implementation is reasonable
NoTrack (found no module):
ID: -
Match: window.DiscordSentry=
None
None
try to disable your theme and #๐ฅ-vencord-support-๐ฅ
already tried a different theme and it does the same thing as i replace the original discord titlebar with the custom macos one wich would be transparent wich the default discord one isnt
it's a bit hacky yes, frida patches on the fly but one could ship a pre-patched binary provided that this works
my idea was to rewrite the module from scratch
this was as far as I got
like rewrite discords voice module from scratch? that seems very ambitious but also a cool project
I haven't worked on it since january tho
yeah im not proud of that variable name
i wanted to use i for the index of the for loop
but i also needed an index variable for the array
this took me 12 hours ๐
this is basically a rewrite of the module, so far it has the basic skeleton, some stubs, it can list input, output and video input devices, it can ping discord's servers and rank them and it can also capture a webcam and present on video settings with 2 ways. What it can't do is everything else
The voice module helps en/decode sending/recieving voice data right?
Vesktop could always fork https://github.com/Rapptz/discord-ext-native-voice and work on that
stock discord issue.
I did this on mobile
it does WAY much more
lets see if I got it right
it basically handles everything when it comes to calls
shit I forgot to uncomment
anyone know name of watermark in top left corner
I wrote a shim back then to intercept the function calls between discord and the module https://github.com/edisionnano/discord_voice-stub
Might seem stupid now but I didn't know much about it when I made it
@austere talon can you test if that option works for me?
it's okay, thanks
When running under game mode, if Vesktop can successfully determine its GameID, this will prompt the user to install a steam input layout that allows you to control Discord using the Steam Deck controls.
Also, when Vesktop detects it is running under game mode (SteamOS = 1 && SteamGamepadUI = 1), apply a steamos-specific keyboard fix, and adjust the splash to fit the UI scaling better.
There's a lot of slightly confusing code, and some stuff is in places i couldn't fully decide on on my own...
@cunning canyon thank you this is very cute and unobtrusive <3
Setting mac.identity to - doesn't seem to work.
adds integration for relationshipDB.

not the eslint ignore ๐ญ
not the guh()
you are both the same people
what
insane
yeah wrong nea
wrong nea
@hot pecan ๐ฅฐ
poor wrong nea
kid named nea
I could hook the responsible function on load of venmic
This is useful when loopback audio drivers or applications, such as BlackHole, are already installed.
how long until Discord implements this
the code for this is kinda horrifying
like why does the func u use to get the user's auth directly open the modal to auth
@cunning canyon considering you're the pro here. Do you think, this way to fix it is acceptable? It was something with the animation i suppose
sry if this is the wrong channel but how do i enable transparency on themes
vns
ok thanky
Also that's for the themes themselve
You have to know css
oh
idk
i was using that website online that edits stuff but i gave up rly fast and just decided to use dark+
purple cool so idm

is that a fix for freezing
Si
hmm
I think it's not the animation fault though
it's it combined with something else
ic ic
the something else is the issue I haven't figured it yet
Now that you mentioned it. The way i tried to replicate the freezing did stopped... But, i think there is still other ways to freeze it
it can freeze with only sideBar on alone
disable any of 1st 4th 6th 8th 11th patch stop it
exclude 1st 6th 11th, those just disable sidebar
4th is just for export value so i think issue on 8th patch
Depends on https://github.com/Vencord/Vencloud/pull/20
Collecting information about:
- Vencord versions in use
- Plugins in use
- Operating systems in use
This will not be traced back to a user.
ONLY MERGE IF COMMUNITY APPROVAL IS GAINED. HEAVILY WORK IN PROGRESS.
@austere talon Do you know if the native module is contained in the Discord binary or if it is in a separate file?
Happen to know where they are on linux
wherever your app installs!
I have no modules folder in /opt/discord
interesting they're put there, wonder if its an autoupdater thing
Happen to know if the screenshare audio stuff is in the voice or rpc module?
Probably
vvvvvvvvvoice
i believe
voice should handle anything relating to voice chat natives
because discord install dir is root owned
they can't write to discord dir
voice
rpc is game activity and such
And does anyone by chance know which functions are responsible for the screen-share audio stuff?
you can require them in console to inspect
DiscordNative.nativeModules.requireModule("discord_voice")
I can see them in Ghidra as well xd
discord::media::soundshare
That's probably the namespace we're looking for
I could reverse it and detour it at runtime when venmic is loaded to implement our own logic there
discord::media::soundshare::AudioDevice::Attach(unsigned int)
This is probably the method that's used to start the screenshare, not sure if the id that's passed there is useful for us, I can debug that when I'm at my PC at home
If that is indeed the method called for starting the audio share I could hook it and just start venmic
@austere talon Loading the Node Module in the desktop client is feasible right?
Fixed last the last discord update.
yeah ofc
desktop works quite the same as vesktop, you'd also need to just use ipc
@austere talon Could we also, in case the ID we get there is bogus, replace the id with the Node-ID for example?
or actually if you'd just be hooking discord voice you might not even require ipc since it'll all be in main
I just need the venmic native module to be loaded, from there I can detour everything
ya that's super easy
Nice, I'll look into it then
you can just import it somewhere in main, like here https://github.com/Vendicated/Vencord/blob/main/src/main/patcher.ts
Alr nice
Will look into it when I find the time ^^
But if it's as simple as hooking the attach method that should be a quick implementation
i doubt that'll even get called on linux
Could be, if so I'll try and debug (JS horror, I'd rather read through assembly lmao)
Why would you hide the UI for venmic if a virtual device is selected
I guess you could add a warning box above the venmic stuff stating that you probably don't want to use both at the same time
im sorry but that es lint ignore is entirely appropriate here?
Can I get some help with updating my PR for the new Discord update?
debian repo wen
Mine is a plugin that edits the loading quotes, but the problem is that I need help with using an async function to assign a value in normal (synchronous) context.
._loadingText=function(){
How can I replace this with a call to an asynchronous function?
Before the update, I used Promise .then(), but this time it casues a react error.
insane
discord-types is so outdated :(
the platformindicator plugin doesnt update in chat for some people, until you click the profile and load it, is it possible to force it to update?
LMAO
Sadly it's not that easy lmao
I'll find out what happens, just as a note: You have to explicitly patch the index.js to even load the soundshare module on linux (Suprisingly it doesn't crash what so ever)
At least the module has a lot of symbols which makes reversing easier
The module was compiled on Ubuntu 7
Holy fuck
ven rejected it
If this is considered too much of a noob question, tell me and I'll just stop instead of disturbing the convo.
Can I send the match and replace?
Uh, this is unrelated?
well you matched the random
hm, then you look for a semicolon, but idk where it would have been in the previous build ๐ญ
I can explain the old one, but I think it would be faster to compare to Vee's loadingQuotes plugin.
The important part (currently) is this._loadingText=function() {
Vee changes it by adding return self.quote like this:
this._loadingText=function() {
return self.quote;
[rest of default code]
}
oh, i'm stupid
Nah.
Anyway, I hope you now understand what my problem is.
so do that then?
Well, how?
Since the function returns a promise.
Mine uses fetch, which is async, to get a random fact from Wikipedia.
what did the patched code look like before
Before, I did something like this:
;$self.quote().then(quoteText => somvariable._loadingText = quoteText);
The semicolon is there because it was just a part of the code? As in, it was like ;somevariable._loadingText=someOtherVariable;
Hence it was easy to just replace someOtherVariable and use .then().
I hope I am making any sense.
Right now, it is included in an array, if I understood the code properly.
A constructor initializes the variables in an array.
This is the relevant part that I want to edit.
Does this answer your question, KodeToad?
so maybe make the function return this.randomQuoteLoadingText or something
then you can set that
Well, HOW? The problem is that it is an async function.
this._loadingText = function() { return this.randomQuoteLoadingText; }; $self.quote().then(quoteText => this.randomQuoteLoadingText = quoteText);
I cannot add code after the function because I am editing value in an initializer array.
Also, wouldn't returning an async function return a Promise value that is not useable?
self.quote() is an async function.
async quote() {
return quoteText
}```
`quoteText` is the value extracted from `fetch()`'s json.
Well, I updated it for the new code, it produces a minified react error.
what is the error
Any clue how to get the proper error?
^
Just tell me how to get the proper error and I'll send it here.
it usually has a link, doesn't it?
One sec please, let me reproduce.
still saner than average @mantikafasi plugin
Btw in this case, I'll have to replace the whole existing function because it will be obsolete.
Aka use this rule:
match: /(.{0,10}\._loadingText)=function\(\)\{.+\}/
are you sure that matches the function?
that will match past the function ๐ญ
Double checking.
if it's greedy it will swallow other functions
Oh yeah I remember that problem.
if it's lazy it might get stuck on something inside the function
yes
then it might stop before the end of the function
Let me check if the function has any extra }.
Yup, it does.
so try putting random
{.+?random.+?} ๐ฟ that's ugly but it should work
random? What does it do?
makes it work some of the time
Btw another and cleaner fix is to change it to }(),.
Updated:
match: /(.{0,10}\._loadingText)=function\(\)\{.+?\}\(\),/,
Time to test.
Now I get this:
Current replacement rules:
replacement: [
{
match: /(.{0,10}\._loadingText)=function\(\)\{.+?\}\(\),/,
replace: "$self.quote().then(quoteText => $1 = quoteText),",
},
{
match: /(.{0,10}\._eventLoadingText)=function\(\)\{.+?\}\(\),/,
replace: "$self.quote().then(quoteText => $1 = quoteText),",
predicate: () => settings.store.replaceEvents
}
]
}(), should match the ending of the function.
Tried testing the match on a regex site, looks good, thankfully.
Actually turns out it matches earlier than it should.
Now it magically works, thankfully!
Thanks for the help!
Had to use Notepad++ to format the code to be able to properly read it, how the #%&#$ do you format it in VS Code? When I paste the minified code, it just LAGS.
How? I am a noob.
god sent
click the {} button on bottom left
it does
it doesnt log your PRs
that would involve us leaking our webhook info to your forks, which is a bad idea
No no no, I was referring to the force push in the PR.
OH, thank you!
Didn't notice that button before.
the notifications are done through github's notification system - our repo has the notification hook, yours won't, so when you push code we don't get told about it because your PR's commits is hosted on a different repo
I got confused because I forgot that the normal commits in PRs don't get included in the notification, only the comments and reviews get posted.
My bad.
Got it, thanks for the explanation!
The JS-Code on Linux doesn't even call into the native module on Linux (at least for the Screenshare part, for audio it obviously does)
So to debug this there'd need to be some serious patching to the JS side and I'd probably need the JS-Code that's loaded on the Windows client to cross reference some stuff
(I've enabled soundshare in the index.js of the module, so this seems to not impact the other loaded js code in any way)
This new Media Gallery thing looks so fucked lmao
In case anyone has a JS Dump from the Windows client that'd be helpful ^^
i got a plugin idea that could be useful
https://github.com/localip/dnd-bypass this thing
they closed it
u love mosaic
it shouldn't be affecting single image messages?? ๐ญ
IT DIDNT SHOW ME IMAGE 2 AND 3 WTF
diskord moment
me either
Had the same problem
Instantly enabled Disable Mosaic lmao
discord moment
Would you be willing to help me dig through that?
I can reverse the native stuff
Just need to get Discord to actually call it lmao
the audio stuff?
the screenshare stuff yeah
diskot moment
hey all
*hey y'all
I smell soundshare talk
@Vendicated I need some help here, currently using a video device errors with TypeError: Video was requested, but no video stream was provided. Testing seems to indicate that patching isn't successful? The overridden navigator.mediaDevices.getDisplayMedia never gets called.
Yeah
what's the issue?
That's what I meant
Look at my messages above
Ah lmao
discord isn't calling discord_voice.node?
for screenshare
Yes, all the functions that would signal that soundshare is supported are hard coded to error out
(In JS)
Same.
any reason why telemetry is opt in on next restart? I understand it's very little but it just reads like "oh so we are going to collect data about you next time, unless you do something it about it lol"
๐คโ๏ธ you need to remove "no telemetry" from the readme
that's if it gets merged
yah
you can put that in the pr
so you have a choice to not have anything sent
I think the relevant function is setDesktopSourceWithOptions
i dont quite understand how that is a bad read
it's more ethical than any telemetry solution i've ever seen
why not send the data when the user accepts
because the telemetry probe is only ever sent once
we aren't constantly sending data
in my opinion telemetry should be very opt in, like if the user decides one day
we send it once after startup and it's over
then we'd never get any data that's worth it
why not send it once when you accept and once on startup from then on
because it's easier just to say "hey we'll send telemetry next time if you don't turn it off"
Yeah this is harmless telemetry
that may concern some
..how
we're informing you of its existence, we havent sent anything yet, we'll send something next time if you leave it on
is it the wording?
Lewi just turn telemetry into a userplugin /j
???
yes thats the point
you get an option to turn it off
before we send anything
that will make people feel like you are taking advantage of laziness
and if you dont turn it off
mostly what I meant
if you're that lazy that you cant click two buttons to turn it off then god help you when you want to add a theme that takes more than that
i literally give you a link to settings, and then it's there in the settings where to turn it off
i dont understand how i can make that any easier
hm
oh i know
just say
do you want telemetry?
yes | no
that'll work
Which always passes null and false
I'm ok with telemetry personally, just that starting to probe on next restart seems fishy to me
ah but what if you dismiss it
ok but use the power of Jedi mind tricks and have it be no / yes with no grey and yes green
i actually dont understand this viewpoint though
we all know what most users will do with that
Because all other relevant functions are basically empty
i would prefer it if software asked me first before sending telemetry
rather than sending telemetry then asking me
like most software does
the "on the next restart" thing is literally developer convenience lol
wait sorry worded it wrong
It's the fact it's not opt in - yes it's better than telling you after the fact, but it's still not opt in
yeah this thanks
People don't like opt out for tracking/telemetry
that's weird, I'm not home but I can check in a bit
what's the purpose of the startup ping
i meant to not ping you in that message ๐ญ
you can try my shim https://github.com/edisionnano/discord_voice-stub
I'd not send telemetry and show the message again on next restart until they actually say yes/no
just make sure the user doesn't
some dialogs already do that
Already had a breakpoint on all of them
I don't think the shims gonna help a lot, but I might try it the next few days
do you still want the windows module?
No not the module but the all of the JS that's loaded on the client
yeah but as it's been said before if it was opt in they would get no useful telemetry
That's basically admitting that you need to be scummy to get data
is it not simple as asking the user if they consent for data or not
and is that not what is happening here
mostly yes and no
the files loaded from the server?
alright, i'll add the option to the dialogue
version, plugins at time of ping, os
I think these are the same regardless of the platform
we arent sending a live feed of what you're doing
no i understand the viewpoint now
I will take an extensive look on the module in about an hour
it took me a little bit because i've obviously been looking at this one way
what have you done so far?
the point is that the current notice assumes an implicit "yes" from the user
when it should ask explicitly
how deep are you in?
otherwise what's the point of notifying at all
I don't think so, look at my message above the functions are literally hard coded to throw
Disassembled the linux native module, debugged which internal native functions are called
๐
Now if only big company developers could do the same ๐
I see thanks. I had a node playground and I got the module to capture the screen, iirc soundshare was a different function. setOnSoundshare or sth like that
I will check again to see if things changed
Yes, the set callback function is indeed called but the callback passed to it is never called nor the failed callback
for soundshare?
@tidal cloud @calm wharf how's this
Yep
did you declare it as supported on index.js?
@austere talon would a #soundshare-dev channel be a good idea?
you can make a thread if you really want, but i generally just prefer normal channel
more accessible
hey! I made a lil theme that replaces the default throbber with a lil shiggy gif
cant put it in css-snippets
now you can
Would also prefer normal chat ^^








(I don't know where the problem is)