wip
This commit is contained in:
parent
ac85940394
commit
7a418c4e8a
5 changed files with 103 additions and 2 deletions
|
@ -65,3 +65,9 @@ async function init() {
|
|||
|
||||
|
||||
init();
|
||||
|
||||
class App extends HTMLElement {
|
||||
get mpd() { return mpd; }
|
||||
}
|
||||
|
||||
customElements.define("cyp-app", App);
|
||||
|
|
3
app/js/component.js
Normal file
3
app/js/component.js
Normal file
|
@ -0,0 +1,3 @@
|
|||
export default class Component extends HTMLElement {
|
||||
get _app() { return this.closest("cyp-app"); }
|
||||
}
|
83
app/js/lib/mpd-mock.js
Normal file
83
app/js/lib/mpd-mock.js
Normal file
|
@ -0,0 +1,83 @@
|
|||
import * as mpd from "./mpd.js";
|
||||
|
||||
export const escape = mpd.escape;
|
||||
|
||||
export function command(cmd) {
|
||||
console.warn(`MOCK does not know "${cmd}"`);
|
||||
}
|
||||
|
||||
export function commandAndStatus(cmd) {
|
||||
command(cmd);
|
||||
return status();
|
||||
}
|
||||
|
||||
export function status() {
|
||||
return {
|
||||
volume: 50,
|
||||
elapsed: 10,
|
||||
duration: 70,
|
||||
file: "name.mp3",
|
||||
Title: "Title of song",
|
||||
Artist: "Artist of song",
|
||||
Album: "Album of song",
|
||||
Track: 6,
|
||||
state: "play",
|
||||
Id: 2
|
||||
}
|
||||
}
|
||||
|
||||
export function listQueue() {
|
||||
return [
|
||||
{id:1, Track:5, Title:"Title 1", Artist:"AAA", Album:"BBB", duration:30},
|
||||
status(),
|
||||
{id:3, Track:7, Title:"Title 3", Artist:"CCC", Album:"DDD", duration:230},
|
||||
];
|
||||
}
|
||||
|
||||
export async function listPlaylists() {
|
||||
let lines = await command("listplaylists");
|
||||
let parsed = parser.linesToStruct(lines);
|
||||
|
||||
let list = parsed["playlist"];
|
||||
if (!list) { return []; }
|
||||
return (list instanceof Array ? list : [list]);
|
||||
}
|
||||
|
||||
export async function enqueueByFilter(filter, sort = null) {
|
||||
let tokens = ["findadd"];
|
||||
tokens.push(serializeFilter(filter));
|
||||
// sort && tokens.push("sort", sort); FIXME not implemented in MPD
|
||||
return command(tokens.join(" "));
|
||||
}
|
||||
|
||||
export async function listPath(path) {
|
||||
let lines = await command(`lsinfo "${escape(path)}"`);
|
||||
return parser.pathContents(lines);
|
||||
}
|
||||
|
||||
export async function listTags(tag, filter = null) {
|
||||
let tokens = ["list", tag];
|
||||
if (filter) {
|
||||
tokens.push(serializeFilter(filter));
|
||||
|
||||
let fakeGroup = Object.keys(filter)[0]; // FIXME hack for MPD < 0.21.6
|
||||
tokens.push("group", fakeGroup);
|
||||
}
|
||||
let lines = await command(tokens.join(" "));
|
||||
let parsed = parser.linesToStruct(lines);
|
||||
return [].concat(tag in parsed ? parsed[tag] : []);
|
||||
}
|
||||
|
||||
export async function listSongs(filter, window = null) {
|
||||
let tokens = ["find"];
|
||||
tokens.push(serializeFilter(filter));
|
||||
if (window) { tokens.push("window", window.join(":")); }
|
||||
let lines = await command(tokens.join(" "));
|
||||
return parser.songList(lines);
|
||||
}
|
||||
|
||||
export async function albumArt(songUrl) {
|
||||
return null;
|
||||
}
|
||||
|
||||
export function init() {}
|
|
@ -1,8 +1,10 @@
|
|||
import * as mpd from "./lib/mpd.js";
|
||||
//import * as mpd from "./lib/mpd.js";
|
||||
import * as mpd from "./lib/mpd-mock.js";
|
||||
import * as art from "./lib/art.js";
|
||||
import * as html from "./lib/html.js";
|
||||
import * as format from "./lib/format.js";
|
||||
import * as pubsub from "./lib/pubsub.js";
|
||||
import Component from "./component.js";
|
||||
|
||||
const DELAY = 1000;
|
||||
const DOM = {};
|
||||
|
@ -130,3 +132,9 @@ export function init(n) {
|
|||
|
||||
update();
|
||||
}
|
||||
|
||||
class Player extends Component {
|
||||
|
||||
}
|
||||
|
||||
customElements.define("cyp-player", Player);
|
|
@ -1,4 +1,5 @@
|
|||
import * as mpd from "./lib/mpd.js";
|
||||
// import * as mpd from "./lib/mpd.js";
|
||||
import * as mpd from "./lib/mpd-mock.js";
|
||||
import * as html from "./lib/html.js";
|
||||
import * as pubsub from "./lib/pubsub.js";
|
||||
import * as ui from "./lib/ui.js";
|
||||
|
|
Loading…
Reference in a new issue