Font formatting + colours in sent message (xchats %Cn format)
authorDarren <darren@darrenwhitlen.com>
Mon, 4 Nov 2013 16:51:04 +0000 (16:51 +0000)
committerDarren <darren@darrenwhitlen.com>
Mon, 4 Nov 2013 16:51:04 +0000 (16:51 +0000)
client/src/helpers/utils.js
client/src/models/application.js

index a9624e4a05176bd75c118f521d2346de1cb832d3..8931c8737a98c2e2fadfda32c84fe419d6638b1a 100644 (file)
@@ -214,6 +214,30 @@ function hsl2rgb(h, s, l) {
 }
 
 
+/**
+ * Formats a kiwi message to IRC format
+ */
+function formatToIrcMsg(message) {
+    // Format any colour codes (eg. $c4)
+    message = message.replace(/%C(\d)/ig, function(match, colour_number) {
+        return String.fromCharCode(3) + colour_number.toString();
+    });
+
+    var formatters = {
+        B: '\x02',    // Bold
+        I: '\x1D',    // Italics
+        U: '\x1F',    // Underline
+        O: '\x0F'     // Out / Clear formatting
+    };
+    message = message.replace(/%([BIUO])/ig, function(match, format_code) {
+        if (typeof formatters[format_code.toUpperCase()] !== 'undefined')
+            return formatters[format_code.toUpperCase()];
+    });
+
+    return message;
+}
+
+
 /**
 *   Formats a message. Adds bold, underline and colouring
 *   @param      {String}    msg The message to format
index 05a282b602cbc18922fa833c00139dd9029b319a..c1552e0d2618587aa57884034773959e3e629560 100644 (file)
@@ -711,13 +711,15 @@ _kiwi.model.Application = function () {
         }\r
 \r
         function msgCommand (ev) {\r
-            var destination = ev.params[0],\r
+            var message,\r
+                destination = ev.params[0],\r
                 panel = that.connections.active_connection.panels.getByName(destination) || that.panels().server;\r
 \r
             ev.params.shift();\r
+            message = formatToIrcMsg(ev.params.join(' '));\r
 \r
-            panel.addMsg(_kiwi.app.connections.active_connection.get('nick'), ev.params.join(' '));\r
-            _kiwi.gateway.privmsg(null, destination, ev.params.join(' '));\r
+            panel.addMsg(_kiwi.app.connections.active_connection.get('nick'), message);\r
+            _kiwi.gateway.privmsg(null, destination, message);\r
         }\r
 \r
         function actionCommand (ev) {\r