Skip to content

Instantly share code, notes, and snippets.

View yuanoook's full-sized avatar

Undefined yuanoook

View GitHub Profile
@yuanoook
yuanoook / hi.js
Last active October 20, 2018 11:19
HI = window.HI || {}
HI.waitMS = async ms => new Promise(resolve => setTimeout(resolve, ms))
HI.loadJS = (src, call) => {
var script = document.createElement('script')
script.src = src // + '?_t=' + Date.now()
script.onload = call
document.head.appendChild(script)
}
@yuanoook
yuanoook / SketchSystems.spec
Created June 21, 2018 13:24
My Awesome Sketch
My Awesome Sketch
First State
some event -> Second State
Second State
@yuanoook
yuanoook / merge_products_with_same_id_and_same_grouped_addons.js
Last active April 12, 2018 10:41
merge_products_with_same_id_and_same_grouped_addons.js
function merge_products_with_same_id_and_same_grouped_addons(products) {
var grouped_products_map_by_same_id_and_same_grouped_addons = {}
var generate_hash_key_for_grouped_addons = function(addons) {
if (!addons || !addons.sort) return ''
addons.sort(function(addon1, addon2){ return addon1.id > addon2.id ? 1 : -1})
return JSON.stringify(addons)
}
var generate_hash_key_for_product = function(product) {
@yuanoook
yuanoook / datatree.js
Created December 14, 2017 12:01
flattenTreeByChildren & makeTreeWithParentId
var util = {
i: 0,
uuid: function() {return this.i++},
copyObj: function(obj) {
var result = Array.isArray(obj) ? [] : {};
for (var key in obj) result[key] = obj[key];
return result;
}
};
@yuanoook
yuanoook / crossTabsMemoryStorage.js
Created November 30, 2017 11:40
crossTabsMemoryStorage.js
/**
* Created by Rango Yuan on 2017/11/27.
* crossTabsMemoryStorage is for fixing sessionStorage
* https://truongtx.me/2014/06/16/cross-tab-communication-using-html5-dom-storage
*/
define([], function() {
if (window.crossTabsMemoryStorage) return window.crossTabsMemoryStorage;
return window.crossTabsMemoryStorage = (function() {
@yuanoook
yuanoook / t.js
Created November 29, 2017 11:07
for keepwork angular i18n
const walk = require('walk')
const fs = require('fs')
const path = require('path')
const cheerio = require('cheerio')
const targetDir = "../wikicraft/www/wiki/html";
const options = {
followLinks: false,
filters: ["articles", "templates", "tutorial"]
};
const emptyCall = () => {};
@yuanoook
yuanoook / gist:4aa7566c7e0cbab27fd41e16f5a4fd16
Created September 15, 2017 10:45
save_ui_to_bmp_electron_preload
const fs = require('fs');
const Jimp = require('jimp');
const electron = require('electron');
const html2canvas = require('html2canvas');
const remote = electron.remote;
const nativeImage = electron.nativeImage
const Menu = remote.Menu;
const MenuItem = remote.MenuItem;
@yuanoook
yuanoook / usalife.combo.js
Last active June 17, 2017 17:54
usalife.combo.js
#!/usr/bin/env node
var fs = require('fs');
var $ = require('cheerio');
var sh = require('child_process').execSync;
var indexs = [];
for(let i=1; i<=61; i++) indexs.push(i);
var combo_body = indexs.map(i => {
function download(url) {
var a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('download', '');
a.click();
}
var indexs = [];
for(let i=1; i<=61; i++) indexs.push(i);
@yuanoook
yuanoook / inbrowser.download.js
Created June 17, 2017 16:49
inbrowser.download.js
function download(url) {
var a = document.createElement('a');
a.setAttribute('href', url);
a.setAttribute('download', '');
a.click();
}