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)
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)