Skip to content

Commit

Permalink
add week and today playcount
Browse files Browse the repository at this point in the history
  • Loading branch information
mhor committed Apr 12, 2016
1 parent 6ce57a4 commit cb69f1f
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 4 deletions.
4 changes: 2 additions & 2 deletions assets/js/lastfm-dashboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,6 @@ LastFmApiClient.prototype.getLastFiveTracks = function (callback) {
this.callApi(this.endpoint + "user.getRecentTracks&user=" + this.username + "&limit=5" + this.addQueryParameters(), callback)
};

LastFmApiClient.prototype.getEvents = function (callback) {
this.callApi(this.endpoint + "user.getPastEvents&user=" + this.username + "&limit=1" + this.addQueryParameters(), callback)
LastFmApiClient.prototype.getPlayCount = function (from, to, callback) {
this.callApi(this.endpoint + "user.getRecentTracks&user=" + this.username + "&limit=1&from=" + from + "&to=" + to + this.addQueryParameters(), callback)
};
85 changes: 83 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,18 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="chart-wrapper">
<div class="chart-title">
Today play count
</div>
<div class="chart-stage">
<div id="today-playcount"></div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-2">
<div class="row">
Expand All @@ -157,6 +169,18 @@
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<div class="chart-wrapper">
<div class="chart-title">
Week play count
</div>
<div class="chart-stage">
<div id="week-playcount"></div>
</div>
</div>
</div>
</div>
</div>
</div>

Expand Down Expand Up @@ -239,6 +263,21 @@
.title("Tracks")
;

var weekPlayCount = new Keen.Dataviz()
.el(document.getElementById('week-playcount'))
.chartType("metric")
.colors(["#6A81A2"])
.title("Scrobbles")
;


var todayPlayCount = new Keen.Dataviz()
.el(document.getElementById('today-playcount'))
.chartType("metric")
.colors(["#A20900"])
.title("Scrobbles")
;

var refreshTime = 30000;
var currentlyPlaying = $(document.getElementById('currently-playing'));

Expand Down Expand Up @@ -266,6 +305,14 @@
participatedEvents.parseRawData({ result: parseInt(events.events['@attr'].total) }).render();
};

var updateTodayPlayCount = function (playcount) {
todayPlayCount.parseRawData({ result: parseInt(playcount.recenttracks['@attr'].total) }).render();
};

var updateWeekPlayCount = function (playcount) {
weekPlayCount.parseRawData({ result: parseInt(playcount.recenttracks['@attr'].total) }).render();
};

var updatePlayingTrack = function (lastTracks) {
var lastTrack = lastTracks.recenttracks.track[0];
var currentlyPlayingContainer = $('#currently-playing-container');
Expand Down Expand Up @@ -326,15 +373,49 @@
});
};

var today = new Date();
var todayMidnight = new Date();
todayMidnight.setHours(0, 0, 0, 0);
function getMonday(d) {
d = new Date(d);
var day = d.getDay(),
diff = d.getDate() - day + (day == 0 ? -6:1); // adjust when day is sunday
return new Date(d.setDate(diff));
}

var monday = getMonday(new Date()); // Mon Nov 08 2010
monday.setHours(0, 0, 0, 0);

lastFmApiClient.getUserInfo(updateScrobbles);
lastFmApiClient.getLastFiveTracks(updatePlayingTrack);
lastFmApiClient.getEvents(updateEvents);
// lastFmApiClient.getEvents(updateEvents);
lastFmApiClient.getPlayCount(
todayMidnight.getTime() / 1000,
Math.floor(today.getTime() / 1000),
updateTodayPlayCount
);

lastFmApiClient.getPlayCount(
monday.getTime() / 1000,
Math.floor(today.getTime() / 1000),
updateWeekPlayCount
);

setInterval(function () {
lastFmApiClient.getLastFiveTracks(updatePlayingTrack);
lastFmApiClient.getArtistCount(updateArtists);
lastFmApiClient.getUserInfo(updateScrobbles);
lastFmApiClient.getUserInfo(updateScrobbles);
lastFmApiClient.getPlayCount(
todayMidnight.getTime() / 1000,
Math.floor(today.getTime() / 1000),
updateTodayPlayCount
);

lastFmApiClient.getPlayCount(
monday.getTime() / 1000,
Math.floor(today.getTime() / 1000),
updateWeekPlayCount
);
}, refreshTime);

function createPlayingNode(image, imageLightBox, title, artist) {
Expand Down

0 comments on commit cb69f1f

Please sign in to comment.