def fetch(self, api, method='GET', body=None, headers=None, **_kwargs): """Fetch Info from backend.""" body = body or dict() _headers = dict(host=self.request.host) if headers: _headers.update(headers) if '://' not in api: api = f'http://{O_O.server.back_ip}{api}' back_info = yield httpclient.AsyncHTTPClient().fetch( api, method=method, headers=_headers, body=json.dumps(body), raise_error=False, allow_nonstandard_methods=True) res_body = back_info.body and back_info.body.decode() or None if back_info.code >= 400: return Arguments( dict(http_code=back_info.code, res_body=res_body, api=api)) try: return Arguments(json.loads(res_body)) except json.JSONDecodeError: pass
def __init__(self): self.arguments = Arguments() self.blender = Blender() self.parser = Parser() self.botfile = self.arguments.getBotFile() self.blender.unselectEverything() print("\nNow building " + self.botfile + "...") self.cubeData = self.parser.parseBotFile(self.botfile) self.cubedatabase = self.parser.parseCSVFile("assets/cubes.csv") self.blender.build(self.cubeData, self.cubedatabase) print("done!")
def parse_json_arguments(self, *enforced_keys, **optional_keys): """Parse JSON argument like `get_argument`.""" if O_O.debug: dump_in(f'Input: {self.request.method} {self.request.path}', self.request.body.decode()[:500]) try: req = json.loads(self.request.body.decode('utf-8')) except json.JSONDecodeError as exception: dump_error(self.request.body.decode()) raise ParseJSONError(exception.doc) if not isinstance(req, dict): dump_error(self.request.body.decode()) raise ParseJSONError('Req should be a dictonary.') for key in enforced_keys: if key not in req: dump_error(self.request.body.decode()) raise MissingArgumentError(key) req['remote_ip'] = self.request.remote_ip req['request_time'] = int(time.time()) return Arguments(req)
def parse_form_arguments(self, *enforced_keys, **optional_keys): """Parse FORM argument like `get_argument`.""" if O_O.debug: dump_in(f'Input: {self.request.method} {self.request.path}', self.request.body.decode()[:500]) req = dict() for key in enforced_keys: req[key] = self.get_argument(key) for key in optional_keys: values = self.get_arguments(key) if len(values) is 0: req[key] = optional_keys.get(key) elif len(values) is 1: req[key] = values[0] else: req[key] = values req['remote_ip'] = self.request.remote_ip req['request_time'] = int(time.time()) return Arguments(req)
def __init__(self, argumentSetup, pluginName): self.commandLine = CommandLine() # Initialize command line: Is expected to be the first occurrence. CommandLine().initSubParsers(dest="action") # Load plugin. self.plugin = Plugin(str(Path(__file__).parent.absolute()),\ "plugins.currencies.{0}".format(pluginName)) self.plugin.load() # Get args. self.args = Arguments(setups=[\ ManagerArgumentSetup(self.plugin.module.Actions),\ self.plugin.module.ArgumentSetup() ]).get() #self.args = self.plugin.module.ArgumentSetup().parser.parse_args() # Prepare, get and run requested action. if not self.args.action is None: self.act(self.args.action) else: self.commandLine.showFullHelp()
def get_parameters(self): """Get user information from cookie.""" params = self.get_secure_cookie(O_O.server.cookie_name.parameters) return Arguments(params and json.loads(params.decode()))