Skip to content

Instantly share code, notes, and snippets.

@xgqfrms-GitHub
Last active August 4, 2020 15:40
  • Star 2 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save xgqfrms-GitHub/0bf82ff06037a0d1776c9f30033cbfd1 to your computer and use it in GitHub Desktop.
RegExp
@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 3, 2017

document.createDocumentFragment & document.createElement

https://developer.mozilla.org/zh-CN/docs/Web/API/Document/createDocumentFragment

// assuming it exists
let ul = document.getElementsByTagName("ul")[0],
    docfrag = document.createDocumentFragment();

const browserList = [
    "Internet Explorer", 
    "Mozilla Firefox", 
    "Safari", 
    "Chrome", 
    "Opera"
];

browserList.forEach((e) => {
    let li = document.createElement("li");
    li.textContent = e;
    docfrag.appendChild(li);
});

ul.appendChild(docfrag);

// a list with well-known web browsers

https://developer.yahoo.com/performance/rules.html

https://csspod.com/frontend-performance-best-practices/

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 3, 2017

C:\Users\xray\Desktop\WatchUsBuild-React>

C:\Users\xray\Desktop\WatchUsBuild-React>npm start

@xgqfrms-GitHub
Copy link
Author

@xgqfrms-GitHub
Copy link
Author

@xgqfrms-GitHub
Copy link
Author

@xgqfrms-GitHub
Copy link
Author

@xgqfrms-GitHub
Copy link
Author

OK

space blank error!

https://regexper.com/#%2F(url%5C(%22)%7C(%22%5C))%2Fg

y = x.replace(/(url\(")|("\))/g,'');

//   "https://rollbar.com/assets/shared/logos/ruby-icon.svg"

regex-no-space-ok

Error

have space blank

https://regexper.com/#%2F(url%5C(%22)%20%7C%20(%22%5C))%2Fg

regex-have-space-error

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 4, 2017

multi group capture/match

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp

regex-multi-group-match capture

let x =`url("https://rollbar.com/assets/shared/logos/ruby-icon.svg")`;

let y = x.replace(/(url\(")|("\))/g,'');

//  "https://rollbar.com/assets/shared/logos/ruby-icon.svg"

https://gist.github.com/xgqfrms-GitHub/c8b3992534950ea68d7333951a795ebb

https://rollbar.com/docs/

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 4, 2017

All in One === OK

const links = document.querySelectorAll(`ul.image-list a`);

console.log(getComputedStyle(links[0], ':before').getPropertyValue('background-image'));
// url("https://rollbar.com/assets/shared/logos/ruby-icon.svg")

let img = getComputedStyle(links[0], '::before').getPropertyValue('background-image');
// url("https://rollbar.com/assets/shared/logos/ruby-icon.svg")

let newImage= img.replace(/(url\(")|("\))/g,'');
// "https://rollbar.com/assets/shared/logos/ruby-icon.svg"

console.log(newImage);
// https://rollbar.com/assets/shared/logos/ruby-icon.svg

@xgqfrms-GitHub
Copy link
Author

console.log(getComputedStyle(links[1], ':before').getPropertyValue('background-image'));
// url("https://rollbar.com/assets/shared/logos/ruby-icon.svg")

img = getComputedStyle(links[1], '::before').getPropertyValue('background-image');
// url("https://rollbar.com/assets/shared/logos/ruby-icon.svg")

newImage= img.replace(/(url\(")|("\))/g,'');
// "https://rollbar.com/assets/shared/logos/ruby-icon.svg"

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 4, 2017

??? addTo DOM

$("<a>").attr("href", "http://i.stack.imgur.com/L8rHf.png").attr("download", "img.png").appendTo("body").click().remove();

https://stackoverflow.com/questions/17311645/download-image-with-javascript

var a = $("<a>")
    .attr("href", "http://i.stack.imgur.com/L8rHf.png")
    .attr("download", "img.png")
    .appendTo("body");

a[0].click();

a.remove();

https://stackoverflow.com/a/17311705/5934465

http://i.stack.imgur.com/L8rHf.png

http://jsfiddle.net/HTggQ/

call save ???

http://jsfiddle.net/HTggQ/93/

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 4, 2017

download HTML5 属性

https://developer.mozilla.org/en/docs/Web/HTML/Element/a#Using_the_download_attribute_to_save_a_canvas_as_a_PNG

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/a

<a href="/path/to/image.png" download>html5 download</a>

https://stackoverflow.com/questions/17527713/force-browser-to-download-image-files-on-click

let link = document.createElement('a');

link.href = 'images.jpg';

link.download = 'Download.jpg';

document.body.appendChild(link);

link.click();
function saveImageAsJpg(name, adress) {
    var link = document.createElement('a');
    link.style = 'position: fixed; left -10000px;'; 
    // making it invisible

    link.href = 'data:application/octet-stream,' + encodeURIComponent(address);
    // forcing content type

    link.download = name.indexOf('.jpg') < 0 ? name + '.jpg' : name;
    /* file extension is very important! */

    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
}

http://jsfiddle.net/wboykinm/fL0q2uce/

@xgqfrms-GitHub
Copy link
Author

function DownloadImage(imageURL) {
    var oImage = document.getElementById(imageURL);
    var canvas = document.createElement("canvas");
    document.body.appendChild(canvas);
    if (typeof canvas.getContext == "undefined" || !canvas.getContext) {
        alert("browser does not support this action, sorry");
        return false;
    }

    try {
        var context = canvas.getContext("2d");
        var width = oImage.width;
        var height = oImage.height;
        canvas.width = width;
        canvas.height = height;
        canvas.style.width = width + "px";
        canvas.style.height = height + "px";
        context.drawImage(oImage, 0, 0, width, height);
        var rawImageData = canvas.toDataURL("image/png;base64");
        rawImageData = rawImageData.replace("image/png", "image/octet-stream");
        document.location.href = rawImageData;
        document.body.removeChild(canvas);
    }
    catch (err) {
        document.body.removeChild(canvas);
        alert("Sorry, can't download");
    }

    return true;
}
<image id="myimage" src="Penguins.jpg" />
<button type="btnDownload" rel="myimage">Download</button>
window.onload = function() {
    var arrButtons = document.getElementsByTagName("button");
    for (var i = 0; i < arrButtons.length; i++) {
        var oButton = arrButtons[i];
        var sRelatedImage = oButton.getAttribute("rel");
        if (sRelatedImage && sRelatedImage.length > 0) {
            oButton.onclick = function() {
                HandleRelatedImage(this, sRelatedImage);
            }
        }
    }
};

function HandleRelatedImage(oButton, sRelatedImage) {
    var oImage = document.getElementById(sRelatedImage);
    if (!oImage) {
        alert("related image '" + sRelatedImage + "' does not exist");
        return false;
    }

    return DownloadImage(sRelatedImage);
}

https://stackoverflow.com/a/9158343/5934465
https://stackoverflow.com/questions/6796974/force-download-an-image-using-javascript

download HTML5

此属性指示浏览器下载URL而不是导航到URL,因此将提示用户将其保存为本地文件。

如果属性有一个值,它将在保存提示中用作预先填写的文件名 (用户仍然可以根据需要更改文件名)。
对允许的值没有限制,但是/和\被转换为下划线。
大多数文件系统限制文件名中的一些标点符号,浏览器会相应地调整建议的名称。

注意:

1. 此属性仅适用于同源 URLs。
2. 可以使用 blob: URLs 和 data: URLs 以方便用户下载 JavaScript 方式生成的内容(例如使用在线绘图的Web应用创建的照片)。
3. 如果HTTP头的Content-Disposition:存在,并且赋予了一个和这个属性不同的文件名,HTTP头优先于此属性。
4. 如果这个属性存在 Content-Disposition 被设置为 inline,火狐优先 Content-Disposition,像之前文件名​​的情况下,而Chrome则优先 download 属性。

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/a

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 4, 2017

base64

src=“data:image/jpeg;base64…”

<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgM...."/>

application/octet-stream & 应用/八位字节流

var img = document.images[0];
img.onclick = function() {
    // atob to base64_decode the data-URI
    var image_data = atob(img.src.split(',')[1]);
    // Use typed arrays to convert the binary data to a Blob
    var arraybuffer = new ArrayBuffer(image_data.length);
    var view = new Uint8Array(arraybuffer);
    for (var i=0; i<image_data.length; i++) {
        view[i] = image_data.charCodeAt(i) & 0xff;
    }
    try {
        // This is the recommended method:
        var blob = new Blob([arraybuffer], {type: 'application/octet-stream'});
    } catch (e) {
        // The BlobBuilder API has been deprecated in favour of Blob, but older
        // browsers don't know about the Blob constructor
        // IE10 also supports BlobBuilder, but since the `Blob` constructor
        //  also works, there's no need to add `MSBlobBuilder`.
        var bb = new (window.WebKitBlobBuilder || window.MozBlobBuilder);
        bb.append(arraybuffer);
        var blob = bb.getBlob('application/octet-stream'); // <-- Here's the Blob
    }

    // Use the URL object to create a temporary URL
    var url = (window.webkitURL || window.URL).createObjectURL(blob);
    location.href = url; // <-- Download!
};

https://stackoverflow.com/a/10473992/5934465

https://stackoverflow.com/questions/10473932/browser-html-force-download-of-image-from-src-dataimage-jpegbase64

@xgqfrms-GitHub
Copy link
Author

HTML5 Canvas to PNG File

https://stackoverflow.com/users/5934465/xgqfrms

https://stackoverflow.com/questions/12796513/html5-canvas-to-png-file

<canvas id="cnv" width="32" height="32"></canvas>
<a id="dl" download="Canvas.png" href="#">Download Canvas</a>
var canvas = document.getElementById("cnv");
var ctx = canvas.getContext("2d");

/* FILL CANVAS WITH IMAGE DATA */
function r(ctx, x, y, w, h, c) {
  ctx.beginPath();
  ctx.rect(x, y, w, h);
  ctx.strokeStyle = c;
  ctx.stroke();
}
r(ctx, 0, 0, 32, 32, "black");
r(ctx, 4, 4, 16, 16, "red");
r(ctx, 8, 8, 16, 16, "green");
r(ctx, 12, 12, 16, 16, "blue");

/* REGISTER DOWNLOAD HANDLER */
/* Only convert the canvas to Data URL when the user clicks. 
   This saves RAM and CPU ressources in case this feature is not required. */
function dlCanvas() {
  var dt = canvas.toDataURL('image/png');
  /* Change MIME type to trick the browser to downlaod the file instead of displaying it */
  dt = dt.replace(/^data:image\/[^;]*/, 'data:application/octet-stream');

  /* In addition to <a>'s "download" attribute, you can define HTTP-style headers */
  dt = dt.replace(/^data:application\/octet-stream/, 'data:application/octet-stream;headers=Content-Disposition%3A%20attachment%3B%20filename=Canvas.png');

  this.href = dt;
};
document.getElementById("dl").addEventListener('click', dlCanvas, false);

https://stackoverflow.com/a/12796748/5934465

https://stackoverflow.com/questions/17397319/save-canvas-as-jpg-to-desktop

@xgqfrms-GitHub
Copy link
Author

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 4, 2017

JavaScript 蜘蛛

https://rollbar.com/docs/

const links = document.querySelectorAll(`ul.image-list a`);

let svg_name_arr = [];
let svg_url_obj = {};

for (let i = 0; i < links.length; i++) {
    if (links[i].getAttribute('class')) {
        let x = links[i].getAttribute('class');
        let y = links[i].setAttribute('download', `${i}-${x}`.svg)
        svg_name_arr.push(x);
        let img = getComputedStyle(links[i], '::before').getPropertyValue('background-image');
        let newImage = img.replace(/(url\(")|("\))/g,'');
        svg_url_obj[i] = newImage;
    }
}

console.log(`svg_name_arr = \n`, svg_name_arr);

console.log(`svg_url_obj = \n`, svg_url_obj);



/*
add new key to object javascript

https://stackoverflow.com/questions/1168807/how-can-i-add-a-key-value-pair-to-a-javascript-object

https://stackoverflow.com/questions/11057802/add-new-element-to-an-existing-object

http://pietschsoft.com/post/2015/09/05/JavaScript-Basics-How-to-create-a-Dictionary-with-KeyValue-pairs


https://javascript.info/object
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object



*/
svg_name_arr = [
    "ruby",
    "php",
    "node",
    "python",
    "net",
    "java",
    "golang",
    "laravel",
    "meteor",
    "clojure",
    "haskell",
    "erlang",
    "elixir",
    "google-cloud-platform",
    "perl",
    "r",
    "rust",
    "other",
    "javascript",
    "react",
    "angular",
    "angular",
    "ember",
    "backbone",
    "android",
    "ios",
    "ionic",
    "flash",
    "other",
    "fluentd",
    "logentries",
    "logstash",
    "mailgun",
    "other",
    "slack",
    "hipchat",
    "flowdock",
    "campfire",
    "github",
    "bitbucket",
    "gitlab",
    "jira",
    "trello",
    "github",
    "bitbucket",
    "gitlab",
    "pivotal",
    "asana",
    "sprintly",
    "pagerduty",
    "victorops",
    "opsgenie image-list",
    "datadog",
    "webhooks",
    "helpscout",
    "split",
    "bash",
    "bitbucket",
    "capistrano",
    "engineyard",
    "fabric",
    "heroku",
    "msbuild",
    "powershell",
    "octopus",
    "other",
    "ruby",
    "php",
    "node",
    "python",
    "net",
    "java",
    "golang",
    "laravel",
    "meteor",
    "clojure",
    "haskell",
    "erlang",
    "elixir",
    "google-cloud-platform",
    "perl",
    "r",
    "rust",
    "other",
    "javascript",
    "react",
    "angular",
    "angular",
    "ember",
    "backbone",
    "android",
    "ios",
    "ionic",
    "flash",
    "other",
    "fluentd",
    "logentries",
    "logstash",
    "mailgun",
    "other"
];


svg_url_obj = {
    0: "https://rollbar.com/assets/shared/logos/ruby-icon.svg",
    1: "https://rollbar.com/assets/shared/logos/php-icon.svg",
    2: "https://rollbar.com/assets/shared/logos/node-icon.svg",
    3: "https://rollbar.com/assets/shared/logos/python-icon.svg",
    4: "https://rollbar.com/assets/shared/logos/dotnet-icon.svg",
    5: "https://rollbar.com/assets/shared/logos/java-icon.svg",
    6: "https://rollbar.com/assets/shared/logos/go-icon.png",
    7: "https://rollbar.com/assets/shared/logos/laravel-icon.svg",
    8: "https://rollbar.com/assets/shared/logos/meteor-icon.svg",
    9: "https://rollbar.com/assets/shared/logos/clojure-icon.gif",
    10: "https://rollbar.com/assets/shared/logos/haskell-icon.png",
    11: "https://rollbar.com/assets/shared/logos/erlang-icon.png",
    12: "https://rollbar.com/assets/shared/logos/elixir-icon.png",
    13: "https://rollbar.com/assets/shared/logos/google-cloud-platform-icon.png",
    14: "https://rollbar.com/assets/shared/logos/perl-icon.svg",
    15: "https://rollbar.com/assets/shared/logos/r-icon.svg",
    16: "https://rollbar.com/assets/shared/logos/rust-icon.svg",
    17: "none",
    18: "https://rollbar.com/assets/shared/logos/javascript-icon.png",
    19: "https://rollbar.com/assets/shared/logos/react-icon.svg",
    20: "https://rollbar.com/assets/shared/logos/angular-icon.svg",
    21: "https://rollbar.com/assets/shared/logos/angular-icon.svg",
    22: "https://rollbar.com/assets/shared/logos/ember-icon.png",
    23: "https://rollbar.com/assets/shared/logos/backbone-icon.svg",
    24: "https://rollbar.com/assets/shared/logos/android-icon.svg",
    25: "https://rollbar.com/assets/shared/logos/apple-icon.svg",
    26: "https://rollbar.com/assets/shared/logos/ionic-icon.png",
    27: "https://rollbar.com/assets/shared/logos/actionscript-icon.png",
    28: "none",
    29: "https://rollbar.com/assets/shared/logos/fluentd-icon.svg",
    30: "https://rollbar.com/assets/shared/logos/logentries-icon.png",
    31: "https://rollbar.com/assets/shared/logos/logstash-icon.png",
    32: "https://rollbar.com/assets/shared/logos/mailgun-icon.png",
    33: "none",
    34: "https://rollbar.com/assets/shared/logos/slack-icon.png",
    35: "https://rollbar.com/assets/shared/logos/hipchat-icon.png",
    36: "https://rollbar.com/assets/shared/logos/flowdock-icon.png",
    37: "https://rollbar.com/assets/shared/logos/campfire-icon.png",
    38: "https://rollbar.com/assets/shared/logos/github-icon.png",
    39: "https://rollbar.com/assets/shared/logos/bitbucket-icon.png",
    40: "https://rollbar.com/assets/shared/logos/gitlab-icon.png",
    41: "https://rollbar.com/assets/shared/logos/jira-logo-horiz.png",
    42: "https://rollbar.com/assets/shared/logos/trello-icon.png",
    43: "https://rollbar.com/assets/shared/logos/github-icon.png",
    44: "https://rollbar.com/assets/shared/logos/bitbucket-icon.png",
    45: "https://rollbar.com/assets/shared/logos/gitlab-icon.png",
    46: "https://rollbar.com/assets/shared/logos/pivotal-icon.png",
    47: "https://rollbar.com/assets/shared/logos/asana-logo-vert.png",
    48: "https://rollbar.com/assets/shared/logos/sprintly-icon.png",
    49: "https://rollbar.com/assets/shared/logos/pagerduty-icon.png",
    50: "https://rollbar.com/assets/shared/logos/victorops-icon.svg",
    51: "https://rollbar.com/assets/shared/logos/opsgenie-icon.png",
    52: "https://rollbar.com/assets/shared/logos/datadog-icon.png",
    53: "https://rollbar.com/assets/shared/logos/webhooks-icon.png",
    54: "https://rollbar.com/assets/shared/logos/helpscout-icon.svg",
    55: "https://rollbar.com/assets/shared/logos/split-icon.png",
    56: "https://rollbar.com/assets/shared/logos/bash-icon.png",
    57: "https://rollbar.com/assets/shared/logos/bitbucket-icon.png",
    58: "https://rollbar.com/assets/shared/logos/capistrano-icon.png",
    59: "https://rollbar.com/assets/shared/logos/engineyard-logo-horiz.png",
    60: "https://rollbar.com/assets/shared/logos/fabric-icon.png",
    61: "https://rollbar.com/assets/shared/logos/heroku-icon.svg",
    62: "https://rollbar.com/assets/shared/logos/msbuild-icon.png",
    63: "https://rollbar.com/assets/shared/logos/powershell-icon.png",
    64: "https://rollbar.com/assets/shared/logos/octopus-icon.png",
    65: "none"
};

@xgqfrms-GitHub
Copy link
Author

Object

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype

Object.prototype 属性表示 Object 的原型对象。

JavaScript中几乎所有的对象都是 Object 的实例;

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties

Object.defineProperties() 方法直接在一个对象上定义新的属性或修改现有属性,并返回该对象。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty

Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

Object.assign() 方法用于将所有可枚举的属性的值从一个或多个源对象复制到目标对象。并返回目标对象。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/create

Object.create() 方法使用指定的原型对象和其属性创建了一个新的对象。

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 4, 2017

深度拷贝问题

https://gist.github.com/xgqfrms-GitHub/61b92cd14761e71d9922cb182550ba11

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

针对深度拷贝,需要使用其他方法 JSON.parse(JSON.stringify(obj));,因为 Object.assign() 拷贝的是属性值。
假如源对象的属性值是一个指向对象的引用,它也只拷贝那个引用值。

function test() {
  let a = { b: {c:4} , d: { e: {f:1}} };

  let g = Object.assign({},a);

  let h = JSON.parse(JSON.stringify(a));

  console.log(g.d); // { e: { f: 1 } }
  g.d.e = 32;

  console.log('g.d.e set to 32.') 
// g.d.e set to 32.
  console.log(g); // { b: { c: 4 }, d: { e: 32 } }
  console.log(a); // { b: { c: 4 }, d: { e: 32 } }

  console.log(h); 
// { b: { c: 4 }, d: { e: { f: 1 } } }


  h.d.e = 54;
  console.log('h.d.e set to 54.') ;
// h.d.e set to 54.

  console.log(g); // { b: { c: 4 }, d: { e: 32 } }
  console.log(a); // { b: { c: 4 }, d: { e: 32 } }

  console.log(h); 
// { b: { c: 4 }, d: { e: 54 } }
}
test();

@xgqfrms-GitHub
Copy link
Author

HTTPS/HTTP Ajax Header & CORS

mlab, mongodb, db, json, api, free , online,

https://gist.github.com/xgqfrms-GitHub/a3fcffb6d7923e2a7471041053f00162

mlab, mongodb, db, json, api, free , online,

https://gist.github.com/xgqfrms-GitHub/f51920e16277785f7418c03bd4f9e220

@xgqfrms-GitHub
Copy link
Author

xgqfrms-GitHub commented Jun 4, 2017

svg_name_arr = [
    "ruby",
    "php",
    "node",
    "python",
    "net",
    "java",
    "golang",
    "laravel",
    "meteor",
    "clojure",
    "haskell",
    "erlang",
    "elixir",
    "google-cloud-platform",
    "perl",
    "r",
    "rust",
    "other",
    "javascript",
    "react",
    "angular",
    "angular",
    "ember",
    "backbone",
    "android",
    "ios",
    "ionic",
    "flash",
    "other",
    "fluentd",
    "logentries",
    "logstash",
    "mailgun",
    "other",
    "slack",
    "hipchat",
    "flowdock",
    "campfire",
    "github",
    "bitbucket",
    "gitlab",
    "jira",
    "trello",
    "github",
    "bitbucket",
    "gitlab",
    "pivotal",
    "asana",
    "sprintly",
    "pagerduty",
    "victorops",
    "opsgenie image-list",
    "datadog",
    "webhooks",
    "helpscout",
    "split",
    "bash",
    "bitbucket",
    "capistrano",
    "engineyard",
    "fabric",
    "heroku",
    "msbuild",
    "powershell",
    "octopus",
    "other",
    "ruby",
    "php",
    "node",
    "python",
    "net",
    "java",
    "golang",
    "laravel",
    "meteor",
    "clojure",
    "haskell",
    "erlang",
    "elixir",
    "google-cloud-platform",
    "perl",
    "r",
    "rust",
    "other",
    "javascript",
    "react",
    "angular",
    "angular",
    "ember",
    "backbone",
    "android",
    "ios",
    "ionic",
    "flash",
    "other",
    "fluentd",
    "logentries",
    "logstash",
    "mailgun",
    "other"
];


svg_url_obj = {
    0: "https://rollbar.com/assets/shared/logos/ruby-icon.svg",
    1: "https://rollbar.com/assets/shared/logos/php-icon.svg",
    2: "https://rollbar.com/assets/shared/logos/node-icon.svg",
    3: "https://rollbar.com/assets/shared/logos/python-icon.svg",
    4: "https://rollbar.com/assets/shared/logos/dotnet-icon.svg",
    5: "https://rollbar.com/assets/shared/logos/java-icon.svg",
    6: "https://rollbar.com/assets/shared/logos/go-icon.png",
    7: "https://rollbar.com/assets/shared/logos/laravel-icon.svg",
    8: "https://rollbar.com/assets/shared/logos/meteor-icon.svg",
    9: "https://rollbar.com/assets/shared/logos/clojure-icon.gif",
    10: "https://rollbar.com/assets/shared/logos/haskell-icon.png",
    11: "https://rollbar.com/assets/shared/logos/erlang-icon.png",
    12: "https://rollbar.com/assets/shared/logos/elixir-icon.png",
    13: "https://rollbar.com/assets/shared/logos/google-cloud-platform-icon.png",
    14: "https://rollbar.com/assets/shared/logos/perl-icon.svg",
    15: "https://rollbar.com/assets/shared/logos/r-icon.svg",
    16: "https://rollbar.com/assets/shared/logos/rust-icon.svg",
    17: "none",
    18: "https://rollbar.com/assets/shared/logos/javascript-icon.png",
    19: "https://rollbar.com/assets/shared/logos/react-icon.svg",
    20: "https://rollbar.com/assets/shared/logos/angular-icon.svg",
    21: "https://rollbar.com/assets/shared/logos/angular-icon.svg",
    22: "https://rollbar.com/assets/shared/logos/ember-icon.png",
    23: "https://rollbar.com/assets/shared/logos/backbone-icon.svg",
    24: "https://rollbar.com/assets/shared/logos/android-icon.svg",
    25: "https://rollbar.com/assets/shared/logos/apple-icon.svg",
    26: "https://rollbar.com/assets/shared/logos/ionic-icon.png",
    27: "https://rollbar.com/assets/shared/logos/actionscript-icon.png",
    28: "none",
    29: "https://rollbar.com/assets/shared/logos/fluentd-icon.svg",
    30: "https://rollbar.com/assets/shared/logos/logentries-icon.png",
    31: "https://rollbar.com/assets/shared/logos/logstash-icon.png",
    32: "https://rollbar.com/assets/shared/logos/mailgun-icon.png",
    33: "none",
    34: "https://rollbar.com/assets/shared/logos/slack-icon.png",
    35: "https://rollbar.com/assets/shared/logos/hipchat-icon.png",
    36: "https://rollbar.com/assets/shared/logos/flowdock-icon.png",
    37: "https://rollbar.com/assets/shared/logos/campfire-icon.png",
    38: "https://rollbar.com/assets/shared/logos/github-icon.png",
    39: "https://rollbar.com/assets/shared/logos/bitbucket-icon.png",
    40: "https://rollbar.com/assets/shared/logos/gitlab-icon.png",
    41: "https://rollbar.com/assets/shared/logos/jira-logo-horiz.png",
    42: "https://rollbar.com/assets/shared/logos/trello-icon.png",
    43: "https://rollbar.com/assets/shared/logos/github-icon.png",
    44: "https://rollbar.com/assets/shared/logos/bitbucket-icon.png",
    45: "https://rollbar.com/assets/shared/logos/gitlab-icon.png",
    46: "https://rollbar.com/assets/shared/logos/pivotal-icon.png",
    47: "https://rollbar.com/assets/shared/logos/asana-logo-vert.png",
    48: "https://rollbar.com/assets/shared/logos/sprintly-icon.png",
    49: "https://rollbar.com/assets/shared/logos/pagerduty-icon.png",
    50: "https://rollbar.com/assets/shared/logos/victorops-icon.svg",
    51: "https://rollbar.com/assets/shared/logos/opsgenie-icon.png",
    52: "https://rollbar.com/assets/shared/logos/datadog-icon.png",
    53: "https://rollbar.com/assets/shared/logos/webhooks-icon.png",
    54: "https://rollbar.com/assets/shared/logos/helpscout-icon.svg",
    55: "https://rollbar.com/assets/shared/logos/split-icon.png",
    56: "https://rollbar.com/assets/shared/logos/bash-icon.png",
    57: "https://rollbar.com/assets/shared/logos/bitbucket-icon.png",
    58: "https://rollbar.com/assets/shared/logos/capistrano-icon.png",
    59: "https://rollbar.com/assets/shared/logos/engineyard-logo-horiz.png",
    60: "https://rollbar.com/assets/shared/logos/fabric-icon.png",
    61: "https://rollbar.com/assets/shared/logos/heroku-icon.svg",
    62: "https://rollbar.com/assets/shared/logos/msbuild-icon.png",
    63: "https://rollbar.com/assets/shared/logos/powershell-icon.png",
    64: "https://rollbar.com/assets/shared/logos/octopus-icon.png",
    65: "none"
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment