Skip to content

Instantly share code, notes, and snippets.

@a-raccoon
Created September 5, 2018 18:57
Show Gist options
  • Select an option

  • Save a-raccoon/3f459210d6740b3a856b0e7538c04027 to your computer and use it in GitHub Desktop.

Select an option

Save a-raccoon/3f459210d6740b3a856b0e7538c04027 to your computer and use it in GitHub Desktop.

Revisions

  1. a-raccoon created this gist Sep 5, 2018.
    83 changes: 83 additions & 0 deletions mirc_art_renderer_by_talon_2018.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,83 @@
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>CC Pastebin Test!</title>
    <style>
    @font-face {
    font-family: 'FixedsysExcelsior';
    src: url('FixedsysExcelsiorIIIbnl.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    -webkit-font-smoothing:aliased;
    font-smooth:never;
    }
    body {
    display: flex;
    background: black;
    }
    * {
    font-family: FixedsysExcelsior;
    color: white;
    }
    textarea {
    white-space: pre;
    width: 640px;
    height: 320px;
    color: black;
    overflow: scroll;
    resize: both;
    }
    button { color: black; }
    </style>
    <script type="text/javascript">
    function QuickElement(name,attr,text) {
    var tmp = document.createElement(name) //Object.assign(,{textContent: text});
    for (var key in attr) { tmp.setAttribute(key,attr[key]); }
    tmp.innerHTML = text || '';
    return tmp;
    }
    function CC2Html(text) {
    var cc = new Array("#FFFFFF","#000000","#00009D","#009300","#FF0000","#7F0000","#9C009C","#FC7F00","#FFFF00","#00FC00","#009393","#00FFFF","#0000FC","#FF00FF","#7F7F7F","#D2D2D2","#470000","#472100","#474700","#324700","#004700","#00472C","#004747","#002747","#000047","#2E0047","#470047","#47002A","#740000","#743A00","#747400","#517400","#007400","#007449","#007474","#004074","#000074","#4B0074","#740074","#740045","#B50000","#B56300","#B5B500","#7DB500","#00B500","#00B571","#00B5B5","#0063B5","#0000B5","#7500B5","#B500B5","#B5006B","#FF0000","#FF8C00","#FFFF00","#B2FF00","#00FF00","#00FFA0","#00FFFF","#008CFF","#0000FF","#A500FF","#FF00FF","#FF0098","#FF5959","#FFB459","#FFFF71","#CFFF60","#6FFF6F","#65FFC9","#6DFFFF","#59B4FF","#5959FF","#C459FF","#FF66FF","#FF59BC","#FF9C9C","#FFD39C","#FFFF9C","#E2FF9C","#9CFF9C","#9CFFDB","#9CFFFF","#9CD3FF","#9C9CFF","#DC9CFF","#FF9CFF","#FF94D3","#000000","#131313","#282828","#363636","#4D4D4D","#656565","#818181","#9F9F9F","#BCBCBC","#E2E2E2","#FFFFFF","#D2D2D2");
    var b = 0, u = 0, r = 0 , i = 0, bg = cc.length, fg = cc.length;
    return text.replace(/(\x03(?:(?:\d\d?),)?(?:\d\d?)|[\x03\x0f\x02\x1f])([^\x02\x03\x1f\x0f]*)/g,function(match,control,string) {
    if (control == '\x03') { fg = bg = cc.length; } //Blank ctrl+k
    else if (control == '\x02') { b = !b } //ctrl+b (bold)
    else if (control == '\x1f') { u = !u } //ctrl+u (underline)
    //TODO: ctrl+r (reverse)
    else if (control == '\x1d') { i = !i } //ctrl+i (italic)
    else if (control == '\x0f') { b = u = i = 0; fg = bg = cc.length; } //ctrl+o (stop)
    else { //ctrl+k (color)
    var fgt = /^\x03(\d\d?)$/.exec(control), bt = /^\x03(\d\d?),(\d\d?)$/.exec(control);
    if (Array.isArray(fgt) && fgt.length > 0) { fg = parseInt(fgt[1]) + 0; }
    else if (Array.isArray(bt) && bt.length > 0) { fg = parseInt(bt[1]) + 0; bg = parseInt(bt[2]) + 0; }
    }
    var style = (b ? 'font-weight:bold;' : '') + (u ? 'font-decoration:underline;' : '') + (i ? 'font-style:italic;' : '') + (bg < cc.length ? 'background-color:' + cc[bg] + ';' : '') + (fg < cc.length ? 'color:' + cc[fg] + ';' : '');
    if (!style) { return string.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;'); }
    else { return "<span style=\"white-space: pre-wrap; " + style + "\">" + string.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;') + "</span>"; }
    });
    }
    function mIRCArt() {
    var main = this;
    this.Container = new QuickElement('div',{});
    this.Text = new QuickElement('textarea',{}," 2,2MMMMMMMMMMMMMM 2,2MMMMMMMMMM 2,2MMMMMMMMMM\n 2,2MM12,12mmmmmmmmmmmm2,2MMMMMM12,12mmmmmmmmmm2,2MMMMMM12,12mmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM12,12mmmmmmmmmmmmmm2,2MM12,12mmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MMMM12,12mmmmmmmmmmmmmm2,2MMMM12,12mmmmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM 7,7CCCCCCCCCC12,12mmmm2,2MM\n 2,2MM12,12mmmmmmmmmmmm2,2MM 2,2MM12,12mmmmmmmmmmmm2,2MM7,7CC8,8cccccccccc7,7CCCC2,2MM\n5,5IIIIIIIIIIIIIIIIRRRRRRRRRRRRRRRRRRRRRR8,8cccccccccccccccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccccccc7,7CC8,8cccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccc7,7CC8,8cc7,7CCCC8,8cc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccc7,7CCCC8,8cc7,7CC8,8cccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccccc7,7CC8,8cccccccc7,7CC\n5,5IIIIIIIIIIIIIIII4,4rrrrrrrrrrrrrrrrrrrr5,5RR8,8cccccccccccccccccc7,7CCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RRRRRRRRRR8,8cccc7,7CC8,8cccccccccc7,7CCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR8,8cccccccccccccc7,7CCCCCCCCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR8,8cccccccccccccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR7,7CC8,8cccccccccccccc7,7CCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR7,7CC8,8cccccccccccccccccc7,7CCCCCCCC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR 7,7CC8,8cccccccccccccccccccccccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR 7,7CC8,8cccccccccccccccccccc7,7CC\n5,5II4,4iiiiiiiiiiii5,5II4,4rrrrrrrrrrrr5,5RR 7,7CCCC8,8cccccccccccc7,7CCCC\n5,5IIIIIIIIIIIIIIIIRRRRRRRRRRRRRR 7,7CCCCCCCCCCCC");
    this.Button = new QuickElement('button',{},"Try it!");
    this.Result = new QuickElement('pre',{});
    this.Container.appendChild(this.Text);
    this.Container.appendChild(this.Button);
    this.Container.appendChild(this.Result);
    document.body.appendChild(this.Container);
    this.Button.addEventListener('click',function() {
    var tmp = main.Text.value.split(/\r?\n/);
    main.Result.innerHTML = "";
    tmp.forEach(function(line) { this.Result.innerHTML += CC2Html(line + "") + "\n"; },main);
    });
    this.Button.click();
    }
    window.addEventListener('load',function() {
    var art = new mIRCArt();
    });
    </script>
    </head>
    <body>
    </body>
    </html>