Big Things
clients for everyone
- J2ME
- irc
- dcc
- channel mode handling for clients without raw irc events
- "channel change" command could be used for setting them
- netsplit/netjoin handling?
- all the other protocols
can we use gaim/bitlbee?
- msn code started from scratch
Use XHTML-IM for rich text formatting for messages
XHTML-IM -> IRC conversion (IRC -> XHTML-IM done)
If it wasn't 100% mapping, reply back to client how exactly it was converted (ie. similar to € -> EUR).
- Optional *FAST* searching of old event logs.
Xapian maybe as the default if it exists?
- Storing binary trees in Berkeley DB would also work, but not really the best solution
- SQL databases could be used optionally too. Although then the logs should probably be stored there instead of in files. The code can be taken from Dovecot's lib-sql which supports MySQL, PostgreSQL and SQLite.
- dynamic event parameters that can be updated anytime wanted (already there?)
- event filtering for untagged messages
- actions: add, execute commands(?), drop, ..?
- scripting
- (caching) proxying to other icecap servers.
- code could probably be reused or maybe shared with the code from irssi2 client
protocol specs
also specifying some conventions that should be used in eg. client configuration storing - started already in wiki..
Dialogs between server/client (see Protocol Introduction)
- "channel names;fields=realname,address", which with IRC would basically send WHO if everything isn't known (if only a few users aren't known, use USERHOST / WHOIS)
- IRC user handling: If user is in same channel or in WATCH list, don't send ISON/USERHOST requests
little things
- Connection/reconnection fixes:
increase the reconnection timeouts. 0 -> 30 -> 60 -> 5min -> 10min -> 15min or something..
- Keep DNS requests cached so if DNS lookup fails for any reason, use the cached values
- If DNS request fails because of temporary error, try re-requesting it after a while
- IRC kills and connection ERRORs should stop reconnects (check irssi for exact handling)
- sending ctcps and actions
- whowas
- "presence change" command should be able to change our away state
Charset translation is done too late. When transliterations occur (eg. € -> EUR in ISO-8859-1), they're still stored to logs without the transliteration. Also they're sent to other clients non-transliterated.
- Log "starting up", "shutting down" and "disconnected" events so it's obvious when those events happened
Bugs
Panic: file event-db-fs.c: line 171 (fs_event_db_add): assertion failed: (event_time >= db->last_write_stamp) by Vagabond
Wiki stuff
The Swedish translation of the Wiki software seems too be broken when you edit the page at the point where it should show you a reference of the Wiki markup language. (See screenshot.) In fact, the Swedish translation is altogether so low quality that it safely can be removed from this Wiki. // pv2b
Discussion
It could be interesting if merging with both the bitlbee and CtrlProxy, this could convert it into a killer app and a lot of manpower for the same effort.
I don't see how it could be merged with CtrlProxy, since Icecapd seems to be practically a complete replacement for it..
- And what about merging it with Bitlbee?
- I'm not against it, but I think Bitlbee people weren't all that much interested in doing it.
- And what about merging it with Bitlbee?
- Why not use libgaim?
- I'm using irssi + irssi-proxy + irc client of choice - in what ways is (or will be) icecap superior to this setup?