aw-watcher-tidal is a client for the ActivityWatch application that will log your listening history from Tidal using a plugin created for the client mod TIDALuna. the python watcher and typescript plugin communicate with each other using a light, local, asynchronous http server due to ActivityWatch's default cors config. the plugin sends a heartbeat to the watcher each second a song is playing, and the watcher forwards those packets to the server. it was honestly pretty fun trying to figure out how to most efficiently handle requests. i originally tried recreating the activitywatch api wrapper in typescript, but activitywatch doesn't allow packets from non-localhost (and extensions) by default. then i had the terrible uphill battle of figuring out poorly documented/undocumented apis. yay. but overall it was very fun!! important notices !! : this project is split across two different hackatime projects, luna-plugins and aw-watcher-tidal. this project also has two github repositories, https://github.com/tailhaver/luna-plugins and https://github.com/tailhaver/aw-watcher-tidal
aw-watcher-tidal is a client for the ActivityWatch application that will log your listening history from Tidal using a plugin created for the client mod TIDALuna. the python watcher and typescript plugin communicate with each other using a light, local, asynchronous http server due to ActivityWatch's default cors config. the plugin sends a heartbeat to the watcher each second a song is playing, and the watcher forwards those packets to the server. it was honestly pretty fun trying to figure out how to most efficiently handle requests. i originally tried recreating the activitywatch api wrapper in typescript, but activitywatch doesn't allow packets from non-localhost (and extensions) by default. then i had the terrible uphill battle of figuring out poorly documented/undocumented apis. yay. but overall it was very fun!! important notices !! : this project is split across two different hackatime projects, luna-plugins and aw-watcher-tidal. this project also has two github repositories, https://github.com/tailhaver/luna-plugins and https://github.com/tailhaver/aw-watcher-tidal