forked from Botanical/BotanJS
Added zlib, fixed wildcard import ignoring namespaces
This commit is contained in:
@@ -1,9 +1,4 @@
|
||||
|
||||
import os
|
||||
import re
|
||||
import base64
|
||||
import zlib
|
||||
import hashlib
|
||||
import os, re, base64, zlib, hashlib, binascii
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
PY_SEP = os.path.sep
|
||||
@@ -200,7 +195,7 @@ class BotanClassResolver:
|
||||
# Root file date
|
||||
dates.append( os.path.getmtime( os.path.join( self.R, "_this.js" ) ) );
|
||||
|
||||
if self.useCache( cFile, dates ) and self.flagCompress == True:
|
||||
if self.flagCompress and self.useCache( cFile, dates ):
|
||||
return cFHash if self.returnHash else self.BotanCache( cFile )
|
||||
|
||||
elif self.useCache( oFile, dates ):
|
||||
@@ -303,7 +298,6 @@ class BotanClassResolver:
|
||||
self.resv._reload()
|
||||
flag = mode[0]
|
||||
requestAPIs = code
|
||||
sp = "/"
|
||||
|
||||
if flag == "o":
|
||||
mode = mode[1:]
|
||||
@@ -312,12 +306,16 @@ class BotanClassResolver:
|
||||
self.flagCompress = False
|
||||
else:
|
||||
self.returnHash = True
|
||||
|
||||
try:
|
||||
requestAPIs = (
|
||||
# decode -> decompress -> split
|
||||
zlib.decompress( base64.b64decode( code, None, True ) )
|
||||
.decode( "utf-8" )
|
||||
)
|
||||
sp = ","
|
||||
except binascii.Error:
|
||||
sp = "/"
|
||||
|
||||
# strip malicious
|
||||
requestAPIs = (
|
||||
|
@@ -2,6 +2,7 @@
|
||||
from flask import Flask
|
||||
from flask import Response
|
||||
from flask import render_template
|
||||
from flask import request
|
||||
from botanjs.service.jclassresv import BotanClassResolver as JCResv
|
||||
from botanjs.service.jwork import app as CeleryApp, JWork
|
||||
from botanjs.config import Config, DEBUG
|
||||
@@ -25,12 +26,12 @@ class WebAPI:
|
||||
if brokerURL != None:
|
||||
CeleryApp.conf.update( BROKER_URL = brokerURL )
|
||||
|
||||
print( __name__ )
|
||||
self.app = Flask( __name__, static_url_path = self.BCache, static_folder = self.BCache )
|
||||
self.app.jinja_env.add_extension( "compressinja.html.HtmlCompressor" )
|
||||
|
||||
self.app.add_url_rule( "/" , view_func = self.index )
|
||||
self.app.add_url_rule( "/<path:mode>/<path:code>" , view_func = self.api_request )
|
||||
self.app.add_url_rule( "/<mode>/" , view_func = lambda mode: self.api_request( mode, "zpayload" ) )
|
||||
self.app.add_url_rule( "/<mode>/<path:code>" , view_func = self.api_request )
|
||||
|
||||
self.app.run(
|
||||
host = Config[ "Service" ][ "BindAddress" ]
|
||||
@@ -41,6 +42,10 @@ class WebAPI:
|
||||
return "Hello, this is the BotanJS Service API.", 200
|
||||
|
||||
def api_request( self, mode, code ):
|
||||
|
||||
if code == "zpayload":
|
||||
code = request.args.get( "p" )
|
||||
|
||||
try:
|
||||
t = mode[1:]
|
||||
if t == "js":
|
||||
|
Reference in New Issue
Block a user