@christianriedl/media 1.0.305 → 1.0.306
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.
package/dist/playlistService.js
CHANGED
|
@@ -82,6 +82,8 @@ export class PlaylistService {
|
|
|
82
82
|
return res.ok ? res.result : false;
|
|
83
83
|
}
|
|
84
84
|
async playCommand(cmd) {
|
|
85
|
+
if (cmd == EPlaylistCommand.Stop && this.getSoundbarValue('On') === false)
|
|
86
|
+
return true;
|
|
85
87
|
this.soundbarOn = await this.ensureSoundbarOn();
|
|
86
88
|
if (!this.soundbarOn)
|
|
87
89
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playlistService.js","sourceRoot":"","sources":["../src/playlistService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"playlistService.js","sourceRoot":"","sources":["../src/playlistService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { getPlaylistSymbol, IPlaylistService, IPlaylistState, IRssFeed, IRssItem, EPlaylistCommand, EFeedType } from '@christianriedl/media';
|
|
7
7
|
|
|
8
8
|
const appState = inject(appStateSymbol)!;
|
|
9
|
+
const appConfig = inject(appConfigSymbol)!;
|
|
9
10
|
const getPlaylistService = inject(getPlaylistSymbol)!;
|
|
10
11
|
const playlistService = getPlaylistService() ;
|
|
11
12
|
const heightStyle = computed<StyleValue>(() => { return { height: appState.bodyHeight.value + 'px', overflowY: 'auto' } });
|
|
@@ -139,6 +140,16 @@
|
|
|
139
140
|
play();
|
|
140
141
|
computeListHeight();
|
|
141
142
|
}
|
|
143
|
+
|
|
144
|
+
function download(item: IRssItem) {
|
|
145
|
+
const anchor = document.createElement("a");
|
|
146
|
+
anchor.href = item.link;
|
|
147
|
+
anchor.download = item.title + ".mp3";
|
|
148
|
+
document.body.appendChild(anchor);
|
|
149
|
+
anchor.click();
|
|
150
|
+
document.body.removeChild(anchor);
|
|
151
|
+
}
|
|
152
|
+
|
|
142
153
|
function listBack() {
|
|
143
154
|
router.back();
|
|
144
155
|
}
|
|
@@ -184,6 +195,15 @@
|
|
|
184
195
|
}
|
|
185
196
|
return r;
|
|
186
197
|
}
|
|
198
|
+
|
|
199
|
+
function firstGenre(s?: string) {
|
|
200
|
+
if (!s)
|
|
201
|
+
return "";
|
|
202
|
+
const idx = s.indexOf('|');
|
|
203
|
+
if (idx > 0)
|
|
204
|
+
return s.substring(0, idx);
|
|
205
|
+
return s;
|
|
206
|
+
}
|
|
187
207
|
function onEnded() {
|
|
188
208
|
}
|
|
189
209
|
function onTimeUpdate() {
|
|
@@ -238,6 +258,13 @@
|
|
|
238
258
|
selectedItem.value = items[playIndex.value + 1];
|
|
239
259
|
play();
|
|
240
260
|
}
|
|
261
|
+
async function stopAll() {
|
|
262
|
+
if (audio.value) {
|
|
263
|
+
audio.value!.pause();
|
|
264
|
+
audio.value!.currentTime = 0;
|
|
265
|
+
}
|
|
266
|
+
await playlistService.playCommand(EPlaylistCommand.Stop);
|
|
267
|
+
}
|
|
241
268
|
async function stop() {
|
|
242
269
|
if (playLocal.value) {
|
|
243
270
|
audio.value!.pause();
|
|
@@ -265,11 +292,14 @@
|
|
|
265
292
|
</audio>
|
|
266
293
|
<v-container v-if="search" fluid>
|
|
267
294
|
<v-row class="align-center" density="compact">
|
|
268
|
-
<v-col cols="1">
|
|
269
|
-
<v-col cols="
|
|
270
|
-
<
|
|
271
|
-
|
|
272
|
-
|
|
295
|
+
<v-col cols="1">Orf</v-col>
|
|
296
|
+
<v-col v-if="orf" cols="3">Category</v-col>
|
|
297
|
+
<template v-else>
|
|
298
|
+
<v-col cols="2">Type</v-col>
|
|
299
|
+
<v-col cols="1">Country</v-col>
|
|
300
|
+
</template>
|
|
301
|
+
<v-col cols="4">Query</v-col>
|
|
302
|
+
<v-col cols="2">Limit</v-col>
|
|
273
303
|
</v-row>
|
|
274
304
|
<v-row class="align-center" density="compact">
|
|
275
305
|
<v-col cols="1">
|
|
@@ -295,45 +325,50 @@
|
|
|
295
325
|
</v-combobox>
|
|
296
326
|
</v-col>
|
|
297
327
|
</template>
|
|
298
|
-
<v-col cols="
|
|
328
|
+
<v-col cols="4">
|
|
299
329
|
<v-text-field v-model="query" hide-details density="compact"></v-text-field>
|
|
300
330
|
</v-col>
|
|
301
|
-
<v-col cols="
|
|
331
|
+
<v-col cols="2">
|
|
302
332
|
<v-text-field v-model="limit" hide-details type="number" density="compact"></v-text-field>
|
|
303
333
|
</v-col>
|
|
304
334
|
<v-col cols="1">
|
|
305
|
-
<v-btn icon="$search" class="bg-media_head" variant="tonal" @click="onSearch">
|
|
306
|
-
|
|
335
|
+
<v-btn icon="$search" class="bg-media_head" variant="tonal" density="default" @click="onSearch"></v-btn>
|
|
336
|
+
</v-col>
|
|
337
|
+
<v-col cols="1">
|
|
338
|
+
<v-btn icon="$stop" class="bg-media_head" variant="tonal" density="default" @click="stopAll"></v-btn>
|
|
307
339
|
</v-col>
|
|
308
340
|
</v-row>
|
|
309
341
|
</v-container>
|
|
310
342
|
<v-container v-else fluid>
|
|
311
343
|
<v-row class="align-center" density="compact">
|
|
312
344
|
<v-col cols="1">
|
|
313
|
-
<v-btn icon="$back" class="bg-media_head" variant="tonal" @click="listBack">
|
|
314
|
-
</v-btn>
|
|
345
|
+
<v-btn icon="$back" class="bg-media_head" variant="tonal" density="compact" @click="listBack"></v-btn>
|
|
315
346
|
</v-col>
|
|
316
347
|
<v-col cols="1">
|
|
317
348
|
<v-img :src="selectedFeed!.imageUrl"></v-img>
|
|
318
349
|
</v-col>
|
|
319
350
|
<v-col cols="1">{{selectedFeed!.country}}</v-col>
|
|
320
|
-
<v-col cols="2">{{selectedFeed!.genre}}
|
|
351
|
+
<v-col cols="2">{{firstGenre(selectedFeed!.genre)}}
|
|
352
|
+
<v-tooltip v-if="!isMobile && selectedFeed!.genre && selectedFeed!.genre.indexOf('|') > 0" activator="parent" location="top">
|
|
353
|
+
{{selectedFeed!.genre.replaceAll('|', ', ')}}
|
|
354
|
+
</v-tooltip>
|
|
355
|
+
</v-col>
|
|
321
356
|
<v-col cols="2">{{selectedFeed!.owner}}</v-col>
|
|
322
|
-
<v-col cols="4">{{selectedFeed!.title}}</v-col>
|
|
323
|
-
<v-col cols="1">
|
|
357
|
+
<v-col :cols="(appConfig.isLocal && isMobile) ? 3 : 4">{{selectedFeed!.title}}</v-col>
|
|
358
|
+
<v-col v-if="appConfig.isLocal" :cols="isMobile ? 2 : 1">
|
|
324
359
|
<v-select v-model="currentPlayer" density="compact" :items="playerNames" persistent-hint
|
|
325
360
|
@update:modelValue="onPlayerChange" hide-details single-line>
|
|
326
361
|
</v-select>
|
|
327
362
|
</v-col>
|
|
328
363
|
</v-row>
|
|
329
364
|
<v-row v-if="playingItem" class="align-center" density="compact">
|
|
330
|
-
<v-col cols="
|
|
331
|
-
<v-btn :icon="paused ? '$play' : '$pause'" class="bg-media_head" variant="tonal" @click="playpause"></v-btn>
|
|
332
|
-
<v-btn icon="$stop" class="bg-media_head" variant="tonal" @click="stop"></v-btn>
|
|
333
|
-
<v-btn icon="$prev" class="bg-media_head" variant="tonal" @click="previous"></v-btn>
|
|
334
|
-
<v-btn icon="$next" class="bg-media_head" variant="tonal" @click="next"></v-btn>
|
|
365
|
+
<v-col :cols="isMobile ? 5 : 3">
|
|
366
|
+
<v-btn :icon="paused ? '$play' : '$pause'" class="bg-media_head" variant="tonal" density="compact" @click="playpause"></v-btn>
|
|
367
|
+
<v-btn icon="$stop" class="bg-media_head" variant="tonal" density="compact" @click="stop"></v-btn>
|
|
368
|
+
<v-btn icon="$prev" class="bg-media_head" variant="tonal" density="compact" @click="previous"></v-btn>
|
|
369
|
+
<v-btn icon="$next" class="bg-media_head" variant="tonal" density="compact" @click="next"></v-btn>
|
|
335
370
|
</v-col>
|
|
336
|
-
<v-col cols ="
|
|
371
|
+
<v-col :cols ="isMobile? 7 : 9">
|
|
337
372
|
<v-slider v-if="!playLocal" style="width:30%" color="red" track-color="blue" track-fill-color="red" v-model="volume" hide-details density="compact"
|
|
338
373
|
min="0" max="100" step="5" @update:modelValue="changeVolume">
|
|
339
374
|
</v-slider>
|
|
@@ -351,67 +386,33 @@
|
|
|
351
386
|
<v-container v-if="search" fluid>
|
|
352
387
|
<v-row v-for="(feed,index) in feeds" :key="feed.rssUrl" density="compact" @click="listFeed(feed)">
|
|
353
388
|
<v-col cols="1">{{feed.country}}</v-col>
|
|
354
|
-
<v-col cols="2">{{feed.genre}}
|
|
389
|
+
<v-col cols="2">{{firstGenre(feed.genre)}}
|
|
390
|
+
<v-tooltip v-if="!isMobile && feed.genre && feed.genre.indexOf('|') > 0" activator="parent" location="top">
|
|
391
|
+
{{feed.genre.replaceAll('|', ', ')}}
|
|
392
|
+
</v-tooltip>
|
|
393
|
+
</v-col>
|
|
355
394
|
<v-col cols="2">{{feed.owner}}</v-col>
|
|
356
|
-
<v-col cols="5">{{feed.title}}
|
|
395
|
+
<v-col cols="5">{{feed.title}}
|
|
396
|
+
<v-tooltip v-if="!isMobile && feed.description" activator="parent" location="top">
|
|
397
|
+
<div v-html="feed.description"></div>
|
|
398
|
+
</v-tooltip>
|
|
399
|
+
</v-col>
|
|
357
400
|
</v-row>
|
|
358
401
|
</v-container>
|
|
359
|
-
<v-container v-else>
|
|
402
|
+
<v-container v-else fluid>
|
|
360
403
|
<v-row v-for="(item,index) in items" :key="item.title" density="compact" :class="{ active: index == playIndex }" @click="listItem(item)">
|
|
361
|
-
<v-col cols="
|
|
362
|
-
|
|
404
|
+
<v-col cols="8">{{item.title}}
|
|
405
|
+
<v-tooltip v-if="!isMobile && item.description" activator="parent" location="top">
|
|
406
|
+
<div v-html="item.description"></div>
|
|
407
|
+
</v-tooltip>
|
|
408
|
+
</v-col>
|
|
409
|
+
<v-col cols="2">{{toTime(item.duration)}}</v-col>
|
|
410
|
+
<v-col cols="2">
|
|
411
|
+
<v-btn icon="$download" class="bg-media" density="compact" variant="flat" @click.stop="download(item)"></v-btn>
|
|
412
|
+
</v-col>
|
|
363
413
|
</v-row>
|
|
364
414
|
</v-container>
|
|
365
415
|
</v-card>
|
|
366
|
-
|
|
367
|
-
<!--
|
|
368
|
-
<v-card class="bg-media_head">
|
|
369
|
-
<audio ref="audio" preload="none" @ended="onEnded" @timeupdate="onTimeUpdate">
|
|
370
|
-
</audio>
|
|
371
|
-
<v-list-item lines="three">
|
|
372
|
-
<v-list-item-content>
|
|
373
|
-
<v-list-item-title text-h6>{{selected?.title}}</v-list-item-title>
|
|
374
|
-
<v-list-item-subtitle>{{toSubTitle(selected!)}}</v-list-item-subtitle>
|
|
375
|
-
</v-list-item-content>
|
|
376
|
-
<template v-slot:append>
|
|
377
|
-
<v-select v-model="currentPlayer" density="compact"
|
|
378
|
-
:items="playerNames"
|
|
379
|
-
persistent-hint
|
|
380
|
-
@update:modelValue="onPlayerChange"
|
|
381
|
-
hide-details single-line>
|
|
382
|
-
</v-select>
|
|
383
|
-
</template>
|
|
384
|
-
</v-list-item>
|
|
385
|
-
<v-card-actions>
|
|
386
|
-
<v-btn v-if="backVisible" @click="listBack">
|
|
387
|
-
<v-icon icon="$back" />
|
|
388
|
-
</v-btn>
|
|
389
|
-
<v-btn size="small" v-if="playingFeed" @click="playpause">
|
|
390
|
-
<v-icon v-if="paused" icon="$play" />
|
|
391
|
-
<v-icon v-else icon="$pause" />
|
|
392
|
-
</v-btn>
|
|
393
|
-
<v-btn size="small" v-if="playingFeed" @click="previous">
|
|
394
|
-
<v-icon icon="$prev" />
|
|
395
|
-
</v-btn>
|
|
396
|
-
<v-btn size="small" v-if="playingFeed" @click="next">
|
|
397
|
-
<v-icon icon="$next" />
|
|
398
|
-
</v-btn>
|
|
399
|
-
<v-slider v-if="!playLocal && playingFeed" style="width:30%" color="red" track-color="blue" track-fill-color="red" v-model="volume" hide-details density="compact"
|
|
400
|
-
min="0" max="100" step="5" @update:modelValue="changeVolume">
|
|
401
|
-
</v-slider>
|
|
402
|
-
</v-card-actions>
|
|
403
|
-
<v-progress-linear v-if="playingFeed" v-model="positionLength" color="blue" height="25"><strong>{{positionText}}</strong></v-progress-linear>
|
|
404
|
-
</v-card>
|
|
405
|
-
<v-card :height="listHeight" density="compact" class="overflow-y-auto bg-media">
|
|
406
|
-
<v-list lines="two" class="bg-media">
|
|
407
|
-
<v-list-item-group v-model="itemIndex">
|
|
408
|
-
<v-list-item v-for="(feed,index) in feeds" :key="feed.title" density="compact" :title="feed.title" :subtitle="toSubTitle(feed)"
|
|
409
|
-
active-color="blue" :active="index == playIndex" @click="listItem(feed)">
|
|
410
|
-
</v-list-item>
|
|
411
|
-
</v-list-item-group>
|
|
412
|
-
</v-list>
|
|
413
|
-
</v-card>
|
|
414
|
-
-->
|
|
415
416
|
</template>
|
|
416
417
|
|
|
417
418
|
<style scoped>
|