🏡 index : github.com/captn3m0/youtube-cue.git

author Nemo <commits@captnemo.in> 2022-08-26 17:51:19.0 +05:30:00
committer Nemo <commits@captnemo.in> 2022-08-26 17:51:19.0 +05:30:00
commit
0012c3b083350427a7eaa6627a2b494902a83c6d [patch]
tree
e6169587b7627e6334c06ed1e4f64802d96913e5
parent
93321c6fb934396c52ef614c4eab0bb03a0a3960
download
0012c3b083350427a7eaa6627a2b494902a83c6d.tar.gz

[fix] Fixes #74

Leading zeroes are nice

Diff

 src/cue.js       |  5 +++--
 test/cue_test.js | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/src/cue.js b/src/cue.js
index df1a630..de2772a 100644
--- a/src/cue.js
+++ a/src/cue.js
@@ -11,14 +11,15 @@
  fs.appendFileSync(outputFile, `FILE "${data.audioFile}" M4A\n`);
  for (var i in data.tracks) {
    let song = data.tracks[i];
    let minutes = song.start.hh * 60 + song.start.mm;
    let minutes = String(song.start.hh * 60 + song.start.mm).padStart(2, '0');
    let seconds = String(song.start.ss).padStart(2, '0');
    fs.appendFileSync(outputFile, `  TRACK ${song.track} AUDIO\n`);
    fs.appendFileSync(outputFile, `    TITLE "${song.title}"\n`);
    fs.appendFileSync(outputFile, `    PERFORMER "${song.artist}"\n`);
    // Cue File is always MINUTES:SECONDS:FRAME, where FRAME is 00
    fs.appendFileSync(
      outputFile,
      `    INDEX 01 ${minutes}:${song.start.ss}:00\n`
      `    INDEX 01 ${minutes}:${seconds}:00\n`
    );
  }
}
diff --git a/test/cue_test.js b/test/cue_test.js
new file mode 100644
index 0000000..9525d24 100644
--- /dev/null
+++ a/test/cue_test.js
@@ -1,0 +1,46 @@
/*jshint esversion: 6 */
import { strict as assert } from "assert";
import { generate } from "../src/cue.js";
import fs from "fs";

const DATA = {
  artist: "Dumbledore",
  album: "Curse of the Elder Wand",
  audioFile: 'audio.m4a',
  tracks: [{
    artist: "Unknown",
    title: "the 1",
    track: 1,
    start: { ts: "00:00:00", hh: 0, mm: 0, ss: 0, calc: 0 },
    end: { ts: "00:3:9", hh: 0, mm: 3, ss: 9, calc: 189 },
    _: { left_text: "", right_text: "the 1" },
  },
  {
    artist: "Unknown",
    title: "cardigan",
    track: 2,
    start: { ts: "00:3:09", hh: 0, mm: 3, ss: 9, calc: 189 },
    end: { ts: "00:9:30", hh: 0, mm: 9, ss: 30, calc: 570 },
    _: { left_text: "", right_text: "cardigan" },
  }]
};

describe("CUE", function () {
  it("should generate with leading zeroes", function () {
    generate(DATA, "/tmp/test.cue");
    const CUE_EXPECTED = `REM Generated using youtube-cue
PERFORMER "Dumbledore"
TITLE "Curse of the Elder Wand"
FILE "audio.m4a" M4A
  TRACK 1 AUDIO
    TITLE "the 1"
    PERFORMER "Unknown"
    INDEX 01 00:00:00
  TRACK 2 AUDIO
    TITLE "cardigan"
    PERFORMER "Unknown"
    INDEX 01 03:09:00
`;
    assert.equal(CUE_EXPECTED, fs.readFileSync('/tmp/test.cue', 'utf-8'));
  });
});