#🪅-progaming

1 messages · Page 4 of 1

cerulean plover
#

just run garbage collector every time map is accessed

winged mantle
#

i feel like it's better to mark things as deleted

cerulean plover
#

that will happen in like 1/1000 cases

winged mantle
#

or noo... pretend they don't exist when they've expired

cerulean plover
#

and when that happens then just call the cleanup

#

end user will never know

winged mantle
#

there might be a library for this

#

how does oceanic and discord.js handle caching

#

surely it doesn't just keep users forever

cerulean plover
#

are you seriously writing a discord bot without a library

winged mantle
#

uhhhh

#

not yet!

#

might be a good idea though libraries hate me

cerulean plover
#

you will cope very hard when i tell you d.js has callbacks for message interaction buttons btw

#

now

#

cope

winged mantle
#

i'm using oceanic.js

cerulean plover
#

(i dont use oceanic)

#

all i know about oceanic is that it is better than d.js for some reason

#

what is better about it do tell me

winged mantle
winged mantle
cerulean plover
#

oh

#

i mean

winged mantle
#

if you look at big bots you'll see they usually use eris instead of discordjs
but eris is prehistoric

#

oceanic.js is like an alternative i think

cerulean plover
#

d.js is horror

#

when you read docs of d.js it is actual husk

cerulean plover
winged mantle
#

nuckyz made this

#

cool

#

WHAT DO I WANT

cerulean plover
#

oh wow

cerulean plover
winged mantle
#

it's literally just settimeout

#

AAAAAAa

#

Aaaaa

quick crow
#

Vee ripoff wtf

glossy elbow
# quick crow Vee ripoff wtf

i figured it out ```css
@keyframes animation {
from {
transform: translateY(25%);
opacity: 0;
}

to {
    transform: translateY(0%);
    opacity: 1;
}

}

@media not (prefers-reduced-motion) {
h1 {
transform: translateY(50%);
opacity: 0;
animation: animation 400ms ease-in-out 100ms forwards;
}

main :not(h1) {
    transform: translateY(50%);
    opacity: 0;
    animation: animation 400ms ease-in-out 200ms forwards;
}

}

royal nymph
#

in go

#

implemented basic gateway myself

cerulean plover
#

horror

winged mantle
#

i thought it would be funny to make another discord bot lib for js

#

but caching :pain:

#

maybe this could be more efficient if you stored an array and a map

#

and the array had most recent stuff at the start so it could stop once the expiry condition isn't met

winged mantle
#

what even.. why even

royal nymph
#

@serene elk i have brought to you, horrors beyond your comprehension

visual crag
serene elk
#

so many things what is happeninggg

pine coyote
#

was messing around with the remix boolean on the attachment object

#

this shit

#

is so fucked up

cerulean plover
deep mulch
#

@royal nymph hiii!! haiii :3 heyy haiii!! hiiii!!!

calm ruin
#

technically yea actually

dawn ledge
#

also custom ids need not be strings, they can be any bytes

#

use compat binary representation, this is too bloated

#

nah i think a ttl map wil suffice

dawn ledge
royal nymph
dawn ledge
#

it was a (self)bot

#

still a bot

upper pelican
upper pelican
#

is there any way to do live collab in unity? I wanna make a project with my friend and i'm not sure how to do that together

glacial mirage
#

there's codetogether for vscode, not sure how well it works with unity

glacial mirage
#

i wouldnt know

junior oxide
#

Hi guys, I have this powershell script and im having trouble defining $outputfile for each $file from $files

`cd "J:\Yuki\Media\test"

$path = "J:\Yuki\Media\test"
$files = Get-ChildItem "$path" -Recurse -Filter *.flac -Name
$file = Get-ChildItem $files
$outputfile = "$file" -replace '.flac'

foreach ($file in $files) {
.\opusenc --bitrate 384 --vbr --comp 10 --framesize 40 --expect-loss 0 "$file" "Output$outputfile.opus"
}`

I literally don't know anything about powershell and im just stuck

What I want to achieve is to have every output file in corresponding path from source file, but in different end folder without .flac in the filename

#

I also wondered if I can make it queue on next cpu thread for any next file, for instance by setting affinity mask for certain powershell process ? I mean f.e. on 12 thread CPU it can queue operation for 12 files, then after single thread ends, just queue next file

supple whale
#

welp @royal nymph my webrtc impl reaches 50MB/s

#

its a drop in replacement for google's

#

[outside of media tracks]

#

which reaches 30MB/s

#

while raw TCP does 150MB/s

dawn ledge
#

wdym "google's"

supple whale
dawn ledge
#

the "drop in" should be implied
isnt webrtc spec written out by ietf

#

saying "drop in for google's" makes no sense

#

okay its by w3c

#

same thing nonetheless

supple whale
dawn ledge
#

que

supple whale
#

i didnt implement the network stack

#

i implemented the w3c compliant interfaces

#

or on node if you compiled and embedded google's library there

#

you can instead use my library

dawn ledge
#

my point was comparing it with a webtrc implementaion by google doesnt make sense
since the spec is listed out by w3c it being compliant by other implementations (and compliant with the spec) is expected if not a must

supple whale
#

and it will work the same, while being faster

supple whale
#

because its faster

#

and smaller

dawn ledge
#

okay

supple whale
#

by sacrificing adaptive codec handling

#

instead it just pushes raw RTSP media data

#

without adaptive encoding

#

but thats for media

#

even its raw data transfer is faster

dawn ledge
#

so its trading features for speed?

supple whale
#

not really?

#

it just lacks features

#

but the features it lacks, dont give it the speed edge

#

its just faster at its core, even if those features were there it'd be faster

#

for now they arent

#

aka adaptive streaming isnt there

visual crag
#
function o(e, t, n, o) {
            (0,
            i.setIncludeNSFW)(t, e),
            o && (t.search_everywhere = !0);
            let u = Object.keys(t);
            a.default.trackWithMetadata(r.AnalyticEvents.SEARCH_STARTED, {
                search_type: l.default.getSearchType(),
                prev_search_id: l.default.getAnalyticsId(e),
                num_modifiers: u.length,
                modifiers: u.reduce((e,n)=>{
                    let s = t[n];
                    return e[n] = Array.isArray(s) ? s.length : 1,
                    e
                }
                , {})
            }),
            s.default.dispatch({
                type: "SEARCH_START",
                query: t,
                searchId: e,
                queryString: n,
                searchEverywhere: o
            })
        }

Code for search sends tracking requests, if i want to dispatch search start myself do i add these?

royal nymph
#

no

cerulean plover
visual crag
#

wait how do i clear searchbar

mellow phoenix
dawn ledge
#

clear the state... ?

winged mantle
glacial mirage
#

oopsies

winged mantle
#

:3

golden narwhal
royal nymph
#

i don't think anyone can help with just that xd

#

need way more info like code

golden narwhal
#
export default function Addons() {
    //@ts-ignore
    useProxy(settings)
    const [selectedTab, setSelectedTab] = React.useState("");

    const SelectedTab = () => {
        switch (selectedTab) {
            case 'Plugins':
                return <AddonPage<Plugin> items={plugins} card={PluginCard}></AddonPage>
            case 'Shaders':
                return <AddonPage<Theme> items={themes} card={ThemeCard}></AddonPage>
        }
    }

    return (
        <RN.View style={{ flexDirection:"row",  marginTop: 5, padding: 5, zIndex: 3, }}>
                <Button
                    color={Button.Colors.BRAND}
                    size={Button.Sizes.MEDIUM}
                    look={Button.Looks.FILLED}
                    onPress={() => setSelectedTab('Plugins') }
                    text="Plugins"
                />
                <Button
                    color={Button.Colors.BRAND}
                    size={Button.Sizes.MEDIUM}
                    look={Button.Looks.FILLED}
                    onPress={() => setSelectedTab('Shaders') }
                    text="Shaders"
                />
            <RN.View>
            {SelectedTab()}
            </RN.View>
            </RN.View>
    )
}```
#

also uhhhh on another note

#

description style doesn't seem to work

#
    card: {
        backgroundColor: semanticColors.BACKGROUND_SECONDARY,
        borderRadius: 7,
        borderColor: semanticColors.BACKGROUND_TERTIARY,
        borderWidth: 1,
    },
    header: {
        padding: 0,
        backgroundColor: semanticColors.PRIMARY_DARK,
        color: semanticColors.HEADER_PRIMARY,
        borderTopLeftRadius: 5,
        borderTopRightRadius: 5,
        fontFamily: constants.Fonts.PRIMARY_BOLD, 
    },
    description: {
        color: semanticColors.TEXT_MUTED,
        fontFamily: constants.Fonts.CODE_SEMIBOLD,
        fontSize: 12,
    },
    actions: {
        flexDirection: "row-reverse",
        alignItems: "center",
    },
    icon: {
        width: 22,
        height: 22,
        marginLeft: 5,
        tintColor: semanticColors?.INTERACTIVE_NORMAL,
    },
})

export default function Card(props: CardProps) {
    let pressableState = props.toggleValue ?? false;

    return ( 
        <RN.View style={[styles.card, { marginTop: props.index !== 0 ? 10 : 0 }]}>
            <FormRow
                style={styles.header}
                label={props.headerLabel}
                leading={props.headerIcon && <FormRow.Icon source={getAssetIDByName(props.headerIcon)} />}
                trailing={props.toggleType && (props.toggleType === "switch" ? 
                    (<FormSwitch
                        style={RN.Platform.OS === "android" && { marginVertical: -15 }}
                        value={props.toggleValue}
                        onValueChange={props.onToggleChange}
                    />)
                    :
                    (<RN.Pressable onPress={() => {
                        pressableState = !pressableState;
                        props.onToggleChange?.(pressableState)
                    }}>
                        <FormRadio 
                        selected={props.toggleValue} 
                        />
                    </RN.Pressable>)
                )}
            />
            <FormRow
                style={styles.description}
                label={props.descriptionLabel}
                trailing={
                    <RN.View style={styles.actions}>
                        {props.overflowActions && <RN.TouchableOpacity
                            onPress={() => showSimpleActionSheet({
                                key: "CardOverflow",
                                header: {
                                    title: props.overflowTitle,
                                    icon: props.headerIcon && <FormRow.Icon style={{ marginRight: 8 }} source={getAssetIDByName(props.headerIcon)} />,
                                    onClose: () => hideActionSheet(),
                                },
                                options: props.overflowActions?.map(i => ({ ...i, icon: getAssetIDByName(i.icon) })),
                            })}
                        >
                            <RN.Image style={styles.icon} source={getAssetIDByName("ic_more_24px")} />
                        </RN.TouchableOpacity>}
                        {props.actions?.map(({ icon, onPress }) => (
                            <RN.TouchableOpacity
                                onPress={onPress}
                            >
                                <RN.Image style={styles.icon} source={getAssetIDByName(icon)} />
                            </RN.TouchableOpacity>
                        ))}
                    </RN.View>
                }
            />
        </RN.View>
    )
}```
#

had to remove small bits of code to make it fit the character limit but it wasn't related to the issue

#

and here's what the cards look like

full drum
#

hey

#

i have this css code on my site

#
body {
  background-image:  repeating-radial-gradient(circle at 31rem 25rem, transparent 0, #47d3ff 50px), repeating-linear-gradient(#379bba, #379bba);
    background-color: #47d3ff;
  }
#

how can I make the background perfectly in the middle

#

wait cant i just use background-position

#

nop

#

im.

#

im stupid.

#

dont answer the question

wraith rose
#

How do I see the vencord guilds I am in?

Vencord.Webpack.Common.GuildStore.getGuilds()

#

I figured it out lol

dawn ledge
dawn ledge
golden narwhal
coral wraith
woven jolt
#

it only took me like an hour and a half to do

royal nymph
#

lmaooo

#

real

wheat kernel
#

oh my god

pine coyote
#

its really weird to me that there isnt a way to get every string that matches a regex

#

(i do not mean /w+/.test)

#

(you provide regex and it generates a bunch of strings that match)

glacial mirage
#

don't a lot of regex patterns match infinite amounts of strings

#

mostly + and *

pine coyote
#

ig?

royal nymph
#

yes xd

#

it's impossible to generate all matches if your regex isn't fixed length

glacial mirage
#

w+ matches w, ww, www, etc

fluid temple
#

gimme a random (hopefully decently simple) sorting algorithm to try my hand at

royal nymph
#

timsort

#

it's very relevant, used in multiple programming languages

glacial mirage
#

gnomesort (very simple, not horribly slow)

royal nymph
#

java, swift, v8 (nodejs / chromium), android

winged mantle
#

is there tomsort

#

:( no

fluid temple
royal nymph
#

how have u not heard of timsort O.O

fluid temple
#

they don't teach you anything more than bubble sort in school
and it's never shown in any of those stupidly long sorting algorithm videos

royal nymph
#

do you know mergesort

#

and insertionsort

#

timsort is fusion of the two

fluid temple
#

i see

runic sundial
#

Bitonic Sort my beloved

fluid temple
#

insertion is pretty much the simplest out there, when .sort() was broken on some weird buggy online python thing i just made an insertion sort quickly to get round that

royal nymph
#

why do you need sorting algorithms when you can just array.sort() 😂

|| im so sorry ||

fluid temple
royal nymph
#

i wasn't being serious 😭

fluid temple
#

ah

royal nymph
#

I would never unironically use 😂

fluid temple
#

that's true

royal nymph
#

unless im chatting with my mum

runic sundial
#

the correct way of writing a sorting algo is theft.

fluid temple
#

idk why they teach bubble sort first in schools, it is really slow and isn't even the absolute simplest

#

you might get asked a question on your test paper about a common algorithm that uses a temporary variable when sorting a list, bubble sort is the answer
meanwhile that can be skipped entirely with a list.insert(i, list.pop(i+1))

royal nymph
#

now do bubblesort on plain c arrays

#

without the common list helpers you find in high level languages like push and pop

#

also wdym it's not simple i doubt it gets any simpler than bubblesort

#

what do you consider to be simpler?

fluid temple
fluid temple
royal nymph
#

easiest sorting algorithm is time sort

#

to sort an array of positive, integers, spawn a thread for each element that sleeps n milliseconds then pushes to the output array

fluid temple
#

they dont teach multithreading so

royal nymph
#

it's so easy

fluid temple
#

yop

#

anything that's gonna be significantly different between languages they probably won't teach

winged mantle
#

i wonder how slow this is

#

idk how to remove something in an ordered list without searching the whole list

#

is that even possible

#

binary search tree?

fluid temple
#

if it's ordered yeah binary search tree

#

damn gnomesort was easy

ivory heath
#

I wonder why they bother teaching anything besides mergesort or quicksort given how much faster they are. I get insertion sort could be a good introduction to the concept but why the fuck care about bubble sort when it’s inefficient. Hell, spend more time explaining why some algorithms CAN BE faster than merge sort on already partially sorted arrays

royal nymph
#

i mean it's not like purpose is to teach you the fastest algorithm

just about introducing you to the concept of algorithms and helping you understand specifically sorting

#

there's basically no reason to ever write your own sorting implementation when you can just use the stdlib or a more specific library for your use case

dawn ledge
# winged mantle <:blobcatcozy:1026533070955872337> today's unethical code

i did this too but i dont recommend the now = ...; for (...){ if (isExpired(now, ...)) {...} } pattern, especially in iterators (forEach, map, Symbol.iterator, etc)
if you're doing an expensive task the succeding keys may have expired but the value of now is in the past, potentially yielding false positives

winged mantle
#

the alternative is not storing now so the value will change

#

ig it's a generator so it will potentially suspend

fluid temple
#

there but optional

woven mesa
lost pawn
#

this is so dumb

crimson cave
#

why

lost pawn
#

I don't know

#

I just liked the plugin so I ported it to bd for some reason

#

The scary part is that it works

#

I also shouldn't call it "inspired"

#

50% of the plugin is ported straight from vencord

grand garnet
#

really

lost pawn
#

pray that it's a linter thing and try to run it

crimson cave
#

Pylint

lost pawn
#

yeah

#

Ik

#

I saw that

#

I mean that it is only a linter thing and not a limitation

deep mulch
#

I wanna put my pkgbuilds on GitHub but idk how that would work

#

I found a GitHub action

#

Jumpscare

deep mulch
quick crow
#

That is not me

royal nymph
#

just push to both repos

deep mulch
#

dont like

deep mulch
#

@royal nymph you

#

why does go do annotations as comments

#

its dumb

#

no type safety or intellisense

#

@SomeFunction

royal nymph
#

no it's good

deep mulch
#

nop

#

i hate it

royal nymph
#

and it literally has intellisense

#

dumdum

deep mulch
#

nuh uh

#

@ best

#

i will pr soon

#

tto fix

deep mulch
deep mulch
#

vee is an enemy of mine

still jolt
#

oh well

calm ruin
#

insane

deep mulch
#

bad design

calm ruin
#

nop

deep mulch
#

yop

calm ruin
#

why would it stop me from putting //

deep mulch
#

guh

#

you don't get type safety writing comments

#

// should be strictly for comments

calm ruin
#

its strictly typed idk what you are talking about

deep mulch
#

idk what you are either

#

declaring annotations in comments is bad I think

calm ruin
nimble bone
mellow phoenix
balmy lintel
#

anyone knows a way to tell cors to fuckoff without using a proxy

nimble bone
#

if not browser then doesn't matter

balmy lintel
#

i wanna commit death

#

thanks

nimble bone
#

if someone managed to bypass cors it would be security nightmare

balmy lintel
#

yeah ill just use a proxy

royal nymph
#

why does it not set cors

balmy lintel
#

if i would then i wouldnt have the issue

royal nymph
#

if you're needing to fetch for vencord, you can work around it without proxy

#

by fetching in nodejs

balmy lintel
#

that worked surprisingly

#

thanks

normal wharf
#

its mid tho it dont work

#

or idk how to use it

magic shale
#

/tags create

cerulean plover
winged mantle
dawn ledge
royal nymph
winged mantle
#

you can like both

dawn ledge
winged mantle
#

is this bad practice

wheat kernel
#

why does getMember need a channel id

winged mantle
#

OH

#

i meant to put guildID

#

thanks for reviewing my code

#

anyway tbh i'm using oceanic which uses camelCase and my bot uses snake case for its own stuff

#

and i need a way to use permissionsOf (that throws) even if the member isn't cached

#

idk whether you need to explicitly fetch the bot member

balmy lintel
#

how would I go about pushing an online theme to the settings

i'm doing Vencord.Settings.themeLinks.push() which does work, the issue is the theme itself doesnt apply 🫠

pearl stagBOT
cerulean plover
#

source: was working in this file recently

cerulean plover
#

[...oldarray, newitem]

balmy lintel
#

worked, thanks a lot

balmy lintel
#

#505 does this response apply to the System Tray as well? blobcatcozy

balmy lintel
#

oh i cant read

#

whoops

quick crow
#

Banger

balmy lintel
#

how do i prevent a user from accessing a custom setting tab after I removed it from customSections (tab wont disappear until reload/tab switched)

if they access that tab itll explod their discord

balmy lintel
#
    start() {
        const customSettingsSections = (
            Vencord.Plugins.plugins.Settings as any as { customSections: ((ID: Record<string, unknown>) => any)[]; }
        ).customSections;

        const ThemeSection = () => ({
            section: "ThemeLibrary",
            label: "Theme Library",
            element: require("./components/ThemeTab").default,
            className: "vc-vesktop-settings"
        });

        customSettingsSections.push(ThemeSection);
    },

    stop() {
        (Vencord.Plugins.plugins.Settings as any as { customSections: ((ID: Record<string, unknown>) => any)[]; }).customSections = [];
    },
#

it works fine after switching the tab, but if you click the tab after disabling the plugin your discord explodes

royal nymph
#

don't set customSections to empty array you will explode vesktop and such

royal nymph
#

use splice to remove elements from array

golden narwhal
long stream
#

best gif

languid tide
#

detection

glacial mirage
#

is there a cleaner way of chaining two methods together that isnt just wrapping them both in an arrow function?

audio.addEventListener("ended", () => {next(); audio.play()});

this looks kind of ugly to me

shell crag
#

wtf this is a real thing...

#

yeah i dont think theres a better method

glacial mirage
#

ill just wait until the tc39 pipe proposal gets in i guess

serene elk
#

you can also do this

audio.addEventListener("ended", () => (next(), audio.play()));

@glacial mirage

#

is it better? idk

glacial mirage
#

how does that work lol

serene elk
#

comma operator

glacial mirage
#

is that like a tuple or something

#

what

serene elk
#

return (console.log("asdfdsfads"), 1) // 1

#

it evaluates everything and returns the last one

glacial mirage
#

oh odd

serene elk
#

cursed stuff of the language

glacial mirage
#

javascript never ceases to amaze me

serene elk
#

but also super good in some cases

glacial mirage
#

cursed

serene elk
#

also the bundler discord uses abuses it all the time

glacial mirage
#

of course, i imagine this would be really good for minimizing

serene elk
#

you can find things like

return something(), 
something(),
something(),
something(),
something(),
something(),
something(),
something(),
something(),
something(),
something(),
something(),
something(),
something(),
something(),
something(),
createReactElement()
#

and you can prob expect what is the return

balmy lintel
dawn ledge
#

its called a SequenceExpression

#

as its name implies

#

its a sequence of expressions

#

it executes each, and returns the result of the last

quick crow
#

It makes sense and yet it doesn't

#

I get it but if i have to explain it i'm fucked

balmy lintel
#

Is there no secondary/gray button type for the button component or am i blind

#

oh

#
(property) Colors: Record<"BRAND" | "RED" | "GREEN" | "YELLOW" | "PRIMARY" | "LINK" | "WHITE" | "BLACK" | "TRANSPARENT" | "BRAND_NEW" | "CUSTOM", string>
#

nvm

winged mantle
#

shorter ≠ better

winged mantle
#

it looks less ugly if you actually have one semicolon per line (which i think is the usual practice)

dawn ledge
#

promises :^)

#

() => next().then(audio.play)

royal nymph
#

bad

#

also that probably won't work cause you're calling the instance method without an instance xd

dawn ledge
#

.bind(audio)

#

:)

winged mantle
#

simply do next() + audio.play()

dawn ledge
#

fear

viscid grove
#

I was told I just have to ask for the role

magic shale
#

did you have the programming role before?

viscid grove
#

no

#

I have image sender

#

and image sender had perms for sending msgs in plugin dev before, but not anymore

magic shale
viscid grove
#

oh ty

cloud heart
#

how does vencord actually change the activity name dynamically?

cerulean plover
#

Take a look at CustomRPC source

royal nymph
#

remote: error: GH007: Your push would publish a private email address.
remote: You can make your email public or disable this protection by visiting:
remote: http://github.com/settings/emails

GitHub

GitHub is where people build software. More than 100 million people use GitHub to discover, fork, and contribute to over 420 million projects.

#

what the

winged mantle
royal nymph
#

ya

#

i didnt know it also stops u from pushing with that mail xd

#

ig its a good feature

#

i enabled that switch cause i had some other emails linked to my account that i wanted private but i just ended up removing them

#

so i turned it off again

magic shale
#

how does discord have live updates from the spotify player? i want to have live updates for a personal app im making

#

well damn

woven jolt
#

eric moment

woven jolt
#

its just that discord's client id/auth tokens are the only ones that let you do certain things for free

magic shale
#

i know you can use api

woven jolt
#

its just a websocket

magic shale
#

and i have premium actually

#

why doesnt the docs say this

royal nymph
#

you'll have to poll

#

like fetch every 5 seconds

woven jolt
#

cause spotify's docs are and always will be dogshit

woven jolt
royal nymph
#

how do you do it then

#

the WS is not open

#

at least wasnt last time i checked

woven jolt
#

i swear to god it is

magic shale
#

actually i just realized stream deck has a spotify plugin that does what i need and they themselves say you need premium so it's def possible

#

not open source sadly

#

the guy who made it (BarRaider) is kinda the DevilBro of stream deck plugins lol

#

many plugins and half dont work

woven jolt
royal nymph
#

well sure

#

but thats proprietary / private api lmao

#

its not an open api

#

if u wanna go the official api route the only option is polling hehe_Giggle

woven jolt
magic shale
#

discord paid for it

#

but yeah ig polling is my only option

winged mantle
#

using undocumented stuff is fun!!

magic shale
#

there is not a single drop of documentation anywhere

woven jolt
magic shale
#

literally impossible to use lol

magic shale
winged mantle
#

no examples with this lib?

woven jolt
winged mantle
#

read spotify electron source code

woven jolt
winged mantle
#

oh?

magic shale
#

it is

woven jolt
#

its just custom cef shit

winged mantle
#

ah

magic shale
#

i thought it was at least

woven jolt
#

always has been, always will be

winged mantle
#

is the ws stuff made with c++

#

i doubt you can have ws server in browser?

royal nymph
#

ofc u cant

magic shale
#

what if i wrapped this python lib with ts

#

horror

woven jolt
royal nymph
#

me when my guc3 dealer is out of guc3 and only has crack

winged mantle
#

oh i thought it would be more like with discord

#

If you like Spotify, buy a Premium account and tell the industry that it's a great payment model for music.
is this genuine or do they want their github repo to stay on github

woven jolt
#

latter

#

considering you have idiots that lock a one line change behind a private fork of a library and a public ssh key

magic shale
#

alright im just gonna do polling until i find a better solution

royal nymph
#

i love spotify <3 best platform in the world

woven jolt
#

wss://dealer.spotify.com/?access_token=

#

thats what discord connects through

winged mantle
#

just play cds with vlc and use MPRIS to track playback

#

oh wait i think that probably works with spotify too

#

probably something on windows too? :O

woven jolt
#

yeah windows has its own api

magic shale
#

we love spotify not giving any numbers and just giving you a graph with no point of reference

#

although 1 req/s works fine and there's no rate limit so i think im chilling

winged mantle
#

lmao

magic shale
#

yippie

winged mantle
#

do you interpolate it

magic shale
#

nop

winged mantle
#

that would give the illusion that it's not just polling

magic shale
winged mantle
#

fake it till you make it

magic shale
#

it actually looks totally fine when it's running

viscid grove
magic shale
viscid grove
#

oh cool

swift elk
#

just a reminder the entire godot engine is just on the Google play store

magic shale
#

reminder that godot is cool as fuck

swift elk
#

that is simply a fact

#

so I built one of my godot games with the mobile app

#

and it built faster than my pc built

#

literally outperformed by godot mobile

viscid grove
#

was it the same game?

magic shale
#

i love when windows randomly decides a file i just created shouldn't be deleted

#

it just said that i need an admin to delete it

#

(i am the admin)

#

anyway time to fight with gh workflows again

glacial mirage
quick crow
cerulean plover
#

Just modify the existing one to not have an address bar

viscid grove
#

Why is this querySelectorAll not working when the same thing used as in css works fine

javascript: (() => {
    var maxScore = 0;
    var yourScore = 0;
    var items = document.querySelectorAll(".contentListPlain .clearfix.liItem.read .contentListRight .taskbuttondiv");
    items.forEach(function (item) {
        var textContent = item.textContent;
        console.log("text: " + textContent);
        var match = textContent.match(/([\d.]+) out of ([\d.]+) points/);
        if (match) {
            totalScore += parseFloat(match[1]);
            maxScore += parseFloat(match[2]);
        }
    });
    alert(`max: ${maxScore} your: ${yourScore}`);
})();
cerulean plover
viscid grove
#

still doesnt work

#

I had a bookmarklet that worked, but it recently stopped working, and it sucked bc I didn't know how to write bookmarklets when i first "made" it so it was mostly made by chatgpt, so I'm just rewriting it

#

idk why it stopped working though

#

doesn't seem like the classes changed

formal belfry
#

hello friends, can i ask for some opinions on this app i'm considering making?
i mainly want to know a couple things:

  • what programming language would be best suited for this application?
  • is there anything in the description/mockups i should consider changing/amending?
  • is vscode suitable for creating this application?

not too worried about whether i know the language(s) suggested, i want to create this project purely to learn how the language i ultimately choose to create it, works and maybe gain some skills using that language
here's my proposed gui mockup and functions: https://docs.google.com/document/d/1GEiIjOdvS2odEQiIvgzlwaqTdUaBIBb5UYsD1XZ5Hj0/edit?usp=sharing

worthy sun
#

best programming language is the one youre most comfortable using

balmy lintel
#

brainfuck /j

glacial mirage
#

probably could work as a simple pygame app? unless you have experience in some other gui library

formal belfry
green gulch
#

i added some stuff to quoter

quick crow
#

Skull format real

green gulch
#

added display name toggle and some other formats too

quick crow
#

I might just make it use display names by default

#

And add a setting for it in the plugin config

green gulch
#

i added the setting in the plugin config too

#

just more accessible in the popup

pine coyote
#

@royal nymph can i get the message object with message id and channel id?

royal nymph
#

ye

pine coyote
void leaf
#

wrong channel

#

i’m sorry

formal belfry
#

they done locked hop on vencord

ornate sentinel
royal nymph
#

its a funny coincidence that i locked general and 5mins later this kid raided

formal belfry
#

I swore this was regular

#

I apologize 😭

finite isle
#

hi nate

balmy lintel
fickle tartan
pine coyote
#

i was thinking mb use this and set around to the one im getting?

#

@delicate sinew nvm im stupid flux exists shelter.flux.stores.MessageStore.getMessages("<channel id>")

dawn ledge
#

yes

#

that's what I use

#

because discord is fucking dumb and doesn't allow /channels/:id/messages/:id for users

#

idiots

tight fern
#

diy

quick crow
#

Womp make it yourself

grand garnet
#

you can shrimply hide messages with css

stiff bolt
#

our you can use a plugin

#

noblockedmessages

solar escarp
#

he wants to hide msgs without blocking them

stiff bolt
#

ohh

solar escarp
#

np

green gulch
#

made more stuff for quoter cause why not

solar escarp
#

oops i meant june

#

like throughout may

green gulch
#

what?

solar escarp
#

oh wait where u replying to me

#

were*

frosty obsidian
#

the set limit to 1 and around to the message id and just check if the returned message shares the desired id

muted sable
frosty obsidian
#

?

muted sable
#

When I request it with a access token I just get 403 Unauthorized

#

Just let trying to get information of a guild

#

I know /users/@me/guilds exists but i need more info

formal belfry
dim cave
#

its not unlike this server to do sumn like this

#

inb4 supports raided with people wanting offtopic back

green gulch
formal belfry
keen ocean
#

my vencord is on x86

#

should it be on x64

finite isle
#

What

winged mantle
#

do you mean discord

edgy frost
#

brainrot

viscid grove
stoic oasis
#

Hi does anybody know how to get token using plugin on startup beacuse i want to make plugin called Make me invisible whose set my status as invisible when discord starting. And for that I need token.
this doesn't work:

var token = (webpackChunkdiscord_app.push([[''],{},e=>{m=[];for(let c in e.c)m.push(e.c[c])}]),m).find(m=>m?.exports?.default?.getToken!==void 0).exports.default.getToken();
winged mantle
#

why do you need a plugin for this

#

your status should stay

stoic oasis
#

I mean sometimes I want turn on discord as invisible but I forget to set invisible when i turn it off

#

usually I am on online

#

can I show you the full code of script?

winged mantle
#

i think this plugin might be a selfbot

stoic oasis
#

what is selfbot?

winged mantle
#

i don't know how statuses work woozy

winged mantle
#

but automating user actions is generally a bad idea

zinc stag
#

why would you need to set your status to invisible

zinc stag
stoic oasis
#

usually my status is set to online. But I would like it to be set to invisible after entering

winged mantle
#

then your status will usually be invisible? woozy

lavish bay
#

why tho, just stay invisible at that point

zinc stag
buoyant trellis
#

or just change your status from phone so it will look like you are quickly looking at a message

royal nymph
winged mantle
#

yea i don't think it is a selfbot because the client probably always sends the status based on preferences (like bots)?

#

you technically need token but you should not manually get it 😭

royal nymph
#
const setStatus = findByCode(".USER_STATUS_UPDATED")
setStatus("online", null, { location: { section: "Account Panel", object: "Avatar"} });
winged mantle
#

i think that sends a request to change settings

royal nymph
#

duh

winged mantle
#

selfbot?

royal nymph
#

?

winged mantle
royal nymph
#

sending 1 request is not selfbot

winged mantle
#

it's automatic

alpine pecan
#

ur the one sending the request qq_kiss

winged mantle
#

you could also have a single request for a !sendtoken command blobcatcozy

royal nymph
#

as long as its not api abuse

winged mantle
#

idk if stuff like that is more or less likely to flag

buoyant trellis
#

depends on how it is done, if after random delay discord won't be able to tell that it is automated and not manual

royal nymph
buoyant trellis
#

isn't discord sending the status when connecting to websocket?

#

it is sent in first and 4th message on websocket
it can be just intercepted and replaced

royal nymph
#

in fact itd be better cause then you dont show online for a short moment

#

if you do it with the func you'll show online for a sliver of a second

buoyant trellis
#

and no additional requests

royal nymph
#

there's 0 risk

buoyant trellis
#

it sends ```json
"status":"online",
"afk":false,
"since":0,

so pobably it still sends online status but with afk:true
formal belfry
#

wasnt that on bd? or does vc have it as well?

glacial mirage
#

this is what programming looks like now. because of woke

stoic oasis
# royal nymph if you do it with the func you'll show online for a sliver of a second

now it doesn't work
code beacuse I can't upload picture:

import definePlugin from "@utils/types";

function something()
{
  const setStatus = findByCode(".USER_STATUS_UPDATED")
  setStatus("invisible", null, { location: { section: "Account Panel", object: "Avatar"} });
}
something()
export default definePlugin({
    name: "37Make me invisible",
    description: "Set your status as invisible when Discord starts",
    authors: [
        {
            id: 530893957887164454n,
            name: "37",
        },
    ],
    start() {},
    stop() {},
});
#

I don't know what I did wrong

royal nymph
#

call something from inside your start method

stoic oasis
#

without function is faster but thanks for help <3

alpine pecan
#

whar

quick crow
magic shale
#

how does one make an electron app stay on top of other applications, cause with my code it stays on top but fullscreen applications still go in front

win = new BrowserWindow({
    height: 150,
    width: 400,
    resizable: false,
    fullscreenable: false,
    webPreferences: {
        preload: MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY,
    },
    frame: false,
    transparent: true,
    autoHideMenuBar: true,
    alwaysOnTop: true,
});

if (process.platform === "darwin") app.dock.hide();
if (process.platform === "win32" || process.platform === "darwin") win.setSkipTaskbar(true);
win.setAlwaysOnTop(true, "screen-saver");
win.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: true });
win.setFullScreenable(false);
royal nymph
#

maybe not possible without injecting into the fullscreen apps?

#

would explain why discord_overlay is a native module

magic shale
#

blehh

#

i assume that isnt very easy

buoyant trellis
#

what os are you using?

magic shale
#

shitdows

buoyant trellis
#

is this is "normal" fullscreen (not borderless) the only way left is injecting code into app

magic shale
#

yeah i figured as much

buoyant trellis
#

what are you trying to do? aren't there any other ways to do it?

magic shale
#

its a spotify widget that shows what's currently playing and i just want it to show over fullscreen apps lol

buoyant trellis
#

random thing found on gh, i have no idea if it works

magic shale
#

mm might be good

quick crow
#

It was the fucking

#

NEWLINE

#

At the start of the config xml

edgy frost
buoyant trellis
#

how bad idea would it be to add ublock origin to vesktop (mainly for youtube embeds)?

quick crow
#

...

#

Eh it's worth a shot

balmy lintel
#

youtube embeds have ads? WHAT

buoyant trellis
#

actually they don't seem to, but watch together has

balmy lintel
#

oh, yeah

zinc stag
#

meow

balmy lintel
#

1026532993923293184

warped rover
#

so if i were to need to use child_process in my plugin

#

how would i go about doing so

#

or what alternative can i use

#

im very new to this all

warped rover
#

dude

#

is no one gonna be useful

#

just react to my message?

dawn ledge
delicate sinew
#

There was once at least

buoyant trellis
tranquil wedge
#

is there docs for discord apis for making plugins

warped rover
buoyant trellis
cerulean plover
#

can i safely assume you are building 3rd party plugin importer husk

magic shale
cerulean plover
#

i sure do love giving children the ability to blindly fuck up their discord client and come screaming to us with problems we dont know how to fix

#

also half these plugins do cursed stuff like raw dom manipulation when you're supposed to be using react

quick crow
#

#closethesupportchannels

winged mantle
#

is there any reason to fire multiple requests without waiting

dawn ledge
#

gw is fine

royal nymph
#

why do u need to use child_process? maybe xy problem

#

but yeah native.ts

warped rover
cerulean plover
warped rover
#

and maybe some friends

#

and i have braincells so i wont blame anything not working

buoyant trellis
#

this would require everyone to have git+ node + everything else required to compile, at this point it would be easier to just download and build manually. if you want to build plugin importers that works by switching to anther git repo, the other repo would not have that plugin so it would uninstall itself after every use.

royal nymph
#

they already said its for personal use

green gulch
buoyant trellis
#

but still it would uninstall itself

warped rover
#

thats not how im doing it

#

im going to make it work with just plugin repos, it will install the plugin from the github link into their dev install folder which they set

#

well

#

me ig since its personal

long stream
winged mantle
#

jetbrains mono

shut jungle
#

id like to use an installed font from my computer in my theme, however when i edit it in quickcss its not changing. im not very experienced in CSS so idk what other steps id have to take for this

balmy lintel
#

changing font-family to your font should be enough

glossy elbow
#

sorry i am a little retarded with javascript i am trying to contribute a plugin and getting this error when building ```

vencord@1.8.1 build /Users/mudkip/vencord
node --require=./scripts/suppressExperimentalWarnings.js scripts/build/build.mjs

file:///Users/mudkip/vencord/scripts/build/common.mjs:29
import PackageJSON from "../../package.json" assert { type: "json" };
^^^^^^

SyntaxError: Unexpected identifier 'assert'
at compileSourceTextModule (node:internal/modules/esm/utils:337:16)
at ModuleLoader.moduleStrategy (node:internal/modules/esm/translators:166:18)
at callTranslator (node:internal/modules/esm/loader:416:14)
at ModuleLoader.moduleProvider (node:internal/modules/esm/loader:422:30)

Node.js v22.0.0

delicate sinew
#

I think that should fix it

glossy elbow
#

thx that fixed it

delicate sinew
#

Np

#

Just make sure to not push that change if you plan on contributing

glossy elbow
#

ye i'll wait for the pr to do it

vapid vapor
#

How do i get emoji ids?

nimble bone
#

then copy this

vapid vapor
#

ok i see, thanks

#

#

husk>

grand garnet
#

husky :3

shut jungle
winged mantle
#

for some reason when i have two properties referencing O it freaks out a lot

#

happens with vscode too

dawn ledge
#

unrel but why not const O extends ...

#

i mean its not necessary

#

but the concrete type helps if you wanna do some type 🧙 wizardry

winged mantle
#

what does const do there

#

i think the problem here is there are two fields using O

#

so the compiler doesn't know which to use for inference

visual shellBOT
# dawn ledge lc.ocr
export interface Command <0 extends Record<string, Option> = Record<string, Option>> { Show usages • TheKode Toad*
id: Id;
}
options?: 0;
positional options?: (keyof 0)[];
support_prefix?: boolean;
support_slash?: boolean;
track_updates?: boolean;
run(context: Context, args: { [K in keyof 0]: OptionValue<0[K]> }): Promise<void> | void;
export function define_command <0 extends Record<string, Option>>(command: Command<0>): Command<0> { Show usages • TheKode Toad *
return command;
}
dawn ledge
#

i'll be back in 10 bussiness days

winged mantle
#

export interface Command<O extends Record<string, Option> = Record<string, Option>> {
id: Id;
options?: O;
support_prefix?: boolean;
support_slash?: boolean;
track_updates?: boolean;
run(context: Context, args: { [K in keyof O]: OptionValue<O[K]> }): Promise<void> | void;
}

#

@dawn ledge

dawn ledge
#

thanks

winged mantle
#

Oh wait

#

@dawn ledge
export interface Command<O extends Record<string, Option> = Record<string, Option>> {
id: Id;
options?: O;
positional_options?: (keyof O)[];
support_prefix?: boolean;
support_slash?: boolean;
track_updates?: boolean;
run(context: Context, args: { [K in keyof O]: OptionValue<O[K]> }): Promise<void> | void;
}

#

i removed positional_options

dawn ledge
#

works fine for me

winged mantle
#

but if you put it somewhere which requires just Command

dawn ledge
#

ohhhhhhhhh i see

winged mantle
#

it's a hard one isn't it...

#

should i just add a key called position for the position in the array

#

so you can do users: { position: 0 }, reason: { position: 1 }

dawn ledge
#

it works if you just do

function defineCommand(c: Command): Command {
    return c;
}

but it's type ends up as Command<Record<string, Option>> instead of a concrete Command<{ ... }>

#

you might need to rethink your design blobcatcozy

#

nvm i cant speak english

winged mantle
#

this is how everything else does it, uses a function to do inferance magic :(

dawn ledge
#

oh you're facing the same problem as me

#

i ended up using classes

#
class Foo extends Command {
  options = ...;
  run(ctx: Context, args: Arguments<Foo>)
}
#

it works really well

#

typing out class ... extends ... { ... } aint the best but it works real well

winged mantle
#

i don't like classes

dawn ledge
#

:(

winged mantle
#

unless it's actually something which has different instances with different parameters

#

but with this i'd probably end up with export default new class

#

but also even with that how would you have positional_options

dawn ledge
#

if you wanna do this with objects you'll have to do it separately

type Arguments<C extends Command> = TransformDefinition<C["options"]>;

const command = defineCommand({
  ...,
  run(ctx, args: Arguments<typeof command>) { ... }
});

const plugin = definePlugin({ ..., commands: [command, ...] })
winged mantle
#

i already have commands separate to plugins mostly

dawn ledge
winged mantle
#

still better than whatever the hell i was tyrying to do with javacord

#

i made annotations but the thing is you can't really choose option type purely based on class

#

because channel and user is both a snowflake

dawn ledge
#

huh

#

wdym by that

winged mantle
#

if you have like String userId how would you work out what option type to use in reflection

dawn ledge
#

are you talking about java or ts

#

(idk java)

winged mantle
#

javacord

#

so java

frosty obsidian
#

@native spruce made the score thing in kotlin

fun score(progress: Int): Double {
    val position = position?.toDouble() ?: return 0.0
    if (requirement == null) return 0.0

    val beatenScore = when(position) {
        in 56.0..150.0 -> 1.039035131 * ((185.7 * (-0.2715 * position).exp()) + 14.84)
        in 36.0..55.0 -> 1.0371139743 * ((212.61 * 1.036.pow(1.0 - position)) + 25.071)
        in 21.0..35.0 -> ((250 - 83.389) * (1.0099685.pow(2.0 - position)) - 31.152) * 1.0371139743
        in 4.0..20.0 -> ((326.1 * (-0.0871 * position).exp()) + 51.09) * 1.037117142
        in 1.0..3.0 -> (-18.2899079915 * position) + 368.2899079915
        else -> 0.0
    }

    return if (progress != 100) {
        (beatenScore * (5.0.pow((progress - requirement).toDouble() / (100 - requirement).toDouble()))) / 10.0
    } else {
        beatenScore
    }
}
#

i love magic numbers

royal nymph
#

NO WHAT IS THAT

frosty obsidian
#

vee that is a close translation of code used by the actual demonlist

pearl stagBOT
# frosty obsidian https://github.com/stadust/pointercrate/blob/4a20ea3ad1d4e417b1da4eab784efb0b8a3...

**mod.rs: **Lines 224-241

pub fn score(&self, progress: i16) -> f64 {
    let position = self.base.position;

    let beaten_score = match position {
        56..=150 => 1.039035131_f64 * ((185.7_f64 * (-0.02715_f64 * position as f64).exp()) + 14.84_f64),
        36..=55 => 1.0371139743_f64 * ((212.61_f64 * 1.036_f64.powf(1_f64 - position as f64)) + 25.071_f64),
        21..=35 => (((250_f64 - 83.389_f64) * (1.0099685_f64.powf(2_f64 - position as f64)) - 31.152_f64)) * 1.0371139743_f64,
        4..=20 => ((326.1_f64 * (-0.0871_f64 * position as f64).exp()) + 51.09_f64) * 1.037117142_f64,
        1..=3 => (-18.2899079915_f64 * position as f64) + 368.2899079915_f64,
        _ => 0_f64
    };

    if progress != 100 {
        (beaten_score * (5f64.powf((progress - self.requirement) as f64 / (100f64 - self.requirement as f64)))) / 10f64
    } else {
        beaten_score
    }
}
royal nymph
#

angellist when

pearl stagBOT
# frosty obsidian https://github.com/stadust/pointercrate/blob/fcbddfd9af7a042135bf2b28636d81a7730...

**mod.rs: **Lines 234-262

    pub fn score(&self, progress: i16) -> f64 {
        let position = self.base.position;

        let beaten_score = if 55 < position && position <= 150 {
            let b = 6.273f64;
            56.191f64 * (2f64.powf((54.147f64 - (position as f64 + 3.2f64) as f64) * ((50f64.ln()) / 99f64))) + b
        } else if 35 < position && position <= 55 {
            let g = 1.036f64;
            let h = 25.071f64;
            212.61f64 * (g.powf(1f64 - position as f64)) + h
        } else if 20 < position && position <= 35 {
            let c = 1.0099685f64;
            let d = 31.152f64;
            (250f64 - 83.389f64) * (c.powf(2f64 - position as f64)) - d
        } else if 0 < position && position <= 20 {
            let e = 1.168f64;
            let f = 100.39f64;
            (250f64 - f) * (e.powf(1f64 - position as f64) as f64) + f
        } else {
            0f64
        };

        if progress != 100 {
            (beaten_score * (5f64.powf((progress - self.requirement) as f64 / (100f64 - self.requirement as f64)))) / 10f64
        } else {
            beaten_score
        }
    }
}
dawn ledge
#

i love rust, but this
i hate this

frosty obsidian
#

i do not know why the scoring formula has to be this complicated

digital wigeon
#

sighs

tech influencers on linkedin must be smoking weed or smth

woven jolt
#

no shit?

digital wigeon
#

not only do they share bad code as "the proper way to do xyz"
but that bad code is beyond my imagination of bad

woven jolt
#

news flash: the entire world is powered by shitcode

#

it costs too much time to make everything pretty and optimized

digital wigeon
#

well, the annoying thing is that people that know no better, will listen to their advice, and try to convince me the "correct way of doing xyz"

digital wigeon
winged mantle
#

day ruined

digital wigeon
#

code must be easily extendable, otherwise you end up rewriting a lot of shit

woven jolt
#

well clearly it hasnt broken

digital wigeon
#

I am curious

winged mantle
#

it removes it

digital wigeon
#

does it iterate over the keys or does it iterate over the indexes?
so it iterates over the indexes

#

neat

dawn ledge
winged mantle
#

HORROR??????

#

using typescript was mistake

dawn ledge
#

true

#

use rust

digital wigeon
#

well, I am the type of person that likes plain-old js (with jsdoc)

#

so I am biased ig

winged mantle
solid gazelle
#

first

#

FUCK NO

royal nymph
#

/run ```js
console.log(Array.from(new Proxy({}, {
get(_, k) {
console.log(k)
if (k === "length") return 10
if (typeof k === "symbol") return undefined;
return "meow" + k
}
})))

rugged berryBOT
#

Here is your js(18.15.0) output @royal nymph

Symbol(Symbol.iterator)
length
0
1
2
3
4
5
6
7
8
9
[
  'meow0', 'meow1',
  'meow2', 'meow3',
  'meow4', 'meow5',
  'meow6', 'meow7',
  'meow8', 'meow9'
]
royal nymph
#

oh yeah it also checks for symbol.iterator which allows u to specify a custom iterator

#

/run ```js
console.log(Array.from(new Proxy({}, {
get(_, k) {
console.log(k)
if (k === "length") return 10
if (k === Symbol.iterator) return function*() {
yield "foo";
yield "bar"
}
return "meow" + k
}
})))

rugged berryBOT
#

Here is your js(18.15.0) output @royal nymph

Symbol(Symbol.iterator)
[ 'foo', 'bar' ]
frosty obsidian
#

it works

finite isle
#

@solid gazelle fresmo is ur name jquery

solid gazelle
#

Im hacking you

finite isle
solid gazelle
cerulean plover
glacial mirage
#
let add = x => x && (add.x += x, add) || add.x;
add.x = 0;

console.log(add(5)(6)(7)()); // 18

any tips to improve this?

royal nymph
#

real

#
function add(...args) {
  const sum = args.reduce((sum, curr) => sum + curr, 0);
  return (...args) => args.length === 0 ? sum : add(sum, ...args);
}

add(1, 2)(10, 3)(2)()
#

peak

glacial mirage
#

ok that's easily the best one i've seen so far

royal nymph
#
function add(...args) {
  const sum = args.reduce((sum, curr) => sum + curr);
  return (...args) => args.length === 0 ? sum : add(sum, ...args);
}
finite isle
glacial mirage
#

infinite curry generator

tight fern
winged mantle
#

is it dumb to use ipc between discord bot and dashboard

royal nymph
#

depends

winged mantle
#

basically for db cache invalidation

finite isle
pearl stagBOT
royal nymph
#

TRUE

royal nymph
# pearl stag

@deep mulch @frosty obsidian @ornate quiver @remote mauve @calm ruin@vestal locust

native spruce
#

add

finite isle
#

will u be next samara

native spruce
remote mauve
#

just deprecate iOS entirely

#

net positive

calm ruin
calm ruin
#

I wonder how it feels to be a android developer whos writing a API knowing it will get depracated 1 year later

winged mantle
#

isUserAGoat

frosty obsidian
#

apple does actually deprecated older apis pretty often its just not a problem bc most apple devices are on the latest versions

finite isle
winged mantle
#

thanks for reminding me to disable notifications :3

finite isle
#

doing some mc stuff

#

what the fuck is a CrudeIncrementalIntIdentityHashBiMap

winged mantle
#

bisexual

frosty obsidian
#

progress

frosty obsidian
#

@native spruce got twemoji flags implemented blobcatcozy

#

@deep mulch look

deep mulch
#

good

buoyant trellis
#

i have read some closed issues, i think we need rejected (brainless / low iq) label

frosty obsidian
#

app now has 258 72x72 images bundled

finite isle
#

@deep mulch

deep mulch
#

@finite isle

finite isle
deep mulch
finite isle
deep mulch
hollow viper
#

any progaming

brave lava
#

bhopnize your progames

#

swag messiah

tawny knot
#

yoo I just realiezd spotify's api has an endpoint for saving tracks

#

spotify controls update incoming

#

XD

#

ohh nice, less work for me heh

#

oh-

cerulean plover
#

dead pr husk

whole cove
#

hi guys from now on whenever you are sharing logs/code you must share it in this format

glacial mirage
#

hey can someone explain why my code isn't working

surreal condor
still jolt
#

also good thing you left the replit link there so someone can actually try to read what's there

glacial mirage
#

i didnt feel like masking it since i basically only use replit for fucking around with random languages without having to install anything

still jolt
glacial mirage
#

yeah ive tried that but replit has actual ide features like auto-closing brackets and the like

still jolt
#

fair enough

glacial mirage
#

also ive made it even worse lol

still jolt
rustic turret
#

NVM

still jolt
#

lol

rustic turret
#

But the idea was there

glacial mirage
#

mine was in js

#

i think python has its own variant of jsfuck tho

rustic turret
#

the idea of python in js obfuscator

still jolt
#

atleast 3 repos show up for "python jsfuck"

glacial mirage
#

seven chars to get turing completeness in python

#

seems like the same general idea actually

still jolt
#

since when does PyCharm have html

#

also god no why stop please

whole cove
glacial mirage
#

wait does it automatically detect the language

#

this is all done in a .txt file

still jolt
#

I'd assume they're manually setting the language

#

like in sublime text

balmy lintel
#

people who use their phone to "screenshot" should explode

glacial mirage
#

:3

still jolt
whole cove
glacial mirage
#

jsx for python

balmy lintel
still jolt
#

yep

whole cove
still jolt
#

oh god

glacial mirage
#

waow

still jolt
#

I kinda wanna make my own now

#

that sounds like fun

glacial mirage
#

i took an actual photo SKULL_SKELETON

balmy lintel
#

peak

glacial mirage
#

run it yourself fiure

balmy lintel
#

lazy

still jolt
whole cove
#

i found a hosted version though

#

try it

glacial mirage
#

least sketchy url

whole cove
#

its legit

balmy lintel
#

oh hhell no

#

whoever created that should explode

whole cove
#

smh .ru discrimination

still jolt
glacial mirage
#

i wonder how it works

#

the moire patterns are really good

whole cove
#

perfect

#

oops wrong ss

whole cove
glacial mirage
#

yeah that makes sense

#

guh when i use my add function on strings they start with a zero