#developers
1 messages · Page 10 of 1

fuck you no its a bug with the gif format

submitted to website bugs
can confirm it happens with other emotes too
something about how its formatted makes discord think its a png when uploaded as an emote
which means other things might break
image processor issue
well where the hell else do i submit a bug like that
also it's not really 7tv's job to provide discord emotes
my point is
the gifs are ONLY used for discord embeds
if it breaks in one place
and even those aren't needed anymore tbh
it can break elsewhere
and they work
yes
tested with like
3 emotes from 7tv
and 3 gifs from my machine
all the 7tv ones uploaded as a static emote and the 3 from my machine uploaded as animated
and my point with this bug is that if the resulting gif from 7tv can break in one place, it's entirely liable to break in another place unexpectedly
no
it would be in the animated emotes category then
there's two categories of emote in the emote upload menu
"Emoji" and "Animated Emoji"
you can check for yourself
it was a good thought though
you can look at the menu for it
That sometimes happens on chatsen
Too lazy
I’m on my phone
fair
if the downloaded gif breaks in one place it's liable to break in other places.
I'd almost guarantee it's gif specific
if i download a gif i expect it to work anywhere that other gifs work
Try uploading a very old emote
okay grabbing a newer emote then
I don’t think old emotes got reprocessed since at least 2 years
does it show in activity?
this one shows up as static too
it could EASILY be a discord issue rather than a 7tv issue @zinc aspen
or at least a discord change
i reiterate it works with any other gif i try
its ONLY gifs from 7tv
mf idk shit abt hex 
the gif format is fairly simple, being from the 80s
Automatic brainrot detection

true
also KDE plasma has at least one regression right now and it's throwing off my groove
?
And by putting it into ezgif I meant try putting it through the optimizer
or splitting into frames and making a gif again
the headers are different
running it through gifski would probably fix it
but that doesn't mean anything on its own
oh
bounce was made with gifski too it looks like
optimizing doesn't fix it
somehow
so thats crazy
what the fuck
splitting and reforming with ezgif also still broken

what the fuck
cursed frames

my own gifski export also doesn't work
hold on
lemme grab a fresh gif
downloaded as mp4 becuase discord is stupid, stuck into ezgif, converted, shrunk, uploaded

so its not like any new gif made with ezgif is breaking
its literally just the thing from 7tv
this makes no sense

gifski
So question
if someone has WHAT as
and I have WHAT in my personal emotes as
they are supposed to see my personal emote right? or no
I would assume that's how it's supposed to work
does it not?
Yeah it doesnt
it goes to whatever they have in the chat
Idk why I thought my personal one would override
which extension(s) do you use?
it's up to the extension itself to decide which emote to display
twitch is not an extension
Chatterino decides what to display on its own
but FFZ or BTTV or 7TV also decide what to display
Ideally all their behavior would be the same but there's nothing stopping them from doing it differently
didn’t realise i did this in dev channel haha whoops
my bad ❤️
wym
[GraphQL] LOAD_ERROR badge not found
logged in on a new pc
everytime I refresh page get that error
but fixed when I changed badge
To what badge?
2023 NNYS
Holy
how to get x-max badge
??
gift 1 sub to anyone
it literally says on the website


чапаапспа

@sudden gust is there a reason the lock files (like package lock and pnpm lock) files aren't included in the gitignore
the package lock file isn't even committed so it just shows up as untracked whenever it gets generated
just wondering if there's a reason that it's like that
also whenever I run it locally I can't open the emotes page why is that
The lock files are there, we use pnpm, so it's pnpm-lock.yaml
@plush kayak you shouldn't gitignore the lock files anyway afaik
oh right yeah
I've always just done it
I know it can cause some issues
but it's pretty rare I think
the versions are stored in the package file
still not worth the risk
so I think it only breaks if the registry is changed manually
rare != never
yes
better to avoid potential issues altogether instead of saving like 2kb 
they can get pretty big
still, its better to keep it imo
the only reason i could ever justify ignoring and removing from repo is if you have like 90 trillion packages and its so big that you're forced to use git-lfs
it literally breaks my browser I can't close the page whenever I click on it 
can't even interact with devtools

that sounds like its either processing too much data or somehow getting stuck in an endless loop or something
how does the networking tab look?
I looked at that the first time I did it and there was nothing happening
hang on I'll test it again
there's no errors
it gets the scripts and stuff for the page so it loads fine
so it's gotta be something with the data
it warns ```
Throttling navigation to prevent the browser from hanging. See <URL>. Command line switch --disable-ipc-flooding-protection can be used to bypass the protection
oh I found the issue
what was it?
the effect that changes the url search params
it was redirecting every frame
But that should work, I'm confused
yeah
me too
I tried preview and it didn't work either
so it's not a dev environment issue
weird
yeah a reinstall did fix it
weird
no way taht shit took 30 minutes 
ok I open pr and sleep

yes, fork and pr
also how the fuck am i supposed to run 7tv locally if i don't have mongodb 
because i aint payin for that shit
what is there to pay for
yeah my bad i didnt realize there was a community edition
oh you have got to be shitting me
cargo build fails 
im not debugging the entire fucking project just to try implement the one thing i wanted to do when i barely know rust as-is
oh
out of date rust
okay i miiiiiiiight need some help implementing the 7tv backend changes 
i have no idea what im doing, i've done some things but idk if it's actually what i should be doing and im sorta just mimicking the things around it
all i want is for a user's subscription status to be retrievable from the rest api, and an event to be sent when:
- subscribing (send subscription status and linked discord id)
- unsubscribing (send subscription status and linked discord id)
- logging in and the discord oauth is invalid (send as if unsubscribed)
- disconnecting discord from 7tv website (send as if unsubscribed)
but it is proving ludicrously difficult to figure any of this shit out myself
unironically programming language invented by aliens this shit makes no sense to me
i gave it an honest try but this is just a brick wall for me
you can already retrieve a user's subscription status from both rest and gql api
i thought you couldn't?
unless i am just
immensly blind


you could have it check status when they type in discord, and then have a cooldown of like a day before trying again

no 
would rather just hook into the event api
I think that's what the old one did
yeah and its slow and shit
poll every single user id at all times 
It only gave role after you typed

hundreds of free tier aws and oracle cloud instances, using both ipv4 and ipv6 
or just learn rust 
Most developers would do the 1st option
most developers would give up or just do what ryan suggested (which is what makes the most sense)
Yeah I'm jokin
would be better to just implement a discord bot in the repo, wouldn't need to expose it to events api
Yes, it doesn't have to be Rust. You can consume our raw nats event stream. That's what the event API is built on.
There are no events emitted when someone subscribes though. That has to be added to the API code.
just gotta deserialize the messagepack serialization
yeah thats
my plan is to literally use the api 
im saying the api doesnt have what i need to make it work
i need to know when someone subscribes/unsubscribes and when someone links/unlinks their discord account
polling probably wouldn't be a good solution at all
'
I’m on my phone rn but can you check the file sizes of these?
Vic and I have been working on it
I think discord raised the file size limit for static emotes
But not animated
It seems that being under 256 kb is all it takes for an emote to be animated
Discord used to refuse uploads completely if they were over 256 kb
But then they started using webp
So I assume static emotes can be larger because discord trusts that they’ll be small enough once converted to webp
no
the requirement for being animated isnt being <256kb, thats just the emote upload limit period
same for static
its stupid
Well Vic was testing it with gifski encodes for me
Different quality values
He was able to upload file sizes larger than 256 kb
But those are the only ones that became static
-Q 92 vs -Q 91 was the limit
when i uploaded the emotes i tried they were all under 256kb tho
Well that might still be a different problem
and ANY time i have ever tried uploading something over 256kb it failed
animated or not

misspleed 
@sudden gust why is the active emote set in uploaded emotes?

the new system of enabling/disable an emote set on a channel is so confusing to me
i feel like it's the opposite way of simplifying stuff. it used to be obvious but somehow it's too complicated now
why not
because not all the uploaded emotes are in the active set
this is why it should be on the nav bar then. it has no business there
yea
how else do you expect to change the active set for someone else
why...?
yeah I know it's there for a reason but
it should only show on active emotes page
because that makes sense
it shows the active emotes with the corresponding active set
it should be on the emote sets page and on the active page
so leaving it on the uploaded page as well doesnt hurt
it does hurt because it's confusing and seems out of place
I get what you mean tho
like what else should you add there
maybe another upload emote button?
that could be the right move tbh
i don't get what's your point. what does it change if the button is in 1 or in 2?
that doesn't make sense
because it's not a separate tab
it's there to show what the current set is
not to change it
that's how I interpret it
it's not what it is
(i took the screenshot in active emotes but i should have gone to emote sets instead, but yea)
hell yea

another confusing thing with this new system is that now it lets you disable the active set, which makes no sense because the set is still active anyway
I think this is maybe just a bug
you shouldn't be able to disable the only active set, the "disable" button is literally useless
why not
what if you want no emotes in your chat
oh in that case
what's the point of NOT having a disable button
true
also this
#1318275831902244925 message
yea i'd love that
also
how do you change your default set now?
since the button got removed? 
@rotund pivot what do you think of this
the separated sections looked kinda weird to me I feel like this is more consistent
its on the emotes page
but i wanted it on the navbar or the old way in the set selector when adding an emote
where? 
what do you mean?
^
but what do you meant "just dropped the files"
drag and drop @paper token
gifs onto discord?
yep
as emotes or normal messages?

brah
I hate git sm
I had this same issue this morning and then I did all my changes again now and it still won't push 😢
I checked out my fork but apparently that made it so I wasn't on a branch
so I don't know where all my changes went
@plush kayak use git reflog & after you finind the commit hash do git checkout -b name <hash>
erm 
but thank you
i guess i could probably set up the system for listening to the event api and querying the rest api while i wait for someone to implement the events i need 
could maybe get the activity feed back up and running
it's not that hard to subscribe to a nats stream
i mean
isnt the event api just a websocket i can listen to or
I think you should run the bot inside our cluster and listen to the nats stream. I think no one is gonna add that feature to the event api
i mean even troy said ideally i wouldn't run it inside the cluster 
also, can i get an explanation of what a cluster even is? not a term im familiar with
many computer together strong
i mean im on one of the hetzner servers but i dont think its necessarily connected to any other of the 7tv stuff
I mean our kubernetes cluster when I say cluster
Which consists of 27 hardware servers
never heard of this kubernetes thing 
Alright idk then
i mean im willing to learn obviously, im looking at it on google and it seems useful to know just in general
yeah it's quite useful but I guess it's fine when you host it yourself. You will have to use the event api then tho
oh yeah no this looks steep as fuck 
but learning it without prior container experience should be painful af
i barely learned how to use docker compose for this because i thought (stupidly) that i would be sharing a server with another 7tv process
not that i'd be given my own hetzner instance
that's fine, just dont be intimidated with the complexity and go with the flow
We don't use docker compose for a lot of reasons, think of kubernetes like a more advanced docker compose replacement
but yeah it's very complex and I don't fully get how it works either 
+1
Like I know how to use it but Troy set it all up
i assume its just one of those things where once you get at least a general understanding of how to set it up, its generally easier to work with than docker-compose?
or like
more flexible or something
No I wouldnt say that 
k8s gets easier when you pass the steeping curve thing and with A LOT OF DEDICATION
like A LOT
It's more complicated than docker compose but you need it when dealing with a lot of load on your servers. You can run docker compose on only one server at a time. Kubernetes works with clusters. That means you can join your servers into one cluster and then run your containers on the cluster.
I mean if you dont have understanding of TLS/SSL, PKI stuff and so on there's probably no talking about k8s for now

so its basically just compose but for cases where the work load is so huge that one machine wouldn't be enough, or where you need like multiple data center locations like with the cdn servers
this is like
k8s if fireship videos where 100 seconds exactly
yes and also fail safe solutions
if your docker compose server dies your whole thing would be down, not with kubernetes. It would just spin up the container on another server.
ahh i see
interesting 
yeah this is defintely something i need to learn if i ever work on my own large scale project
that or somehow actually fucking learn enough rust to understand how to work with 7tv
do you really need rust that much tho
i mean
7tv is in rust

i can marginally understand whats happening sometimes by inferring things here and there
but as for getting a full understanding of what something actually does in low level terms or writing extra things into it
currently i'd be a lost cause on that front
ahh, e.g. you can subscribe to nats stream using any language of your choice, there are dedicated libs everywhere
oh
wait so it isnt just a websocket?

thought i'd be able to just
connect to websocket and parse messages sent through it
nah, it's if we're talking about nats it's not websocket
i mean as long as its well documented on how to interact with it i should be fine
Ok let me explain
it's like ws is persistent and two-way, while nats is primarily publish/send, can be request/reply
that and assuming there's a good js framework for it because i don't want to spend god knows how long doing it from scratch 
i mean i will if i have to but still
i've never dug that deep in the infra so lennart and troy would def know more
catWait
data fast through that tcp pipe
Our infrastructure consists of different applications. Two of those are the api and the event-api. They are different applications which means they somehow have to exchange data. So internally we use nats (not ws) to send the events from api (where they are happening) to our event api (where they are emitted to the ws clients from outside).
That means you can either run your thing outside of our cluster and connect to the event api via websocket or you can run it inside our cluster and subscribe to our raw nats stream.
ah thats what you meant
i mean ideally someone does just add like the 4 events i need and i can use websocket
as for the nats stream i assume that would in fact have the relevant info i need? or would i need to add it there anyway
No the events you need are not emitted anywhere right now
hm
Unfortunately I have more important stuff to do right now which means I won't be able to add that before I leave
damn :/
oxidize discord bot
hopefully whoever it is that takes over the main development is able to then
because i tried looking at the code for the events n stuff and i was just confused as fuck 
hope I will sleep and give lennart peace with my new-website-issues activity kekw
the codebase is generally good, there are some cluttered moments
but it's like not hard to work with
again idk rust
I added daily trending emotes for the default search thing
so its infinitely harder for me to understand whats going on than someone who does
so the same 5 emotes forever
lol
is trending by used or by added

there are some courses for folks that come from js/ts and tryna learn rust
I believe at least primeagen did one
hmm
https://discord.com/channels/817075418054000661/1318642788375461948 add this instead
@sudden gust btw I was thinking about adding the personal emote set as a separate section in the active emotes page, but I am bad at gql so it failed and kept spamming requests idk why
maybe that's a good feature
yes I will add it
I like the idea
regarding this thoughts on making it raycast-ish?
wot
I did iit

when openning the search either by mouse or with a keybiding the search on desktop will be like this with the bg dimmed to highlight this as the primary search
i havent seen any websites that do this
reasonable, me 2 
@rotund pivot any other features that I can add
I went through the thread but it's mostly like stuff that I wouldn't know how to fix
actually the things you posted are doable
for cosmetic changes i wanted to round the emotes and emote sets 
like to 0.75rem
or 0.5
they really stick out
i think the emotes could be 0.5 and the sets 0.75 
what exactly
wat da shart is that
I don't think so either, but the top of the layouts were padded down a lot and it looked pretty empty
I'm kinda neutral on it
'cause there's not really a CLEAR clear indicator for what you're actually looking at
on those pages
also I love that font
should be used in more places imo
and this is a good opportunity
cause there is a new landing page design
wade where is that
I think so
like youre adding even more to it
that's silly
I will fix it if lennart hasn't fixed it tmr
(maybe)
(I have exams soon)
the default results are mainly here to access your editor channels
and adding more clutter to it will be just annoying
why would someone care about 5 random emotes
especially when atm theyre just the top ones on 7tv
also i looked at random websites and the user dropdown isnt really aligned with the navbar
well maybe on reddit
ill leave a comment of things i like 
thank u sigma
wtf is this
I made sure it doesn't happen
oh
that's a known bug, isn't it? I can't reproduce it tho
i seem to only get it while im at 80% scale 
like this page seems to only duplicate if you set your website scale lower than 90% https://7tv.app/emotes?t=lotr
i think it depends of your own screen resolution? I had to go down to 50% to see the bug, not before that

yeah it does
at anything under 175% monitor scaling on windows i get the duplicate emotes even on 100% website scale
i actually have to make it more than 100% for it to go away
So same sorta bug that happens on old.7tv where you'd get an infinite loading bug at a certain scale
that was related to the viewport width
are you fucking kidding me
how does viewport width cause that of all things
the fact that ANYTHING is duplicating based off viewport width or scale or whatever is horrendous
like why should it matter to whatever js is running
this one just doesnt load the emotes, doesnt duplicate them
only the new website has the duplication bug
and the new website bug is still based off viewport shit right
why the fuck does the viewport size changing break the scripts 
it has something to do with the infinite scroll
i assume
or idk maybe im making shit up
cause it still happens here
I suspect it's a bug in the infinite scroll library I use
hm
It looks at the scroll of the page which is affected by the zoom I think
yeah but why the hell would that generate extra emotes on the page
Well idk I'll take a look but it's not that crazy that it's related
This plus /v3

ok lemme monitor this thing for a bit and see what it actually spits out
{"d":{"count":18},"op":2,"t":1734994586285,"s":19}
how the fuck do i interpret this
count starts at 0 and goes up by 1 every message i get, s starts at 1 and goes up by 1 every message i get, no idea what they mean i just know they increment

ahh wire
what do i use for a condition 
trying to test with just sending an opcode for getting anything related to emotes
but its telling me invalid condition when i didn't pass one
and unless im like uber blind i don't see a list of conditions
condition relates to the thing you're subscribing to
all i know is im trying to get basically every event, at least every event relevant to #activity-feed
either { type: 'emote_set.*', condition: { object_id: '01GNRGBX9G000EM7Q5KTKE4R0D' } }for individual things like updates for a single emote set emote_set.*
or { type: 'entitlement.*', condition: { platform: 'TWITCH', ctx: 'channel', id: '186352304' } } for channel specific events
this is not possible
not through event api
why don't you just use discord webhook and add it to the backend
yeah thats not eventapi
like
oh 
god dammit i dont wanna modify 7tv source code
why not
i literally don't know enough rust to confidently do so
i go in there and i barely understand what the fuck is happening

well great opportunity to learn
i can do it
i mean go for it, not gonna say no to some help on this
all in rust
rust!
i would love to learn rust, im in the process of it but it's been really slow
motherfucker let me do some basic shit in the language before jumping head first into a full stack rust application with shit i barely understand
god damn
a new project
and then make it send a message to a webhook
boom that's 1 part
and then when u got that down
then u read 7tv's code
and then you find the final stage of where it registers the emote
and then u copy paste the thing you wrote to there
and BOOOOOOM
friggin' done
I would consider sending a message to a webhook to be basic stuff
okay i also need like 4 new events implemented and i tried looking at those and my brain melted trying to figure out how the fuck to just add a subscribe/unsubscribe event 
i dont even know if i was doing the right thing i was just blindly trying to mimic what looked like event related shit
I think honestly you would benefit more from writing the bot in rust and using ipc to do the sub role and emote activity
i am not rewriting the whole ass bot in rust
what does it do right now
send log messages?
'cause there's probably an example for that in the discord crate or whatever you wanna use
again, pretty basic project to learn rust
unless you just don't have time of course
then I understand
i like the flexibility of js for discord bots specifically
I assume you were trying to add events for whenever someone subscribes
a lot of the way this thing is written would need to be redone entirely and made even longer just to work in rust
i need one for someone subscribing, someone unsubscribing, someone connecting their discord, and someone disconnecting their discord
I just don't think that's like a thing that should be accessed publicly I ain't gone lie to ya
i mean you can already get this info publicly anyways with rest
subscription status and connected discord
I know
if they weren't exposed in the rest api you'd have a point
idk why I think that honestly
am probably being silly

feels like pocketwatching maybe
have u discussed the compression/ filesize issue for animated emotes on dc yesterday?
New connection event is already there
Just not on the event API
would it be feasible to maybe add feature gates to the shared crate on the monorepo to let people use it without pulling a brazillion deps
@south flare
It’s actually bad practice me thinks because it creates build dep cycles
We should setup a workspace hack and that will improve the incremental compile times
The compile times are basically all from async-stripe
It’s an awful library
But there is no alternative:(
I think if u use nightly (1.85) the compile times get halved and link time is 2x too
It’s currently a bug related to some regression code that made it to stable on 1.82
Making compile times much slower
Not to feature gate code but to feature gate deps. Because it ends up creating conditional compile steps which means depending on which combinations of applications we compile will change the dependencies which isn’t good. Ideally we should break the shared create into many smaller crates and then setup a workspace hack to resolve the deps issue

what the sigma
not even joking 
how often does it need to re-compile?
like every minute
what changes are you making that requires you to build so often
I mean i don't even build until I have basically written everything
(I'm just doing a jokes ,so)
async-stripe has to be compiled only once
It doesn't change
I don’t see the big hullabaloo then
well i wanted to make an eventapi client library and i didnt want everyone who uses it to pull 570 deps 
so i think it'd be cool if like public API types were exposed in a smol crate in the repo instead of this big ass crate with all this other stuff in it
what i can do is just copy paste the types from the repo and credit it in a comment with a link to the license ig 
not that big of a deal, just would be nice 
the types are gonna be the same either way, if you wrote them yourself
yeah but then if there's a change upstream i would only need to update the ref on my manifest and aboom, it works
oh yeah I guess
not sure if there would be any new types for the usecase to even matter though
but yeah would be nice for it to be split into workspaces
is there a quickstart doc or readme somewhere for compiling and deploying the web extension only? I've been going through the github and I'm only finding info for setting up the whole website
I'm not sure thats right place for ask, but is there some kind of bot tokens for 7tv automation for 3rd party apps? I'm interested on manage emote sets as editor of channel.
you can get the token from localstorage on 7tv.app or ask a dev for 1 year one
Thats is how my app was working before, token was live longer.
With new refactor it is lived for 1 month,
that's what I'm saying, if you want the one for 1 year then ask a dev
Ok, where?
Ok, thanks.
is there any quickstart or guide for implementing 7tv into my app? i want to make an app with twitch chat, and i want 7tv emotes to show up on the chat 
If you want live emote updates then implement https://github.com/seventv/eventapi (recommended).
If not, 7tv.io/v3/:
users/PLATFORM/id(for exampleusers/TWITCH/198740595)emote-sets/idoremote-sets/globalfor global one
A service which provides live updates for various resources implementing the Server-Sent Events and WebSocket specs - SevenTV/EventAPI
can always look at chatis
i mean to just create an overlay that will display something like: chatter: message
instead of chatter: message somerandom7tvemotetext
i have the basics done already, just need to replace the messages with 7tv emotes

just subscribe again
try restarting browser
cancel sub and sub again
yo hello
How do I get that badge
That purple thing? I think that’s a twitch profile picture
So I found a bug when uploading emotes in .mp4 format
When uploading an .mp4 to make it an emote everything goes well until you see the emote after it finishes processing, the result is an animation that gets stuck on the first frame for a long period of time before continuing to do the proper animation.
On the picture you can see how the first frame shows up for a full second (values are 1 = 1/100 of a second) and the rest are significantly shorter.
It has happened with 2 emotes so far that I have uploaded in the past month and before that I have uploaded +40 emotes in .mp4 format and they all have processed perfectly.
Maybe a dev that works with the image processing will notice that here 
I don’t know why it’s happening but I have noticed it
mp4s seem to be the worst
avif suffers too
webp seems clean
but I haven’t had a chance to do extensive testing lately
This is why I mentioned webp is the best format to use right now
Not exactly true
But thanks
Did y'all update ffmpeg or something?
was this intentional or is it bugged just for me? it's like this on 2 of my pcs
what do you think 
Refer to this #1204118802984476682 message
LGTM
would it be useful to move the cosmetics section for useres to change their paints from being under the user dropdown to instead be to the right of the store button? it would have to have a sign-in button if people aren't signed in, but it might be a little more intuitive for users to be able to change their cosmetics right next to the store button
also im thinking of changing some padding for the store to be more center aligned since right now i feel like there's a bit of eye strain going from the banners to the main information on each page on large monitors (1440p+), but i dont want to start working on stuff until im sure that it's actually a useful change, so please give me any thoughts on this! tyia!
hello where to report bugs?
if it's a general bug in #1204105649244479518 , if it's a bug related to the new website #1317181515423027230
thanks i made a post in help, im not sure if its related to the new ui or they changed some policies
@lethal jackal why did u leave all the servers man
did u guys fix the problem with the 4x emotes being too big for DC?
no this is not a problem with 7TV
not even in the slightest
7tv isn't going to arbitrarily try to make their 4x emotes 256 kb just so people can steal them and upload them to discord 
Hello, I read the Contributing.md and it says I need to sign a CLA but the link does not work
theres no dev to merge them yet
at least until the new dev learns, apparently the dev just signed up for github like a week ago. hope the guy is a gitlab guy or git something.
surely they will be able to handle everything
Is the autocomplete not working out of nowhere a known issue?
I'd love to help figure out why
Yes, it's mainly because of the way the workers are set up. Simply using /refresh should fix it.
Ty!
wtf
hello there, chatterino dev here. i'm loading 7tv badges through eventapi but some fail to load (e.g. 2 month subscriber). it seems they might be missing a static_name field. I haven't super debugged yet but I will look into it a bit further
turns out the static_name exists. Badge I'm loading is 01GAF95ZTG000E8VNG1S1RMTBB. static_name is 1x_static.webp, yet url at https://cdn.7tv.app/badge/01GAF95ZTG000E8VNG1S1RMTBB/1x_static.webp is not a valid image
someone trolled, badges that are not animated do not have a static variant, same with emotes.
should just be 1x.webp
would be nice if the 1x.webp can be copied to 1x_static.webp in this case
yeah that needs to be fixed
that'd be most backwards compatible (for us)
https://github.com/SevenTV/SevenTV/pull/206 not sure when this will get merged since there isn't really a active dev right now.
tyvm
.


@rotund pivot
I found what caused [this](#developers message)
It's not because of the viewport and it's related to [this](#1318191472553623624 message)
Also I would love some feedback on my PR just so I can tweak it, even if there is no one to merge it yet
i cant tell you anything about the quality of the code
but the changes look good feature wise
not really sure about the hover to open profile dropdown
but will see how it feels in action
Yeah that's the one I'm most unsure about.
If you want to test them in action you can go to my testing deployment https://seven-tv-testing.vercel.app/
You just won't be able to sign in so you have to manually set your localStorage auth
fake url
What ?
yeahh
Is there any documentation on how to setup the image-processor in a local environment ? I wanted to investigate [this](#developers message) issue but I don't know how I can test it locally. There seem to be a lot of dependencies and extra stuff.
You can just run it in docker
Yeah, that worked, and then how do I execute a processing job ?
you'll have to configure it first. there is an example config in the repo
Monorepo for 7TV. Contribute to SevenTV/SevenTV development by creating an account on GitHub.
then you can send new processing jobs via the grpc api
or you can use the http api
btw this issue is most likely related to this, meaning that the issue is probably somewhere in the ffmpeg decoder backend, since webp and avif use libwebp and libavif and dont seem to have this issue
Avif does have this issue, But webp does not
oh
Maybe it could be related to this

Could you explain a little more how I should go about configuring this please ? I haven't worked with that sort of configuration before
Like where do I put this config ?
real 

ryanpotat feels rested: billions must gooning 💤 (7h, 48m ago)
wtf

why wont discord autodelete tehm
$rafk
ryanpotat, Your AFK status has been resumed.
turns out it's not related to that, but that does cause (unrelated) issues on some mp4 videos with very small time bases
How did you manage to run the image-processor ?
i didn't
i just made a new main function, made some stuff in there pub and tested stuff
then i just searched for every instance of duration_ts in the code and found the issue 
https://github.com/SevenTV/SevenTV/pull/208 it was just an out of order line
Are there still issues with mp4's even with that fix ?
yea
Would you mind sharing your main function I'd like to test some things too
but that would require some big changes to how they handle timestamps in the entire code
yeah ok
sure its scuffed af tho
fn main() -> Result<(), anyhow::Error>{
let args: Vec<String> = std::env::args().collect();
let data = std::fs::read(&args[1])?;
let mut decoder = FfmpegDecoder::new(
&Task {
..Default::default()
},
Cow::Borrowed(&data)
)?;
let task_info = Task {
output: Output {
formats: vec![
OutputFormatOptions {
format: OutputFormat::WebpAnim as i32,
quality: 90,
..Default::default()
},
OutputFormatOptions {
format: OutputFormat::PngStatic as i32,
quality: 100,
..Default::default()
}
],
resize: Resize::Heights(IntegerList{ values: vec![64, 96] }).into(),
upscale: true,
disable_two_pass_decoding: true,
disable_resize_chaining: true,
..Default::default()
}.into(),
..Default::default()
};
let mut task = worker::process::blocking::BlockingTask::new(
&task_info,
&data
)?;
dbg!(decoder.info().timescale);
while let Some(frame) = decoder.decode()? {
dbg!(frame.duration_ts);
}
while task.drive().unwrap_or(false) { }
let output = task.finish()?;
let encoded = &output.output.iter().find(|i| i.format == OutputFormat::WebpAnim).unwrap().data;
std::fs::write("out.webp", encoded)?;
let mut decoder = WebpDecoder::new(
&Task {
..Default::default()
},
Cow::Borrowed(encoded)
)?;
dbg!(decoder.info().timescale);
while let Some(frame) = decoder.decode()? {
dbg!(frame.duration_ts);
}
Ok(())
}```
lol I wouldn't do better
tbh just using doubles for timestamps would've been a lot easier to use and less skitzo to read 
precisioncels dni 
is it possible to add 7tv to kick ?
When it comes to linking your account to kick it is disabled
until kick gives api over 
I meant the extension can be added but yeah on the website login is disabled
oh alr ty
@fast bear There’s the same message and link in a few channels
mods afk
I'm not a mod?
does anyone know why paints and badges are not showing in kick . I added 7tv but still
cause you need to have a kick linked to your 7tv profile
if you dont have it there is no way to do it atm
yo
is it fine if i unlink 7tv from my main acccount and link it to my bot account? just once
not permanently
I would like to like to switch it back to main acocunt later today
you risk bricking your account
either you will make a new 7tv account trying to link
or you wont be able to unlink since it will be your only connection
making an account is free
well obviously I want it for paints...
maybe not obvious
paints
Hey mzntori, - I just private messaged you 1 private reminder(s) - make sure to check them out!
That's no longer a problem on the new site. It won't create an account when you try to link.
Im sorry if this is not the channel to ask, but is there a link where I can fetch the global emotes ?
Nevermind I just found it!
its the right channel 
I have a question, why does WineTime and glorp don't show as emote but the rest does ? (I'm making a chat widget)
Is very weird because the renderText is just literally "WineTime" or "glorp" not the img source
It only happens with those 2 emotes wich are global
are you using this https://7tv.io/v3/emote-sets/global
or maybe you have some conflict with channel emotes
not really im using the renderText
from the listener message
wich works for everything but besides those two lol
Instead of this
im getting this
it also happens with the default chat widget of streamelements
since when does it support 7tv
no idea lol, but i have another problem now
im trying to get tags to check if the emote is zerowidth, global emote PETPET doesn't have that tag
:c
or is there any way to get that the emote is zerowidth ?
becuase I see some emotes don't have that tag wich is annoying and I see no difference between regular emotes
and zerowidth ones on the api
i assume the zero width tags are the ones users put there manually
yeah! they are the ones that ppl put manually thats why it was kinda scuffed
thats amazing, thank you!
now I gotta figure out how to put the emote in the middle when the zero width emote is wide Hehe
firefox just turned off my 7tv extension cuz it violates its guidelines 
I just remove it for now idk
It's because of the way updates are loaded in. It's still safe to use
uh this is probably a dumb question but is there any 7tv api docs out there? cant seem to find it and idk what the endpoints are
is this it?

currently looking through this lol
i think i found smth
i'm new to all this lol sorry
ty for the help
You're good! if you have any questions just ask, we dont care to answer
will do 
scroll up




v1






















isnt it already on kick