Fixed issues with string and json parsing in SDK
This commit is contained in:
+41
-20
@@ -859,7 +859,6 @@ class AppBase:
|
||||
return parse_nested_param(string + ')', level)
|
||||
elif len(re.findall("\(", string)) < len(re.findall("\)", string)):
|
||||
return parse_nested_param('(' + string, level)
|
||||
|
||||
else:
|
||||
return 'Failed to parse params'
|
||||
|
||||
@@ -950,17 +949,30 @@ class AppBase:
|
||||
print(f"JSON ERROR in join(): {e}")
|
||||
|
||||
if "len" in thistype or "length" in thistype or "lenght" in thistype:
|
||||
print(f"Trying to length-parse: {data}")
|
||||
|
||||
tmp = ""
|
||||
try:
|
||||
tmp = json.loads(tmpdata)
|
||||
except:
|
||||
tmp = json.loads(data)
|
||||
except (NameError, KeyError, TypeError, json.decoder.JSONDecodeError) as e:
|
||||
try:
|
||||
tmpdata = data.replace("\'", "\"")
|
||||
tmp = json.loads(tmpdata)
|
||||
except:
|
||||
print("[ERROR] Parsing bug for length in app sdk")
|
||||
print(f"[WARNING] INITIAL Parsing bug for length in app sdk: {e}")
|
||||
#data = data.replace("\'", "\"")
|
||||
data = data.replace("True", "true")
|
||||
data = data.replace("False", "false")
|
||||
data = data.replace("None", "null")
|
||||
data = data.replace("\"", "\\\"")
|
||||
data = data.replace("'", "\"")
|
||||
|
||||
tmp = json.loads(data)
|
||||
except (NameError, KeyError, TypeError, json.decoder.JSONDecodeError) as e:
|
||||
print(f"[ERROR] Parsing bug for length in app sdk: {e}")
|
||||
pass
|
||||
|
||||
if tmp == "":
|
||||
print("[WARNING] Length parsing: item wasn't parsed")
|
||||
tmp = data
|
||||
|
||||
if isinstance(tmp, list):
|
||||
return str(len(tmp))
|
||||
elif isinstance(tmp, object):
|
||||
@@ -1028,20 +1040,29 @@ class AppBase:
|
||||
print("INNER: ", innervalue)
|
||||
print("OUTER: ", outervalue)
|
||||
|
||||
# FIXME: There is a known bug here with nested paranthesis
|
||||
#if outervalue != innervalue:
|
||||
# # FIXME: This line right here WILL break things when we
|
||||
# # Do recursive paranthesis in the future
|
||||
# innervalue = outervalue
|
||||
|
||||
# #print("Outer: ", outervalue, " inner: ", innervalue)
|
||||
# for key in range(len(innervalue)):
|
||||
# # Replace OUTERVALUE[key] with INNERVALUE[key] in data.
|
||||
# print("\nReplace %s\nwith\n%s\nin\n%s" % (outervalue[key], innervalue[key], data))
|
||||
# data = data.replace(outervalue[key], innervalue[key])
|
||||
#else:
|
||||
if outervalue != innervalue:
|
||||
#print("Outer: ", outervalue, " inner: ", innervalue)
|
||||
for key in range(len(innervalue)):
|
||||
# Replace OUTERVALUE[key] with INNERVALUE[key] in data.
|
||||
print("Replace %s with %s in %s" % (outervalue[key], innervalue[key], data))
|
||||
data = data.replace(outervalue[key], innervalue[key])
|
||||
else:
|
||||
for thistype in wrappers:
|
||||
if thistype.lower() not in data.lower():
|
||||
continue
|
||||
|
||||
parsed_value = parse_type(innervalue[0], thistype.lower())
|
||||
print("Parsed value from %s: %s" % (thistype, parsed_value))
|
||||
return (parsed_value, True)
|
||||
print("Setting inner to outer")
|
||||
innervalue = outervalue
|
||||
|
||||
for thistype in wrappers:
|
||||
if thistype.lower() not in data.lower():
|
||||
continue
|
||||
|
||||
parsed_value = parse_type(innervalue[0], thistype.lower())
|
||||
print("Parsed value from %s: %s" % (thistype, parsed_value))
|
||||
return (parsed_value, True)
|
||||
|
||||
#print("DATA: %s\n" % data)
|
||||
return (parse_wrapper(data)[0], True)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
NAME=shuffle-app_sdk
|
||||
VERSION=0.8.64
|
||||
VERSION=0.8.71
|
||||
|
||||
docker rmi docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION --force
|
||||
docker build . -t frikky/shuffle:app_sdk -t frikky/$NAME:$VERSION -t docker.pkg.github.com/frikky/shuffle/$NAME:$VERSION -t ghcr.io/frikky/$NAME:$VERSION
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
urllib3=1.25.9
|
||||
requests=2.25.1
|
||||
urllib3==1.25.9
|
||||
requests==2.25.1
|
||||
|
||||
Reference in New Issue
Block a user