Esempio n. 1
0
 def error_response(
     self,
     formatter: Formatter,
     status_code: bytes,
     status_phrase: bytes,
     message: str,
     log_message: str = None,
 ) -> None:
     """Send an error response."""
     if self.timeout:
         self.timeout.delete()
         self.timeout = None
     self.exchange.response_start(
         status_code,
         status_phrase,
         [
             (b"Content-Type", formatter.content_type()),
             (b"Cache-Control", b"max-age=60, must-revalidate"),
         ],
     )
     formatter.start_output()
     formatter.error_output(message)
     self.exchange.response_done([])
     if log_message:
         self.error_log(log_message)
Esempio n. 2
0
File: webui.py Progetto: mnot/redbot
    def continue_test(self, top_resource: HttpResource, formatter: Formatter) -> None:
        "Preliminary checks are done; actually run the test."
        @thor.events.on(formatter)
        def formatter_done() -> None:
            self.response_done([])
            if self.test_id:
                try:
                    tmp_file = gzip.open(self.save_path, 'w')
                    pickle.dump(top_resource, tmp_file)
                    tmp_file.close()
                except (IOError, zlib.error, pickle.PickleError):
                    pass # we don't cry if we can't store it.

            # log excessive traffic
            ti = sum([i.transfer_in for i, t in top_resource.linked],
                     top_resource.transfer_in)
            to = sum([i.transfer_out for i, t in top_resource.linked],
                     top_resource.transfer_out)
            if ti + to > int(self.config['log_traffic']) * 1024:
                self.error_log("%iK in %iK out for <%s> (descend %s)" % (
                    ti / 1024, to / 1024, e_url(self.test_uri), str(self.descend)))

        self.response_start(b"200", b"OK", [
            (b"Content-Type", formatter.content_type()),
            (b"Cache-Control", b"max-age=60, must-revalidate")])
        if self.check_name:
            display_resource = top_resource.subreqs.get(self.check_name, top_resource)
        else:
            display_resource = top_resource
        formatter.bind_resource(display_resource)
        top_resource.check()
Esempio n. 3
0
 def __init__(self, *args: Any, **kw: Any) -> None:
     Formatter.__init__(self, *args, **kw)
     self.templates = Environment(
         loader=PackageLoader("redbot.formatter"),
         trim_blocks=True,
         autoescape=select_autoescape(
             enabled_extensions=("html", "xml"), default_for_string=True,
         ),
     )
     self.templates.filters.update(
         {
             "f_num": f_num,
             "relative_time": relative_time,
             "redbot_link": self.redbot_link,
         }
     )
     self.templates.globals.update(
         {
             "formatter": self,
             "version": __version__,
             "baseuri": self.config["ui_uri"],
             "static": self.config["static_root"],
             "hcaptcha": self.config.get("hcaptcha_sitekey", "") != ""
             and self.config.get("hcaptcha_secret", "") != "",
         }
     )
     self.start = thor.time()
Esempio n. 4
0
 def __init__(self, *args: Any, **kw: Any) -> None:
     Formatter.__init__(self, *args, **kw)
     self.har = {
         "log": {
             "version": "1.1",
             "creator": {"name": "REDbot", "version": __version__},
             "browser": {"name": "REDbot", "version": __version__},
             "pages": [],
             "entries": [],
         }
     }
     self.last_id = 0
Esempio n. 5
0
    def continue_test(
        self,
        top_resource: HttpResource,
        formatter: Formatter,
        extra_headers: RawHeaderListType = [],
    ) -> None:
        "Preliminary checks are done; actually run the test."

        @thor.events.on(formatter)
        def formatter_done() -> None:
            if self.timeout:
                self.timeout.delete()
                self.timeout = None
            self.exchange.response_done([])
            save_test(self, top_resource)

            # log excessive traffic
            ti = sum(
                [i.transfer_in for i, t in top_resource.linked],
                top_resource.transfer_in,
            )
            to = sum(
                [i.transfer_out for i, t in top_resource.linked],
                top_resource.transfer_out,
            )
            if ti + to > int(self.config["log_traffic"]) * 1024:
                self.error_log(
                    f"{ti / 1024:n}K in {to / 1024:n}K out for <{e_url(self.test_uri)}> (descend {self.descend})"
                )

        self.exchange.response_start(
            b"200",
            b"OK",
            [
                (b"Content-Type", formatter.content_type()),
                (b"Cache-Control", b"max-age=60, must-revalidate"),
            ] + extra_headers,
        )
        if self.check_name:
            display_resource = top_resource.subreqs.get(
                self.check_name, top_resource)
        else:
            display_resource = top_resource
        formatter.bind_resource(display_resource)
        top_resource.check()
Esempio n. 6
0
 def __init__(self, *args, **kw):
     Formatter.__init__(self, *args, **kw)
     self.har = {
         'log': {
             "version": "1.1",
             "creator": {
                 "name": "REDbot",
                 "version": droid.__version__,
             },
             "browser": {
                 "name": "REDbot",
                 "version": droid.__version__,
             },
             "pages": [],
             "entries": [],
         },
     }
     self.last_id = 0
Esempio n. 7
0
File: har.py Progetto: nunnun/redbot
 def __init__(self, *args, **kw):
     Formatter.__init__(self, *args, **kw)
     self.har = {
         'log': {
             "version": "1.1",
             "creator": {
                 "name": "REDbot",
                 "version": droid.__version__,
             },
             "browser": {
                 "name": "REDbot",
                 "version": droid.__version__,
             },
             "pages": [],
             "entries": [],
         },
     }
     self.last_id = 0
Esempio n. 8
0
    def continue_test(self, top_resource: HttpResource,
                      formatter: Formatter) -> None:
        "Preliminary checks are done; actually run the test."

        @thor.events.on(formatter)
        def formatter_done() -> None:
            self.response_done([])
            if self.test_id:
                try:
                    tmp_file = gzip.open(self.save_path, "w")
                    pickle.dump(top_resource, tmp_file)
                    tmp_file.close()
                except (IOError, zlib.error, pickle.PickleError):
                    pass  # we don't cry if we can't store it.

            # log excessive traffic
            ti = sum(
                [i.transfer_in for i, t in top_resource.linked],
                top_resource.transfer_in,
            )
            to = sum(
                [i.transfer_out for i, t in top_resource.linked],
                top_resource.transfer_out,
            )
            if ti + to > int(self.config["log_traffic"]) * 1024:
                self.error_log("%iK in %iK out for <%s> (descend %s)" %
                               (ti / 1024, to / 1024, e_url(
                                   self.test_uri), str(self.descend)))

        self.response_start(
            b"200",
            b"OK",
            [
                (b"Content-Type", formatter.content_type()),
                (b"Cache-Control", b"max-age=60, must-revalidate"),
            ],
        )
        if self.check_name:
            display_resource = top_resource.subreqs.get(
                self.check_name, top_resource)
        else:
            display_resource = top_resource
        formatter.bind_resource(display_resource)
        top_resource.check()
Esempio n. 9
0
File: text.py Progetto: mnot/redbot
 def __init__(self, *args: Any, **kw: Any) -> None:
     Formatter.__init__(self, *args, **kw)
     self.verbose = False
Esempio n. 10
0
 def __init__(self, *args: Any, **kw: Any) -> None:
     Formatter.__init__(self, *args, **kw)
     self.hidden_text = []  # type: List[Tuple[str, str]]
     self.start = thor.time()
Esempio n. 11
0
 def __init__(self, *args, **kw):
     Formatter.__init__(self, *args, **kw)
     self.hidden_text = []
     self.start = thor.time()
Esempio n. 12
0
 def __init__(self, *args, **kw):
     Formatter.__init__(self, *args, **kw)
Esempio n. 13
0
 def __init__(self, *args, **kw):
     Formatter.__init__(self, *args, **kw)
     self.hidden_text = []
     self.start = nbhttp.now()
Esempio n. 14
0
 def __init__(self, *args: Any, **kw: Any) -> None:
     Formatter.__init__(self, *args, **kw)
Esempio n. 15
0
 def __init__(self, *args: Any, **kw: Any) -> None:
     Formatter.__init__(self, *args, **kw)
     self.hidden_text = []  # type: List[Tuple[str, str]]
     self.start = thor.time()
Esempio n. 16
0
 def __init__(self, *args, **kw):
     Formatter.__init__(self, *args, **kw)
     self.verbose = False
Esempio n. 17
0
 def __init__(self, *args: Any, **kw: Any) -> None:
     Formatter.__init__(self, *args, **kw)
     self.verbose = False
Esempio n. 18
0
 def __init__(self, *args, **kw):
     Formatter.__init__(self, *args, **kw)