dart_rip_log 0.0.1 copy "dart_rip_log: ^0.0.1" to clipboard
dart_rip_log: ^0.0.1 copied to clipboard

Parses CD rip log files from EAC, XLD, and other rippers into structured, JSON-serialisable quality data (AccurateRip, CRCs, peaks, errors).

example/dart_rip_log_example.dart

import 'dart:convert';
import 'dart:io';

import 'package:dart_rip_log/dart_rip_log.dart';

/// Minimal example: parse a rip log file and print a quality summary.
///
/// Run with:
///
/// ```
/// dart run example/dart_rip_log_example.dart path/to/rip.log
/// ```
Future<void> main(List<String> args) async {
  if (args.isEmpty) {
    stderr.writeln('Usage: dart_rip_log_example <path-to-log>');
    exitCode = 2;
    return;
  }

  final RipLog log = await parseRipLogFile(args.first);

  print('Format:   ${log.logFormat.name}');
  print('Tool:     ${log.toolVersion ?? "(unknown)"}');
  print('Date:     ${log.extractionDate?.toIso8601String() ?? "(unknown)"}');
  print('Drive:    ${log.drive?.name ?? "(unknown)"}');
  print('Tracks:   ${log.tracks.length}');
  print('Verified: ${isFullyVerified(log)}');
  print('');

  for (final track in log.tracks) {
    final ar = track.accurateRipStatus.name;
    final peak =
        track.peakLevel != null ? (track.peakLevel! * 100).toStringAsFixed(1) : '-';
    print('Track ${track.trackNumber.toString().padLeft(2)}: '
        'AR=$ar  peak=$peak%  CRC=${track.copyCrc ?? "-"}');
  }

  final mismatched = tracksWithArMismatch(log);
  if (mismatched.isNotEmpty) {
    print('');
    print('AccurateRip mismatches:');
    for (final t in mismatched) {
      print('  Track ${t.trackNumber}');
    }
  }

  // Full JSON dump:
  print('');
  print('--- JSON ---');
  print(const JsonEncoder.withIndent('  ').convert(toJson(log)));
}
0
likes
0
points
40
downloads

Publisher

unverified uploader

Weekly Downloads

Parses CD rip log files from EAC, XLD, and other rippers into structured, JSON-serialisable quality data (AccurateRip, CRCs, peaks, errors).

Repository (GitHub)
View/report issues

Topics

#cd #audio #parser #ripping #accuraterip

License

unknown (license)

More

Packages that depend on dart_rip_log