aboutsummaryrefslogtreecommitdiff
path: root/tools/mpd-stats/internal (unfollow)
Commit message (Collapse)AuthorFilesLines
2022-06-11mpd-stats: pass database path to the scrobblerFranck Cuny1-4/+27
When creating a scrobbler, we provide the path to the database. The scrobbler then get a handler to the database. When a new record is created, we persist it to the database using the `save` function.
2022-06-11scrobbler: add timestamp to the recordFranck Cuny1-9/+11
When we create a new record, let's capture when this was created.
2022-06-11scrobbler: add interface to the sqlite3 databaseFranck Cuny1-0/+54
We want to persist the records in a database, so we can extract statistics and an history. The module for the database is straightforward: it opens the database if it exists and return an handler to it. If the database does not exists, we create it and we create the only table we need (records).
2022-06-11scrobbler: add functions to create and run itFranck Cuny1-0/+66
Add a new function to create a scrobbler. The function takes care of creating the mpd client. Add a function to run the scrobbler, which takes care of creating a new record when needed. This will simplify the interface for the caller, as all they really care about is: create the scrobbler, close it when we're done, and collect songs information while we listen to our music.
2022-06-11mpd: export the type PlayerFranck Cuny1-4/+4
2022-06-11mpd: add function `Close` to the playerFranck Cuny1-0/+10
Let's close both the watcher and the client, instead of leaking this interface to the user.
2022-06-11mpd: rename function to create the playerFranck Cuny1-1/+1
2022-06-11scrobbler: initial log record typeFranck Cuny1-0/+34
Define the type for a log record and add an helper function to create a new record.
2022-06-11scrobbler: watch for events and print song detailsFranck Cuny1-0/+38
We create a module "mpd" to interact with our MPD instance. For now we only have a single function to create a new client, which creates an actual client for mpd (and we ping the instance every 30 seconds), and a watcher to receive new events. The tool "scrobbler" then wait for new events and display songs information.