I have been using Jitsi for a bit now and I really like it. I'd like to
help out a bit so I've been looking into IRC support for Jitsi and been
trying some things out. I'd like your feedback w.r.t. this effort.
Anything that I should look out for, hints, heads up for developing
changes (maybe around Multi User Chat support) or whatever comes to mind.
I have been playing around with the code a bit before posting this
message because I wanted to familiarize with the code base before
actually "announcing" anything. If it turns out that the approach is
going the wrong way, that would be too bad, but basically my own gamble
So, the current state:
- IRC library: I found a few candidates but the one that seemed both
fairly recent and modern is PircBotX
(http://code.google.com/p/pircbotx/). The way to use this library is
very different from the original PircBot, though. A version 2.0 was
recently released so my code is based around this version.
- Code: I started by adapting the code currently in the repository from
the old IRC implementation. IrcStack.java is more or less stripped and
I'm rebuilding step by step.
- State of operation: It is now possible to connect to a chatroom and
see the conversation happening and respond (also notification w.r.t.
join/part/quit events). Basically everything thereafter does not work
yet, so: no special roles for Ops, etc; no private messages, no mode
changes, bans, kicks, whatever...
Additionally I have a few questions, and I'd like to know how you think
1. Typical usage of the Multi User Chat code retrieves all the chatrooms
upon opening the 'Go to chat room'-window. I don't think many IRC
servers will be happy if we do a LIST-request every time this window is
openend. So, how would we solve this? (Maybe a trigger when the dropdown
box button, the one with the down-arrow, is clicked. Or maybe load one
list and cache it or ...)
2. For ChatConversationPanel.processKeyword(message, contentType, keyword):
This method seems to try to highlight keywords and for the current
chat windows in particular the name of the local users. It replaces
every occurence though, breaking the complete xml-structure if the user
name happens to appear inside an attribute. I wanted to fix it, but I'm
not quite sure what the right solution is: should this method not get
passed the complete xml-structured message but only the plaintext actual
message from IRC or should it be sensitive to the keyword occurrence
within the xml?
So ... any thoughts, remarks?