Skip to content

Instantly share code, notes, and snippets.

@xulapp
xulapp / json.js
Created June 9, 2011 13:05
json check and eval
function json(str) {
var _str = str;
var innermostObjectReg = /(^|[[:,])\s*(?:\[(?:\s*(?:"(?:\\["\\/bfnrt]|\\u[0-9A-Fa-f]{4}|[^\\"])*"|-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[Ee][+-]?\d+)?|true|false|null)\s*(?:,\s*(?:"(?:\\["\\/bfnrt]|\\u[0-9A-Fa-f]{4}|[^\\"])*"|-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[Ee][+-]?\d+)?|true|false|null)\s*)*|\s*)\]|\{(?:\s*"(?:\\["\\/bfnrt]|\\u[0-9A-Fa-f]{4}|[^\\"])*"\s*:\s*(?:"(?:\\["\\/bfnrt]|\\u[0-9A-Fa-f]{4}|[^\\"])*"|-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[Ee][+-]?\d+)?|true|false|null)\s*(?:,\s*"(?:\\["\\/bfnrt]|\\u[0-9A-Fa-f]{4}|[^\\"])*"\s*:\s*(?:"(?:\\["\\/bfnrt]|\\u[0-9A-Fa-f]{4}|[^\\"])*"|-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[Ee][+-]?\d+)?|true|false|null)\s*)*|\s*)\})\s*(?=[\]},]|$)/g;
while (_str !== (_str = _str.replace(innermostObjectReg, '$10')));
if (/^\s*(?:"(?:\\["\\/bfnrt]|\\u[0-9A-Fa-f]{4}|[^\\"])*"|-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[Ee][+-]?\d+)?|true|false|null)\s*$/.test(_str)) {
_str = str.replace(/\u2028|\u2029/g, function(c) {
return c === '\u2028' ? '\\u2028' : '\\u2029';
});
retu
@xulapp
xulapp / viewCharInfo.uc.js
Created May 31, 2011 16:23
viewCharInfo.uc.js
// ==UserScript==
// @name viewCharInfo.uc.js
// @description
// @include main
// @compatibility Firefox
// @namespace http://twitter.com/xulapp
// @author xulapp
// @license MIT License
// @version 2011/06/01 01:20 +09:00
// ==/UserScript==
function range(start, end, step) {
if (arguments.length < 1)
throw new TypeError('range expected at least 1 arguments, got 0');
if (arguments.length < 2)
end = start, start = 0;
if (arguments.length < 3)
step = 1;
javascript:(function(d,s){s=d.createElement('script');s.onload=function()WebP.processImages();d.querySelector('head').appendChild(s).src='https://github.com/antimatter15/weppy/raw/master/weppy.js'})(document)
@xulapp
xulapp / permutate.js
Created April 17, 2011 04:01
permutate
function permutate(fn) {
var result = [];
var queue = [Array.slice(arguments, 1)];
while (queue.length) {
var args = queue.shift();
for (var i = 0, len = args.length; i < len; i++) {
var arg = args[i];
if (arg instanceof Array) break;
}
@xulapp
xulapp / my-coding-style.js
Created April 5, 2011 14:26
my coding style
if (cond)
return;
if (cond)
return 'expression';
if (cond)
one();
if (cond) {
(function(a, o) {
with (o) {
var __proto__ = {a: 1};
alert(a);
}
})(0, {});
@xulapp
xulapp / toggleFindBar.uc.js
Created April 3, 2011 15:45
toggleFindBar.uc.js
// ==UserScript==
// @include main
// @compatibility Firefox 4.0+
// ==/UserScript==
document.getElementById('cmd_find').setAttribute('oncommand', 'gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();');
@xulapp
xulapp / Bug330458.uc.js
Created April 3, 2011 14:05
document.loadOverlay
// ==uc==
// @include *
// @exclude chrome://browser/content/preferences/preferences.xul
// ==/uc==
(function Bug330458() {
var orgLoadOverlay = document.loadOverlay;
var queue = [];
var loading = false;
@xulapp
xulapp / ffmpeg-update.py
Created March 21, 2011 11:27
ffmpeg installer
# coding: utf-8
import os
import re
import urllib
import locale
locale.setlocale(locale.LC_ALL, '')
pageurl = 'http://blog.k-tai-douga.com/'
re_fileurl = re.compile(r'(?<=")http://abechin\.sakura\.ne\.jp/sblo_files/k-tai-douga/ffmpeg/ffmpeg_bin_pentium4-\d+\.zip(?=")')