{"id":487,"date":"2007-12-16T20:22:15","date_gmt":"2007-12-17T04:22:15","guid":{"rendered":"http:\/\/boulter.com\/blog\/2007\/12\/16\/hacking-chatzilla\/"},"modified":"2007-12-19T21:32:51","modified_gmt":"2007-12-20T05:32:51","slug":"hacking-chatzilla","status":"publish","type":"post","link":"http:\/\/boulter.com\/blog\/2007\/12\/16\/hacking-chatzilla\/","title":{"rendered":"Hacking ChatZilla"},"content":{"rendered":"<p>I have a certain coworker (<a href=\"http:\/\/360.yahoo.com\/profile-s7SWwk4ldKizzU.Twf90\">who will remain nameless<\/a>) who razzes me endlessly when I&#8217;m not in the team IRC chat room. It&#8217;s not that I don&#8217;t want to be, it&#8217;s because the software is too stupid to reconnect me. I&#8217;m in and out of meetings all day and when I lose my connection, my IRC client of choice, <a href=\"http:\/\/chatzilla.hacksrus.com\/\">ChatZilla<\/a>, waits too long to reconnect me. <\/p>\n<p>ChatZilla uses an exponential reconnect interval, so it starts at 15 seconds and then doubles after every failed attempt up to a max of 2 hours. Usually it hits that 2 hours overnight when I&#8217;m not connected to the VPN, then when I get into the office it can be up to 2 hours before it tries again. <\/p>\n<p>I&#8217;ve tried other IRC clients, but I really prefer ChatZilla. It&#8217;s simple and can send all messages to <a href=\"http:\/\/growl.info\/\">Growl<\/a>, so I don&#8217;t have to switch back and look at ChatZilla as messages come in. The only problem is this reconnect issue. Since ChatZilla is written in JavaScript, this was easy to fix.<\/p>\n<ol>\n<li>Find your ChatZilla Extension code. On my Mac, it was in <code>\/Users \/ jeff \/ Library \/ Application Support \/ Firefox \/ profiles \/ 71r60ff3.default \/ extensions \/ {59c81df5-4b7a-477b-912d-4e0fdf64e5f2} \/ chrome \/ chatzilla.jar<\/code> . The username and profile directory name will differ on your system.<\/li>\n<li>Unzip the jar file (<code>unzip chatzilla.jar<\/code>)<\/li>\n<li>Open the file content\/chatzilla\/static.js from the extracted files.<\/li>\n<li>Change the line <code>CIRCNetwork.prototype.MAX_RECONNECT_MS = 2 * 60 * 60 * 1000;<\/code>   to whatever interval you want. I set it to 15 * 60 * 1000 to make wait a maximum of 15 minutes.<\/li>\n<li>Rezip up the extracted files (<code>zip -r chatzilla.jar content\/ locale\/ skin\/<\/code>).<\/li>\n<li>Restart Firefox.<\/li>\n<li>Enjoy the silence of non-whining coworkers.<\/li>\n<\/ol>\n<p>It works:<\/p>\n<pre>\r\n[20:33]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 15 seconds. [Cancel]\r\n[20:33]\t[INFO]\tConnecting to irc:\/\/irc\/ (irc:\/\/irc\/)... [Cancel]\r\n[20:33]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 30 seconds. [Cancel]\r\n[20:34]\t[INFO]\tConnecting to irc:\/\/irc\/ (irc:\/\/irc\/)... [Cancel]\r\n[20:34]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 1 minute. [Cancel]\r\n[20:35]\t[INFO]\tConnecting to irc:\/\/irc\/ (irc:\/\/irc\/)... [Cancel]\r\n[20:35]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 2 minutes. [Cancel]\r\n[20:37]\t[INFO]\tConnecting to irc:\/\/irc\/ (irc:\/\/irc\/)... [Cancel]\r\n[20:37]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 4 minutes. [Cancel]\r\n[20:41]\t[INFO]\tConnecting to irc:\/\/irc\/ (irc:\/\/irc\/)... [Cancel]\r\n[20:41]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 8 minutes. [Cancel]\r\n[20:49]\t[INFO]\tConnecting to irc:\/\/irc\/ (irc:\/\/irc\/)... [Cancel]\r\n[20:49]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 15 minutes. [Cancel]\r\n[21:04]\t[INFO]\tConnecting to irc:\/\/irc\/ (irc:\/\/irc\/)... [Cancel]\r\n[21:04]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 15 minutes. [Cancel]\r\n[21:19]\t[INFO]\tConnecting to irc:\/\/irc\/ (irc:\/\/irc\/)... [Cancel]\r\n[21:19]\t[ERROR]\tThe proxy server you configured is refusing the connection. Reconnecting in 15 minutes. [Cancel]\r\n<\/pre>\n<p>Hopefully the ChatZilla folks will make this an option in the future. For now, it&#8217;s good enough for me.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have a certain coworker (who will remain nameless) who razzes me endlessly when I&#8217;m not in the team IRC chat room. It&#8217;s not that I don&#8217;t want to be, it&#8217;s because the software is too stupid to reconnect me. I&#8217;m in and out of meetings all day and when I lose my connection, my &#8230;<\/p>\n<p><a href=\"http:\/\/boulter.com\/blog\/2007\/12\/16\/hacking-chatzilla\/\" class=\"more-link\">Continue reading &lsquo;Hacking ChatZilla&rsquo; &raquo;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-487","post","type-post","status-publish","format-standard","hentry","category-general"],"_links":{"self":[{"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/posts\/487","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/comments?post=487"}],"version-history":[{"count":0,"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/posts\/487\/revisions"}],"wp:attachment":[{"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/media?parent=487"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/categories?post=487"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/boulter.com\/blog\/wp-json\/wp\/v2\/tags?post=487"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}