From f414b849b784bb1bea445c79a21b82b5ac3719c2 Mon Sep 17 00:00:00 2001 From: Mark Date: Thu, 24 Aug 2023 16:23:18 +0200 Subject: [PATCH] update readme and add some stuff --- README.md | 69 ++++++++++++------------------------------------------- 1 file changed, 15 insertions(+), 54 deletions(-) diff --git a/README.md b/README.md index 5b826a0..939b084 100755 --- a/README.md +++ b/README.md @@ -39,86 +39,47 @@ for the client, you may need to change the path used in `include_bytes!(...)` to ## setup -### server/client - -#### prep +### prep You need some directory where your music is located (mp3 files). I will assume this is `/music` for simplicity. -The structure should be `/music/Artist/Album/Song.mp3` so we can automatically -populate the database with your songs. if it isn't, songs will need to be added manually (for now). - You will also need a file that will hold your database. I will assume this is `dbfile`. Note: Instead of adding the executables (`musicdb-client` and `musicdb-server`) to your `$PATH`, you can run `cargo run --release -- ` followed by the arguments. Since this is using cargo, you need to be in the source directorie for whatever you want to run. -#### initializing the server +### database -run the server without arguments to see the current syntax. - -To initialize a new database: +`musicdb-filldb` will read all files in the /music directory and all of its subdirectories, read their metadata and try to figure out as much about these songs as possible. It will then generate a `dbfile` which `musicdb-server` can read. +You can make changes to the database later, but this should be the easiest way to get started: ```sh -musicdb-server dbfile --init /music --tcp 127.0.0.1:12345 --web 127.0.0.1:8080 +musicdb-filldb /music ``` -#### adding songs +### starting the server -While the server is running, the client can add songs to it: - -##### automatically - -If your files are stored as `/music/Artist/Album/Song.mp3`, -the client can go through these files and add them all to the database. -For this to work, the client should be running on the same machine as the server -(the contents of `/music` must match). +run: ```sh -musicdb-client filldb 127.0.0.1:12345 -``` - -You can open `127.0.0.1:8080` in a browser to see the songs being added in real-time. - -##### manually - -You can use the client's cli mode to manually add songs (this is annoying. don't.) - -```sh -musicdb-client cli 127.0.0.1:12345 -``` - -##### saving - -```sh -musicdb-client cli 127.0.0.1:12345 -``` - -Now, start the client's cli mode and type 'save'. The server will now create (or overwrite) `dbfile`. - -And that's it - you can now use the player. For a user-friendly(er) interface, start the client in gui mode: - -```sh -musicdb-client gui 127.0.0.1:12345 -``` - -#### (re)starting the server - -To load an existing dbfile, remove the `init` part from the command used earlier: - -```sh -musicdb-server dbfile --tcp 127.0.0.1:12345 --web 127.0.0.1:8080 +musicdb-server dbfile --tcp 127.0.0.1:26314 --web 127.0.0.1:8080 ``` And that's it - the rest should just work. +You can now open 127.0.0.1:8080 in a browser or use `musicdb-client`: + +```sh +musicdb-client gui 127.0.0.1:26314 +``` + ### syncplayer If `/music` is the same on two devices, one can act as the server and the other as a client that simply mirrors the server using the client's syncplayer mode: ```sh -musicdb-client syncplayer 127.0.0.1:12345 +musicdb-client syncplayer 127.0.0.1:26314 ```