#๐พ-core-development
1 messages ยท Page 183 of 1
@vagrant topaz you don't need to patch updateHangStatus
earlier I mentioned
okay but ideally we don't wanna cancel it
we want to avoid sending
and by that I mean finding the place where updateHangStatus is called with the default status
this is the module that does it:
c(this, "handleVoiceChannelSelect", e=>{
const { channelId, guildId } = e;
const { enableHangStatus, setDefaultStatus } = u.HangStatusExperiment.getCurrentConfig({
guildId: guildId != null ? guildId : _.EMPTY_STRING_SNOWFLAKE_ID,
location: "HangStatusManager"
}, {
autoTrackExposure: !0
});
if (guildId == null && channelId == null) {
this.handleDisconnectFromVoiceChannel(),
this.previousVoiceChannelId = channelId;
return;
}
if (!enableHangStatus || channelId === this.previousVoiceChannelId)
return;
if (this.previousVoiceChannelId = channelId, guildId == null || channelId == null)
return;
const channel = s.default.getChannel(channelId);
if (
channel == null || channel.type !== _.ChannelTypes.GUILD_VOICE ||
!canSetVoiceChannelStatus(channel, !0) || d.default.getCurrentHangStatus() != null
)
return;
const currentDefaultStatus = d.default.getCurrentDefaultStatus();
if (
(currentDefaultStatus == null ? void 0 : currentDefaultStatus.expiresAt) != null &&
(currentDefaultStatus == null ? void 0 : currentDefaultStatus.expiresAt) >= Date.now()
) {
if (currentDefaultStatus.status === _.HangStatusTypes.CUSTOM && currentDefaultStatus.customHangStatus != null) {
const { status, emoji } = currentDefaultStatus.customHangStatus;
updateCustomHangStatus(status, emoji);
return;
}
if (currentDefaultStatus.status == null)
return;
else {
updateHangStatus(currentDefaultStatus.status);
return;
}
}
setDefaultStatus && updateHangStatus(_.HangStatusTypes.CHILLING);
});
you just need to make that function never executes, or return at the top
here is a find for it HangStatusTypes.CHILLING)
your implemention wouldn't work either because as you can see the same module calls the function with a second parameter in another case
updateCustomHangStatus(status, emoji);
If you feel like you can even make the plugin allow for choosing between allowing the default chilling status or a custom one when joining the voice chat, because the logic that chooses it is there
Why do i sound so stupid

PING ME WHEN YOU REPLY PLEASE
so this is the same as https://github.com/philhk/Vencord/tree/better-plugins/src/plugins/betterScreenshare.desktop ?
I would say correct but this one has a chance at getting merged because it doesn't require an entire plugin lib to run.
Fair
heya (idk if they replied)
They didn't ping , i really want the plugin that auto pings even though the person turned pings of for replies
But people won't respect this message
:(
Oh I finally finished the ReplaceGoogleSearch plugin just waiting for vee to reapproved it for merge
Imma test it b4 it does ๐ฃ๏ธ ๐ฅ
Enter this under your nickname
A good plugin that I use

Read: #๐บ-regulars
I explained why I felt stupid
Vee should force users of #๐ฅ-vencord-support-๐ฅ to use the crude Chinese app
Idk

Then the number of fools will increase tenfold.
Rela
@still wasp you agree
?
Samwich called me the best reaction glazer
Ur the glazer
Don't accept me.
No
Don't accept me.
included.

horror to implement that and likely to explode your account
JemWritesCode
You will see #๐ณ-plugin-requests.
discord implementing SCOPE_GATEWAY_CONNECT 
const group = findGroupChildrenByChildId("search-google", children);
if (group) {
const idx = group.findIndex(c => c?.props?.id === "search-google");
group[idx] = makeSearchItem(selection);
}
@uncut glen enjoy
Ty lol
I'ma get home in like 15 min and look at it
I tested and it seems like mouseup is not being fired for my side buttons, which makes the plugin not work
y'all who do i have to pay to get this plugin updated and merged into the main thing i'm so serious. do i have to become a sponsor of vencord? like genuinely the only thing that's stopping me from making the switch from BD is the lack of this plugin
do you not use your own dev build on all your devices?? why does it bother you?
Because others want to use this plugin too without needing to install someone else's builds.
Discord Account
lewisakura
What happens when the bug or crash occurs?
Using both PlainFolderIcon and BetterFolders makes it difficult to see which folder is open due to BetterFolders also using a plain folder icon to indicate which folder is open.
What is the expected behaviour?
Ideally we should have some sort of indicator or more obvious colour change.
How do you recreate this bug or crash?
Enable both PlainFolderIcon and BetterFolders, then open a folder.
Erro...
changed all that was asked @Nuckyz
finished everything
Because I would have to ask for a lot of changes, and took the liberty to make them myself so this can be instantly merged. Thank you for the new plugin!
Appreciate your clean-up. This is my first plugin so I'll read up your changes to see how I can improve.
Thanks for the new plugin!
Discord Account
No response
What happens when the bug or crash occurs?
If you use a Discord emoji like \:sob: in a channel, where you have no permissions for embeds, the "missing permissions" pop-up appears.
What is the expected behaviour?
That the preflight pop-up didn't show up and the message sent.
How do you recreate this bug or crash?
- Have FakeNitro enabled
- Be in a channel where you have no embeds permission
- Use a Discord native emoji (like \:sob:)
###...
@limber skiff just relised that the folder for my plugin has a capital R at the start not like the rest of the plugins is there a way to fix that?
I got it dont worry
ok ty
weird git configs
why is it even the default
okay so you are telling me now that it added the new folder and didnt delete the old
oh my fucking god
there we go
No fun allowed
wait fuck
it's funny
where are my commits what the fuck is happening
come back to me
0c50e15 FakeNitro: Fix & rewrite emoji bypass patches - Nuckyz
03d83e1 new plugin AutomodContext (#2290) - JohnyTheCarrot
ffe1d7c new plugin ReplaceGoogleSearch (#2450) - ImpishMoxxie
6547cc1 FakeNitro: Fix attempting to bypass unicode emojis - Nuckyz
60f8225 chore: Fix non standard plugin names - Nuckyz
lets fucking go
Epic
congrats
it's okay I almost lost my progress of weeks
git can bw useful but sometimes this kind of stuff happeneds
You LOVE git push --force
git reset --hard
@vagrant topaz I'm gonna modify your patch to target here
so it calls handleDisconnect properly
I think we need it to clear the status
oh
that's true
yeah
that's enough
Gyad dyam, look at those beatiful commits
None
None
None
None
None
None
None
None
nono
O
just testing if it's all working
Very epic
You could have told me and I would have changed in my PR no need for a full new PR 
1 char or go wild
free PR
Real
v+ contributor @uncut glen @bleak gyro
v- admin @austere talon
What is your work
janitoring
Let me do your work :3
gib ve me mod Perm @343383572805058560
<@343383572805058560>
5fc6ba8 fix(replaceGoogleSearch): correct GitHub casing... - D3SOX
works for me. on linux, maybe this is platform dependant?
i'll do another review once the big file has been split into multiple smaller files
there are a lot of very long lines. try to keep your lines only so long that they still are fully visible with like 60% screen width on an average size monitor, so around 80-120 characters
these alt texts are pretty meaningless. alt texts should serve as an alternative to the image, not just serve as a title for the image


...
this is a very massive file. please split it up into a few separate files in a way that makes sense! don't overdo it, just like 3-4 files
so this still needs work if i'm understanding correctly? marking as draft accordingly
yeah, as pointed out by lewi, this current implementation is not very good. using css for this is hacky and not sustainable. HideAttachments suffers from very much the same problem and honestly needs a rewrite, it's just that it's very old (made within the first two months of vencord existing), that's why it doesn't follow the quality standard as much as other plugins
in the current state this is not mergeable for that reason. here are a few better approaches i can think of:
- patch the m...
I've split it up into multiple files, is this enough?
Updated the alt texts
yep, already a lot better! just trying to avoid creating a second FakeNitro situation here
honestly looks good but i'm still scared about potential XSS D:
have u tested this with some sussy svgs to make sure they are properly handled?
will this not cause problems when there are multiple embeds with this same id?
@austere talon didn't you say it yourself that svgs inside an <img src=""> are fine
From what I've tested, the final id is random anyways, so I just put it as 1
i will test it more later
going to nap now 
rest well 
thanks for reviving this! looks good for the most part, just a few minor things
maybe instead of having this note, you could do something like the following to override nitro themes?
.vc-fpt-color-pickers * {
display: unset !important;
}
className={classes(Margins.top8, Margins.bottom8)}
i don't like this... this will unnecessarily load this chunk even if users never enter the settings
i would instead suggest creating a component like the following:
function ColorPickers() {
const [,,loadingColorPickerChunk] = useAwaiter(requireColorPicker);
if (loadingColorPickerChunk)
return <Forms.FormText>Loading Colorpicker chunk...</Forms.FormText>;
...
}
54817ab lastfmRPC: add setting to toggle "View Song" bu... - Yumiro
closing both for now due to no reply, just let me know which one to reopen and i will!
hey @limber skiff i believe this to be a bug with one of ur patches for ViewIcon
i dont think it should open the avatar if u just click on it in the dm list
that's true
seems like lint is failing, please fix!
I tested and it seems like mouseup is not being fired for my side buttons, which makes the plugin not work
Which OS are you on? If you're on Linux, which distro and are you on X11 or Wayland?
This fixes a bug in the Resurrect Home plugin where recent messages would disappear, leaving only older and real-time messages visible when returning to a channel after viewing an old thread within it.
(I specifically discovered the bug when clicking on the oldest thread created in #core-development in the Vencord server, and then going back to the regular #core-development channel)
@limber skiff
oh that happened to me too
I tested and it seems like mouseup is not being fired for my side buttons, which makes the plugin not work
Which OS are you on? If you're on Linux, which distro and are you on X11 or Wayland?
windows haha
Is force: true or only cache is enough? The before was there because it would clear the previous cache, but it was a hackfix
๐ก๐ก
i thought it was a discord issue lmao
i did suspect the patch but never bothered investigating
to be honest no idea why it happens with before

yea me neither
message caching is fucked
also don't think that fix is proper either but if it works ig it's fine
yeah it doesn't look right but idek what that original patch was supposed to do
that's why i pinged nuckyz
just fix caching lol
the original method would simply clear the cache everytime
and keep fetching in a loop because it was clearing the cache
Is force: true or only cache is enough? The before was there because it would clear the previous cache, but it was a hackfix
Using only one of them does work, however, I decided to use both just to make sure it works in all cases. Not using either of them just scrolls the channel up to where the thread was created.
oh yay 
I thought so too ngl
but after playing around with the patches, it turned out to be that one
whats the eeee branch nuckyz lmao
i should cherry pick from https://github.com/Vendicated/Vencord/tree/npm-types
tmp
Yall my bus just backshotted another bus wtf
erm this is coredev
Oops
sooo how many lines of merge conflicts?
1f31058 Discard changes to scripts/build/build.mjs - Vendicated
7c823ef Discard changes to src/main/ipcMain.ts - Vendicated
f8319de Discard changes to src/main/utils/constants.ts - Vendicated
868e2a7 Discard changes to src/plugins/index.ts - Vendicated
6fddd7a Discard changes to src/utils/IpcEvents.ts - Vendicated

ffff3c2 Discard changes to src/components/index.ts - Vendicated
a35b417 BetterRoleDot: Fix copying colour - Vendicated
29c9946 ShowConnections plugin (#923) - TheKodeToad
5b48580 Plugin Settings: Better margin for plugin setti... - LordEliasTM
0433819 ReviewDB: make warning review disableable; add ... - mantikafasi
4c13521 PlatformIndicators: Fix layout reflows - Vendicated
c3757a2 add package for publishing types to npm (#2473) - Vendicated
now vesktop doesnt use ancient types anymore
it's okay...
eab8d93 chore: remove inappropriate loading quote - lewisakura
๐ ๐
to be honest i don't know why this was still here.. it's not really funny and just plain nsfw
plus it's kinda obvious that people dont really like it, here's one source: https://twitter.com/MaeBeifong/status/1784709745753874534
- the irony of it violating rule 3 here whilst being in the mod published for everyone kinda sucks
(the vaporeon quote)
u should just leave a reveiw on the pr that rewrote the plugin instead
didnt even know there was one
i merged for u
hopefully correctly
nvm
this needs to go
kitty
don't you wanna remove the type from the one above
zustandCreate still has a proper type in that pr
oh it didnt show that in the conflict resolver
it's above zustandPersist
yeah sorry
Already removed. See the last commit message.
Outright, not commented out, I don't think we need to keep the line if it's never seen.
seems good now
why's this a source file? just name it quotes.txt and make it newline separated quotes
you can import it in ur plugin via
import QuotesText from "~fileContent/quotes.txt";
const Quotes = QuotesText.trim().split("\n")
fun fact - you already requested that change
also unrelated to your pr, but in hindsight the XOR encryption is a bit cursed... maybe we could instead move the quotes to a separate file
quotes.txt(in plain text) and use
import QuoteLines from "~includeFile/quotes.txt"
okay I need to fix view icons issue and review resurrect home fix
monorepo nightmares
Naming convention would be to make it clear what your API does rather than care about the length of the name, so I agree that "TablistAPI" is really undescriptive
Something like "ExpressionsAPI" would be more appropriate, since your API involves adding new types of expressions to the picker.
oh thank god the issue is only for group dms
lmaooo really
when I did this find I discovered there were two matches
so I thought okay one is probably from another place I need to patch, so I will include it too
guess what, it's the place I did not want to patch
but this is bad because wtf am I going to put as a find here
regex xd
it's probably gonna be needed yeah
do u want the small or big one
then put it behind instead of in front
๐ญ bad commit name
"fix group icons being clickable"
uh, yeah, i sure hope they are
ViewIcons: Fix Group Icons being clickable in channel list
and does it still work in the um
sorry that was a little bit of skill issue
actual group
huh
here

horror
what
in case discord actually adds the search to the client, seems like it excludes vencord settings completely
probably easy to fix
okay how does this even work
if I'm reading it corectly it adds cache: true and force: true
but fetch messages does not accept those options
it failed
The patch does not apply, which results in the message request spam in homes happening again. And also, cache: true and force: true are not options which you can use, how did you find them?
BRO
discord made it so that /users/:id will 404 for users without mutual guild / friends
I REALLY HOPE THATS AN ACCIDENT WTFFFFFFF
if its intended then fuck discord
aint no fucking way
but yeah, it is indeed the fault of resurrect home patch messages disappearing
killing myself
discord cache is stupid bro
they fetch the message that started a thread and messages around it
the enough for a jump
but they dont just add to the cache of the channel
they completely reset the cache, and re-fetch everything after it
and because resurrect home makes them not reset it's fucking it up
I think I know how to fix though
nvm
I found the issue ๐ญ
hasMoreBefore: null == jump && isAfter ? cache.hasMoreBefore : request.hasMoreBefore,
hasMoreAfter: null == jump && isBefore ? cache.hasMoreAfter : request.hasMoreAfter,
when we patch the fix for resurrectHome isBefore and isAfter is true
hmm wait
horror
oh my god
I may have fixed this the most hacky way
@median rapids
it worked lmaoo
๐ญ๐ญ๐ญ
okay so apparently hasMoreAfter being false really fucks it
BROOOO
but hasMoreBefore being false does not fuck it
so I just inverted and now hasMoreAfter is true :)
crazy how such a small thing can make such a difference
it's a super hacky fix
the true issue is here
if ((isBefore || isAfter) && null == jump && this.ready)
cache = this.merge(fetchedMessages, isBefore, !0);
else {
let pendingMessages = this._array.filter(e=>e.state === c.MessageStates.SENDING);
cache = this.reset(fetchedMessages),
if it's not isBefore or isAfter it resets the cache, which leads to a loop fetching messages in the home screen
so the hack fix is to pretend it's a before or after fetch
but being before caused the other issue
so instead of adding a new option and like 3 new patches to actually fix the issue, I just make it pretend it's a after fetch now
if it works it works lmao
well that took a while
yep lmao
if there's one thing I learned today, its that discord's caching is a hot mess
im surprised it even worked at all
it truly is
and the minifier really does not help
true
https://github.com/Vendicated/Vencord/pull/2474 can be merged right
to be honest i don't know why this was still here.. it's not really funny and just plain nsfw
plus it's kinda obvious that people dont really like it, here's one source: https://twi...
oh and regarding where I got cache: true from, don't ask lmao
I just saw cache: null being used somewhere earlier so I tried cache: true on a whim and thought it worked but forgot to check for WebpackInterceptor in console
mb, still in the progress of learning how patching works
wait this is so real https://github.com/dolfies/fake-nitro
wait actually why does the eeee branch exist
I must have pushed in accident
this change sucks for vencord cause
we can no longer fetch users
you will have to enter a bot token into ValidUser
and we can no longer fetch plugin devs
but didnt they revert
bro really
horror
alternatively
we can make vencord automatically create an application
๐ญ
but thats cursed lmao
bots can still fetch?
where did they say taht
add tweaks for token interaction and more serious customizations
what server is that lol
bruh
so what's it gonna be like when you try to view the profile of like a former friend you dmed but share no servers with now
or a former member of a server with no current connections
@austere talon btw should probably add that to known issues
this is the only pc plugin i ever published lol
no change
this ep is unused in the client
it is lol
there's a function that uses it but the function is unused
is it
ya
lets fact check
this ep used to 403 for user accounts years ago
they unlocked it when they made /profile require a mutual
i remember this i think
none of those code paths are reached pretty sure
actually the referral one might be
oh shit
there's an rpc command
@austere talon you could maybe report it breaking lol
is that because the information about the user is in the messages themselves sent by the server? is that gonna be up to date with their latest username/display name/profile picture/etc?
no clue
try it :p
i doubt it looking at the code
iirc RPC_LOCAL_SCOPE means IPC required
when you fetch a message it includes message.author
which is cached by the client
IIRC
yea
what?
HORROR
USERS REALLY CANT USE IT
fucking discord
so yeah api.vencord.dev/devs.json it is

None
None
None
None
None
None
None
None
^
add tweaks for token interaction and more serious customizations
The only thing I could really add is token input so users can upload files to their own gofile accounts if they want to, an option to upload to specific folders/naming folders specific names, and deleting previously uploaded files. I can only do so much because most of the gofile API requires premium accounts. But I'll do my best to implement the features I just listed as customizations within the next week or so.
what's the point of such a plugin? why not just use sharex or manually upload?
with the new higher upload limit there's basically no use case for having this plugin
vendicated loves to troll me
so mean
get trolled
what's the point of such a plugin? why not just use sharex or manually upload?
with the new higher upload limit there's basically no use case for having this plugin
Even though Discord has increased its upload limits, I've still noticed that many users (especially those without nitro) still run into size limitations. Why not use ShareX? As a ShareX user myself, I love it, but it requires linking accounts or setting up API keys (or a custom domain), which many people don't want to ...
how did I spend almost an entire hour writing that 
i was skimming ur changes and that was the first thing i noticed lol
also RE that pr: WTF i didnt know u can do multi line suggestions
click on a line number, hold Shift, click on a second line number and click the "+" button to the right of the second line number.
so useful
me making two suggestions for both match and replace ๐ญ
you are joking
you didnt know that?
๐ญ
you can also hold click on the line and move the mouse down the lines you want
๐ญ
yeah i just did multiple suggestions ๐ญ
I feel sad for you
it's super useful I use all the time
and I barely do reviews, imagine for you...
I realized it broke proper styling if you werent a friend of the person
๐ญ
you're the master of pushing something then shortly after noticing it's broken

FOR REAL
honestly I have a big skill of realizing problems before they occur
but it's never when I do the thing, always after
Just thought a minor cleanup might be useful here since UploadManager and UploadHandler were already moved to Webpack Common. Ease of use for the future.
meh it doesn't matter much
specially after immediate-finds is merged
then it will make no difference
ah, I'll close the pr then
Hmm, I didn't know one can do this in JS/TS. I use this approach now.
Outright, not commented out, I don't think we need to keep the line if it's never seen.
Done. The commenting syntax is retained, though, in case people want to leave comments there.
evil
What it says in the tin.
badgeAPI does not inject in the new userprofiles or popouts btw
i don't think any plugin does yet
i mean, it's still an experiment so it doesen't really matter
but for my theme, i was able to support both, so maybe it's viable to support both userpopouts for plugins as well?
yop okay makes sense
ok it won't prevent you from being AFK on web installs now
i'm gonna unmark it as draft now
Discord Account
m9jd
What happens when the bug or crash occurs?
The title pretty much covers it all, the issue is that the plugin is not using the microphone I want it to use, and there's plenty of microphones connected to my PC so that's a problem.
What is the expected behaviour?
I expect it to use my settings in the [Voice & Video] section instead of providing it's on settings such as [Noise suppression, Echo cancellation], or provide a new 'own' setting that let's me choos...
If it can be lazy-loaded remotely and it's genuinely that large then set it up as a dynamically loaded dependency similar to rnnoise: https://github.com/Vendicated/Vencord/blob/main/src/utils/dependencies.ts
it was already lazy-loaded because i only load it if the plugin's enabled
i moved the url to dependencies.ts though bc i think that's the convention
now that f74da73 has been added, i'm pretty sure this can be fixed by using the same code that the new regex find uses for the match field as well
@Nuckyz do you wanna add that or should i?
Content
When Discord is in the background for a prolonged period of time, it sometimes unloads. When you come back, it takes a few seconds to "re-connect" and fetch new messages. Supposedly it also disconnects you from voice when this happens
There are many reports of this happening on stock Discord but according to some other people, it only happens with Vencord.
The following needs to be investigated:
- Doe...
pretty sure this is more or less stable ish now
i disabled DisableCallIdle and seems fixed?
how the hell does that work
none of the patches seem to do anything that could cause this

well
it noops this
which prevents this code from running
handleIdleUpdate() {
let e = d.default.getIdleSince();
if (!E.isPlatformEmbedded)
return;
for (let e of (_.stop(),
C.stop(),
r.default.getAllActiveStreams()))
if (e.state !== h.ApplicationStreamStates.ENDED)
return;
if (null == e)
return;
let t = c.default.getChannelId();
if (null == t)
return;
C.start(18e6, ()=>{
l.default.selectVoiceChannel(null)
}
);
let n = u.default.getGuild(c.default.getGuildId());
if (null == n || null == n.afkChannelId || n.afkChannelId === t || null == n.afkTimeout)
return;
let a = o.default.getChannel(t);
if (null != a)
!a.isGuildStageVoice() && _.start(e + n.afkTimeout * f.default.Millis.SECOND - Date.now(), ()=>{
null != (n = u.default.getGuild(c.default.getGuildId())) && null != n.afkChannelId && l.default.selectVoiceChannel(n.afkChannelId)
}
)
}
which might have some relevance idk
well actually
that doesnt do anything on web
anyway its my best guess
wait do you mean gateway dying or the entire app shitting itself/freezing
It does seem to be the DisableCallIdle plugin. If you have this issue, check if it's enabled. If yes, try disabling it and see if the issue is fixed (and report back here). If not, post your list of enabled plugins
idgi though
wonder if the timer prevents the app from exploding somehow
shrug
maybe if nothing is running chrome shuts down to save energy
and the interval somehow stops that
but shouldnt there be gateway heartbeat interval anyway
dude can people stop messaging me on telegram for support
so annoying
fuck off
pain
yea
that's what i was thinking
exactly the kind of hacky thing they'd do tho
can someone review tiny pr? https://github.com/Vendicated/Vencord/pull/2476
do we just reply to the issue with our active plugins list?
nvm I just read on known issues
?
run /vencord-debug in #๐ฅ-vencord-support-๐ฅ
sure
I do have to note that every instance of this happening was while I wasn't in a VC
how to install a dev instance of vencord as vesktop instead of needing the discord app?
you can change the vencord dist folder from vesktop settings (see screenshot & read vee)
(or symlink it from the default location)
scroll down vesktop settings
oh thanks
(ngl I originally didn't know I could change the location from the settings so I just ended up symlinking ~/.config/vesktop/vencordDist -> /opt/Vencord/dist)
while were on the topic of discord moment
screenshares are somehow zoomed in for som ppl when streaming from desktop
but switching to vesktop fixes it

v work for discord when
whats the use case?
anyway at the end, like data-emned-title-0
so themes can wildcard select it
otherwise u cant
i disabled star notifs a few h ago btw 
yay
You should move them too their own channel like
#๐ณ-plugin-requests
A plugin that allows users to appear invisible until they start typing.
-
Features two kinds of delays -- a delay useful for if you mistype and don't want to appear online, as well as a delay for switching back to invisible after not typing.
-
Users may pick between Online, Idle and Do Not Disturb as their desired status.
-
The chat bar may have a toggle if preferred, and may also switch to your desired status if you decide to toggle the plugin off.
Screenshot of plugin settings
...
ngl I don't really see any good use case for this plugin. At best it would just look weird when people see you going online and offline constantly
We have a special regex symbol, \i, that matches variable names. Use this instead of \w+
ahh I didn't realize, thanks
ngl I don't really see any good use case for this plugin. At best it would just look weird when people see you going online and offline constantly
I totally see that, although it could have its use cases for people that don't want to seem online all the time, while not active particularly at the same time.
It's natural I don't want this rejected, but if anything it's a learning experience making this :3
this is kinda funny
now that f74da73 has been added, i'm pretty sure this can be fixed by using the same code that the new regex find uses for the match field as well
@Nuckyz do you wanna add that or should i?
Can you clarify which code?
replace: "$1" // Decouple idle from afk (phone notifications will remain at user setting or 10 min maximum)
return idleTimeout === 0 ? Infinity : idleTimeout * 60000;
Great fix, just these two nitpicks and it should be ready

@verbal pumice what do you think of this https://github.com/Vendicated/Vencord/pull/2219
lmaoooo i do this sometimes ๐ญ
be invisible
start typing somewhere
notice im invisible
change to online quickly
but that plugin is also kinda insane
yea
usually when i'm avoiding something lol
now that f74da73 has been added, i'm pretty sure this can be fixed by using the same code that the new regex find uses for the match field as well
@Nuckyz do you wanna add that or should i?Can you clarify which code?
mainly the onFindBlur function and the findError/setFindError
and then instead of using CheckedTextInput for the match field we can use TextInput and reuse the fu...
This is a plugin that adds a yt-dlp command. You pass a url, it downloads it and readies it as an attachment. See the gif for a quick example.
It supports any URL supported by https://github.com/yt-dlp/yt-dlp.
Warning:
This plugin has 2 dependencies:
yt-dlpandffmpeg.yt-dlpgets automatically downloaded and stored locally, butffmpegdoes not, and thus needs to be in...
okk made the changes ๐
I mean yeah, but the problem of CheckedTextInput still needs to be fixed I guess
I mean yeah, but the problem of CheckedTextInput still needs to be fixed I guess
we could just not use CheckedTextInput
since the Find field just uses TextInput and it achieves the same purpose (validating the regex and displaying an error)
Thank you for the new plugin!
@austere talon I dont know what to do about this https://github.com/Vendicated/Vencord/pull/2338
is that implementation okay or this still applies
I'm lacking information to do anything
idk ill have to see
just ignore it for now
okay
it's not a big deal
aight
this works tho
just do that if you want
but the effect solution is just wrong
why does is it wrong?
because it makes no sense to use an effect to update some state
that's just wrong
and it will trigger on change without real changes
the issue at hand is that you can only define the initial value but have no control over the actual value
which makes little sense
just need to let you control the raw value or something
so just dont use CheckedInput there because it really can't properly support changing from outside
aight
the ytdlp idea is cool but wow that code seems really cursed on first glance
yeah true
The way child_process.spawn passes arguments means that each string is a single argument, even if it contains spaces. E.g. if you were to try and pass "-o output.mp4" as an argument, you would get an error as yt-dlp as no arguments called o output.mp4.
I thought about splitting the string on spaces, but then you can't include multi-word arguments, unless I also implement some quote parser.
Doesn't work under Linux (probably missing execute.
Also, why redownload yt-dlp if it is already installed on the system? (like on mine)
@Vendicated Appreciate you unlocking this PR, however I still need a response to my previous message regarding the approach you want me to take to implement notifications. I have attempted to get your response for this PR on numerous occasions in the last 7 months, all of which were ignored.
The outcome of whether or not you allow this plugin to use it's own notifications instead of Vencord's notification API heavil...
The existing implementation from this branch is very outdated, the latest version of this plugin I have locally has since resolved this bug.
obligatory https://react.dev/learn/you-might-not-need-an-effect#updating-state-based-on-props-or-state
i love this plugin idea!
however based on a quick skim of the code, the current implementation is very questionable. why is ytdlp stored in indexeddb? you need it on the native side, not in the browser
i honestly don't think the plugin should download it for you. why not simply test if it's available and if not show the user a popup with instructions how to install it?
installing programs from a plugin is not something I want to do and it might trip anti malware engines, not to ment...
Okay I did the changes, super small but can someone review?
@rozbrajaczpoziomow
Doesn't work under Linux (probably missing execute perm)
Nice catch, weird that it's interrupthing though, I thought I had error handling everywhere. I'll have to take a look at that.
Also, why redownload yt-dlp if it is already installed on the system? (like on mine)
Good point, should probably add a check.
@Vendicated
however based on a quick skim of the code, the current implementation is very questionable. why is ytdlp stored in indexeddb? you nee...
@sullen shoal
I'm not sure that would add it to PATH, would it? I've always had to manually add yt-dlp to the PATH unless I entered a Python venv.
rozbian:~$ pip list
Package Version
------------------ ----------
[...]
yt-dlp 2024.4.9
rozbian:~$ ll $(which yt-dlp)
.rwxr-xr-x 1 205 root root 17 Apr 09:26 /usr/bin/yt-dlp
rozbian:~$ cat $(which yt-dlp)
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from yt_dlp import main
if __name__ == "__main__":
sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0])
sys.exit(main())
ยฏ_(ใ)_/ยฏ
I don't use windows so idk how it looks on there
I hope it's this easy on windows too, I'm getting a bit tired of this OS ๐
Yeah that's fair enough. I wanted to make it completely seamless, but halfway through I realised that doing the same to download ffmpeg would be a pain in the ass, so now it's in a bit of a weird state where half of the dependencies auto-install. This definitely makes more sense.
tbf ffmpeg is not actually a required dependency https://github.com/yt-dlp/yt-dlp?tab=readme-ov-file#dependencies
you could make it work without ffmpeg, Audio with-f baand Video by avoiding-f anything(perman yt-dlp)
caed7cd MoreUserTags: If server owner tag is disabled, ... - Noxillio
Thanks for the improvement! Sorry for taking a long time to review
Oh, I assumed it was, but that's probably just because I used --remux-video almost every time
They added themselves to constants.ts but not actually into the authors: array lol @limber skiff
None
None
None
None
I know
None
None
None
None
they shouldnt be added to the authors for such small improvement
but at the same time they contributed, so they can add themselves to devs
ยฏ_(ใ)_/ยฏ
it was crashing if you typed out an invalid regex (firing onMatchChange) so i added regex validation during the canoncalizeMatch() part
this way they can still type if it's invalid regex
good catch, for some reason it worked fine in my tests
anything installed via pip should be in path. when you install python on windows there's an option to add python stuff to the PATH, you need to make sure to have it checked
in any case, you could just do python3 -m yt-dlp or even write a small python script that imports the module and uses the api from python
d437318 Fix: PatchHelper not auto filling match field (... - waresnew
@limber skiff also since u made it so find can use regex, it only does it onBlur now
so if u import a patch as json, u need to click into the find field and then click out for it to load the module
it's not that big of a problem ig
Thanks for the effort of fixing it!
I mean I could probably change this
and use a debounce
but idk it's still bad
wait I'm stupid
are u talking about the onblur thing
why not just set state on a paste?
I just need to move the set find up
one second let me see if this works
fucking shit
you're the master of pushing something then shortly after noticing it's broken
vee you have cursed me
okay now it's responsive
lmao I could have done this all this time
oh yeah true
also imagine merging new plugins and forgetting about #plugin-news
do you know what version bump does?
uh oh
in my mind i thought it was like
client checks version number and updates if it's higher
does it not work liek that
I guess vee forgot about their own plugin lol
nop
desktop clients and userscript receive any updates on the main branch
all the version bump does is release a new chrome webstore extension version
because google needs to review each version individually
nvm i don't wanna install official vencord
ty for the correction tho
@austere talon thoughts about this
it looks like since version 9 they dont allow you to mismatch a minor version which is so fucking annoying
npmrc
no clue if this is known, but MessageLinkEmbeds breaks after ~3 nested message references. not a huge issue but yeah 
wha
just copy the message link to the same messages over and over again
youll end up with that
Yeah i just tested it
It just becomes MASSIVE after a few pastes
I had to zoom out that much to screenshot it
horror
ah
Wait should PRs be made for dev instead of main?
it doesnt matter because we are gonna change them to dev before merging
but yeah
horror what is that
fixed :)

hmm I wonder why automod embeds dont nest
I guess they just dont have accessories
yeah...
tf
oh deleted
a94b88c MessageLinkEmbeds: No longer need to reset glob... - Nuckyz
a94b88c MessageLinkEmbeds: No longer need to reset glob... - Nuckyz
these might come handy once
cool
but like this is more interesting
logging the full module that it tried to match
no clue if this is known either, but ill drop it here aswell
vencloud "breaks" when manually deauthorizing it, making it impossible to auth it ever again unless you reinstall vencord/discord
#๐ฅ-vencord-support-๐ฅ message
#๐ฅ-vencord-support-๐ฅ message
(there are way more issues from #๐ฅ-vencord-support-๐ฅ like this)
probably adding a simple "authorize" button similar to reviewdb would fix this?
enables discord summaries and saves them to datastore for persistence
lets see which one will happen first
discord rolls out feature or my pr gets merged
guys
I cooked hard
vencord no longer needs to patch .push method
and no longer patches modules before they are actually used
ShowHiddenChannels (had no effect):
ID: 943362
Match: /(?<=getChannel\(\i\);if\(null!=(\i))(?=.{0,100}?selectVoiceChannel)/
VoiceChatDoubleClick (had no effect):
ID: 943362
Match: /onClick:(\i)(?=,.{0,30}className:"channelMention".+?(\i)\.inContent)/
WebContextMenus (found no module):
ID: -
Match: .SLASH_COMMAND_SUGGESTIONS_TOGGLED,{
WebContextMenus (found no module):
ID: -
Match: "add-to-dictionary"
None
None
[Vencord] BetterSettings: Failed to find some components ```
oop
so it doesnt work completely
hmm extractAndLoadChunks can fuck it up for sure
horror
https://github.com/Vencord/plugin-requests/issues/346
Adds a "Save Role Icon" option on the role context menu.
Marking as draft because I realized putting this function into the already existing plugin ViewIcons & using Discord's preview would probably be better.
ya added yourself to the dev constants, but ya didnt actually add yourself to the authors lol
i think this would make more sense to be added as part of https://vencord.dev/plugins/BetterRoleContext
Seems spammy, and I dont see the actual use case for this
i think this would make more sense to be added as part of https://vencord.dev/plugins/BetterRoleContext
I was thinking about that, will do.
Seems spammy, and I dont see the actual use case for this
Yes, I agree. I've thought about it and could be considered a form of API abuse
could you please rebase this pull @sunnniee ? Really useful plugin Thank You
nah changing presence isn't that spammy as long as you don't patch settings
just add it! you can add an up to date type for it by running the function thats in that file again
untested but probably works, way cleaner and safer. just overrides the boolean to always be true
match: /\i\.hasFeature\(\i\.GuildFeatures\.SUMMARIES_ENABLED_BY_USER\)/,
replace: "true"
this array is possibly massive so this really sucks for performance. what i would do is use a traditional for loop and loop backwards by index, that way you don't need to dynamically find index
for (let i = summaries.length - 1; i >= 0; i--) {
...
summaries.splice(i, 1);
}
spoiler alert it doesnt work 
FIXXX THEN
MINE IS working
yes but its really really unstable
you mean summary checks?
yea
wrong reply
nah manti is just patching this (canGuildUseConversationSummaries)
function l(e) {
var t;
let n = !(arguments.length > 1) || void 0 === arguments[1] || arguments[1];
if (null == e)
return !1;
return !!((null == (t = e.id) || t !== r.ME && t !== r.FAVORITES) && e.hasFeature(r.GuildFeatures.SUMMARIES_ENABLED_GA)) && (!n || e.hasFeature(r.GuildFeatures.SUMMARIES_ENABLED_BY_USER))
}
okay I just ran the script and replaced flux events
whyy
yop worked
INSANE
go backwards so you can just use the current index
instead of having to walk entire array to find index
you saw that it will contain thousands of elements
imagine 200 times checking 3000 elements

oh yea most of the rest are for rendering settings
which you probably don't want
btw dolfies do you know if discord somehow stores them locally
because rn I am storing them in indexxeddb
don't think so
its rendering the section rn
tf does that do then lol
yea lmao
ok resolved that too
all done
but honestly I am worried about dispatching few thausand flux events
idk lol, that component will only be renderer if its true
bad stuff are happening
%27,7 should be illegal
I think this is because of dispatches 
it cant handle all of them
yeah I should figure out how to use BULK one
this wont work
theres an event for bulk summaries
yeah that also works
actually wait issue is resolved i think
I tested this before and it wasnt causing recursion
but it did before it seems
if it includes time I return now and looks chill
CONVERSATION_SUMMARY_UPDATE(e) {
var t, n, i;
let {channel_id: r, summaries: a, guild_id: s} = e
, o = Date.now()
, l = I().chain(a).sortBy(e=>v.default.extractTimestamp(e.start_id)).filter(e=>Object.keys(e).length > 0).map(e=>(0,
D.createSummaryFromServer)(e, r)).reverse().value()
, u = null !== (n = y[r]) && void 0 !== n ? n : []
, d = I().chain(l).concat(u).sortBy(e=>v.default.extractTimestamp(e.startId)).takeRight(75).uniqBy("id").reverse().value();
y[r] = d,
P[r] = {
...P[r],
error: void 0,
fetching: null !== (i = null === (t = P[r]) || void 0 === t ? void 0 : t.fetching) && void 0 !== i && i,
lastReceivedAt: o
}
},
horror code
lets see how we can edit summary store
maybe thats entire store 
is it exported
const SummariesStore = findByPropsLazy("allSummaries", "findSummary");
allSummaries() method returns the object
you can just put summaries on there
actually wait
discord already backs it up
its a PersistedStore
but it doesnt store the necessary data
maybe we can somehow make it store the neccesary data


