亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ajs_minify.py

?? GreyBox_v5_53 彈出窗口框架
?? PY
字號:
#!/usr/bin/env python#Last-update: 12/05/07 21:02:10import reimport sysfrom sets import Set### External files#AJS_SRC = 'AJS.js'AJS_MINI_SRC = 'AJS_compressed.js'### Standard stuff that may change in the future#DOM_SHORTCUTS = [    "ul", "li", "td", "tr", "th",    "tbody", "table", "input", "span", "b",    "a", "div", "img", "button", "h1",    "h2", "h3", "br", "textarea", "form",    "p", "select", "option", "iframe", "script",    "center", "dl", "dt", "dd", "small",    "pre", "tn"]FN_SHORTCUTS = {    '$': 'getElement',    '$$': 'getElements',    '$f': 'getFormElement',    '$b': 'bind',    '$p': 'partial',    '$A': 'createArray',    'DI': 'documentInsert',    'ACN': 'appendChildNodes',    'RCN': 'replaceChildNodes',    'AEV': 'addEventListener',    'REV': 'removeEventListener',    '$bytc': 'getElementsByTagAndClassName',    '$AP': 'absolutePosition',    '$FA': 'forceArray'}AJS_TEMPLATE = """//AJS JavaScript library (minify'ed version)//Copyright (c) 2006 Amir Salihefendic. All rights reserved.//Copyright (c) 2005 Bob Ippolito. All rights reserved.//License: http://www.opensource.org/licenses/mit-license.php//Visit http://orangoo.com/AmiNation/AJS for full version.AJS = {BASE_URL: "",drag_obj: null,drag_elm: null,_drop_zones: [],_cur_pos: null,%(functions)s}AJS.$ = AJS.getElement;AJS.$$ = AJS.getElements;AJS.$f = AJS.getFormElement;AJS.$p = AJS.partial;AJS.$b = AJS.bind;AJS.$A = AJS.createArray;AJS.DI = AJS.documentInsert;AJS.ACN = AJS.appendChildNodes;AJS.RCN = AJS.replaceChildNodes;AJS.AEV = AJS.addEventListener;AJS.REV = AJS.removeEventListener;AJS.$bytc = AJS.getElementsByTagAndClassName;AJS.$AP = AJS.absolutePosition;AJS.$FA = AJS.forceArray;AJS.addEventListener(window, 'unload', AJS._unloadListeners);AJS._createDomShortcuts();%(AJSClass)s%(AJSDeferred)sscript_loaded = true;"""def getAjsCode():    return open(AJS_SRC).read()def writeAjsMini(code):    open(AJS_MINI_SRC, "w").write(code)class AjsAnalyzer:    def __init__(self):        self.code = getAjsCode()        self.ajs_fns = {}        self.ajs_deps = {}        self._parseAJS()        self._findDeps()    def _parseAJS(self):        ajs_code = re.search("AJS =(.|\n)*\n}\n", self.code).group(0)        fns = re.findall("\s+((\w*?):.*?{(.|\n)*?\n\s*})(,|\n+})\n", ajs_code)        for f in fns:            self.ajs_fns[f[1]] = f[0]        for shortcut in FN_SHORTCUTS:            self.ajs_fns[shortcut] = self.ajs_fns[FN_SHORTCUTS[shortcut]]    def getFnCode(self, fn_name, caller=None):        """        Returns the code of function and it's dependencies as a list        """        fn_name = self._unfoldFn(fn_name)        r = []        if self.ajs_fns.get(fn_name):            r.append(self.ajs_fns[fn_name])            for dep_fn in self.ajs_deps[fn_name]:                if fn_name != dep_fn and dep_fn != caller:                    r.extend(self.getFnCode(dep_fn, fn_name))        elif fn_name not in ['listeners', 'Class']:            print 'Could not find "%s"' % fn_name        return r    def getAjsClassCode(self):        return re.search("AJS.Class =(.|\n)*\n};//End class", self.code).group(0)    def getAjsDeferredCode(self):        return re.search("AJSDeferred =(.|\n)*\n};//End deferred", self.code).group(0)    def _findDeps(self):        """        Parses AJS and for every function it finds dependencies for the other functions.        """        for fn_name, fn_code in self.ajs_fns.items():            self.ajs_deps[fn_name] = self._findFns(fn_code)    def _findFns(self, inner):        """        Searches after AJS.fnX( in inner and returns all the fnX in a Set.        """        s = re.findall("AJS\.([\w_$]*?)(?:\(|,|\.)", inner)        s = list(Set(s))        return self._unfoldFns(s)    def _unfoldFns(self, list):        """        Unfolds:            AJS.B, AJS.H1 etc. to _createDomShortcuts            AJS.$ to AJS.getElement etc.        """        return [self._unfoldFn(n) for n in list]    def _unfoldFn(self, fn_name):        if fn_name.lower() in DOM_SHORTCUTS:            return "_createDomShortcuts"        elif FN_SHORTCUTS.get(fn_name):            return FN_SHORTCUTS[fn_name]        else:            return fn_nameclass ExternalCodeAnalyzer:    def __init__(self, files, ajs_analyzer):        self.found_ajs_fns = []        self.files = files        self.ajs_analyzer = ajs_analyzer    def findFunctions(self):        for f in self.files:            self.found_ajs_fns.extend( self._parseFile(f) )        return list(Set(self.found_ajs_fns))    def _parseFile(self, f):        """        Parses the file, looks for AJS functions and returns all the found functions.        """        code = open(f).read()        found_fns = []        for ajs_fn in self.ajs_analyzer.ajs_fns:            if re.search(r"%s\(" % ajs_fn.replace('$', '\\$'), code):                found_fns.append(ajs_fn)        return found_fnsclass AjsComposer:    def __init__(self, fn_list, analyzer):        self.code = getAjsCode()        self.analyzer = analyzer        self.fn_list = fn_list        #Append standard functions        req = ['_unloadListeners', 'createDOM', '_createDomShortcuts', 'log', 'addEventListener']        self.fn_list.extend(req)        #Append AJSDeferred only if needed        in_list = lambda x: x in self.fn_list        if in_list('getRequest') or in_list('loadJSONDoc'):            self.deferred = self._minify(self.analyzer.getAjsDeferredCode())            self.fn_list.append('isObject')        else:            self.deferred = ''    def writeToOutput(self):        fns = self._getFns()        d = {}        d['functions'] = ",\n".join(fns)        d['AJSDeferred'] = self.deferred        d['AJSClass'] = self._minify(self.analyzer.getAjsClassCode())        mini_code = AJS_TEMPLATE % d        writeAjsMini(mini_code)    def _minify(self, code):        new_lines = []        for l in code.split("\n"):            if l not in ['\n', '']:                new_lines.append(l.lstrip())        return "\n".join(new_lines)    def _getFns(self):        """        Returns a list with real code of functions        """        r = []        for fn in self.fn_list:            r.extend(self.analyzer.getFnCode(fn))        r = list(Set(r))        return [self._minify(fn) for fn in r]if __name__ == '__main__':    args = sys.argv    if len(args) < 3:        print """Usage is:    python AJS_minify.py [-o output_file] ajs_file js_file.js html_using_ajs.html ...Example usage:    Using relative paths:        python AJS_minify.py -o AJS_mini.js AJS.js test.js index.html        This will create AJS_mini.js from test.js and index.html.    Using absolute paths:        python AJS_minify.py ~/Desktop/AJS/AJS.js ~/Desktop/GreyBox_v3_42/greybox/greybox.js        This will create a new file called '%s' that has the needed AJS functions.""" % AJS_MINI_SRC        sys.exit(0)    if sys.argv[1] == '-o':        AJS_MINI_SRC = sys.argv[2]        AJS_SRC = sys.argv[3]        FILES = sys.argv[4:]    else:        AJS_SRC = sys.argv[1]        FILES = sys.argv[2:]    print 'Parsing through:\n    %s' % "\n    ".join(FILES)    ajs_analyzer = AjsAnalyzer()    code_analyzer = ExternalCodeAnalyzer(FILES, ajs_analyzer)    found_fns = code_analyzer.findFunctions()    print 'Found following AJS functions:\n    %s' % ("\n    ".join(found_fns))    composer = AjsComposer(found_fns, ajs_analyzer)    composer.writeToOutput()    print "Written the minified code to '%s'" % AJS_MINI_SRC

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影在线看| 91精品福利视频| 91成人在线精品| 精品99一区二区| 一区二区欧美国产| 高清beeg欧美| 欧美r级在线观看| 亚洲国产va精品久久久不卡综合| 久久成人18免费观看| 在线观看视频91| 欧美国产日韩a欧美在线观看| 亚洲123区在线观看| 成年人国产精品| 精品国产一区二区三区av性色| 一区二区三区加勒比av| 成人听书哪个软件好| 欧美大片在线观看| 午夜伦理一区二区| 欧美三片在线视频观看| 亚洲欧洲韩国日本视频| 国产精品系列在线播放| 欧美二区三区的天堂| 亚洲图片欧美视频| 91国偷自产一区二区使用方法| 国产精品区一区二区三| 国内国产精品久久| 久久久久久夜精品精品免费| 免费成人美女在线观看.| 91麻豆精品国产91久久久久久久久| 亚洲欧美日韩一区| 99re成人精品视频| 欧美激情一区二区三区| 粉嫩av一区二区三区粉嫩| 精品粉嫩aⅴ一区二区三区四区| 五月天视频一区| 777a∨成人精品桃花网| 日韩电影在线观看网站| 日韩免费高清视频| 黑人巨大精品欧美黑白配亚洲| 欧美v日韩v国产v| 国产在线精品视频| 国产精品久久三区| 欧洲视频一区二区| 天天色天天操综合| 日韩欧美黄色影院| 黄色日韩三级电影| 国产精品久久午夜| 91国产视频在线观看| 午夜影院久久久| 91麻豆精品国产91久久久久久久久| 青青草国产精品亚洲专区无| 精品国产伦一区二区三区观看体验| 国产在线精品一区二区不卡了| 久久精品视频一区二区三区| 99久久婷婷国产综合精品电影| 亚洲精品免费视频| 欧美性大战久久| 激情综合五月婷婷| 国产精品国产自产拍高清av| 欧美在线小视频| 久久超级碰视频| 成人免费一区二区三区视频| 欧洲亚洲国产日韩| 国产在线精品免费| 一区二区不卡在线播放 | 成人免费不卡视频| 亚洲精品中文在线观看| 在线不卡a资源高清| 国产精品一区二区三区99| 亚洲欧美另类在线| 日韩一级免费观看| 92国产精品观看| 男人的天堂久久精品| 国产精品久久久久久久久免费桃花 | 国产精品私人影院| 欧美色老头old∨ideo| 国产精品中文字幕欧美| 一区二区三区精品在线| 精品国产乱码久久久久久久久| 99久久婷婷国产综合精品| 轻轻草成人在线| 亚洲精品欧美专区| 国产午夜亚洲精品理论片色戒 | 亚洲视频一二三区| 日韩一区和二区| 色先锋资源久久综合| 国产精品18久久久久| 亚洲成人免费av| 亚洲欧美国产三级| 亚洲国产精品v| 欧美变态凌虐bdsm| 欧美视频在线不卡| 波多野结衣欧美| 国内精品嫩模私拍在线| 亚洲成人三级小说| 夜夜嗨av一区二区三区网页| 中文字幕乱码久久午夜不卡| 日韩亚洲电影在线| 欧美日韩三级视频| 91在线无精精品入口| 国产精品18久久久久久久久| 青青草原综合久久大伊人精品优势| 亚洲精品大片www| 国产精品久久久久久久久免费丝袜| 欧美成人aa大片| 精品国产伦一区二区三区观看方式 | 8v天堂国产在线一区二区| 成人免费视频国产在线观看| 麻豆国产欧美日韩综合精品二区 | 中文字幕巨乱亚洲| 国产女人18水真多18精品一级做| 日韩欧美中文一区| 欧美zozo另类异族| 欧美一区二区视频在线观看2020| 欧美精品久久久久久久多人混战 | 91免费看片在线观看| 色综合久久久网| 一本大道久久a久久精品综合| 91首页免费视频| 在线一区二区三区四区五区 | 日韩一区二区三区三四区视频在线观看 | 亚洲免费在线视频一区 二区| 中文字幕一区二区三区在线播放 | 在线国产电影不卡| 欧洲av一区二区嗯嗯嗯啊| 欧美性生活大片视频| 欧美乱熟臀69xxxxxx| 日韩欧美综合在线| 国产欧美一区二区精品秋霞影院 | 三级欧美韩日大片在线看| 夜色激情一区二区| 婷婷综合在线观看| 乱一区二区av| 成人精品一区二区三区四区| www.亚洲色图| 欧美日韩精品欧美日韩精品一 | 国产精品美女久久久久久久久| 国产视频亚洲色图| 亚洲天天做日日做天天谢日日欢| 亚洲欧美日本韩国| 蜜臀av在线播放一区二区三区| 久久成人免费电影| 91麻豆精品一区二区三区| 欧美日韩成人在线一区| 久久先锋影音av| 亚洲精品国产视频| 麻豆91精品91久久久的内涵| 国产成人一区在线| 欧美中文字幕一区二区三区亚洲| 6080日韩午夜伦伦午夜伦| 久久看人人爽人人| 亚洲国产日韩在线一区模特| 久久99久久精品| av电影天堂一区二区在线| 欧美一区二区视频在线观看| 国产欧美日韩综合| 亚洲国产婷婷综合在线精品| 麻豆91精品91久久久的内涵| a级精品国产片在线观看| 欧美酷刑日本凌虐凌虐| 欧美国产亚洲另类动漫| 丝瓜av网站精品一区二区| 丁香亚洲综合激情啪啪综合| 欧美巨大另类极品videosbest | 91国产免费看| 久久亚洲精品国产精品紫薇| 亚洲精品欧美激情| 精品写真视频在线观看| 欧美日韩综合色| 国产精品视频九色porn| 免费久久精品视频| 欧美日韩午夜在线| 国产精品进线69影院| 国产美女主播视频一区| 在线播放日韩导航| 最新不卡av在线| 国产mv日韩mv欧美| 日韩三级视频在线观看| 性久久久久久久久久久久| 99在线视频精品| 中文字幕精品综合| 国产高清精品久久久久| 日韩欧美国产麻豆| 秋霞午夜av一区二区三区| 欧美中文字幕一区二区三区亚洲| 欧美激情一区二区三区四区| 国产一区二区三区免费| 日韩欧美亚洲国产另类| 日韩经典一区二区| 欧美日韩和欧美的一区二区| 亚洲欧美激情插| 91丝袜国产在线播放| 国产精品久久久久久久岛一牛影视| 国产乱码精品一区二区三区忘忧草| 91精品国产欧美一区二区| 五月天一区二区三区| 777久久久精品| 伦理电影国产精品| 精品国产免费人成在线观看| 毛片av一区二区|