Browse Source

Added new Capturer: Music Aggregator

main
Julio Biason 2 years ago
parent
commit
46d8aef1ca
  1. 1
      README.md
  2. 3
      design/deezer.md
  3. 36
      design/music.md

1
README.md

@ -21,5 +21,6 @@ Currently, I'm considering the following Capturers (based on my own life):
- [ ] [Steam Capturer](design/steam.md) - [ ] [Steam Capturer](design/steam.md)
- [ ] [Netflix](design/netflix.md) - [ ] [Netflix](design/netflix.md)
- [ ] [Deezer](design/deezer.md) - [ ] [Deezer](design/deezer.md)
- [ ] [Music Aggregator](design/music.md)
- [ ] [Calendar/CalDav](design/caldav.md) - [ ] [Calendar/CalDav](design/caldav.md)
- [ ] [Email](design/email.md) - [ ] [Email](design/email.md)

3
design/deezer.md

@ -8,7 +8,8 @@ user.
## Configuration ## Configuration
Configuration requires the OAuth token, besides the IP and PORT of the Store. Configuration requires the OAuth token, besides the IP and PORT of the Store,
and IP and PORT of the Music Aggregator.
## Internals ## Internals

36
design/music.md

@ -0,0 +1,36 @@
# Music Aggregator
Music Aggregator is a Capturer of sorts, but uses information coming from other
services to produce its result.
## Configuration
Requires the IP and PORT of the Store, and a list of musical Capturers that are
running.
## Internals
The service must receive Artist Name, Album Name and Song Title. It aggregates
information on all musical services and produces a count of each played song.
We keep:
- `artist`: Text.
- `album`: Text.
- `song`: Text.
- `count`: int, increases on each song send.
Also, we need to keep a list of capturers we receive per day:
- `day`: Day being generated.
- `capturer`: Capturer name.
The output is not produced till all musical Capturers send their information.
## Output
```
{% for song in todays_songs %}
{{ song.name }}, by {{ song.artist }} played {{ song.count }} times.
{% endfor %}
```
Loading…
Cancel
Save