@inner-dj/client 0.1.9 → 0.2.0

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.
@@ -15,7 +15,15 @@ export declare class Player {
15
15
  start: () => Promise<void>;
16
16
  connect: (retryOnFailure?: boolean) => void;
17
17
  play: () => Promise<void>;
18
- enqueue: (vidurl: string, destination: string[], insertFilename?: boolean) => Promise<string | false>;
18
+ /**
19
+ * Add an element to a queue. If the file doesn't already exist, download it first
20
+ * @param vidurl YouTube video URL
21
+ * @param destination queue to insert into
22
+ * @param addToFront true to insert at front, false to insert at end
23
+ * @param insertFilename true to insert the filename on the drive, false to insert vidurl
24
+ * @returns false if item was not queued, filename otherwise
25
+ */
26
+ enqueue: (vidurl: string, destination: string[], addToFront: boolean, insertFilename?: boolean) => Promise<string | false>;
19
27
  skip: () => void;
20
28
  pause: (doPause: boolean) => void;
21
29
  fileExists: (vid: YouTubeVideoID) => Promise<string | false>;
package/lib/src/player.js CHANGED
@@ -42,7 +42,7 @@ export class Player {
42
42
  }
43
43
  start = async () => {
44
44
  for (const vidurl of this.config.standbyPool) {
45
- if (await this.enqueue(vidurl, this.standbyPool, true)) {
45
+ if (await this.enqueue(vidurl, this.standbyPool, false, true)) {
46
46
  this.play();
47
47
  }
48
48
  }
@@ -90,9 +90,11 @@ export class Player {
90
90
  setTimeout(() => this.connect(true), 2500);
91
91
  }) && console.log(`${config.clientId} connected to ${wsServer}`);
92
92
  }
93
- else if (payload.type === 'queue') {
93
+ else if (payload.type === 'queue' || payload.type === 'insert') {
94
94
  console.log(`adding ${payload.body} to the queue`);
95
- this.enqueue(payload.body, this.queue).then(this.play);
95
+ this.enqueue(payload.body, this.queue, payload.type === 'insert').then(this.play).then(() => {
96
+ console.log(this.queue);
97
+ });
96
98
  }
97
99
  else if (payload.type === 'skip') {
98
100
  this.skip();
@@ -145,7 +147,15 @@ export class Player {
145
147
  }, this.config.jwtSecret));
146
148
  this.proc = null;
147
149
  };
148
- enqueue = async (vidurl, destination, insertFilename = true) => {
150
+ /**
151
+ * Add an element to a queue. If the file doesn't already exist, download it first
152
+ * @param vidurl YouTube video URL
153
+ * @param destination queue to insert into
154
+ * @param addToFront true to insert at front, false to insert at end
155
+ * @param insertFilename true to insert the filename on the drive, false to insert vidurl
156
+ * @returns false if item was not queued, filename otherwise
157
+ */
158
+ enqueue = async (vidurl, destination, addToFront, insertFilename = true) => {
149
159
  const vid = getYouTubeID(vidurl);
150
160
  if (!vid) {
151
161
  console.warn(`could not parse url ${vidurl}`);
@@ -168,11 +178,23 @@ export class Player {
168
178
  console.warn(`no file for video ${vid} found.`);
169
179
  return false;
170
180
  }
171
- if (destination.indexOf(filename) >= 0) {
172
- console.warn(`${vid} already in queue.`);
173
- return false;
181
+ const existingIndex = destination.indexOf(filename);
182
+ if (existingIndex >= 0) {
183
+ if (!addToFront) {
184
+ console.warn(`${vid} already in queue.`);
185
+ return false;
186
+ }
187
+ else {
188
+ console.info('already in queue; moving to front.');
189
+ destination.splice(existingIndex, 1);
190
+ }
191
+ }
192
+ if (addToFront) {
193
+ destination.unshift(insertFilename ? filename : vidurl);
194
+ }
195
+ else {
196
+ destination.push(insertFilename ? filename : vidurl);
174
197
  }
175
- destination.push(insertFilename ? filename : vidurl);
176
198
  return filename;
177
199
  };
178
200
  skip = () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inner-dj/client",
3
- "version": "0.1.9",
3
+ "version": "0.2.0",
4
4
  "description": "player component of inner-dj",
5
5
  "keywords": [
6
6
  "jukebox",
@@ -48,13 +48,13 @@
48
48
  "lru-cache": "^11.5.1",
49
49
  "spawn-but-with-promises": "^1.0.4",
50
50
  "yaml": "^2.9.0",
51
- "@inner-dj/common": "0.1.9"
51
+ "@inner-dj/common": "0.2.0"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@sindresorhus/tsconfig": "8.1.0",
55
55
  "@types/jsonwebtoken": "^9.0.10",
56
56
  "@types/node": "^24.12.4",
57
- "@vercel/ncc": "^0.38.4",
57
+ "@vercel/ncc": "0.44.0",
58
58
  "typescript": "^6.0.3"
59
59
  },
60
60
  "scripts": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAcrD,SAAS,aAAa,CAAI,GAAW;IACjC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,OAAe,EAAE,GAA0B,EAAE,GAAuB,EAAE,QAAiB;IACvG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC;AAC1E,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,OAAe;IACtC,IAAI,CAAC;QACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,IAAI,CAAC,kBAAkB,OAAO,KAAK,EAAE,EAAE,EAAE,yBAAyB,CAAC,CAAC;QAC5E,OAAO,EAAE,CAAC;IACd,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAgB;IAC5C,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAW,IAAI,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAC3F,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO;QACH,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC,sBAAsB,CAAC;QAC1F,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,aAAa,CAAC,oBAAoB,CAAC,CAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACxG,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,SAAS,IAAI,aAAa,CAAC,uBAAuB,CAAC;QAC9F,sBAAsB,EAAE,UAAU,CAAC,qBAAqB,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,CAAC;QAC/F,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,EAAE;QAC5E,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC;QACrG,SAAS,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;QAC5E,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,EAAE;QAChE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO;KACjD,CAAA;AACL,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,OAAgB;IACvC,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;AAChE,MAAM,IAAI,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"player.js","sourceRoot":"","sources":["../../src/player.ts"],"names":[],"mappings":"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"}