How to 'list users' in Twitch's IRC reddit / irc ---------------------------------------------------------------------- Infiniteux · 2017-04-03 12:23 If someone joins the channel it will give you a message saying so (after 10 seconds, normally), but I am wondering how I can go about in trying to pull the userlist from the channel. I.e getting it instantly, instead of the waiting for a user to join and trigger the 10 second delay. Another helping question is: What command does the HexChat client use when you type /userlist, cause this will pull the userlist (Tho I don't know if it just pulls the "locally stored list", or if it actually pulls from the server), but I can't seem to find anything online that says what the command is. Have spent hours online digging through documentations but haven't found anything that would help in my case. ;( Any help is much appreciated :) ---------------------------------------------------------------------- Infiniteux · 2017-04-03 12:56 By doing some experimentation it seems like the HexChat '/userlist' is just printing the local kept userlist. I am also wondering how the HexChat gets the locally kept userlist tho, as it contains people who have already joined. Now the basic question is just: How to get the list of users in the channel, since Twitch's IRC doesn't have full support for the IRC protocol or w/e ---------------------------------------------------------------------- Infiniteux · 2017-04-03 13:06 I also noticed just now that HexChat goes and 'WHO' in every channel you have in autojoin (and 'WHO' is not a recognized command in irc.chat.twitch.tv, therefore I noticed it)(While it is calling WHO, it has 0, Zero people in the Userlist, and only after all of the WHO calls are done, it will retrieve the userlist, which I assume is from some sort of command call to the server) ---------------------------------------------------------------------- jazpermo · 2017-04-03 13:15 So Twitch IRC is a hybrid of the IRCD protocol. It's not going to work exactly like you want it to. On channels with large amounts of viewers they completely disable join/part to cut down on the volume of messages. With that said you can issue a /raw command like this: /raw CAP REQ :twitch.tv/membership that will tell twitch to send JOIN/PARTS. Sometimes those JOIN/PARTS are throttled and sent every XX seconds in bulk. For more info: https://dev.twitch.tv/docs/v5/guides/irc/ ---------------------------------------------------------------------- aperson · 2017-04-03 13:56 There are scripts for hexchat to cover up some of these warts. ---------------------------------------------------------------------- Infiniteux · 2017-04-03 13:59 If you'd bother to read. I have already read through that documentation and it says nothing about pulling/fetching a user list. I am already using all of the CAP's for twitch (membership, tags and commands), and they will only tell you when a user join (and leaves), but that implies that your userlist is only taken from the moment you join and forward, i.e not including already joined users. But HexChat is doing something that does includes all users in chat, i.e it has some command to do this, and this is the main Q, which command is that. ---------------------------------------------------------------------- jazpermo · 2017-04-03 14:08 Good luck in life. You're a joy. ---------------------------------------------------------------------- Infiniteux · 2017-04-03 14:12 'Good luck in life', You said nothing new in your comment. You said some bullshit that had nothing to do with the matter, then refer to a documentation that does not explain how to do what I wanted to do... wtf, ---------------------------------------------------------------------- Saber_UK · 2017-04-03 14:19 I wouldn't even call it a hybrid. Its a broken spec-violating mess which should be taken out back and shot. ---------------------------------------------------------------------- Infiniteux · 2017-04-03 19:22 An update to the story making the question dead. After using WireShark to detect which command HexChat was sending in order to get the user-list, I have come to the conclusion that it does this in one of two way, (determined by if you recently closed the application and opened it again). The first method is uses is it simply connects to the Twitch IRC server, and after joining the channel, it will give you the list of people already in it. (This will only happen if you haven't been in the channel for a while). The second method it uses is to open the log from the last session (this happens when the client was recently closed and opened within a short while, as stated in the start (I don't have the time/timer of how long the 'wait' is in order to get a new 'refresh' of user-list)). If it uses the log from last session it will wait for the 'normal' twitch event to say if someone joined or left (but it seems to be correct on who has left meanwhile, tho my client doesn't get a such call). So how do you fetch/pull the user-list? It seems to be as simple as you can't. When you enter the channel, if you're lucky it will tell you the username of everyone in the channel, in-case you aren't lucky you will have to wait for people to join/leave the channel in-order to know who is there. And when you close the client/bot you should write to a log-file which tells you who is in the channel, and when you enter the channel again you should read the log-file and continue going with the preconception that all of the same people are in there. (This may/will create ghosts, i.e it will tell you that some people are there when they are not and it will tell you that some people aren't there when in-fact they are present) (I would imagine that the ghost could disappear if you pinged them, and when no reply you can safely remove them from your list, but I don't think Twitch has support for pinging people, only the main server, it seems). (This preconception should not be used if you are lucky and the server actually tell you the entire list of who is present, tho it seems like there is no way of knowing if the server tells you the entire list, or if it just say one 'new' person joined, and you should). If the channel is one of the bigger one, and the server tells you a big amount has joined in about the same time as you entered the channel, I would take the bet and say that it told you the entire user-list, tho this can be a mistake, but it can be fixed by adding people to your locally stored user-list when the people talk. If you have the bot/client on for over 24hour in the same channel it would most likely have the entire user-list. On the fetching user-list in real-time, or pulling a user-list from the server. It seems very likely that you can't, you have to go the hard way of getting cached and delayed joined/left calls. /* This posted in-case someone else comes and wonders about the same thing as I did */ ---------------------------------------------------------------------- skyhighwings · 2017-04-04 05:24 According to https://dev.twitch.tv/docs/v5/guides/irc/, with the membership capabilities you can send NAMES. is this not the case? ---------------------------------------------------------------------- Infiniteux · 2017-04-04 09:25 No, this is sadly not the case.