Created
October 24, 2015 23:08
-
-
Save steffengy/d0cb0afc7378f19848f6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* port of https://github.com/beautify-web/js-beautify/blob/master/python/jsbeautifier/unpackers/packer.py (MIT) */ | |
var unpacker = { | |
unpack: function (str) { | |
var params = unpacker.filterargs(str); | |
var payload = params[0], symtab = params[1], radix = params[2], count = params[3]; | |
if (count != symtab.length) { | |
throw new Error("Malformed p.a.c.k.e.r. symtab. (" + count + " != " + symtab.length + ")"); | |
} | |
var unbase = unpacker.unbaser(radix); | |
var lookup = (word) => symtab[unbase(word)] || word; | |
source = payload.replace(/\b\w+\b/g, lookup); | |
console.log(source); | |
}, | |
filterargs: function(str) { | |
/* [\s\S] insteadof . because javascript has no dotall modifier */ | |
var juicers = [ | |
/}\('([\s\S]*)', *(\d+), *(\d+), *'([\s\S]*)'\.split\('\|'\), *(\d+), *([\s\S]*)\)\)/, | |
/}\('([\s\S]*)', *(\d+), *(\d+), *'([\s\S]*)'\.split\('\|'\)/ | |
]; | |
for (var c = 0; c < juicers.length; ++c) { | |
var m, juicer = juicers[c]; | |
if (m = juicer.exec(str)) { | |
return [m[1], m[4].split('|'), parseInt(m[2]), parseInt(m[3])]; | |
} | |
} | |
throw new Error("Could not make sense of p.a.c.k.e.r data (unexpected code structure)"); | |
}, | |
alphabet: { | |
62: "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", | |
95: '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~' | |
}, | |
unbaser: function(base) | |
{ | |
if (2 <= base <= 36) return (str) => parseInt(str, base); | |
var dictionary = {}; | |
var alphabet = unpacker.alphabet[base]; | |
if (!alphabet) throw new Error("Unsupported encoding"); | |
for (var c = 0; c < alphabet.length; ++alphabet) { | |
dictionary[alphabet[c]] = c; | |
} | |
return (str) => str.split("").reverse().reduce((cipher, ind) => Math.pow(base, ind) * dictionary[cipher]); | |
} | |
}; |
The problem is here in your script: ,55,55. It can not handle radix 55.
I have a fix for this here: https://github.com/swan46/js-beautify
how to use it ?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It did not work with this script:
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('0(\'0\').k({j:\'i\',g:\'h%\',l:\'m\',q:p,o:\'n:9\',f:\'/d-5/4/3/1/2.6\',e:\'7\',c:[{b:8("a/s++F/L+K+J+H+I/M+N+S+R/Q+O+P/G/x/w/v/t+u+y/z/E"),D:"C/A",B:"r"}]});',55,55,'jwplayer|images|player|detube|themes|content|jpg|five|javclc||U2FsdGVkX19w|file|sources|wp|skin|image|width|100|html5|primary|setup|height|400px|16|aspectratio|false|autostart|360p|bA82RuulJ4634MjxBwYz00Sy2eXdduVURoptI8htDQW7WKR|nDrzySA9IjTx4rkX9ncjflWwJMHwg6R82Xe9WYCuleW0Wz|D5Toyu3FbvJyhwzJ8SmVc0Y8gXsYaaFqhKUO1P4Z3VURZjhpTD61ch77aD34XsGF3iBvX3J42OWFOMlihfeDKRPlBQ4vRM|BL3Vfy|n6mmsDrwEKh|PZGpq09Ri8wOMGKkaX1cNjBSaoKN1v8jhppHJE2GQBu6H8mMCaIBOBpcmoe0LmHtl1YcKgorjzZkVz54pC3qPuO3iWWTtJ|Sqh65i3FyAnsVGQS6c|4JZZCuwyOdnx520I|mp4|label|video|type|bM|ef1FRT|0R4B6sUBfjZ9QB0iexp1c|OA7vU9P4oJJdXON|rM6|WDfx1JsY4YtINOZJAr5KA7JbDmFK5pinrfGTPioiW0b9T8V|6QcZQg8tqPlQXGLIbpmjq9NLuBe|iuNdoGufB2zIIyUO5z4PGrJ0EKD8C8b73IKTw|X2rkI4NGQneGHPHtwXsko8GQsdHOG76v25C9L4NYyR8W7xt7M|P3C4wKo2PMz64GW5R8lh|PzWNob88DpWK33klNWMReIf|WcbEYjEjvXscN4qxZAjiC3Z|8pQ6EhZOrfMTCysNd3w|9R24ZwEwNM2SZxRi0u5QQmUOB1m0kdVwS|02RKYGxOJcI'.split('|'),0,{}))
Output expected:
jwplayer('jwplayer').setup({ primary: 'html5', width: '100%', height: '400px', autostart: false, aspectratio: '16:9', skin: 'five', sources: [{ file: decode("U2FsdGVkX19w/bA82RuulJ4634MjxBwYz00Sy2eXdduVURoptI8htDQW7WKR++ef1FRT/iuNdoGufB2zIIyUO5z4PGrJ0EKD8C8b73IKTw+6QcZQg8tqPlQXGLIbpmjq9NLuBe+WDfx1JsY4YtINOZJAr5KA7JbDmFK5pinrfGTPioiW0b9T8V+OA7vU9P4oJJdXON+rM6/X2rkI4NGQneGHPHtwXsko8GQsdHOG76v25C9L4NYyR8W7xt7M+P3C4wKo2PMz64GW5R8lh+02RKYGxOJcI+9R24ZwEwNM2SZxRi0u5QQmUOB1m0kdVwS/8pQ6EhZOrfMTCysNd3w+PzWNob88DpWK33klNWMReIf+WcbEYjEjvXscN4qxZAjiC3Z/0R4B6sUBfjZ9QB0iexp1c/PZGpq09Ri8wOMGKkaX1cNjBSaoKN1v8jhppHJE2GQBu6H8mMCaIBOBpcmoe0LmHtl1YcKgorjzZkVz54pC3qPuO3iWWTtJ/n6mmsDrwEKh/BL3Vfy/nDrzySA9IjTx4rkX9ncjflWwJMHwg6R82Xe9WYCuleW0Wz+D5Toyu3FbvJyhwzJ8SmVc0Y8gXsYaaFqhKUO1P4Z3VURZjhpTD61ch77aD34XsGF3iBvX3J42OWFOMlihfeDKRPlBQ4vRM+Sqh65i3FyAnsVGQS6c/4JZZCuwyOdnx520I/bM"), type: "video/mp4", label: "360p" } ] });
Hope you fix it soon.
Thanks