@inner-dj/common 0.1.3 → 0.1.5

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.
@@ -34,7 +34,13 @@ export declare function getBoolean<T>(envname: string, cfg: Partial<T> | undefin
34
34
  * @param msg error message
35
35
  */
36
36
  export declare function throwNewError<T>(msg: string): T;
37
- export type Payload = RegistrationPayload | AckPayload | NowPlayingPayload | SkipPayload | QueuePayload;
37
+ /**
38
+ * readdir but suppresses errors (if any)
39
+ * @param downloadDir directory to read
40
+ * @returns an array of files, or an empty array if an error was thrown
41
+ */
42
+ export declare function getFilesNoError(downloadDir: string): Promise<string[]>;
43
+ export type Payload = RegistrationPayload | AckPayload | NowPlayingPayload | SkipPayload | QueuePayload | DownloadPayload;
38
44
  export interface PayloadBase {
39
45
  type: string;
40
46
  body?: any;
@@ -49,7 +55,7 @@ export interface RegistrationPayload extends PayloadBase {
49
55
  }
50
56
  export interface NowPlayingPayload extends PayloadBase {
51
57
  type: 'nowPlaying';
52
- body: string;
58
+ body: string | null;
53
59
  }
54
60
  export interface SkipPayload extends PayloadBase {
55
61
  type: 'skip';
@@ -59,3 +65,7 @@ export interface QueuePayload extends PayloadBase {
59
65
  type: 'queue';
60
66
  body: string;
61
67
  }
68
+ export interface DownloadPayload extends PayloadBase {
69
+ type: 'download';
70
+ body: YouTubeVideoID;
71
+ }
package/lib/src/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import fsp from 'fs/promises';
1
2
  import { ytdlpDefaults, ytdlpExec, ytdlp } from './yt-dlp.js';
2
3
  import jwt from 'jsonwebtoken';
3
4
  import { iReceiver } from './ireceiver.js';
@@ -43,4 +44,17 @@ export function getBoolean(envname, cfg, key, fallback) {
43
44
  export function throwNewError(msg) {
44
45
  throw new Error(msg);
45
46
  }
47
+ /**
48
+ * readdir but suppresses errors (if any)
49
+ * @param downloadDir directory to read
50
+ * @returns an array of files, or an empty array if an error was thrown
51
+ */
52
+ export async function getFilesNoError(downloadDir) {
53
+ try {
54
+ return await fsp.readdir(downloadDir);
55
+ }
56
+ catch {
57
+ return [];
58
+ }
59
+ }
46
60
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAiF,MAAM,gBAAgB,CAAC;AAC1H,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,SAAiB;IAC7D,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAA8B;IAC5D,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAI,OAAe,EAAE,GAA2B,EAAE,GAAY,EAAE,QAAiB;IACvG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAI,GAAW;IACxC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAwC,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,GAAG,MAAM,cAAc,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAiF,MAAM,gBAAgB,CAAC;AAC1H,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAI5D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AAE3C,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,oBAAoB,EAAE,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,SAAiB;IAC7D,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAA8B;IAC5D,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACb,CAAC;IACD,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAI,OAAe,EAAE,GAA2B,EAAE,GAAY,EAAE,QAAiB;IACvG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC;AAC5E,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAI,GAAW;IACxC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAGD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB;IACrD,IAAI,CAAC;QACD,OAAO,MAAM,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IACD,MAAM,CAAC;QACH,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC"}
@@ -7,6 +7,7 @@ export interface ytdlpOptions {
7
7
  audioFormat?: string;
8
8
  audioQuality?: number;
9
9
  restrictFilenames?: boolean;
10
+ cookies?: string | undefined;
10
11
  }
11
12
  export declare const ytdlpDefaults: ytdlpOptions;
12
13
  export declare function ytdlpExec(options: ytdlpOptions, url: string): Promise<void>;
package/lib/src/yt-dlp.js CHANGED
@@ -8,6 +8,9 @@ export const ytdlpDefaults = {
8
8
  };
9
9
  export async function ytdlpExec(options, url) {
10
10
  const args = [];
11
+ if (options.cookies) {
12
+ args.push('--cookies', options.cookies);
13
+ }
11
14
  if (options.sponsorblock?.length) {
12
15
  args.push('--sponsorblock-remove', options.sponsorblock.join(','));
13
16
  }
@@ -30,7 +33,23 @@ export async function ytdlpExec(options, url) {
30
33
  }
31
34
  }
32
35
  args.push(url);
33
- await spawn('yt-dlp', args, { rejectOnNonZero: true });
36
+ const proc = spawn('yt-dlp', args, { rejectOnNonZero: true });
37
+ const std = [];
38
+ proc.stdout.on('data', (data) => {
39
+ std.push({ type: 'out', data });
40
+ });
41
+ proc.stderr.on('data', (data) => {
42
+ std.push({ type: 'err', data });
43
+ });
44
+ try {
45
+ await proc;
46
+ }
47
+ catch (ex) {
48
+ std.forEach(out => {
49
+ (out.type === 'out' ? console.log : console.error).call(null, out.data.toString());
50
+ });
51
+ throw ex;
52
+ }
34
53
  }
35
54
  export class ytdlp {
36
55
  options;
@@ -1 +1 @@
1
- {"version":3,"file":"yt-dlp.js","sourceRoot":"","sources":["../../src/yt-dlp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAY/C,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAiB;IACvC,YAAY,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,CAAC;IACvE,MAAM,EAAE,0BAA0B;IAClC,SAAS,EAAE,IAAI;IACf,iBAAiB,EAAE,IAAI;CAC1B,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAqB,EAAE,GAAW;IAC9D,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,OAAO,KAAK;IACN,OAAO,CAAe;IAE9B,YAAY,OAAqB;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,GAAW;QACZ,OAAO,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;CACJ"}
1
+ {"version":3,"file":"yt-dlp.js","sourceRoot":"","sources":["../../src/yt-dlp.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inner-dj/common",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "common component of inner-dj",
5
5
  "repository": {
6
6
  "type": "git",