From b6752d298bb225baeadbac226d633f8bb9676df7 Mon Sep 17 00:00:00 2001 From: itismadness Date: Thu, 19 Aug 2021 15:42:29 +0000 Subject: [PATCH] Do not subtract point for EAC filename if over 243 characters --- src/Logchecker.php | 21 ++- tests/logs/eac/details/combined_1.json | 8 +- tests/logs/eac/details/long_filename.json | 12 ++ tests/logs/eac/html/combined_1.log | 20 +-- tests/logs/eac/html/long_filename.log | 206 +++++++++++++++++++++++++++++ tests/logs/eac/originals/long_filename.log | Bin 0 -> 15140 bytes 6 files changed, 252 insertions(+), 15 deletions(-) create mode 100644 tests/logs/eac/details/long_filename.json create mode 100644 tests/logs/eac/html/long_filename.log create mode 100644 tests/logs/eac/originals/long_filename.log diff --git a/src/Logchecker.php b/src/Logchecker.php index 60ad97e..a974a11 100644 --- a/src/Logchecker.php +++ b/src/Logchecker.php @@ -1028,7 +1028,26 @@ class Logchecker $Count ); if (!$Count && !$this->Range) { - $this->accountTrack('Could not verify filename', 1); + // EAC truncates file names that would exceed 243 characters, so we'll just mark + // it as fine, as it almost always is, and if it wouldn't have been, then + // some other filename will have hit the -1 deduction anyway. + if ($EAC) { + preg_match('/Filename (.+)\n/i', $TrackBody, $Matches); + if (strlen($Matches[1]) >= 243) { + $TrackBody = preg_replace( + '/Filename ((.+)?)\n/i', + "Filename $1\n", + $TrackBody, + -1, + $Count + ); + $this->accountTrack('Could not verify filename, too long'); + } else { + $this->accountTrack('Could not verify filename or file extension', 1); + } + } else { + $this->accountTrack('Could not verify filename or file extension', 1); + } } // xld track gain $TrackBody = preg_replace( diff --git a/tests/logs/eac/details/combined_1.json b/tests/logs/eac/details/combined_1.json index c5df08e..4e1e8f2 100644 --- a/tests/logs/eac/details/combined_1.json +++ b/tests/logs/eac/details/combined_1.json @@ -3,7 +3,7 @@ "version": "0.99 prebeta 1", "language": "en", "combined": true, - "score": 66, + "score": 69, "checksum": "checksum_missing", "details": [ "Combined Log (8)", @@ -12,8 +12,8 @@ "Gap handling should be appended to previous track (-10 points)", "Test and copy was not used (-10 points)", "Could not verify id3 tag setting (-1 point)", - "Track 02 (1): Could not verify filename (-1 point)", - "Track 05 (1): Could not verify filename (-1 point)", - "Track 07 (1): Could not verify filename (-1 point)" + "Track 02 (1): Could not verify filename, too long", + "Track 05 (1): Could not verify filename, too long", + "Track 07 (1): Could not verify filename, too long" ] } diff --git a/tests/logs/eac/details/long_filename.json b/tests/logs/eac/details/long_filename.json new file mode 100644 index 0000000..9d23f42 --- /dev/null +++ b/tests/logs/eac/details/long_filename.json @@ -0,0 +1,12 @@ +{ + "ripper": "EAC", + "version": "1.0 beta 3", + "language": "en", + "combined": false, + "score": 99, + "checksum": "checksum_invalid", + "details": [ + "Track 01: Could not verify filename or file extension (-1 point)", + "Track 11: Could not verify filename, too long" + ] +} diff --git a/tests/logs/eac/html/combined_1.log b/tests/logs/eac/html/combined_1.log index e8de4e8..7640ff3 100644 --- a/tests/logs/eac/html/combined_1.log +++ b/tests/logs/eac/html/combined_1.log @@ -57,7 +57,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 2 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\02-DJ Food - Scratch Yer Head (Squarepusher Mix) - DJ Food - Scratch Yer Head (Squarepusher Mix).w + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\02-DJ Food - Scratch Yer Head (Squarepusher Mix) - DJ Food - Scratch Yer Head (Squarepusher Mix).w Pre-gap length 0:00:00.05 @@ -69,7 +69,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 3 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S Copy aborted @@ -85,7 +85,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 5 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\05-2 Player - Extreme Possibilities (Wagon Christ Mix) - 2 Player - Extreme Possibilities (Wagon C + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\05-2 Player - Extreme Possibilities (Wagon Christ Mix) - 2 Player - Extreme Possibilities (Wagon C Pre-gap length 0:00:50.04 @@ -107,7 +107,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 7 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\07-DJ Vadim - USSR Reconstruction (Jamie Hodge Mix) - DJ Vadim - USSR Reconstruction (Jamie Hodge + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\07-DJ Vadim - USSR Reconstruction (Jamie Hodge Mix) - DJ Vadim - USSR Reconstruction (Jamie Hodge Peak level 98.8 % Track quality 100.0 % @@ -139,7 +139,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 10 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\10-Cinematic Orchestra - All That You Give (Dr Rockit Mix) - Cinematic Orchestra - All That You Gi + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\10-Cinematic Orchestra - All That You Give (Dr Rockit Mix) - Cinematic Orchestra - All That You Gi Pre-gap length 0:00:00.01 @@ -197,7 +197,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 3 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S Copy aborted @@ -253,7 +253,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 10 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\10-Cinematic Orchestra - All That You Give (Dr Rockit Mix) - Cinematic Orchestra - All That You Gi + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\10-Cinematic Orchestra - All That You Give (Dr Rockit Mix) - Cinematic Orchestra - All That You Gi Pre-gap length 0:00:00.01 @@ -306,7 +306,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 3 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S Copy aborted @@ -362,7 +362,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 3 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S Copy aborted @@ -413,7 +413,7 @@ Exact Audio Copy V0.99 prebeta 1 from Track 3 - Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S + Filename D:\Documents and Settings\fz0bgd\My Documents\My Music\Lossless Music\Trip-Hop\Various Artists\ZEN RMX - A Ninja Tune Remix Retrospective (CD-1)\03-East Flatbush Project - Tried By 12 (Squarepusher Mix) - East Flatbush Project - Tried By 12 (S Copy aborted diff --git a/tests/logs/eac/html/long_filename.log b/tests/logs/eac/html/long_filename.log new file mode 100644 index 0000000..2bf9b4f --- /dev/null +++ b/tests/logs/eac/html/long_filename.log @@ -0,0 +1,206 @@ +Exact Audio Copy V1.0 beta 3 from 29. August 2011 + +EAC extraction logfile from 5. April 2013, 14:40 + +Various Artists / Modern Classics: Stravinsky's Les Noces and music by Dun, Glass, Nielsen, Tavener, Lutoslawski BBC Music Vol. VI No. 6 + +Used Drive : HL-DT-STBDDVDRW CH10LS28 Adapter: 0 ID: 3 + +Read mode : Secure +Utilize accurate stream : Yes +Defeat audio cache : Yes +Make use of C2 pointers : No + +Read offset correction : 667 +Overread into Lead-In and Lead-Out : No +Fill up missing offset samples with silence : Yes +Delete leading and trailing silent blocks : No +Null samples used in CRC calculations : Yes +Used interface : Native Win32 interface for Win NT & 2000 +Gap handling : Appended to previous track + +Used output format : User Defined Encoder +Selected bitrate : 128 kBit/s +Quality : High +Add ID3 tag : No +Command line compressor : C:\Program Files (x86)\Exact Audio Copy\Flac\flac.exe +Additional command line options : -8 -V -T "ARTIST=%artist%" -T "TITLE=%title%" -T "ALBUM=%albumtitle%" -T "DATE=%year%" -T +"TRACKNUMBER=%tracknr%" -T "GENRE=%genre%" -T "PERFORMER=%albuminterpret%" -T "COMPOSER=%composer%" %haslyrics%--tag-from-file=LYRICS="%lyricsfile%"%haslyrics% -T "ALBUMARTIST=%albumartist%" -T "DISCNUMBER=%cdnumber%" -T "TOTALDISCS=%totalcds%" -T "TOTALTRACKS=%numtracks%" -T "COMMENT=%comment%" %source% -o %dest% + + +TOC of the extracted CD + + Track | Start | Length | Start sector | End sector + --------------------------------------------------------- + 1 | 0:00.00 | 4:46.00 | 0 | 21449 + 2 | 4:46.00 | 5:12.07 | 21450 | 44856 + 3 | 9:58.07 | 6:05.33 | 44857 | 72264 + 4 | 16:03.40 | 3:11.10 | 72265 | 86599 + 5 | 19:14.50 | 10:32.32 | 86600 | 134031 + 6 | 29:47.07 | 7:49.20 | 134032 | 169226 + 7 | 37:36.27 | 15:14.08 | 169227 | 237784 + 8 | 52:50.35 | 6:08.25 | 237785 | 265409 + 9 | 58:58.60 | 2:47.45 | 265410 | 277979 + 10 | 61:46.30 | 5:06.27 | 277980 | 300956 + 11 | 66:52.57 | 8:35.02 | 300957 | 339583 + 12 | 77:59.59 | 1:03.33 | 350984 | 355741 + + +Track 1 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\01 - Philadelphia Orchestra and Eugene Ormandy - Nielsen- Maskarade Overture + + Pre-gap length 0:00:02.00 + + Peak level 100.0 % + Extraction speed 1.3 X + Track quality 100.0 % + Test CRC 0C63A520 + Copy CRC 0C63A520 + Accurately ripped (confidence 5) [58AA7F29] (AR v2) + Copy OK + +Track 2 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\02 - American Concert Choir, Columbia percussion Ensemble and Igor Stravinsky - Stravinsky- Les Noces - The Bride's Chamber.wav + + Pre-gap length 0:00:07.33 + + Peak level 86.6 % + Extraction speed 1.3 X + Track quality 99.9 % + Test CRC BA3B2595 + Copy CRC BA3B2595 + Accurately ripped (confidence 5) [727877A3] (AR v2) + Copy OK + +Track 3 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\03 - American Concert Choir, Columbia percussion Ensemble and Igor Stravinsky - Stravinsky- Les Noces - At the Bridegroom's.wav + + Peak level 100.0 % + Extraction speed 1.6 X + Track quality 100.0 % + Test CRC 10CD21A3 + Copy CRC 10CD21A3 + Accurately ripped (confidence 5) [8553EB25] (AR v2) + Copy OK + +Track 4 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\04 - American Concert Choir, Columbia percussion Ensemble and Igor Stravinsky - Stravinsky- Les Noces - The Bride's Departure.wav + + Peak level 80.9 % + Extraction speed 1.6 X + Track quality 100.0 % + Test CRC B50F5266 + Copy CRC B50F5266 + Accurately ripped (confidence 5) [80B1BD7E] (AR v2) + Copy OK + +Track 5 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\05 - American Concert Choir, Columbia percussion Ensemble and Igor Stravinsky - Stravinsky- Les Noces - The Wedding Feast.wav + + Peak level 100.0 % + Extraction speed 1.9 X + Track quality 99.9 % + Test CRC 8B701CE8 + Copy CRC 8B701CE8 + Accurately ripped (confidence 5) [B19DB77F] (AR v2) + Copy OK + +Track 6 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\06 - Philadelphia Orchestra and Eugene Ormandy - Barber- Adagio for Strings.wav + + Pre-gap length 0:00:07.35 + + Peak level 65.6 % + Extraction speed 2.1 X + Track quality 100.0 % + Test CRC 9638FE26 + Copy CRC 9638FE26 + Accurately ripped (confidence 5) [16106AC7] (AR v2) + Copy OK + +Track 7 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\07 - John Shirley-Quirk, Los Aneles Philharmonic Orchestra and Esa-Pekka Salonen - Lutoslawski- Les espaces du sommeil.wav + + Pre-gap length 0:00:07.35 + + Peak level 66.5 % + Extraction speed 2.4 X + Track quality 100.0 % + Test CRC 916F417F + Copy CRC 916F417F + Accurately ripped (confidence 5) [4A2EC24D] (AR v2) + Copy OK + +Track 8 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\08 - Philip Glass Ensemble and Martin Reisman - Glass- Floe.wav + + Pre-gap length 0:00:07.33 + + Peak level 83.4 % + Extraction speed 2.5 X + Track quality 100.0 % + Test CRC 320984BC + Copy CRC 320984BC + Accurately ripped (confidence 5) [B516F43C] (AR v2) + Copy OK + +Track 9 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\09 - Westminister Abbey Chior and Martin Neary - Tavener- Hymn to the Mother of God.wav + + Pre-gap length 0:00:07.33 + + Peak level 47.7 % + Extraction speed 2.3 X + Track quality 100.0 % + Test CRC 3F04210F + Copy CRC 3F04210F + Accurately ripped (confidence 5) [6241FBD0] (AR v2) + Copy OK + +Track 10 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\10 - Westminister Abbey Chior and Martin Neary - Tavener- Hymn for the Dormition of the Mother of God.wav + + Peak level 15.1 % + Extraction speed 2.6 X + Track quality 100.0 % + Test CRC FA5DB906 + Copy CRC FA5DB906 + Accurately ripped (confidence 5) [40D92044] (AR v2) + Copy OK + +Track 11 + + Filename C:\EAC\Modern Classics - Stravinsky's Les Noces, etc (1998) [FLAC]\11 - Yo-Yo Ma, Imperial Bells Ensemble of China, Yips Children's Choir, Hong Kong Philharmonic Orchestra and Tan Dun - Tan Dun- Symphony 1997, `Heaven Earth Mankind'- Song of P + + Pre-gap length 0:00:07.32 + + Peak level 98.8 % + Extraction speed 2.8 X + Track quality 100.0 % + Test CRC 1527E52C + Copy CRC 1527E52C + Accurately ripped (confidence 5) [9B8379D2] (AR v2) + Copy OK + + +All tracks accurately ripped + +No errors occurred + +End of status report + +---- CUETools DB Plugin V2.1.3 + +[CTDB TOCID: A7fUI4Bw9WkDiwqax05U3EEyntY-] disk not present in database, Submit result: A7fUI4Bw9WkDiwqax05U3EEyntY- has been uploaded + +==== Log checksum F56138A858854449A74BA8415C4997E1C79A4C675274AA99E7F61FCD259C5557 ==== \ No newline at end of file diff --git a/tests/logs/eac/originals/long_filename.log b/tests/logs/eac/originals/long_filename.log new file mode 100644 index 0000000000000000000000000000000000000000..eb6521e8e6eb09e5469c2f0d4c48c330c28d3210 GIT binary patch literal 15140 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 literal 0 HcmV?d00001