def parse_log(fp, processor, date): parser = LogParser() parser._game_state_processor = processor parser._current_date = date parser.read(fp) return parser
def parse_upload_event(upload_event, meta): orig_match_start = dateutil_parse(meta["match_start"]) match_start = get_valid_match_start(orig_match_start, upload_event.created) if match_start != orig_match_start: upload_event.tainted = True upload_event.save() log_bytes = upload_event.log_bytes() if not log_bytes: raise ValidationError("The uploaded log file is empty.") influx_metric("raw_power_log_upload_num_bytes", {"size": len(log_bytes)}) powerlog = StringIO(log_bytes.decode("utf-8")) upload_event.file.close() parser = LogParser() parser._game_state_processor = "GameState" parser._current_date = match_start parser.read(powerlog) return parser
def parse_upload_event(upload_event, meta): orig_match_start = dateutil_parse(meta["match_start"]) match_start = get_valid_match_start(orig_match_start, upload_event.created) if match_start != orig_match_start: upload_event.tainted = True upload_event.save() difference = (orig_match_start - match_start).seconds influx_metric("tainted_replay", {"count": 1, "difference": difference}) log_bytes = upload_event.log_bytes() if not log_bytes: raise ValidationError("The uploaded log file is empty.") powerlog = StringIO(log_bytes.decode("utf-8")) upload_event.file.close() parser = LogParser() parser._game_state_processor = "GameState" parser._current_date = match_start parser.read(powerlog) return parser