Application:WIRC
wIRC - Version: Beta 0.0.4
Summary
wIRC and wIRCd (its service)
wIRC is a Mojo IRC client. The WebOS-Internals team uses IRC as its primary communications channel, and Palm staff participate in IRC as well. wIRC provides a way for us to stay connected to the team while away from our desktops.
Note that wIRC is Beta 0.0.4 It is rapidly changing and subject to failure at any time.
Do not bet your life on this stuff.
On the other hand, it seems to work for us.
If you have reports about issues or bugs or wants or design please contact oil, PufftheMagic, or egaudet on freenode.net irc in the #wirc or #webos-internals channel.
Usage
- Nick Auto Complete:
- After typing some of the nick, hold the gesture area, and press the orange button.
- If not the right nick, keep holding the gesture area, and press the orange button again.
- Supported Commands:
- /away
- /join, /j
- /kick
- /list (0.0.4)
- /me
- /mode
- /nick
- /part, /leave
- /query, /msg
- /quit
- /topic
- /whois (0.0.4)
- Unupported Commands:
- /ping (this was supported but since we auto-ping the server for the lag-meter allowing manual pings is pointless, '/ctcp ping' will soon be supported however)
Debugging with luna-send
You can debug wIRCd with luna-send. In one terminal subscribe to the 'client_connect' method (by using the -i param). Every message returned by this subscription will have a 'sessionToken' which you need to use/pass to subsequent commands. Also note, spaces need to be escaped.
Terminal-1
luna-send -P -i palm://us.ryanhope.wIRCd/client_connect {\"server\":\"irc.freenode.net\",\"nick\":\"WiZ\",\"user\":\"wIRCer\",\"server_password\":\"mypassword\",\"port\":\"7070\",\"interface\":\"ppp0\"}
Terminal-2
luna-send -P -n 1 palm://us.ryanhope.wIRCd/client_cmd_join {\"sessionToken\":\"1.22.2\",\"channel\":\"#wirc\"}
luna-send -P -n 1 palm://us.ryanhope.wIRCd/client_cmd_msg {\"sessionToken\":\"1.22.2\",\"nch\":\"#wirc\",\"text\":\"this\ is\ a\ test\ message\"}
luna-send -P -n 1 palm://us.ryanhope.wIRCd/client_cmd_me {\"sessionToken\":\"1.22.2\",\"nch\":\"#wirc\",\"text\":\"is\ testing\ wIRCd\ with\ luna-send\"}
Testing
Come to #wirc on freenode for help, don't ask for help in #webos-internals
Please put any random observations, requests, issues etc... on the talk page: http://www.webos-internals.org/wiki/Application_talk:WIRC
Development
Current TODO List / Feature Requests
[SERVICE & GUI]
- Detect when GUI has crashed/disconnected while session is active, so that session can be destroyed. (e.g. restarting LunaSysMgr)
- Stagger connections to servers or increase select() timeout based on the number of servers trying to connect at once, (eg. lots of retrys from service when connecting to 8 servers at once)
- Get irssi-proxy/bitlbee working
[SERVICE]
- Finish code cleanup from rewrite
- Rethink live-or-die thread
- Rethink use of mutex's... maybe a posix timer
- Figure out why pthread_cancel() can cause a segfault
- Validate sessionToken on subscription requests
- Validate params for irc calls
- Rethink live-or-die thread
- Add SSL support
[GUI]
0.0.5 Todo's
- fix /quote & /raw support
- fix /notice for queries
- add a way to clear a server/channel/query window
0.0.6 Todo's
- Bookmark favorite channels in list.
- auto-away response support (with toggle)
For Future Releases
- Channel logs (Probably use /media/internal/)
- Replace invite with whois/finger when nick in nicklist is tapped
- Multi-page preferences
- Color profiles per palm theme
- Better color schemes for random nick colors
- Figure out why sometimes the app doesnt' close after swiping all cards
- Be able to abort connecting
- Need a way back to the server scene from channel/query scenes.
- Reconnect gracefully after disconnects
- Make auto-identify stuff do something
- Highlight custom words
- landscape mode
- Allow for certain message types to be omitted in server.js connectionHandler, based on preferences. Examples are join/part messages, kick, notice, info, status, etc - each individually selectable to be omitted.
- Should make gesture+2 to bring back previous commands in history
Completed List
- Implement PING command (DONE PuffTheMagic 07:24, 5 November 2009 (UTC))
- Implement AWAY command (DONE PuffTheMagic 07:24, 5 November 2009 (UTC))
- make passing ports work (Service) (DONE PuffTheMagic 18:41, 2 November 2009 (UTC))
- Real Name field doesnt allow spaces, fix it (DONE PuffTheMagic 18:41, 2 November 2009 (UTC))
- channel modes in channel header (DONE PuffTheMagic 15:49, 31 October 2009 (UTC))
- fix NOTICE messages (DONE PuffTheMagic 01:17, 2 November 2009 (UTC))
- show nick list (DONE PuffTheMagic 17:55, 1 November 2009 (UTC))
- querys (DONE PuffTheMagic 17:55, 1 November 2009 (UTC))
- add "perform on connect" support (DONE --oil 10:01, 2 November 2009 (UTC))
- tab complete (DONE PuffTheMagic 01:17, 2 November 2009 (UTC))
- auto nick hilighting (DONE PuffTheMagic 16:35, 2 November 2009 (UTC))
- add support for numbers and hyphens in nicks (DONE PuffTheMagic 14:35, 1 November 2009 (UTC))
- escape quotes in params when service sends it to client (DONE PuffTheMagic 06:42, 1 November 2009 (UTC))
- Add "updateInterval: 0.2," to font size slider widget in message section of preferences (DONE --oil 01:41, 4 November 2009 (UTC))
- Add messages for when people quit the server (QUIT event) (DONE --Egaudet 01:56, 4 November 2009 (UTC))
- Disconnecting while in a channel and then reconnecting will not actually rejoin the channel, but will spawn the card (DONE --Egaudet 01:56, 4 November 2009 (UTC))
- Don't auto-scroll to bottom on new messages when viewing backlog (DONE --oil 05:42, 4 November 2009 (UTC))
- Tap on channel title drops down drawer with topic/etc in it (DONE --oil 08:42, 4 November 2009 (UTC))
- ListSelector for all/nick/message/"single word" for selected highlight style ((DONE PuffTheMagic 21:13, 4 November 2009 (UTC))
- Parse URLs into click-able links (in messages model) (DONE --oil 08:18, 5 November 2009 (UTC))
- Add banner/dashboard for channel-chat messages on nick mention, but not for all messages (DONE --oil 08:18, 5 November 2009 (UTC))
- Fix connection params like user/pass/port work completly, expample: no port causes segfault (DONE PuffTheMagic 19:55, 5 November 2009 (UTC))
- (bug) KICK event isn't necessarily you being kicked. Kick someone and the gui kicks you. (DONE-fixed --Egaudet 20:47, 5 November 2009 (UTC))
- (bug) When user list icon is tapped from channel window, the topic drawer also comes out. (DONE-fixed --oil 21:08, 5 November 2009 (UTC))
- Notification sound options for mention/query/whatever else spawns a banner notification (DONE --oil 02:10, 6 November 2009 (UTC))
- Add loose focus marker in channel scene & query/msg scene (DONE --oil 08:40, 6 November 2009 (UTC))
- Text entry area keep focus (DONE --oil 08:45, 7 November 2009 (UTC))
- Fix MODE messages; should show user who is getting the mode applied, not the user who set the mode (DONE --oil 08:46, 7 November 2009 (UTC))
- Add spinner to server list scene to show "connecting" action after connect is pressed before changing the button to disconnect. (DONE --oil 07:09, 8 November 2009 (UTC))
- #webos doesn't work in WIRC only shows there is one user in channel. (DONE PuffTheMagic 21:55, 9 November 2009 (UTC))
- Make EVDO/1x connections reliable, fix immediate returnValue:0 error. (POTENTIAL-WORKAROUND PuffTheMagic 07:31, 3 November 2009 (UTC))
- Actually use secondary and tertiary nicks if told the primary is taken (DONE PuffTheMagic 21:59, 9 November 2009 (UTC))
- Color scheme options
- Action, Channel message, Command message, Server message, Error message, Timestamp, Highlight foreground, Highlight background, Markerline, Background (DONE PuffTheMagic 21:59, 9 November 2009 (UTC))
- OnConnect works sporadically (DONE, moved channel card open to JOIN event --Egaudet 17:48, 10 November 2009 (UTC))
- No card spawned on channel joins (DONE I believe change above fixed it --Egaudet 18:52, 10 November 2009 (UTC))
- Connect, Disconnect, Connect again = Does not rejoin channels. (DONE, token needed to reset on disconnect --Egaudet 18:52, 10 November 2009 (UTC))
- Connect, Disconnect, Connect, Disconnect again = Does not disconnect. In fact, the spinner just spins. The server status shows "Disconnecting..." then backswiping to the server list will cause the Connect/Disconnect button to be blank and tapable. (DONE, same underlying bug as above --Egaudet 18:52, 10 November 2009 (UTC))
- Add single nick text field to server info scene and server table in database (DONE PuffTheMagic 07:21, 12 November 2009 (UTC))
- If left empty, use nick from identity scene in the cookie on connect (the "hint" text for the server nick field should explain this in a few words.) (DONE PuffTheMagic 07:21, 12 November 2009 (UTC))
- Make use-fallback false do something (DONE PuffTheMagic 07:21, 12 November 2009 (UTC))
- move highlight color to color scheme group and break it into fg/bg (DONE PuffTheMagic 17:46, 12 November 2009 (UTC))
- add toggle to disable auto-nick coloring (DONE PuffTheMagic 19:09, 12 November 2009 (UTC))
- Try alternate nicks when default nick is in use (DONE PuffTheMagic 00:37, 13 November 2009 (UTC))
- Highlight all nicks in identity list (DONE --oil 02:38, 15 November 2009 (UTC))
- Lostfocus maker could be smarter, line shouldnt disappear if the card is zoomed out then returned to (DONE --oil 02:46, 15 November 2009 (UTC))
- Add Pre and Pixi specific CFLAGS to build (DONE PuffTheMagic 23:42, 17 November 2009 (UTC))
- Live-or-die thread causes segfault when it tries to to remove a session that has already been freed (DONE PuffTheMagic 03:25, 18 November 2009 (UTC))
- Send an event to the CONNECT subscription for when the number of retries has be used up (DONE PuffTheMagic 20:29, 20 November 2009 (UTC))
- show connected interface/ip in server list (DONE PuffTheMagic 20:29, 20 November 2009 (UTC))
- Lag meter (DONE PuffTheMagic 20:29, 20 November 2009 (UTC))
- show topic change messages in channel (FIXED PuffTheMagic 18:56, 21 November 2009 (UTC))
- add /notice support (DONE PuffTheMagic 19:42, 21 November 2009 (UTC))
- All RegExp's should get moved to a common file outside of methods so that they can be resused. (2/3 DONE PuffTheMagic 15:18, 22 November 2009 (UTC))