AxelChat icon indicating copy to clipboard operation
AxelChat copied to clipboard

feature NekoLive - platform im making from ground up

Open NekoSuneVR opened this issue 1 year ago • 38 comments

nekolive going be build 2 types, and going be open source one of types.

start of open source going have few basic websocket and few more.

for non open source, going have alerts, emojis, and few stuff not going be open source.

but find info at https://nekolive.co.uk

I forward info / document tomorrow for websocket endpoints callout and path. just little late here do document.

main thing axelchat connect our non open source version that currently live at there and don't have logo and etc yet.

NekoSuneVR avatar Nov 10 '24 18:11 NekoSuneVR

Okay, you can send all non-public information here [email protected]

3dproger avatar Nov 10 '24 18:11 3dproger

Okay, you can send all non-public information here [email protected]

not private info since no one cant run bots on it because that secured

Endpoint: wss://ws.nekolive.co.uk/channel/CHANNELNAMEHERE

You have to call out `{"type":"login","username":"nekoanoy"}` after connects to connect channel as anonymously

that will respond to `{"type":"system_message","message":"Welcome to the chat, Anonymous-46128!","username":"NekoAI","roles":{"bot":true,"staff":true}}`


it will pull out this after fully connected `{"type":"user_list","users":["Anonymous-46128"],"roles":[]}`


as list users connected and updates when they leave or join

and need to keep pining server with `{"type":"ping"}` and the response be pong back

Message received is `{"type":"chat_message","message":"hello","username":"nekosunevr","channel":"nekosuneai","roles":{"guest":false,"streamer":false,"dev":false,"admin":true,"subscriber":false,"staff":false,"moderator":false,"bot":false}}`

with user roles who it is

follower alert is `{"type":"alert_follower","message":"nekosunevr Has followed your channel"}` with `{"type":"chat_message","message":"nekosunevr Has followed your channel","username":"NekoAI","roles":{"bot":true,"staff":true}}` as message too

subscriber that is still WIP: `{"type":"alert_subscriber","message":"nekosunevr Has Subscribe to your Channel Tier 1"}`

with message `{"type":"chat_message","message":"nekosunevr Has Subscribe to your Channel Tier 1","username":"NekoAI","roles":{"bot":true,"staff":true}}`

and for raid message `{"username":"NekoAI","type":"raid_trigger","from":"nekosunevr","viewers":0,"message":"nekosunevr has Raided you with 0 Viewers!"}`

with `{"username":"NekoAI","type":"system_message","message":"nekosunevr has Raided you with 0 Viewers!","roles":{"bot":true,"staff":true}}` message


emojis are pulled from `{"type":"chat_message","message":"<img src=\"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_dc904508ff794cca84cdcf9e0ffa9172/animated/light/3.0\" alt=\"nekoheart\" class=\"chat-emote\" width=\"20\" height=\"20\" />","username":"nekosunevr","channel":"nekosuneai","roles":{"guest":false,"streamer":false,"dev":false,"admin":true,"subscriber":false,"staff":false,"moderator":false,"bot":false}}`

but i am going keep as that and pull emojis into this for overlay `{"type":"chat_emojis","url":"https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_dc904508ff794cca84cdcf9e0ffa9172/animated/light/3.0", "channel": "nekosuneai"}`

but emojis still in WIP sector

there be more to come soon i need keep you posted

and for people who abuse the system, they can't. because they can't post websocket less been actual whitelisted domain that is 100% custom list

so only they are able post getting a bot token for bot use

but that's WIP too and only they can read the channel that's it but can't post.

but there are a few features not fully out but the basic stuff is so far.

i am work round making a ChatLib for this that I used made for vimm back then just rebuild fork of old lib

NekoSuneVR avatar Nov 11 '24 18:11 NekoSuneVR

can test it over at https://nekolive.co.uk/channel/nekosuneai

and for API endpoint https://nekolive.co.uk/api/channels/stream/nekosuneai all need and detects if they streaming on twitch or directly from "platform":"NekoLive" or "platform":"Twitch" and etc that going add Trovo soon and hopely Kick if Kick allowing my Whitelisted IP

NekoSuneVR avatar Nov 11 '24 18:11 NekoSuneVR

any update son this, been wile asked going add.

NekoSuneVR avatar Jan 15 '25 14:01 NekoSuneVR

Hi! Sorry I haven't done this yet as I'm still working on urgent tasks. But I still remember that it needs to be done

3dproger avatar Feb 24 '25 06:02 3dproger

its okay, just wondering if did forgot or not. got plenty time and working on docs soon. so can understand how works later on. just been busy reworking my AI atm for platform aka self custom module llm gpt atm

NekoSuneVR avatar Feb 24 '25 21:02 NekoSuneVR

Hi!

I added NekoLive to the 0.38.5-beta update. You can download it and try it: https://github.com/3dproger/AxelChat/releases/tag/0.38.5-beta

Image

However, for some reason sometimes even after successfully connecting and receiving message {"type":"system_message","message":"Welcome to the chat, Anonymous-46128!","username":"NekoAI","roles":{"bot":true,"staff":true}}, the rest of the messages do not arrive. Sometimes messages also do not arrive on the NekoLive website, so I can suspect that something is wrong with the backend.

P.S. Since I couldn't find any logo on the NekoLive website, I took your avatar for NekoLive icon in AxelChat. If you want me to replace the logo, you can send it to me

3dproger avatar Mar 04 '25 05:03 3dproger

yeh i did mention there is no logo for it yet because haven't got one for it still since no one wasn't able make one and chat should be working just they cant post in there only get less from site directly can post

NekoSuneVR avatar Mar 05 '25 08:03 NekoSuneVR

system_message = system message like host message and what looking for I think is chat_message let me check rq

NekoSuneVR avatar Mar 05 '25 08:03 NekoSuneVR

so what need look for messages with chat_message that's when user messages type at

for alerts covered as

donations = where donations message happens but since set to chat_message aswell because of sending chat, I be changing that soon to chat_donations

for follower its follow

for sub subscribe

others like raid

raid_start, raid_countdown, raid_redirect, raid_trigger

and mod stuff mod_notification

and standard system is system_message where main host messages at

all endpoints type in websockets

NekoSuneVR avatar Mar 05 '25 08:03 NekoSuneVR

Hi! I think I figured it out. The problem was that when connecting to WebSocket NekoLive, you need to pass the exact channel name (username) including the case. And AxelChat by default in such cases leads to lower case. But now I have fixed it. Although for other users it may be problematic since they can specify the channel name with a mistake in the case. To solve this problem at least to some extent, I added the following note:

Image

These types of messages can now be read by AxelChat:

system_message
chat_message
raid_start
raid_countdown
raid_redirect
raid_trigger
alert_follower
alert_subscriber
follow
subscribe
chat_donations
chat_donation
mod_notification

But I couldn't check all of them but AxelChat will try to read and display them. If some messages are displayed in AxelChat not as you would like then please send examples of how these messages are displayed on your NekoLive site and in what form they come to WebSocket.

So, the current update with working NekoLive can be downloaded here: https://github.com/3dproger/AxelChat/releases/tag/0.38.8-beta

3dproger avatar Mar 24 '25 22:03 3dproger

By the way, I didn't find a way to determine the user's avatar. But I found that by request https://nekolive.co.uk/api/channels/stream/AxelChatDev you can determine the background image in the bg field:

{
    "live": false,
    "viewers": 0,
    "title": "Some title",
    "game": "Grand Theft Auto V",
    "image": "https://images.igdb.com/igdb/image/upload/t_cover_big/co66qs.webp",
    "bg": "https://nekolive.co.uk/uploads/AxelChatDev/bg.png?v1742942076683",
    "uptimeString": "offline",
    "uptimeNum": "offline",
    "followerCount": 0
}

If you manage to add a link to your avatar here I will make it so that it is displayed in AxelChat

3dproger avatar Mar 25 '25 22:03 3dproger

i havent worked on avatar endpoint on it but i add that next update, just been busy fixing twitch api after conflict token issues.

NekoSuneVR avatar Mar 25 '25 23:03 NekoSuneVR

but i will test beta see works for you

NekoSuneVR avatar Mar 25 '25 23:03 NekoSuneVR

partly wont see message, is there way i can debug it help u on this? because connects but cant read channel and here it is there very wierd

{"type":"chat_message","message":"aaaa","username":"nekosunevr","channel":"KuroKarin","roles":{"guest":false,"streamer":false,"dev":false,"admin":true,"subscriber":false,"staff":false,"moderator":false,"bot":false}}

Image

Image

Image

Image

NekoSuneVR avatar Mar 25 '25 23:03 NekoSuneVR

Image

but it is connected for one but doesnt read chat

NekoSuneVR avatar Mar 25 '25 23:03 NekoSuneVR

just added avatarUrl now was quick add in

Image

NekoSuneVR avatar Mar 26 '25 00:03 NekoSuneVR

just added avatarUrl now was quick add in

Image

Great! I'll try adding this to the AxelChat

3dproger avatar Mar 26 '25 06:03 3dproger

Image

but it is connected for one but doesnt read chat

This is due to the fact that you need to specify the channel not as kurokarin, but as KuroKarin (pay attention to the case of the characters). Your service perceives channel names as case-sensitive and the same names but with different cases are defined as different channels. Plus, even if you specify a non-existent channel, your service will allow AxelChat to connect to it. With all this, AxelChat cannot determine whether it has connected to an existing channel or not. Unfortunately it is impossible to fix this on my side. It would be good to fix this on your side, since this can lead users to a dead end

3dproger avatar Mar 26 '25 06:03 3dproger

i easy do that i have look chat node. I'm might set as all lowercase default on chat node and I put error in say no channel found and disconnect them

NekoSuneVR avatar Mar 26 '25 06:03 NekoSuneVR

AxelChat begins to understand that it has successfully connected after it receives the first message of type system_message. This message comes even if AxelChat connects to a non-existent channel or with the wrong case in the name. That's the whole problem. A good solution would be to not allow establishing a WebSocket connection when trying to connect to a non-existent channel, or at least to have a system message inform that such a channel does not exist. It would also be good if there was no need to care about the case in the channel name

3dproger avatar Mar 26 '25 06:03 3dproger

i easy do that i have look chat node. I'm might set as all lowercase default on chat node and I put error in say no channel found and disconnect them

Yes, that's what we need 😄

3dproger avatar Mar 26 '25 06:03 3dproger

there ago fixed channel not defined

Image

even if comes with Cap or lowercase it still detect but if added 111 at end now says channel not found

NekoSuneVR avatar Mar 26 '25 07:03 NekoSuneVR

Done, added avatars and it is possible to enable and disable system messages: https://github.com/3dproger/AxelChat/releases/tag/0.38.9-beta

3dproger avatar Mar 26 '25 08:03 3dproger

now i need do fix this up

Image emotes

NekoSuneVR avatar Mar 26 '25 08:03 NekoSuneVR

hey @3dproger add endpoint for chat_emotes thats is a raw html emote in message for emote section so shows pure emotes but still chat normal too

NekoSuneVR avatar Mar 26 '25 08:03 NekoSuneVR

after that all done far i see be a good testing phase

NekoSuneVR avatar Mar 26 '25 08:03 NekoSuneVR

Image

NekoSuneVR avatar Mar 26 '25 08:03 NekoSuneVR

and need fix streamer cant see they own message some channels because when i connect to mine doesnt show my chat

NekoSuneVR avatar Mar 26 '25 08:03 NekoSuneVR

so partly Cap name still doesnt work can you enforce cap name into lowercase when they enter cap name and can you change name into displayName since them are upper case names when username just general username please

NekoSuneVR avatar Mar 26 '25 09:03 NekoSuneVR