@emgeebee/music_downcoder 1.1.6 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export declare const cleanEncoderOutputFolders: (configPath?: string) => number;
3
+ //# sourceMappingURL=cleanEmptyFolders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanEmptyFolders.d.ts","sourceRoot":"","sources":["../src/cleanEmptyFolders.ts"],"names":[],"mappings":";AAuEA,eAAO,MAAM,yBAAyB,GAAI,aAAa,MAAM,KAAG,MA0B/D,CAAC"}
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env node
2
+ import fs from "fs";
3
+ import path from "path";
4
+ import { getConfig, loadConfig } from "./config.js";
5
+ import { normalizeDir } from "./paths.js";
6
+ const MEDIA_EXTENSIONS = new Set([
7
+ ".mp3",
8
+ ".ogg",
9
+ ".m4a",
10
+ ".flac",
11
+ ".wav",
12
+ ".aac",
13
+ ".wma",
14
+ ".opus",
15
+ ".aiff",
16
+ ".aif",
17
+ ]);
18
+ const isMediaFile = (filename) => MEDIA_EXTENSIONS.has(path.extname(filename).toLowerCase());
19
+ const directoryHasMedia = (dirPath) => {
20
+ let entries;
21
+ try {
22
+ entries = fs.readdirSync(dirPath, { withFileTypes: true });
23
+ }
24
+ catch {
25
+ return false;
26
+ }
27
+ for (const entry of entries) {
28
+ const fullPath = path.join(dirPath, entry.name);
29
+ if (entry.isDirectory()) {
30
+ if (directoryHasMedia(fullPath)) {
31
+ return true;
32
+ }
33
+ continue;
34
+ }
35
+ if (isMediaFile(entry.name)) {
36
+ return true;
37
+ }
38
+ }
39
+ return false;
40
+ };
41
+ const cleanEmptyDirectories = (dirPath) => {
42
+ if (!fs.existsSync(dirPath)) {
43
+ return 0;
44
+ }
45
+ let removed = 0;
46
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
47
+ for (const entry of entries) {
48
+ if (!entry.isDirectory()) {
49
+ continue;
50
+ }
51
+ removed += cleanEmptyDirectories(path.join(dirPath, entry.name));
52
+ }
53
+ if (!directoryHasMedia(dirPath)) {
54
+ fs.rmSync(dirPath, { recursive: true, force: true });
55
+ console.log(`Removed ${dirPath}`);
56
+ return removed + 1;
57
+ }
58
+ return removed;
59
+ };
60
+ export const cleanEncoderOutputFolders = (configPath) => {
61
+ loadConfig(configPath ? path.resolve(configPath) : undefined);
62
+ const config = getConfig();
63
+ const outputRoots = [
64
+ ...new Set(config.encoders.map((encoder) => normalizeDir(encoder.out))),
65
+ ];
66
+ let removed = 0;
67
+ for (const outputRoot of outputRoots) {
68
+ if (!fs.existsSync(outputRoot)) {
69
+ console.log(`Skipping missing folder: ${outputRoot}`);
70
+ continue;
71
+ }
72
+ console.log(`Cleaning ${outputRoot}...`);
73
+ const entries = fs.readdirSync(outputRoot, { withFileTypes: true });
74
+ for (const entry of entries) {
75
+ if (!entry.isDirectory()) {
76
+ continue;
77
+ }
78
+ removed += cleanEmptyDirectories(path.join(outputRoot, entry.name));
79
+ }
80
+ }
81
+ return removed;
82
+ };
83
+ const configArgIndex = process.argv.indexOf("-c");
84
+ const configPath = configArgIndex >= 0 ? process.argv[configArgIndex + 1] : undefined;
85
+ const removed = cleanEncoderOutputFolders(configPath);
86
+ console.log(`Removed ${removed} empty folder(s).`);
87
+ //# sourceMappingURL=cleanEmptyFolders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cleanEmptyFolders.js","sourceRoot":"","sources":["../src/cleanEmptyFolders.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAUA,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAYA,OAAO,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -3,6 +3,9 @@ const [command] = process.argv.slice(2);
3
3
  if (command === "serve") {
4
4
  await import("./serve.js");
5
5
  }
6
+ else if (command === "clean-empty") {
7
+ await import("./cleanEmptyFolders.js");
8
+ }
6
9
  else {
7
10
  await import("./cli.js");
8
11
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAExC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAExC,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;IACxB,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;AAC7B,CAAC;KAAM,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;IACrC,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;AACzC,CAAC;KAAM,CAAC;IACN,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;AAC3B,CAAC"}
package/dist/paths.d.ts CHANGED
@@ -8,4 +8,6 @@ export declare const relativeFrom: (baseDir: string, fullPath: string) => string
8
8
  export declare const normalizeTerminalOutput: (output: string) => string;
9
9
  /** Join path segments for ffmpeg shell commands (always POSIX-style slashes). */
10
10
  export declare const shellPath: (...segments: string[]) => string;
11
+ /** Quote a path for use in generated bash scripts. */
12
+ export declare const shellQuote: (value: string) => string;
11
13
  //# sourceMappingURL=paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAG9C,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,OAAO,MAAM,KACZ,MAEF,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,MAQhE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAM9C,CAAC;AAEZ,iFAAiF;AACjF,eAAO,MAAM,SAAS,GAAI,GAAG,UAAU,MAAM,EAAE,KAAG,MACN,CAAC"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,KAAG,MAG9C,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,iBAAiB,GAC5B,WAAW,MAAM,EACjB,OAAO,MAAM,KACZ,MAEF,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,MAQhE,CAAC;AAEF,gFAAgF;AAChF,eAAO,MAAM,uBAAuB,GAAI,QAAQ,MAAM,KAAG,MAM9C,CAAC;AAEZ,iFAAiF;AACjF,eAAO,MAAM,SAAS,GAAI,GAAG,UAAU,MAAM,EAAE,KAAG,MACN,CAAC;AAE7C,sDAAsD;AACtD,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MACY,CAAC"}
package/dist/paths.js CHANGED
@@ -23,4 +23,6 @@ export const normalizeTerminalOutput = (output) => output
23
23
  .trim();
24
24
  /** Join path segments for ffmpeg shell commands (always POSIX-style slashes). */
25
25
  export const shellPath = (...segments) => path.join(...segments).replace(/\\/g, "/");
26
+ /** Quote a path for use in generated bash scripts. */
27
+ export const shellQuote = (value) => `"${value.replace(/\\/g, "/").replace(/"/g, '\\"')}"`;
26
28
  //# sourceMappingURL=paths.js.map
package/dist/paths.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,+DAA+D;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC;AACzD,CAAC,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAiB,EACjB,KAAa,EACL,EAAE,CAAC,YAAY,CACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAChE,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAU,EAAE;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,SAAS,QAAQ,gCAAgC,OAAO,GAAG,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAU,EAAE,CAChE,MAAM;KACH,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;KAC7C,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;KAC1B,IAAI,EAAE,CAAC;AAEZ,iFAAiF;AACjF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,QAAkB,EAAU,EAAE,CACzD,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,+DAA+D;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAU,EAAE;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,UAAU,CAAC;AACzD,CAAC,CAAC;AAEF,sFAAsF;AACtF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAiB,EACjB,KAAa,EACL,EAAE,CAAC,YAAY,CACvB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAChE,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAU,EAAE;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC3D,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,SAAS,QAAQ,gCAAgC,OAAO,GAAG,CAC5D,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAAc,EAAU,EAAE,CAChE,MAAM;KACH,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;KAC7C,IAAI,CAAC,IAAI,CAAC;KACV,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC;KAC1B,IAAI,EAAE,CAAC;AAEZ,iFAAiF;AACjF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAG,QAAkB,EAAU,EAAE,CACzD,IAAI,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAE7C,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC"}
@@ -8,9 +8,12 @@ interface MetadataCache {
8
8
  interface CommandsMap {
9
9
  [album: string]: string[];
10
10
  }
11
+ interface FoldersByAlbum {
12
+ [album: string]: Set<string>;
13
+ }
11
14
  interface ProcessResults {
12
15
  commands: CommandsMap;
13
- foldersToCreate: string[];
16
+ foldersByAlbum: FoldersByAlbum;
14
17
  metaCache: MetadataCache;
15
18
  }
16
19
  type FileFilter = (name: string) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"processEncoder.d.ts","sourceRoot":"","sources":["../src/processEncoder.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAyB5C,UAAU,aAAa;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED,UAAU,WAAW;IACnB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AAC5C,KAAK,YAAY,CAAC,CAAC,IAAI,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,EAAE,KACZ,OAAO,CAAC,CAAC,CAAC,CAAC;AAuDhB,eAAO,MAAM,QAAQ,GAAmB,CAAC,EACvC,OAAO,MAAM,EACb,UAAU,YAAY,CAAC,CAAC,CAAC,EACzB,aAAY,UAAuB,KAClC,OAAO,CAAC,CAAC,EAAE,CAqCb,CAAC;AA0QF,eAAO,MAAM,cAAc,GACzB,WAAW,SAAS,EACpB,aAAa,MAAM,EACnB,QAAQ,MAAM,EACd,WAAW,SAAS,EACpB,WAAW,SAAS,EACpB,YAAY,UAAU,EACtB,SAAS,OAAO,KACf,OAAO,CAAC,cAAc,CA8CxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,MAAM,EAkB/D,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,SAAS,KAAG,IAO5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,WAAW,SAAS,KAAG,MAI1D,CAAC"}
1
+ {"version":3,"file":"processEncoder.d.ts","sourceRoot":"","sources":["../src/processEncoder.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAyB5C,UAAU,aAAa;IACrB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED,UAAU,WAAW;IACnB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3B;AAED,UAAU,cAAc;IACtB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;CAC9B;AAED,UAAU,cAAc;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;AAC5C,KAAK,YAAY,CAAC,CAAC,IAAI,CACrB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,KAAK,EAAE,MAAM,EAAE,KACZ,OAAO,CAAC,CAAC,CAAC,CAAC;AAuDhB,eAAO,MAAM,QAAQ,GAAmB,CAAC,EACvC,OAAO,MAAM,EACb,UAAU,YAAY,CAAC,CAAC,CAAC,EACzB,aAAY,UAAuB,KAClC,OAAO,CAAC,CAAC,EAAE,CAqCb,CAAC;AA8RF,eAAO,MAAM,cAAc,GACzB,WAAW,SAAS,EACpB,aAAa,MAAM,EACnB,QAAQ,MAAM,EACd,WAAW,SAAS,EACpB,WAAW,SAAS,EACpB,YAAY,UAAU,EACtB,SAAS,OAAO,KACf,OAAO,CAAC,cAAc,CAsCxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,WAAW,SAAS,KAAG,MAAM,EAkB/D,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,WAAW,SAAS,KAAG,IAO5D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,WAAW,SAAS,KAAG,MAI1D,CAAC"}
@@ -2,7 +2,7 @@
2
2
  import fs from "fs";
3
3
  import fse from "fs-extra";
4
4
  import path from "path";
5
- import { relativeFrom, normalizeDir } from "./paths.js";
5
+ import { relativeFrom, normalizeDir, shellQuote } from "./paths.js";
6
6
  import { setJobProgress } from "./progress.js";
7
7
  const pathSanitiser = (i) => i.replace(/[`\$\"]/g, "\\$&");
8
8
  const sanitiseMeta = (meta) => meta.replace(/\//g, "_").replace(/:/g, "_");
@@ -132,7 +132,7 @@ const checkFiles = async (dirPath, _dirs, files, context) => {
132
132
  const outputDir = configMap[configKey].out;
133
133
  const results = {
134
134
  commands: {},
135
- foldersToCreate: [],
135
+ foldersByAlbum: {},
136
136
  metaCache: { ...metaCache },
137
137
  };
138
138
  for (const file of files) {
@@ -185,9 +185,14 @@ const checkFiles = async (dirPath, _dirs, files, context) => {
185
185
  existingFiles = fs.readdirSync(outputFolder);
186
186
  }
187
187
  catch {
188
- results.foldersToCreate.push(outputFolder);
188
+ // output folder will be created by the generated script
189
189
  }
190
190
  if (existingFiles.indexOf(outputPath) < 0) {
191
+ const outputFullPath = path.join(outputFolder, outputPath);
192
+ if (!results.foldersByAlbum[album]) {
193
+ results.foldersByAlbum[album] = new Set();
194
+ }
195
+ results.foldersByAlbum[album].add(path.dirname(outputFullPath));
191
196
  const commands = buildCommand(filepath, output, isCopy, configKey, configMap, appConfig);
192
197
  if (!results.commands[album]) {
193
198
  results.commands[album] = [];
@@ -204,18 +209,28 @@ const mergeResults = (accumulator, current) => {
204
209
  }
205
210
  accumulator.commands[album].push(...current.commands[album]);
206
211
  });
207
- const newFolders = current.foldersToCreate.filter((folder) => !accumulator.foldersToCreate.includes(folder));
208
- accumulator.foldersToCreate.push(...new Set(newFolders));
212
+ for (const album of Object.keys(current.foldersByAlbum)) {
213
+ if (!accumulator.foldersByAlbum[album]) {
214
+ accumulator.foldersByAlbum[album] = new Set();
215
+ }
216
+ for (const folder of current.foldersByAlbum[album]) {
217
+ accumulator.foldersByAlbum[album].add(folder);
218
+ }
219
+ }
209
220
  accumulator.metaCache = { ...accumulator.metaCache, ...current.metaCache };
210
221
  return accumulator;
211
222
  };
212
223
  const sanitizeScriptName = (album) => album.replace(/[^a-zA-Z0-9._-]+/g, "_").replace(/^_+|_+$/g, "") || "album";
213
- const writeCommands = (commands, configKey, appConfig) => {
224
+ const writeCommands = (commands, foldersByAlbum, configKey, appConfig) => {
214
225
  Object.keys(commands).forEach((albums, i) => {
215
226
  console.log(`writing commands for ${albums}`);
216
227
  const filePath = path.join(appConfig.commandsFolder, String(i % appConfig.numOfCores), `${sanitizeScriptName(albums)}-${configKey}-commands.sh`);
217
228
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
218
- fs.writeFileSync(filePath, commands[albums].join("\n"));
229
+ const folders = [...(foldersByAlbum[albums] ?? new Set())].sort();
230
+ const mkdirLines = folders.map((folder) => `mkdir -p ${shellQuote(folder)}`);
231
+ const scriptBody = commands[albums].join("\n");
232
+ const content = mkdirLines.length > 0 ? `${mkdirLines.join("\n")}\n${scriptBody}` : scriptBody;
233
+ fs.writeFileSync(filePath, content);
219
234
  });
220
235
  };
221
236
  const artistFilter = (filter) => (artist) => {
@@ -246,18 +261,11 @@ export const processEncoder = async (configKey, startFolder, filter, appConfig,
246
261
  const results = await walkSync(normalizedStart, (dirPath, dirs, files) => checkFiles(dirPath, dirs, files, context), artistFilter(filter));
247
262
  const finalResults = results.reduce(mergeResults, {
248
263
  commands: {},
249
- foldersToCreate: [],
264
+ foldersByAlbum: {},
250
265
  metaCache: {},
251
266
  });
252
267
  metaGetter.writeBack();
253
- writeCommands(finalResults.commands, configKey, appConfig);
254
- for (const outputFolder of finalResults.foldersToCreate) {
255
- const confirmation = await prompts.confirm(`Create folder: ${outputFolder}`);
256
- if (confirmation) {
257
- console.log(`creating folder: ${outputFolder}`);
258
- fse.ensureDir(outputFolder);
259
- }
260
- }
268
+ writeCommands(finalResults.commands, finalResults.foldersByAlbum, configKey, appConfig);
261
269
  return finalResults;
262
270
  };
263
271
  export const listCommandScripts = (appConfig) => {
@@ -1 +1 @@
1
- {"version":3,"file":"processEncoder.js","sourceRoot":"","sources":["../src/processEncoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"processEncoder.js","sourceRoot":"","sources":["../src/processEncoder.ts"],"names":[],"mappings":"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"}
package/dist/scripts.d.ts CHANGED
@@ -7,6 +7,7 @@ export interface ScriptInfo {
7
7
  album: string;
8
8
  type: string;
9
9
  trackCount: number;
10
+ commands: string[];
10
11
  }
11
12
  export declare const describeScript: (scriptPath: string, config: AppConfig) => ScriptInfo;
12
13
  export declare const describeScripts: (scriptPaths: string[], config: AppConfig) => ScriptInfo[];
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAgED,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAClB,QAAQ,SAAS,KAChB,UA2CF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EAAE,EACrB,QAAQ,SAAS,KAChB,UAAU,EAAyE,CAAC"}
1
+ {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAgED,eAAO,MAAM,cAAc,GACzB,YAAY,MAAM,EAClB,QAAQ,SAAS,KAChB,UA8CF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,aAAa,MAAM,EAAE,EACrB,QAAQ,SAAS,KAChB,UAAU,EAAyE,CAAC"}
package/dist/scripts.js CHANGED
@@ -52,10 +52,12 @@ export const describeScript = (scriptPath, config) => {
52
52
  let artist = "Unknown artist";
53
53
  let album = "Unknown album";
54
54
  let trackCount = 0;
55
+ let commands = [];
55
56
  try {
56
57
  const content = fs.readFileSync(scriptPath, "utf-8");
57
58
  const lines = content.split("\n");
58
59
  trackCount = countTracks(lines);
60
+ commands = lines.map((line) => line.trimEnd()).filter((line) => line.length > 0);
59
61
  if (encoderOut) {
60
62
  for (const line of lines) {
61
63
  const outputPath = extractLastQuotedPath(line);
@@ -83,6 +85,7 @@ export const describeScript = (scriptPath, config) => {
83
85
  album,
84
86
  type: encoder.label,
85
87
  trackCount,
88
+ commands,
86
89
  };
87
90
  };
88
91
  export const describeScripts = (scriptPaths, config) => scriptPaths.map((scriptPath) => describeScript(scriptPath, config));
@@ -1 +1 @@
1
- {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../src/scripts.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,20 @@
95
95
  .form-group {
96
96
  margin-bottom: 1.1rem;
97
97
  }
98
+ .form-row {
99
+ display: grid;
100
+ gap: 1rem;
101
+ grid-template-columns: 1fr 1fr;
102
+ margin-bottom: 1.1rem;
103
+ }
104
+ .form-row .form-group {
105
+ margin-bottom: 0;
106
+ }
107
+ @media (max-width: 900px) {
108
+ .form-row {
109
+ grid-template-columns: 1fr;
110
+ }
111
+ }
98
112
  .form-group:last-of-type {
99
113
  margin-bottom: 0;
100
114
  }
@@ -283,29 +297,64 @@
283
297
  gap: 0.45rem;
284
298
  margin-bottom: 0.25rem;
285
299
  }
286
- .empty-state {
287
- color: var(--text-muted);
288
- font-size: 0.92rem;
289
- padding: 0.5rem 0;
290
- }
291
- .script-row {
292
- align-items: center;
300
+ .script-accordion {
293
301
  background: var(--surface-raised);
294
302
  border: 1px solid var(--border);
295
303
  border-radius: var(--radius-sm);
304
+ overflow: hidden;
305
+ }
306
+ .script-accordion[open] {
307
+ border-color: color-mix(in srgb, var(--accent) 35%, var(--border));
308
+ }
309
+ .script-summary {
310
+ align-items: center;
311
+ cursor: pointer;
296
312
  display: flex;
297
313
  gap: 0.75rem;
298
314
  justify-content: space-between;
315
+ list-style: none;
299
316
  padding: 0.55rem 0.65rem 0.55rem 0.8rem;
300
317
  }
301
- .script-row code {
318
+ .script-summary::-webkit-details-marker {
319
+ display: none;
320
+ }
321
+ .script-summary::before {
322
+ color: var(--text-muted);
323
+ content: "▸";
324
+ flex-shrink: 0;
325
+ font-size: 0.75rem;
326
+ transition: transform 0.15s;
327
+ width: 0.75rem;
328
+ }
329
+ .script-accordion[open] .script-summary::before {
330
+ transform: rotate(90deg);
331
+ }
332
+ .script-title {
302
333
  flex: 1;
303
334
  font-family: ui-monospace, "Cascadia Code", "SF Mono", monospace;
304
335
  font-size: 0.84rem;
336
+ min-width: 0;
305
337
  overflow: hidden;
306
338
  text-overflow: ellipsis;
307
339
  white-space: nowrap;
308
340
  }
341
+ .script-commands {
342
+ background: #00000010;
343
+ border-top: 1px solid var(--border);
344
+ font-family: ui-monospace, "Cascadia Code", "SF Mono", monospace;
345
+ font-size: 0.78rem;
346
+ line-height: 1.45;
347
+ margin: 0;
348
+ max-height: 16rem;
349
+ overflow: auto;
350
+ padding: 0.65rem 0.8rem;
351
+ white-space: pre-wrap;
352
+ }
353
+ .empty-state {
354
+ color: var(--text-muted);
355
+ font-size: 0.92rem;
356
+ padding: 0.5rem 0;
357
+ }
309
358
  .app-version {
310
359
  color: var(--text-muted);
311
360
  font-size: 0.82rem;
@@ -352,13 +401,15 @@
352
401
  <h2>Scan library</h2>
353
402
  </div>
354
403
  <form id="run-form">
355
- <div class="form-group">
356
- <h3 class="form-label">Source folder</h3>
357
- <div class="option-grid" id="start-folders"></div>
358
- </div>
359
- <div class="form-group">
360
- <h3 class="form-label">Encoders</h3>
361
- <div class="option-grid" id="encoders"></div>
404
+ <div class="form-row">
405
+ <div class="form-group">
406
+ <h3 class="form-label">Source folder</h3>
407
+ <div class="option-grid" id="start-folders"></div>
408
+ </div>
409
+ <div class="form-group">
410
+ <h3 class="form-label">Encoders</h3>
411
+ <div class="option-grid" id="encoders"></div>
412
+ </div>
362
413
  </div>
363
414
  <label class="filter-field">
364
415
  <span>Artist filter (prefix)</span>
@@ -521,16 +572,24 @@
521
572
  return;
522
573
  }
523
574
  for (const script of scripts) {
524
- const row = document.createElement("div");
525
- row.className = "script-row";
526
- const code = document.createElement("code");
527
- code.textContent = script.displayName;
528
- code.title = script.name;
575
+ const item = document.createElement("details");
576
+ item.className = "script-accordion";
577
+
578
+ const summary = document.createElement("summary");
579
+ summary.className = "script-summary";
580
+
581
+ const title = document.createElement("span");
582
+ title.className = "script-title";
583
+ title.textContent = script.displayName;
584
+ title.title = script.name;
585
+
529
586
  const btn = document.createElement("button");
530
587
  btn.type = "button";
531
588
  btn.className = "btn-primary btn-sm";
532
589
  btn.textContent = "Run";
533
- btn.addEventListener("click", async () => {
590
+ btn.addEventListener("click", async (event) => {
591
+ event.preventDefault();
592
+ event.stopPropagation();
534
593
  setBusy(true);
535
594
  appendLog(`Running ${script.displayName}...`);
536
595
  const res = await fetch("/api/scripts/run", {
@@ -550,8 +609,18 @@
550
609
  }
551
610
  setBusy(false);
552
611
  });
553
- row.append(code, btn);
554
- scriptsList.append(row);
612
+
613
+ summary.append(title, btn);
614
+ item.append(summary);
615
+
616
+ if (script.commands?.length) {
617
+ const commands = document.createElement("pre");
618
+ commands.className = "script-commands";
619
+ commands.textContent = script.commands.join("\n");
620
+ item.append(commands);
621
+ }
622
+
623
+ scriptsList.append(item);
555
624
  }
556
625
  };
557
626
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@emgeebee/music_downcoder",
3
- "version": "1.1.6",
3
+ "version": "1.1.8",
4
4
  "description": "Scan music libraries and generate ffmpeg conversion scripts with a CLI or web UI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -18,6 +18,7 @@
18
18
  "serve": "tsx src/index.ts serve -c docker/conf.local.json -H 127.0.0.1 -p 3798",
19
19
  "list": "find ./cmd/**/*.sh -type f 2>/dev/null | sort -nr",
20
20
  "convert": "./batch.sh",
21
+ "clean-empty": "tsx src/cleanEmptyFolders.ts -c docker/conf.local.json",
21
22
  "type-check": "tsc --noEmit"
22
23
  },
23
24
  "dependencies": {