Exemplo n.º 1
0
def check_url(expanded: ExpandedURL, progress_bar: ProgressBar):
    host, rest = split(expanded.url)

    # sleep some random time to prevent server side throttling
    time.sleep(randint(1, 4))

    progress_bar.update(1)

    conn = HTTPSConnection(host)
    conn.request("HEAD", rest)
    response = conn.getresponse()

    if response.status == 200:
        logger.debug("SUCCESS: URL check for {} {} MongoDB {}".format(
            expanded.os_name,
            expanded.os_version,
            expanded.version,
        ))
    else:
        logger.error((
            "FAIL: URL check for {} {} "
            "MongoDB {}, {}, reason: {} {}"
        ).format(
            expanded.os_name,
            expanded.os_version,
            expanded.version,
            expanded.url,
            response.status,
            response.reason
        ))
        return expanded
    def _handle_files(self: _T, all_files: ProgressBar) -> int:
        self._total = all_files.length
        min_found: int = max(9, all_files.length // 20) + 1
        filename: Path
        self._count = 0
        self._skipped = 0
        for filename in all_files:
            item: str = None
            if self._callbacks.progressbar(all_files):
                break

            rpgmaker_header: bytes
            file_header: bytes
            png_ihdr: bytes
            with click.open_file(filename, "rb") as file:
                rpgmaker_header = file.read(16)
                file_header = file.read(16)
                png_ihdr = file.read(17)
            if rpgmaker_header == RPG_MAKER_MV_MAGIC and _is_png_image(
                    png_ihdr):
                item = int_xor(file_header, PNG_HEADER).hex()
                self._count += 1
                self.keys = item
                if len(self.keys) == 1 and self._count >= min_found:
                    all_files.update(self._total - self._count)
                    self._report_results(item)
                    break
            else:
                self._skipped += 1
                self._total -= 1
                min_found = max(10, ((self._total // 20) + 1))

        self._callbacks.progressbar(None)
Exemplo n.º 3
0
    def update(self, n_steps):
        """

        :param n_steps: number of steps executed
        :return: None
        """
        # Seek to the beginning of the file if that's possible.
        try:
            self.file.seek(0)
        except UnsupportedOperation:
            pass

        ProgressBar.update(self, n_steps)