Skip to content

Commit

Permalink
Fix some parse bugs with whipper logs
Browse files Browse the repository at this point in the history
  • Loading branch information
itismadness committed Jul 24, 2019
1 parent 4c4490b commit 6298d71
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "orpheusnet/logchecker",
"description": "Logchecker for validating logs generated from supported ripping programs (like EAC and XLD)",
"version": "0.8.4",
"version": "0.8.5",
"license": "Unlicense",
"type": "library",
"authors": [
Expand Down
14 changes: 13 additions & 1 deletion src/Logchecker.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,11 @@ function validateChecksum($Bool) {
}

private function convert_encoding() {
// Whipper uses UTF-8 so we don't need to bother checking, especially as it's
// possible a log may be falsely detected as a different encoding by chardet
if (strpos($this->Log, "Log created by: whipper") !== false) {
return;
}
// To parse the log, we want to deal with the log in UTF-8. EAC by default should
// always output to UTF-16 and XLD to UTF-8, but sometimes people view the log and
// re-encode them to something else (like Windows-1251), and we need to use chardet
Expand Down Expand Up @@ -159,8 +164,15 @@ function parse() {
}

private function whipper_parse() {
// Whipper 0.7.x has an issue where it can produce invalid YAML
// as it hand writes out the values without dealing properly
// with the escaping the output, so we fix that here
$log = preg_replace_callback('/^ Release: (.+)$/m', function ($match) {
return " Release: ".Yaml::dump($match[1]);
}, $this->Log);

try {
$Yaml = Yaml::parse($this->Log);
$Yaml = Yaml::parse($log);
}
catch (ParseException $exception) {
$this->account('Could not parse whipper log.', 100);
Expand Down

0 comments on commit 6298d71

Please sign in to comment.