Update SERVER_JS_DEFINE_REGEX
This commit is contained in:
@@ -15,7 +15,9 @@ from . import _graphql, _util, _exception
|
|||||||
from typing import Optional, Mapping, Callable, Any
|
from typing import Optional, Mapping, Callable, Any
|
||||||
|
|
||||||
|
|
||||||
SERVER_JS_DEFINE_REGEX = re.compile(r'require\("ServerJSDefine"\)\)?\.handleDefines\(')
|
SERVER_JS_DEFINE_REGEX = re.compile(
|
||||||
|
r'require(?:\("ServerJS"\).{,100}\.handle\({.*"define":)|(?:\("ServerJSDefine"\)\)?\.handleDefines\()'
|
||||||
|
)
|
||||||
SERVER_JS_DEFINE_JSON_DECODER = json.JSONDecoder()
|
SERVER_JS_DEFINE_JSON_DECODER = json.JSONDecoder()
|
||||||
|
|
||||||
|
|
||||||
|
@@ -13,7 +13,7 @@ from fbchat._session import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_parse_server_js_define():
|
def test_parse_server_js_define_old():
|
||||||
html = """
|
html = """
|
||||||
some data;require("TimeSliceImpl").guard(function(){(require("ServerJSDefine")).handleDefines([["DTSGInitialData",[],{"token":"123"},100]])
|
some data;require("TimeSliceImpl").guard(function(){(require("ServerJSDefine")).handleDefines([["DTSGInitialData",[],{"token":"123"},100]])
|
||||||
|
|
||||||
@@ -29,6 +29,20 @@ def test_parse_server_js_define():
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def test_parse_server_js_define_new():
|
||||||
|
html = """
|
||||||
|
some data;require("TimeSliceImpl").guard(function(){new (require("ServerJS"))().handle({"define":[["DTSGInitialData",[],{"token":""},100]],"require":[...]});}, "ServerJS define", {"root":true})();
|
||||||
|
more data
|
||||||
|
<script><script>require("TimeSliceImpl").guard(function(){var s=new (require("ServerJS"))();s.handle({"define":[["DTSGInitData",[],{"token":"","async_get_token":""},3333]],"require":[...]});require("Run").onAfterLoad(function(){s.cleanup(require("TimeSliceImpl"))});}, "ServerJS define", {"root":true})();</script>
|
||||||
|
other irrelevant data
|
||||||
|
"""
|
||||||
|
define = parse_server_js_define(html)
|
||||||
|
assert define == {
|
||||||
|
"DTSGInitialData": {"token": ""},
|
||||||
|
"DTSGInitData": {"async_get_token": "", "token": ""},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def test_parse_server_js_define_error():
|
def test_parse_server_js_define_error():
|
||||||
with pytest.raises(ParseError, match="Could not find any"):
|
with pytest.raises(ParseError, match="Could not find any"):
|
||||||
parse_server_js_define("")
|
parse_server_js_define("")
|
||||||
|
Reference in New Issue
Block a user