def __init__(self, response): self.timeout = 5 self.domain = tools.urlparse(response["url"])[1] self.protocol = tools.urlparse(response["url"])[0] self.js_data = {} self.header_data = {} if not "var s,t,o,p,b,r,e,a,k,i,n,g,f" in response["data"] or "chk_jschl" in response["url"]: return try: self.js_data["auth_url"] = \ re.compile('<form id="challenge-form" action="([^"]+)" method="get">').findall(response["data"])[0] self.js_data["params"] = {} self.js_data["params"]["jschl_vc"] = \ re.compile('<input type="hidden" name="jschl_vc" value="([^"]+)"/>').findall(response["data"])[0] self.js_data["params"]["pass"] = \ re.compile('<input type="hidden" name="pass" value="([^"]+)"/>').findall(response["data"])[0] var, self.js_data["value"] = \ re.compile('var s,t,o,p,b,r,e,a,k,i,n,g,f[^:]+"([^"]+)":([^\n]+)};', re.DOTALL).findall( response["data"])[0] self.js_data["op"] = re.compile(var + "([\+|\-|\*|\/])=([^;]+)", re.MULTILINE).findall(response["data"]) self.js_data["wait"] = int(re.compile("\}, ([\d]+)\);", re.MULTILINE).findall(response["data"])[0]) / 1000 except Exception as e: self.js_data = {} if "refresh" in response["headers"]: try: self.header_data["wait"] = int(response["headers"]["refresh"].split(";")[0]) self.header_data["auth_url"] = response["headers"]["refresh"].split("=")[1].split("?")[0] self.header_data["params"] = {} self.header_data["params"]["pass"] = response["headers"]["refresh"].split("=")[2] except Exception as e: self.header_data = {}
def init_request(self, argv): if argv is None: return self.URL = tools.urlparse(argv[0]) try: self.PLUGIN_HANDLE = int(argv[1]) self.IS_SERVICE = False except IndexError: self.PLUGIN_HANDLE = 0 self.IS_SERVICE = True if self.URL[1] != "": self.BASE_URL = "{scheme}://{netloc}".format(scheme=self.URL[0], netloc=self.URL[1]) else: self.BASE_URL = "" self.PATH = tools.unquote(self.URL[2]) try: self.PARAM_STRING = argv[2].lstrip('?/') except IndexError: self.PARAM_STRING = "" self.REQUEST_PARAMS = self.legacy_params_converter( dict(tools.parse_qsl(self.PARAM_STRING))) if "action_args" in self.REQUEST_PARAMS: self.REQUEST_PARAMS["action_args"] = tools.deconstruct_action_args( self.REQUEST_PARAMS["action_args"]) if isinstance(self.REQUEST_PARAMS["action_args"], dict): self.REQUEST_PARAMS[ "action_args"] = self.legacy_action_args_converter( self.REQUEST_PARAMS["action_args"]) self.FROM_WIDGET = self.REQUEST_PARAMS.get("from_widget", "true") == "true" self.PAGE = int(g.REQUEST_PARAMS.get("page", 1))