SneedChat Complaint Thread

  • 🏰 The Fediverse is up. If you know, you know.
  • Want to keep track of this thread?
    Accounts can bookmark posts, watch threads for updates, and jump back to where you stopped reading.
    Create account
I was doing some messing around userscripts and managed to cut down bandwidth and memory usage a lot. I intentionally broke the tmp-chat-user <template> like this
HTML:
<template id="tmp-chat-user">
    <div class="activity">
        <a class="avatar" aria-hidden="true" src="" alt=""></a>
        <a class="user"></a>
    </div>
</template>
to prevent user avatars from loading on the user list on the right-hand side, since it no longer recognizes the avatar node as an image it must lazy load.

Of course, what I did here is a weird hack to block loading the images (without generating a shitload of errors from removing elements), but it illustrates how loading all those avatars in the user list (especially in gen chat) uses way more resources than it's worth. Without my patch, in the network tab, I would see on the bottom that the total amount of data transferred would quickly climb >100 MB within a few minutes. With my patch, it has barely climbed above 10 MB after 15 minutes.

Please consider removing the avatar embeds in the user list or an option to disable it (as long as an <img> doesn't get its src set in the DOM). This not only saves users memory and bandwidth, but it saves you a considerable amount of bandwidth too. Win-win.
 
Last edited:
I was doing some messing around userscripts and managed to cut down bandwidth and memory usage a lot. I intentionally broke the tmp-chat-user <template> like this
HTML:
<template id="tmp-chat-user">
    <div class="activity">
        <a class="avatar" aria-hidden="true" src="" alt=""></a>
        <a class="user"></a>
    </div>
</template>
to prevent user avatars from loading on the user list on the right-hand side, since it no longer recognizes the avatar node as an image it must lazy load.

Of course, what I did here is a weird hack to block loading the images (without generating a shitload of errors from removing elements), but it illustrates how loading all those avatars in the user list (especially in gen chat) uses way more resources than it's worth. Without my patch, in the network tab, I would see on the bottom that the total amount of data transferred would quickly climb >100 MB within a few minutes. With my patch, it has barely climbed above 10 MB after 15 minutes.

Please consider removing the avatar embeds in the user list or an option to disable it (as long as an <img> doesn't get its src set in the DOM). This not only saves users memory and bandwidth, but it saves you a considerable amount of bandwidth too. Win-win.
Oh that's actually useful, no wonder why adding lazy didn't work in the HTML. Can you do me a favor and add lazy to the template or into the injection and let me know if that helps with memory cleanup
 
Oh that's actually useful, no wonder why adding lazy didn't work in the HTML. Can you do me a favor and add lazy to the template or into the injection and let me know if that helps with memory cleanup
To clarify, do you mean modify it like this
HTML:
<template id="tmp-chat-user">
    <div class="activity">
        <img class="avatar" aria-hidden="true" src="" alt="" loading="lazy">
        <a class="user"></a>
    </div>
</template>
where the loading attribute is already set before userActivityTouch uses the template?

If so, this doesn't appear to make any noticeable difference in my testing—bandwidth or memory cleanup. Without any of my edits, I can see in firefox's network tab that the avatar requests have always had a lazy-img initiator, suggesting they are technically going through the lazy loading mechanism, but they still end up getting downloaded regardless of whether they're currently on-screen. This behavior, of course, defies the key principle of the lazy loading mechanism for seemingly no good reason. What you're doing should work for all intents and purposes, and I can't see a single reason why it isn't.

Image loading appears to start the moment the <img> element is added to the DOM (e.g. appended as a child somewhere), so setting the lazy loading in userActivityTouch like you did should normally work fine.

I wish I had a better answer than forgoing the image nodes entirely. Perhaps something where mousing over a user in the list dynamically loads a popup with their user card (including avatar)?

Edit: For convenience, here's the function I use to edit it:
JavaScript:
function patchLeak() {
  const userTemplate = document.querySelector("template#tmp-chat-user");
  userTemplate.content.querySelector("img.avatar").outerHTML = `<img class="avatar" aria-hidden="true" src="" alt="" loading="lazy">`;
}
Editing <template>s is limited because of their content model, but setting outerHTML within its contents works like a charm for editing its DocumentFragment.
 
Last edited:
At the risk of kicking another hornet's nest, I was looking at the code snippet from chat.js below. I noticed that editValue here gets set to the rawMessage attr in the given message node, and if rawMessage is blank, it falls back to textContent:
JavaScript:
var messageEdit = function messageEdit(messageEl) {
    messageEditReverse();
    messageEl.classList.add("chat-message--editing");
    var contentEl = messageEl.querySelector(".message");
    messageEl.originalMessage = contentEl.outerHTML;
    var formEl = document.getElementById("new-message-form").cloneNode(true);
    formEl.id = "edit-message-form";
    var inputEl = formEl.querySelector(".chat-input");
    inputEl.id = "edit-message-input";
    var editValue = typeof messageEl.rawMessage === "string" && messageEl.rawMessage.length ? messageEl.rawMessage : contentEl.textContent;

    // NOTE: Trimming rest of function for space
};
I also noticed the rawMessage attribute is always empty (I assume this is a temporary fix sort of thing). If I spin up my own WebSocket in my chat userscript and set rawMessage for any messages that are sent by my user ID, I am able to make message edits work in a way that doesn't strip away all bbcode tags (which it normally does, as of writing).

As I'm sure you're well aware, the raw message included in the json received by the socket has characters escaped with ampersands, so setting rawMessage would cause those escapes to show up in the edit field. But I came up with a dumb little trick to address that:
JavaScript:
// A weird hack to unescape ampersand characters in raw messages.
var txtArea = document.createElement("textarea");
function unEsc(str) {
    txtArea.innerHTML = str;
    return txtArea.value;
}

This works perfectly fine in my testing. I only bring it up because the additional socket is less stable than the normal one, so it would be nice to have the raw message set at least somewhere in the DOM by default instead of hacking around it or intercepting sockets.
 
1769522329695.png

I've been using chyat in split dick (kraut) mode for a month or so now , I usually leave it on overnight and sometimes the general chyat just breaks a simple F5 sometimes fixes it but sometimes I have to close the tab then open it.

Then there's the problem of having to refresh it because of the "reconnecting, or you are not a member of this chat etc" message again a F5 fixes it. Also have chyat on multiple computer which leads to another F5 on the computer I'm currently on.

I believe most of these issues are because I use chyat on multiple computers, so can't really say that it is a bug tbh.
Based chat post @Benzo Samurai

Rare double disconnect:
1769527639441.png
 
Last edited:
Then there's the problem of having to refresh it because of the "reconnecting, or you are not a member of this chat etc" message again a F5 fixes it. Also have chyat on multiple computer which leads to another F5 on the computer I'm currently on.

I believe most of these issues are because I use chyat on multiple computers, so can't really say that it is a bug tbh.
If you're referring to the "You cannot join this room." messages you get occasionally on reconnect, this has to do with a session cookie:
Chat authentication depends on a short-lasting session token, xf_session. This session token doesn't affect whether your browser stays signed in to the site, but it's used for authentication as long as your current session is active. When this session token expires, the site will assign your browser a new one, based off other longer lasting account-related cookies you have set, when you load a new page on the site (e.g. the home page).

What I do here is solve the kiwiflare challenge, request the home page using the existing cookies the chat client is provided, and use the new xf_session cookie from the HTTP response headers to reconnect to chat and authenticate successfully.
I had to write a kiwiflare solver to address this for my chat client.

To sum up: If your xf_session is expired, you're issued a new one upon requesting a new page on this site.
You could maybe set up some tab in the background that just refreshes some thread page every few hours. Or if you're good with javascript, you can set up an auto refresh any time the cannot join message shows up.
 
literally didnt even do anything just didnt give it to retarded pressure to dox myself wtf. never targetted individual ppl. just trying to chat along with people. DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEING CALLED SOCK PUPPET EVERY DAY
DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEEN CALLED TRANNY EVERY DAY
DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEEN CALLED UNDERAGED EVERY DAY
PEOPLE MAKING FAKE SCREENSHOTS OF MY POSTS
PEOPEL SAYING INAPPROPIATE SEXUALY CHARGED THINGS TO ME
PEOPLE CALLING ME RETARDED AND WHATEVER ELSE YOUR RETARDED USERS BREAK RULE 1) HAVE COMMON COURTESTY THE WHOLE DAY AND I GET BANNED

also of everyone im the only one that treat ppl like aster and brutus like normal human beings when they came to chat to vent while everyone else made fun of them. you dont even know what goes on in your own chat. retarded fish eye retard

Ps: anyone putting autistic tags or lol tags on my posts: ur a tranny until u post ur DICK as proof that u still have one along with ur ID and monthly salary THANK YOU FOR YOUR ATTENTION ON THIS MATTER

Also i understand it im not very good at chatting to people and that I was hated etc and I said everytime its fine with me hate me I can take it. But im not a fucking tranny or sock puppet & im not going to say nothing when ppl say that first of all because i fucking despise trannys. Actually idgaf about people attacking me but making fake screenshots and lying constantly saying that I said something that I didnt is just fucking dishonest. Xavier ur a fucking loser and so is makoto or whatever your name is for being dishonest liars. Bad people

Btw im adding to this post with edit every time a thought comes up instead of adding a new reply just so im not spamming it thats how fucking considerate n nice i can be

LATEST KIWI FEATURE SO IT CAN BE FULLY COMPLIANT WITH UK LAW: UPLOAD UR ID TO THE INTERNET OR GET FUCKING BANNED hypocryt NIGGER
 
Last edited:
literally didnt even do anything just didnt give it to retarded pressure to dox myself wtf. never targetted individual ppl. just trying to chat along with people. DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEING CALLED SOCK PUPPET EVERY DAY
DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEEN CALLED TRANNY EVERY DAY
DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEEN CALLED UNDERAGED EVERY DAY
PEOPLE MAKING FAKE SCREENSHOTS OF MY POSTS
PEOPEL SAYING INAPPROPIATE SEXUALY CHARGED THINGS TO ME
PEOPLE CALLING ME RETARDED AND WHATEVER ELSE YOUR RETARDED USERS BREAK RULE 1) HAVE COMMON COURTESTY THE WHOLE DAY AND I GET BANNED

also of everyone im the only one that treat ppl like aster and brutus like normal human beings when they came to chat to vent while everyone else made fun of them. you dont even know what goes on in your own chat. retarded fish eye retard

Ps: anyone putting autistic tags or lol tags on my posts: ur a tranny until u post ur DICK as proof that u still have one along with ur ID and monthly salary THANK YOU FOR YOUR ATTENTION ON THIS MATTER

Also i understand it im not very good at chatting to people and that I was hated etc and I said everytime its fine with me hate me I can take it. But im not a fucking tranny or sock puppet & im not going to say nothing when ppl say that first of all because i fucking despise trannys. Actually idgaf about people attacking me but making fake screenshots and lying constantly saying that I said something that I didnt is just fucking dishonest. Xavier ur a fucking loser and so is makoto or whatever your name is for being dishonest liars. Bad people

Btw im adding to this post with edit every time a thought comes up instead of adding a new reply just so im not spamming it thats how fucking considerate n nice i can be
I told you to facedox but you didn't listen to me.
 
Alright im going to sleep sorry for yelling. Im sure this whole thing will be resolved by tomorrow morning SURELY
1 more thing: u know what ive calmed down its fine ban me all u want just change the fucking reason because im not a fucking TRANNY. Ban me for yelling in chat or ban me for not getting along with other people
 
literally didnt even do anything just didnt give it to retarded pressure to dox myself wtf. never targetted individual ppl. just trying to chat along with people. DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEING CALLED SOCK PUPPET EVERY DAY
DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEEN CALLED TRANNY EVERY DAY
DIDNT COMPLAIN OR ATTACK PEOPLE OVER BEEN CALLED UNDERAGED EVERY DAY
PEOPLE MAKING FAKE SCREENSHOTS OF MY POSTS
PEOPEL SAYING INAPPROPIATE SEXUALY CHARGED THINGS TO ME
PEOPLE CALLING ME RETARDED AND WHATEVER ELSE YOUR RETARDED USERS BREAK RULE 1) HAVE COMMON COURTESTY THE WHOLE DAY AND I GET BANNED

also of everyone im the only one that treat ppl like aster and brutus like normal human beings when they came to chat to vent while everyone else made fun of them. you dont even know what goes on in your own chat. retarded fish eye retard

Ps: anyone putting autistic tags or lol tags on my posts: ur a tranny until u post ur DICK as proof that u still have one along with ur ID and monthly salary THANK YOU FOR YOUR ATTENTION ON THIS MATTER

Also i understand it im not very good at chatting to people and that I was hated etc and I said everytime its fine with me hate me I can take it. But im not a fucking tranny or sock puppet & im not going to say nothing when ppl say that first of all because i fucking despise trannys. Actually idgaf about people attacking me but making fake screenshots and lying constantly saying that I said something that I didnt is just fucking dishonest. Xavier ur a fucking loser and so is makoto or whatever your name is for being dishonest liars. Bad people

Btw im adding to this post with edit every time a thought comes up instead of adding a new reply just so im not spamming it thats how fucking considerate n nice i can be

LATEST KIWI FEATURE SO IT CAN BE FULLY COMPLIANT WITH UK LAW: UPLOAD UR ID TO THE INTERNET OR GET FUCKING BANNED hypocryt NIGGER
1743952656073752.gif
 
Alright im going to sleep sorry for yelling. Im sure this whole thing will be resolved by tomorrow morning SURELY
1 more thing: u know what ive calmed down its fine ban me all u want just change the fucking reason because im not a fucking TRANNY. Ban me for yelling in chat or ban me for not getting along with other people

Shut the fuck up, tranny
 
ur all just followers. Losers who pile on someone because thats the thing right now. Half of u autists putting tags on my posts have never even read my chats. CATTLE! Shout out to cold steel brand rep you are my original hater, I dont blame you. Soon null will read this n realize its all a big mistake. Its ok josh u dont have to write an apology i get it ur just getting complaints from a bunch of ppl no need to apologize. You have one lazy fish eye on kiwi and the other on watching tranny porn u dont have time to look at chat
 
Back
Top Bottom