summaryrefslogtreecommitdiff
path: root/js/clipboard.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/clipboard.js')
-rw-r--r--js/clipboard.js40
1 files changed, 38 insertions, 2 deletions
diff --git a/js/clipboard.js b/js/clipboard.js
index d2d1592..b20528a 100644
--- a/js/clipboard.js
+++ b/js/clipboard.js
@@ -9,7 +9,7 @@ var clipboard = (function () {
import_ascii.addEventListener("change", exports.setFormat("ascii"))
import_irssi.addEventListener("change", exports.setFormat("irssi"))
import_mirc.addEventListener("change", exports.setFormat("mirc"))
- import_button.addEventListener("click", exports.import_text)
+ import_button.addEventListener("click", exports.import_colorcode)
import_html.addEventListener("click", exports.import_html)
export_button.addEventListener("click", exports.export_data)
import_textarea.addEventListener("focus", exports.focus)
@@ -112,10 +112,46 @@ var clipboard = (function () {
})
})
},
+
+ import_colorcode: function () {
+ var data = import_textarea.value
+
+ var irssi_style_regex = /^\s*\/exec -out printf "/;
+
+ // turn irssi style into mirc style
+ if (data.match(irssi_style_regex)){
+ data = data.replace(/\\x03/gm, '\x03')
+ data = data.replace(/\\n/gm, '\n')
+ data = data.replace(irssi_style_regex, '')
+ data = data.replace(/"\s*$/, '')
+ }
+
+ // not a colorcode
+ if (!data.match(/\x03/))
+ return exports.import_text();
+
+ var json = colorcode_to_json(data)
+
+ canvas.resize(json.w, json.h)
+ canvas.clear()
+
+ for (var y = 0, line; line = json.lines[y]; y++){
+ var row = canvas.aa[y]
+ for (var x = 0, char; char = line[x]; x++){
+ var lex = row[x]
+ lex.char = String.fromCharCode(char.value)
+ lex.fg = char.fg
+ lex.bg = char.bg
+ lex.opacity = 1
+ lex.build()
+ }
+ }
+
+ },
import_text: function () {
var data = import_textarea.value
- lines = data.split("\n")
+ var lines = data.split("\n")
var width = lines.reduce(function(a,b){ console.log(a,b); return Math.max(a, b.length) }, 0)
var height = lines.length
if (width > 200) {