#developers
1 messages · Page 5 of 1

well i mean i can assume GoLand comes with one built in
i'd be surprised if a jetbrains IDE didn't do that
idk im not a go dev
okay yeah
seems to come with a compiler and docker capabilities
i just need to know the right sdk version i think
which doesn't appear to be documented on the github 
though keep in mind
most of the code will be rewritten so dont really try to put in any contributions right now
when i say most of the code i do mean it
potentially all of it
Fair enough
Just wanted to try and fix the name paint and badge disappearance issue since i have an idea what may be causing it in theory 
you do?
cuz im noticing the client receives two delete entitlement events for the paint and sometimes the sub badge, then later reinstates it with a create entitlement event
interesting
so its something relating to getting entitlements
my assumption is its something relating to reading from the database
hopefully its not the database itself being screwy and its just an error on the code side of things
but then again it could also be something elsewhere involving entitlements
(continuing from general)
turns out i just had to scroll down and it shows client opts


Try using the Dank Twitch IRC library, it contains many useful examples
use dank irc it has a great amount of features
message has all irc events iirc
hmmm
PRIVMSG would be specifically the chat messages
not resubs/announcements/bans/clearchats

and to send a message
what would i extract from msg
to know what channel to target
https://kararty.github.io/dank-twitch-irc/ these are pretty good docs assuming you're using the dank twitch irc now
Documentation for @kararty/dank-twitch-irc
yeah im already on them
but it would be the channelName property

msg.channelName
alr
ya
sure you've got a valid user/oauth?
Use this: https://twitchtokengenerator.com/
i've been using twitch cli
holy shit this is a thing?
correct client id, correct client secret
passing -u -s chat:read chat:edit
authorizing as bot account
Holy shit 
what 
i would use the token generator either way, its a perma token
hmm
True
where do you put the generated token
as the password when instantizing a ChatClient
okay so
i grabbed an access token from the site
same result 
i get stuff logging to console abt the message it just processed
but nothing is sent in chat
and username can be whatever?
well would need to be username of the bot
is this a brand new account? or
brand new yes
username would need to be associated with the account used to gen the token yea
have you tried sending messages directly logged in with that account from twitch? sometimes they do funky stuff for new accounts and their messages drop
yeah i JUST tried that
message sent on bot account's client but no other client receives message
so am i just
shit out of luck for a few days 
yeaa so its getting cucked by twitch
have you done 2fa and email verifiaction with the acct? could help if not
first you ignore my fucking org req, then then i try to message support abt it you deny any response and tell me i did it via email instead of support website and thats why which ISNT EVEN TRUE, no response on twitter, and now you do this to my bot acc 
great fuckin service
yeah i think they do this to combat the bot armys people make to spam chats
seriously though that support ticket bit is stupid
i submitted a ticket through help.twitch.tv/s/contactsupport
they auto reply me telling me i sent the ticket via direct email and to do it through help.twitch.tv/s/contactsupport


could always get things set up using your main account and then swap tokens when the new one works 
yeah oops forgot about that lol
can i still use justinfan12345 as login?
yeah
yeah it is waiting to recieve it
oh
yeah all i can say is double check the username/password. if you're using environment variables maybe try logging them
not using dotenv
literally just strings
and they're correct
says it connects
if either is wrong it fails outright before even doing anything
have you specified rate limits?
no 
idk if that would matter
Rate-limited
i think it has default rate limit regardless
but i'd say add rateLimits: "default",
nothing changed
const {ChatClient} = require('@kararty/dank-twitch-irc')
const fs = require('node:fs');
const path = require('node:path');
const client = new ChatClient({
username:'bittymoth',
password:'oauth:token-here',
rateLimits:'default'
})
client.cmd = new Map();
client.on('ready', ()=>{
//genCommands(); disabled until bot works
console.log(`Bittymoth is online`);
});
client.on('PRIVMSG', async (msg)=>{
if(msg.senderUsername==='bittymoth')return;
console.log(msg);
const args = msg.messageText.slice(1).split(' ');
const command = args[0];
console.log(command);
if(command==='test') await client.privmsg('neomothdev', 'test response');
// disabled code until i get the bot to just fucking respond in general
// let cmd = client.cmd.get(command);
// if(!cmd)return;
// cmd.run(client, msg);
});
client.connect();
client.join('neomothdev');
also here's the code
idk i guess i would try sending the message to the bot's own chat? and then try the same code using your personal account.
wait are you including the oauth: part
i removed the async and await stuffs and that worked
wait no async also works too
dank
do you not do that with this one 
why it would still be getting stuff from chat then if it can't even log in properly
its just an anon connection
like if you watched twitch while logged out
you can see chat
connecting to chat dont need an actual login
but sending msg need
yaya

gonna try logging in as myself

its not sending from my acc
im so confused
what could i possibly be doing wrong
not really sure honestly
what about just a simple send message on ready
const { ChatClient } = require("@kararty/dank-twitch-irc");
var channel = "neomothdev";
let client = new ChatClient({
username: "",
password: "",
rateLimits: "default",
});
client.on("ready", () => {
console.log("Successfully connected to chat");
client.privmsg(channel, "Successfully connected to chat");
});
client.connect();
client.join(channel);
maybe try getting a token from this site instead? https://twitchapps.com/tmi/
not sure why it would make a difference
@pearl ore bot problems 
JS 😢
using bittymoth or neomothdev?
using bittymoth, testing sending on ready with main account rn
nope
my acc didn't send message
had target set to my own chat
client.on('ready', ()=>{
//genCommands(); disabled until bot works
console.log(`Bittymoth is online`);
client.privmsg('neomothdev', 'fart');
});
Link to library you're using?
right here
npm install @kararty/dank-twitch-irc
I think I see the problem
wrong fork
i can use the library no problem
my guess is the access token is wrong? try re-generating it
did you try the last link i sent
twitch -u -s chat:read chat:edit
So what are you doing?
You want to send a message in chat?
You need to join it first
it is joined 
you dont need to join to send a message
client.connect();
client.join('neomothdev');
client.join('bittymoth');
"ready" is sent out when you connect to server
You need to listen for the join event then
In chat? Pretty sure you do in IRC
well not for twitch
i think they tried with this example but also failed
only issue i could see is this, bad token
yep
Just do like a 5 second timeout after join and try sending then, if it works then it's the event/timing imo
Why wouldn't it error then?
getting a user access token with chat:read and chat:edit
Does the privmsg() return any errors?
because you can join without authorization, and it becomes readonly
no
its just a timeout error
say() times out
sorry wrong reply
That's weird
try adding user:bot to the scopes
and channel:bot
Why timeout?? You're testing locally, right?
the library listens for the message to return through the tcp/ws
so its just not sending so always times out


twitch -u -s 'chat:read chat:edit'
The solution was you were IP banned? pepla


im gonna krill my shelf
You should learn linux ig 💀
lawl
life would be easier if you just use the token generator site
yeah
^ also true
HOOOLY
here comes the linux guy
L___x guy
yep it works now https://cdn.neomoth.dev/u/3812ef36-312d-4fd3-93bf-70ec76ee1f51.png


i use linux daily im just on windows because i cant be bothered to reboot at the moment 
On windows? That's the problem for sure
Why does it timeout though? When it should say something like "insufficient perms" or whatever. Shit lib or twitch is shit
Windows VM is the way to go (unless you care about your sanity)
some of my games refuse to run under a vm
Why do you need windows anyway? For games? I just play Minecraft Clueless
easy anticheat and battleye my FUCKING BEHATED
even with Hyper V enabled?

i reiterate, easy anticheat and battleye my FUCKING BEHATED
twitch doesn't respond with anything like that, the library has no way of knowing
They specifically detect VMs so
oh yea dont linux breaks games that has certain anticheats
last i checked
Shit twitch
both easy anticheat and battleye support linux
its just the games that use them
explicitly dont
Lol
VRchat uses EAC and they have an article how to get it working in a VM. I followed it and it works
the kernel level ones like Vanguard and xigncode
I posted the article here a while back
nvidia drivers are so much nicer under windows though :(
vrc
buying an AMD gpu was my best linux purchase ever
Guys, just play Minecraft
it works on everything and doesn't have anticheats
forsen loves playing it
Also, Zachtronics' games all run fine on Linux, some even natively I think
call me direwolph20
sorry for derailing 
This is what y’all were actually talking about if you want to go back to that
Nah, it's fixed I think
🚧Advanced Users Only!This information is generally only useful for advanced users and specifically only those running VRChat in a virtual machine. It will contain language that may not be recognizable or useful for most users.❗️Running VRChat in VMs is Unsupported!Using VRChat via a Virtual Machine...
its fixed
if i need any more help i'll bring it up
what did you do after it works
Nothing sussy unfortunately. I browsed avatars. Favorited some nice ones. Then closed it. Lately I’ve been trying to get wireless VR to work from inside the VM. Wired works fine. But wireless won’t work for anything. VRC is one of the few VR games I have to test.
ansonx10 decided to stay and chat: 🛏💤 (4m, 20s ago)
MODS
True

<@&1053703837078269972> For the developers using 7TV's api, how depenent are you on the specific IDs returned from the API?
for example,
if we were to return IDs that were slightly longer would that be a problem for your applications? (no longer using Mongo ObjectID, switching to ULID)
and we made sure that any MongoID passed to the API still works as expected, so both ULID and MongoID will be accepted on the API / Query Endpoints but the query will only ever return ULIDs. New users / emotes / sets / paints will only be mapped to a ULID not a MongoID.
So in general, all existing MongoIDs will remain unchanged, but the api will only ever respond with ULIDs.
ooc, how come the SSE data packets were changed without any versioning changes?
event: heartbeat
data: {"d":{"count":0},"op":2,"t":1706236207966,"s":2}
id: 2
you're providing a full websocket op message, prior, only the contents of d were provided for SSE
thanks
there's currently being some work done on rewriting the event api to hopefully make it more stable, the goal is it being 1:1
if this was a planned change, i can work with it, but just fyi that change just broke everything relying on SSE
no, not really, thanks for letting us know though
it has been undone, it was not supposed to return full context
thank you, I will add some additional checking to this section of code within my app moving forward. was an unexpected result so never handled it
btw, I get working on this live; but making untested changes to a production environment? there's a dev environment for this purpose, isn't there?
surely....
this is a little bit of a difficult thing to debug in a dev env and eventapi isn't exactly known as a stable api
stable uptime wise
well, from the stream it looks like other areas are being touched as well? so i mean in general.
either way, ty for handling this so quickly
its tricky to produce the scale the event api has on the development environment, so i decided to test it for a few mins to see any issues and then revert
pushes to prod

I am going to try deploy again, i fixed a bunch of small issues with payload changes. Please ping me if you find any issues with payloads or notice anything off. <@&1053703837078269972>
a
b
c
d
E
F
G
H
I
J
k
🇱
Forsen
M


It's just a PR wtf is all this
its a thing contributors need to sign
contributor role 
Hopefully this means the PR will finally be accepted 
depends on what the pr is for
QoL
Mhm so I've heard 
Hello, seen there's been some changes recently so it might be related. Trying to connect to wss://events.7tv.io/v3, is that still the correct address?
[11:44:32.239] Info: SevenTV WebSocket: Connecting...
[11:44:32.380] Error: SevenTV WebSocket: Connect Error: Error: Server responded with a non-101 status: 521
Response Headers Follow:
date: Sat, 27 Jan 2024 10:44:29 GMT
content-type: text/plain; charset=UTF-8
content-length: 15
connection: keep-alive
strict-transport-security: max-age=5184000; includeSubDomains; preload
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
referrer-policy: same-origin
cache-control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
expires: Thu, 01 Jan 1970 00:00:01 GMT
server: cloudflare
cf-ray: 84c066933dd69981-CPH
alt-svc: h3=":443"; ma=86400
EDIT: I didn't even notice, but apparently I connected after that
Yes its correct still, the connection has been going in and out all day
Thank you
7tv
8tv
9tv
ansonx10 finished working hard
//: (i’ve been at work for hours) 💼 (49.72s ago)
69tv
soon my PR is gonna have it 1st birthday 
surely it's getting merged 
@mods crush his skull
ryanpotat finished working hard :Kappa: //: (automated: afk for over 30 minutes) 💼 (1h, 32m ago)
@stuck pond no self advertising please 
so what are you working on?
Please clarify
We AI

I'm an ML Platform Architect streamer
I forked 7tv. Haven't gotten around to it yet.
Before you self promo more, just describe the project you are working on and we might be able to help you with whatever you want the API docs with
We make emotes with our bots and we want to automate an origin for all the Software and Game Dev category to use.
7tv seems to be the best way to do that currently
Always happy to take conversations offline. I'm Open Source. I'm not promoting anything I'm not contributing.
In fact, I'd love to invite you all to put in CFPs to ATO and come to my after party
So you want to use 7tv emotes to train your stable diffiusion AI to make your emotes?
Not necessarily...
Not sure how that'd work...
People come to our streams, use our inferencing, and make emotes. We've been making emotes of all the Software and Game Dev category.
We have over 300 made. We want to automate the process of putting them into an origin (think that's what yall call it)
Mass produced emotes aren’t really what 7TV users are looking for
The emote queue is already filled to the brim with emotes that need to be approved
I forked it. I can always move in another direction
We have a selenium pipeline for it in Twitch that SecLive built
Do you mean to host your own 7tv?
But we want more
why not?
not doubting, just asking
since 7tv is still under the process of a rewrite, there might not be an updated doc for the current 7tv for you to understand how to host it without problem
and i think it's quite complex to host that
I should clarify, I'm not Todd Lewis the organizer of ATO. I'm just organizing a few after parties and speaking
I'd be happy to contribute an OpenTofu guide
Not sure how those are related, but back to the topic:
- If you mean to host your own 7tv service: wish you good luck since you will have to setup backends that dont have any documentations of
- If you mean to upload your mass produced emotes to our 7tv service: As mentioned, 7tv is not meant for mass uploading emotes. Newly made emotes will have to get approved by moderators manually, and each users can only have a maximum of 10 unapproved emotes at a time and will not be able to upload more until the emotes are approved
what am i reading
Sorry, I'll go back down to the basement of Twitch 
Who maintains the monorepo?
And who uses BSD-4? 
Yall should be Apache imo
@south flare your GitHub profile game is weak
Can u stop
If you took 1 second to go understand what bsd4 clause does then u would understand why I picked it
It basically means anyone can use our product and source code, baring the fact that they do not advertise it without express permission from us.
Which shouldn't be a problem for anyone except big tech companies. In reality it doesn't matter for proprietary stuff like our API or our website or extension. So we could have used MIT or Apache2 but anything that we develop that isn't proprietary we would rather not deal with large tech finding something nice and selling our work on their platform. But instead of using a cancer GPL license I went for the approach of prohibiting advertising.

bro its a legal document not a faction
hola
Nice
I just did take a second. Thanks for helping me understand 
hi yall, what is the tech stack that's being used in 7TV? or is this info posted somehwere else already?
The new stack will be rust, svelte, postgres
HOLA?
SVELTE 
im learning svelte and rust
Are you rewriting all of 7tv or just like the website or something?
everything pretty much
i was gonna make a silly thing that uses the gql api, is the schema gonna remain the same or should i just wait until the rewrite is done? 
needing help i just did a 1 year sub, but now its saying im not sub after i turn off auto renewal pls help
is there a way to get the user id of a username on 7tv?
@hollow sluice
@paper plover Does this link work for you?
https://api.allorigins.win/raw?url=https://flxrs.com/api/badges
yes if this is the expected output
And this one? 
https://corsproxy.org/?https://flxrs.com/api/badges
works
okok

The website should be fine now
@paper plover @vagrant lion
erm

are we suppose to see our 7tv cosmetics here? or just native twitch ones

Maybe try the clear cache thing

All right. Thanks for reporting the bug earlier 

how did you get all available paints

Anatole forbade me from showing the paints. Thanks to Troy giving me permission (because it's public data) I was able to publish it until now, the website has existed for a few month 

LEEK 
That paint came out right when I first posted the website in the mod chat 
1 suggestion
can you group the paints to released ones and non-released ones

?????
bro
this mf didnt even give you a way to do that
his fault

There is no way to know which paints are public 
I already suggested this information for the new API, if everything goes well it will be available soon and I will update the website 
can u add a test chat mode like https://chatis.is2511.com/ 
That's a good idea
with actual twitch chat size would be cool
I asked him several times before finishing the website, there was never a response. I even looked for alternatives on my own, there was no way 
this site is actually scary it can fetch any user in any channel 
we will see if you are a tier 3 year-long vtuber sub

can you even group them by month/year ?
as of right now, i dont think the schema of the cosmetics contains the created / released time
probably lazily loading 6 months at a time will be a better UX than showing all in no particular order
but yeah I'm sure they're already considering this in the re-write
I'd try to help out with extension fixes as I had several pending PRs, but not sure what the status is on that
twitch staff 
only added cuz no other badge takes it away
i think its a max of 14
i was thinking gtspark but yeah him too
uploaded by Enzo_SuperCraftZ
old logo
what is the rabbit badge, "C" and purple "H"?
- FrankerFaceZ:AP Supporter
- Chatty Supporter
- Homies Supporter
should just disable issues on these repos
@solemn widget do you perhaps know anything about this?
well
opera isnt pure chromium
i have no idea though
maybe its really strict with web workers
so it's able to inject itself in the top-nav but not the chat container
the react update
i mean yeah
did they make a different react update
because like
it shouldn't be able to hook into the top nav
it shouldn't be able to hook into anything
and strange that it works on other chromium browsers (brave, edge, chrome) but just not opera 
The top nav injection is dom manipulation
I had a PR that would switch it to hook based
and hide several of those top nav buttons without css manipulation
Seems like it's fixed with a reinstall
Not sure if it's just me
HUGH MUNGUS 7tv UPDATE CUMMING SOON ON OUR FACES

Hi, quick question! Am I allowed to use 7tv emotes on my website?
That would be up to the copyright holders of the emotes to give you permission. (The people that created them)
By uploading emotes to 7TV, they're giving 7TV permission to host them for use with the emote service. Legally, I think you'd have to receive permission from the creators in some way.
ok, ty
Since 7tv is being rewritten I have a pr for the extension, will it be transferred to the new repo somehow or will I need to resubmit one to the new repo when it's ready?
whats the extension being re-written in?

i think the site is being rewritten in rust but idk if you can use that for an extension?
i'm assuming similar stack for the extension
What stuff can you use to write an extension in? I thought it was mainly just js/ts?
@strange owl
Yo
hi
can you sign this and ill merge all ur prs
yeah gimme a sec
@strange owl can you test this pr https://github.com/SevenTV/Extension/actions/runs/7938351287/job/21677050367
does it still work as expected?
here is a twitch experiments link for react 18
as far as I can tell it still works
it doesnt seem to show for me
hold on
It seems like it somehow broke because the chat id's are different now, I'm not sure why that is however
the uuid in awaited is what it's expecting, but instead the selected text is what the id actually is
just got it to work again, but I'm not sure if this is correct yet

okay it should be good now, the message types were out of date. do you want me to add this onto the existing pr or make a separate one?
onto the current pr is fine
also since twitch removed the hype chat feature it'll delete the paid message component as well
you can just change the title to be fixing the embeds or whateve
alright
great 😌
I have a proposal to deal with the problem of people making alts left and right:
Make Discord the only connection that can create account. Users can still sign in with Twitch or Kick or Discord, just that when there's no existing user in the database when they sign up, twitch and kick sign in will return no user found, and discord sign in will make a new account

mod crush his skull

that's because it's a static emote, use /4x.png instead
Oooh I’m so dumb
what happens if you try to add an emote named UnknownEmote?
cause thats the name for ids with that are not set
Also doesn’t this mean y’all have pre made ids? Instead of just generating a uuid whenever a user uploads it
idfk why do yall have ids for non existing emotes
this site shouldnt even exist
it’s being re-written, old dev left
you can put anything as the id https://7tv.app/emotes/whatever
it just wont receive anything because it doesnt exist
im testing a new deploy of event api
nice
please ping me if u notice anything different
not gonna ping but paints/badges not showing (im slightly stupid please be patient)
ur right. im fixing 
Troy out here breaking the api 
i reduced the dispatch count by half
letsgooo
the old #1011268040408698930 is archived so can we suggest ideas in here?
basically we need an option to delete 7tv pfp, if no custom 7tv pfp is set, fetch it from twitch (or kick)
can we just provide a transparent image?
Just clearing the url in the database should work I assume? not sure how the system handles the profile pics
it’s mongo so 
would be awesome if you could just remove your 7tv profile pic from the database or deactivate it
It’s crazy how many features were implemented early on, but they never got the ability to undo them
back when you couldn’t remove emote sets 

Delete button phobia
yo, does anyone know, if you can implement 7tv in a chat iframe from twitch?
pretty sure extensions don't have access to framed content for security reasons in chromium-based browsers
they can but 7tv doesnt
hi guys
Hello
@south flare are we still good to open prs for fixes? I have one for https://discord.com/channels/817075418054000661/1212105293450846330
yeah sure submit ill merge
Proposed changes
Opening / replying to threads would only allow you to view up to a maximum of 2 messages (the main message and one reply).
This is fixed by using the tray's thread props instea...
note; I added a highlight to the currently selected message
also fixed another issue in #1212171087714975795 message
can u make sure this actually replies to the message they are replying to
like if u send a message, reply to it
someone else replies
and then u reply to that reply
does it reply to the message u selected or the OG message in the thread
it should reply to the replied message
this is what it looks like on native
(the video in the pr)
the third reply replies to the second message (first reply of the thread) and the last one replies to the reply of the first reply (or the previously "last" reply)
are you able to test it on two accounts? I don't think we're actually meant to reply to our own message
its allowed by twitch
i can reply to my own message on chatterino
i dont see why it shouldn't be allowed
isnt that what u do here too?
I'm not sure what's happening, I can't seem to replicate it either
perhaps. it is quite weird though
@south flare are you able to look at this https://github.com/SevenTV/Extension/pull/1006
this seems very hacky
but that would be inline with how the entire extension is currently built
I agree, there were some other approaches I had tried but ultimately landed on this
I'm about to push the different one rn
oh
okay well then ill leave it i was gonna just merge it
cause this extension is being rewritten anyways
yeah it should be a better approach
fair point, I thought I might as well lol
should be all good now
Will the Rust rewrite also implement missing stuff in the event api? Because I think the Identify payload never got implemented 
Although that would probably first require a proper official way to get an oauth token
the rust rewrite will add no functionality to the current api / eventapi versions
we will make a new api + new event api
ill post some stuff abt it
so we can see what people want
and write the apis for that
any extension devs can work on a bug fix? 
#1212294439800807454 message
sure
Something im concerned about this is that the user need to click on the chatbox (or in my case specificly, the Chat Identity button) to trigger the watchEffect in order to have the 7tv emote button appear, otherwise it wont appear on page load
that's quite weird.. it doesn't appear to happen on my end so I'm not sure either
Fyi am on chrome
yeah I am too, does this only happen on initial page load?
when i reload (f5 and ctrl f5) the page
i guess we can have the on the production build and check for more feedback
I have found another issue, but I'm not sure if it's related to this
what is it?
If one enters a channel, then navigates to the homepage and then back to that same channel, it will also not inject
but that's related to the way it detects what channel you're currently on
(and it never being reset, even after leaving the channel)
it seems to work for me
most of the time
but does not work when navigated to homepage then back to channel (0:30)
right, was this not an issue before this?
not sure
havent used much kick
kick integration was limited at best
true
docs dead? https://7tv.io/docs
7TV Developer Portal.
are you able to test my latest changes?
they shouldnt be
yea so far that works well
neat @south flare are you able to look at it?
link me ill look
Yo @south flare do you have the time to check this PR?
its deploying

@south flare ^ I seemed to have a missed a route, am I able to create a PR without changelog? (you'll probably have to add the label)
sure
it should be ready to go, I did it asap 'cause xqc was complaining apparently
🐐 🐐 🐐 🐐 🐐 🐐
Is this the correct api endpoint to grab channel emotes? https://7tv.io/v3/users/twitch/{twitch_id}
https://7tv.io/docs is currently a blank white page.
7TV Developer Portal.
that should be correct, yes
i fixed the docs page
Thanks, that helps a ton. 
not currently, but you can use the internal gql api if you really want to. it is planned for it to be rewritten so there is no guarantee how long that will work for.
no since its internal, there might be some open source things which use it idk. just gotta go around inspecting with dev tools
hey all, I am a developer and would like to develop a plugin to support 7tv in runelite/old school runescape. I am wondering if it is public domain/free use to use any emote set api endpoint?
hopefully the right channel to ask
osrs
so is that a yes? :p
cool thanks. The only record I have found of someone else trying to develop a runelite plugin for twitch emotes is this issue https://github.com/runelite/runelite/issues/10821
that was closed claiming you needs rights to use the emotes. I think that was specifically through twitch directly, and BTTV only has this api publicly available from what I could find
https://api.betterttv.net/3/cached/emotes/global which does not have a ton of options haha.
@south flare is it normal behavior for the event api to not always dispatch an emote_set.update after an emote_set.create for non-empty personal emote sets? (see #1213877378326208603 message). I've been trying to look into an issue an it appears like it may be one of the reasons it doesn't work as expected
Discord is the easiest way to communicate over voice, video, and text. Chat, hang out, and stay close with your friends and communities.
Please elaborate?
what is the current behavior vs what u think it should be
i dont know how the events are actually dispatched so u likely know more than me when it comes to how it happens. i didnt write that code so i dont know what conditions events are dispatched under but ill weigh on if its correct or not.
What i have written is the actual event api which handles the eventual fan out, not the dispatcher.
but i am busy in the process of redoing this entire system so if u think somehting is wrong with the way it currently works ill be happy to fix it
So what's currently happening with the extension is subscribes to emote_set.* and it sometimes (hence the user reloading 5 times) only dispatches emote_set.create which overrides the existing entry (in the indexed db). It then ends up with an entry containing no emotes, since that is to be updated by the additional dispatch (emote_set.update). Since the last dispatch may or may not be executed, it either ends up with an empty emote set or not. I'd expect either that, emote_set.create never is dispatched to the user (and thus the client ends up using a local copy of the set or none) or both to be dispatched.
I'm not sure if it works any different with personal emotes since I don't have access to those but I'm sure they work similarly
fwiw it's probably fine to leave it as is, but I do understand their frustration
I still dont understand
why does emote_set.create ever get emitted
surely that is for when emote sets are created
not when someone subs to them
i always assumed it worked like this.
When you fetch a channel, it has an emote set and then u query the api for that emote set and then subscribe to updates.
so you would only get emote_set.update events.
right, this is specifically for personal emote sets

I'm not actually sure if that's normal behavior
oh, does the api emite emote_set.create for personal emote sets whenever someone times
and then its deduplicated by the event cacher
hmmm
i understand
i know whats going on now
I don't actually have access to a personal emote set (only the NNYS one or whatever) but yeah
does emote_set create not emit emotes?
emote_set.create only contains general set info (not the emotes themselves)
it's meant to be populated by the other emit
who the fuck here has a personal emote set
i want to see this in postman
wss://events.7tv.io/v3@entitlement.*<id=121903137;platform=TWITCH;ctx=channel>,cosmetic.*<id=121903137;platform=TWITCH;ctx=channel>,emote_set.*<id=121903137;platform=TWITCH;ctx=channel>,emote.*<id=121903137;platform=TWITCH;ctx=channel>
is this what i need to sub to to see personal emote set events in my chat?
that should be correct I think
this system sucks fucking big cock, ill redo it in a v4 update to get rid of all this stupid bullshit
yeah.. it's not great
<@&817085632378699878> who here uses the personal emote stuff
can someone type in my chat
i see
ok thats like insanely low iq
tldr what is happening is that we use an LRU cache.
The create event is being pushed out of the LRU and the update hasnt yet.
Therefore sometimes its possible to recieve a create event without an update because the update is still cached.
This didnt happen on the old event api because the old event api "leaked memory" in that the map would grow unconstrainedly and never uncached values. that for obvious reasons is really really retarded. so i opted not to do that.
I think the only way to fix this is to patch the extension to handle emote_set.create when there is an existing entry
to not do anything.
I see..
fixing this in the event api isnt really feasible without using too much memory.
I think it's fine to leave it as is, as it's not that big of a deal currently
its so insanely stupid that he split the update / create events.
agreed lol
update should be for modifications, create should be for create
create should have the full payload
update should contain diffs only.
exactly, at least we (hopefully) won't have to work with this much longer
the future event api will contain much less data
{
"d": {
"type": "cosmetic.create",
"body": {
"id": "62f98438e46eb00e438a6972",
"kind": 10,
"contextual": true,
"actor": {
"id": "603add00d1cf6b302cc0e28e",
"type": "SYSTEM",
"username": "*system",
"display_name": "*System",
"avatar_url": "",
"style": {
"color": 0,
"paint_id": null,
"badge_id": null,
"paint": null,
"badge": null
},
"roles": [],
"connections": []
},
"object": {
"data": {
"host": {
"files": [
{
"format": "WEBP",
"height": 18,
"name": "1x",
"static_name": "",
"width": 18
},
{
"format": "WEBP",
"height": 36,
"name": "2x",
"static_name": "",
"width": 36
},
{
"format": "WEBP",
"height": 72,
"name": "3x",
"static_name": "",
"width": 72
}
],
"url": "//cdn.7tv.app/badge/62f98438e46eb00e438a6972"
},
"id": "62f98438e46eb00e438a6972",
"name": "Moderator",
"tag": "mod",
"tooltip": "7TV Moderator"
},
"id": "62f98438e46eb00e438a6972",
"kind": "BADGE"
}
}
},
"op": 0,
"t": 1709774352547,
"s": 6
}
like jesus christ

I did notice the unnecessary amount of data while figuring all this stuff out lol
also all ids will change
to be ULIDs one extra chracter, but the api will accept object ids as input and return correct results, but results will always be ULID
neat, that sounds great

something is causing the page to jump down with 7tv extension
I noticed that too, but it I checked after disabling the extension and it was still doing it.. so I didn’t look into it
oh
so just twitch things?
perhaps.. what page is this happening on?
any live stream
but yes you're right it seems to be just twitch itself
it's almost scrolling to the goals section
that's probably what it is tbh
hmm.. interesting
channels that don't have goals listed doesn't seem to be affected
then I’d say it’s safe to assume it’s on their end
what should I do make 7tv extension builded locally work? I use chrome, I see that its trying to connect to localhost on different ports (which configured in .env.dev) but vite server is working on port 4777
should I just replace dev envs with values from .env.production?
I replaced values in the .env.dev and it helped

is there a way so i can put more headers so the api will send me just the cdn?
I have a follow up for this. since emotes like Pog are probably copyrighter under Twitch TOS, is it the case that using the 7tv API to import the emotes to a runelite plugin do not infringe the copyright policy?
@south flare
Emotes like what?
The message u replied to goes to the api docs embed
https://7tv.app/emote-sets/61d2f5b3825ae71d82bf37a8
for starters
basically any of the emote-sets
because the RuneLight head devs that would approve my plugin are claiming it would fall under distributing copyright information and they don't wanna touch it with a 20 ft pole
They are stupid there is no copyright infringement against Twitch's emotes and they have no idea how copyright law works.
Firstly we do not allow re-upload of twitch globals or twitch emotes in general. When the re-upload has no changes and is 1:1
We do allow for fair use and transformative uploads. Where they change something on the emote to make it different.
However this is not our problem and we do not care about runelite devs in the slightest.
If they want to deny developers developing stuff for their application with some bullshit about copyright that's their prerogative.
yeah fair enough, I just didn't have much ammunition to rebuttal - because I am also stupid and have no idea how copyright laws work. I'll send them the bit about not allowing 1:1 reupload, but unfortunately it's probably already dead in the water.
I appreciate you taking the time to provide some input
rebuttal?
the conclusion with felanbird
yeah that was my case. I just put some disclaimer in the plugin pointing to 7tv TOS and saying I don't support uploading copyrighted emotes blah blah.
But whatever, thanks again for taking time out of your day. woulda been a cool plugin for the osrs community but the overlords do not agree
The profile search on 7tv is not clearly available. Imo we should make it available on the home page or just make it prominent, idk. A lot of people to this day still don't know 7tv has profile search
better search in new site
global search
well at least you can say you were the one that got it added to the banned list https://github.com/runelite/wiki/commit/d9b33c340e41106dd063c60d35de9b5bb3e018c2

i can't even wrap my head around what this social dynamic is or the bizarre feeling i have observing this:
i guess it's just sheepiness basically. no offense. collaboration is hard
Strangely enough, runeline might have a really really bad copyright policy.
Like if I submit a plugin with copyright material and they allow it to be used in game. They might be on the hook for the copyright infringement
Because of their lack of a proper terms of service
isn't the company for old school runescape like extremely strict and weird about what clients are allowed to do and what they're not allowed to do
time for me to find someone uploading something of mine and sue the company
I'm not sure if entirely true, I just suspect it might be
i guess this is an issue with centralised plugin systems
Because if they actually care abt this so much, when they shouldn't even be liable.
everything is bottlenecked
For example we aren't liable for emotes uploaded to 7tv.
If someone uploaded a copyright emote and we get sued we aren't liable, it's the uploader
they've done back and forth strict and loose and now currently runelite is one of the only non-bannable clients. this is why you cannot use your own plugins and have to receive approval through their GH bureaucracy.
there is an unofficial fork of the client that allows plugins to load from anywhere. it became bannable to use it, eventually- which was arguably justified if only not a great solution to the problems (cheating) they sought to address.
i'm sure they get some cash under the table from Jagex or something
Laws are not meant to be like gotcha tricky bullshit. Copyright exists in the context of financial damages. Like, it's a way of protecting creators from suffering loss due to someone using the stolen thing instead of the original.
So with that in mind, it's really hard to imagine a sound argument that Amazon would suffer financial damage because... players could use their font in some game instead of on their website.
It sounds like psycho babble out loud- but people are scared of laws and legal leeches
and everyone clicking to death in Runescape has brain atrophy probably idk
i could be mistaken but it's important to note the original PR i mention (and they refer back to) is only even to add twitch emotes. Like, any. ('global') They're not even specifically about channels or bttv frankerz w/e. They emailed Twitch to ask for permission and since nobody ever replied, they concluded that it was forbidden 
but what does that have to do with anything?
we dont allow twitch globals on 7tv
& if twitch does not like an emote being displayed we have a working relationship with them
and they just ask us
and we will comply
oh im not disagreeing i'm js- there isn't even any user content in that particular PR IIRC. Like, the repo member just gave up because they worried it wasn't allowed after someone asked on their discord(?). like, why would Twitch have an API and and endpoint for emotes at all if they weren't meant to be used externally 
like you said, if they had any issue with it… then they could easily revoke the API key worst case scenario
there is a twitch plugin for runelite, but there are no emotes whatsoever bc of that
I thinking about making my own chatbox overlay because the existing one doesnt fit my needs. Is there any offical guide on how to add 7tv support to the chat? I found the api docs but atm I don't know how I could use the api to make it work
yeah I don't even understand the copyright liability through Runelite, considering 7TV would be the source so a properly constructed ToS for Runelite would put the liability on me, the developer or 7Tv. I think this truly sums up their decision, and the copyright excuse was just a way to rationalize it
WoW has a twitch emote add-on and there is absolutely no issue there
emote hater detected 
despite their trigger response being probably one of the rudest i've ever seen on github, (i think you guys riled this dude up... a little
) i tried my very best to thoroughly and gently explain their mistake. i'm done
(despite having no stake in runescape whatsoever) i am bothered a lot by it and think it's extra shitty because unlike OSS in general (or how someone put it earlier "decentralized plugins")- if this project refuses something, you can't just fork and make something better anymore because the game developers solely license third-party client privilege to this project. so, IMO the usual attitude of "maintainer's (unpaid) freedom of choice" is superseded by community obligation. the community has no choice beyond their "plugins" or no mods at all.
i hope this ends up getting into the github drama repo
Yeah, I came in to this enthusiastic to provide a plugin to a demographic that would very much enjoy a way to send emotes in game chat. It’s incredibly out of touch for them to imply it would “dilute game chat with garbage emotes” considering it’s a choice whether or not the plugin is installed to display them. Like you pointed out, the only history that exists was a denied PR with a vague comment history that it ‘might’ be a copy right issue to deploy and maintain a repo containing actual copyrighted assets. Maybe my approach was inappropriate, but I feel I provided a sound enough argument/solution in response to that PR as to why a plugin could exist to simply access public API that can contain emotes and anyone with eyes to read could discern is not a direct copyright infringement.
But at the end of the day it’s not that deep, and no one in this community had to go to bat for me so I at least appreciate the time taken away for that; it was validating that the response was pretty unjust. Part of me wants to bring this to the larger OSRS community (at least Reddit) to get their thoughts. But that could either be met with support or “who cares”.. lol
the project owner replied (and reopened my issue) and said that since an API is available they will reconsider allowing [some] plugin for at least global emotes
:
maybe 7tv could be toggled on from an off default in the future, then. though not without persuasion and creative implementation. cheers and good luck @steady copper
it seems this is the case.
What was ur issue?
this one ^
step 1. make a popular plugin for opensource osrs client runelite
step 2. use copyrighted material in the plugin and dont let the mods know
step 3. sue runelite for copyright infringement
step 4. 
^
because it has to be YOUR content
not just any copyrighted content (If you want to actually make money)
Step 1) Make a Nintendo related plugin
Step 2) Narc it to Nintendo
hello, whats the way to get a static image of a gif with direct link?
before it used to work with the "1x_static.png" line at the end everytime, 100% of the time, now the api takes randomly like 10 seconds to process the request
it does work, but seems so random when it works and when it doesnt
its crazy, it takes so much time to load the png version lol 
@south flare are you able to look at https://github.com/SevenTV/Extension/pull/1016
Proposed changes
When opening up a stream, historic messages would not always display whenever the chat was loaded in. If the chat module was loaded before the historic messages were loaded in, it ...
neat
just curious, why can u not just use animated ones?
its for a game in unity, and unity doesnt support moving images (or at least, doesnt support an easy way to show them)
minecraft can't display moving images either, but in my mod I read the webp or gif file and put every frame with its delay in a texture object and then update every rendered emote every frame
https://github.com/faluhub/TwitchEmotes/blob/1.20.3-1.20.4/src/main/java/me/falu/twitchemotes/emote/texture/TextureReader.java
https://github.com/faluhub/TwitchEmotes/blob/1.20.3-1.20.4/src/main/java/me/falu/twitchemotes/emote/texture/EmoteTextureHandler.java#L72
I know the code itself won't help you bc it's java and a different engine but I hope this can serve as a base :P
cant be bother, i extensively research this bug and i mentally give up trying
i just dont care about putting gifs in the game
not worth the effort
these are files right?
it just looks like an object to me with meta deta without the file
lets say i had the file named 4x.webp as a variable, would that be the file?
or do i just do
fetch(emoteUrl)
.then(response => response.blob())
.then(blob => {
})
.catch(error => console.error('Error fetching the image:', error));

oh do server side
the cdn should probably enable CORS 
but what do you need a blob for?
just set the img src and you won't need cors for that
to turn it into a file
i need the file
cause im trying to make a 7tv to discord thing
you'd have to proxy that if you need it client-side
or kindly ask troy to enable cors 
No I’m gonna do server
But I was testing it out on client to see if I can get the file
then test it in a node environment next time
yes
Why doesn’t client work tho
Doesn’t that mean I need a web certificate?
Or does that not matter if I do server side
why would you need a web certificate if you're doing a discord bot
Yeah I’ll do that later but do I need an ssl to get the emote on server side?
no
Ok thanks
you should be able to contact your api with plain http
then it can do whatever request you want server-side and respond to the client
I can, I thought the reason why I couldn’t get the file is cause of I was on http
In case you are working on getting 7tv emotes synced to discord
note that discord has an internal rate limit of 20~25 emoji uploads per hour
make multiple bots
@strange owl is there some experiment which bugs chat
only shows 1 message
also i think the issue was no fixed with ur patch
it worked initially but no longer works
no clue, I've heard about this before but I was never actually able to reproduce
#help-old message
#general message
are these the same as the video?
okay, I'll look into it
thanks
Okay, so I was able to replicate similar (if not the same) behavior. However, I'm not sure if the extension has any impact on the chat's behavior.. It seems like the chat breaks whenever 7TV fails to load in. This only happens when FFZ is also enabled (and perhaps expecting 7TV to load?).
I must say, I haven't looked at FFZ yet
hence why the images / video all only show an FFZ badge but no 7TV badge in the nav
what ffz settings you have on
fresh install
cant seem to reproduce that issue consistently
also from troy's video
is it just an ffz thing or twitch thing?
7tv is not enabled there
it’s easier to replicate in a build that fails on purpose. that’s what I was using
so what I’m assuming is that it should have loaded but has failed to do so
I must add, FFZ did load in the 7TV profile
who does PR review for browser extension? my PR is just one new line 
if it is merged, how long until it will be released in the stable version of the chrome extension?
Perhaps ping troy with the pr
it would be silly if to do a bunch of get requests on the server instead of client
7tv site wont load and chrome extensions not working
cleared twitch cache in develeper mode too
are u talking about when you're running them locally?
nah just the normal site and the add-in wasnt working. turns out there was an issue with my ISP so its wasnt on 7TV side
why did u say it here tho
just the wrong place my b
Hello all is it normal the https://7tv.io/v3/emotes endpoint just doesn’t seem to work ?
https://7tv.io/v3/emotes?query=xdd just returns a single blank emote data:
[{"id":"","name":"","owner":null,"visibility":0,"visibility_simple":null,"mime":"","status":0,"tags":null,"width":null,"height":null,"urls":null}]
If i understood correctly the v3 is in active dev, is there a working endpoint exposed somewhere ?
the current rest api for 7tv is broken
if you're trying to search for emotes you can use the gql endpoint that's also used by the website
aka
query SearchEmotes($query: String!, $page: Int, $sort: Sort, $limit: Int, $filter: EmoteSearchFilter) {
emotes(query: $query, page: $page, sort: $sort, limit: $limit, filter: $filter) {
count
items {
id
name
state
trending
owner {
id
username
display_name
style {
color
paint_id
__typename
}
__typename
}
flags
host {
url
files {
name
format
width
height
__typename
}
__typename
}
__typename
}
__typename
}
}
and
{
"filter": {
"animated": false,
"aspect_ratio": "",
"case_sensitive": false,
"category": "TOP",
"exact_match": false,
"ignore_tags": false,
"zero_width": false
},
"limit": 32,
"page": 1,
"query": "asd",
"sort": {
"order": "DESCENDING",
"value": "popularity"
}
}
for the variables
oh alright thanks a lot, is this endpoint bound to evolve heavily or is it stable enough to be used in a project ? Also what is the URL ?
the v3 version of the endpoint itself wont change but as the entire project is going to be rewritten, there's probably gonna be a better, nicer, easier to implement search in the future
alright thanks a lot ! (very cute cat you have there)
thanks, its not my cat
is this real
maybe
@south flare can you take a look at https://github.com/SevenTV/Extension/pull/1020 ?
LGTM
But I don't know if they are accepting new changes in the extension
I did have some of my previous fixes merged, but you're right
Would be great if it included pinned messages 
unsure if (and rather unlikely) this will get merged so most likely not worth it. It should be supported in the rewrite however
Aaah
Thanks
I'll merge it
is the eventapi still using the old one or the new one in the monorepo?








good one


old dev
i like his idea
I need a domain name and company to get a web certificate
help