Add sorting by last activity
* Update AnalyticsServer.py * Update charts.html * Update script.js
This commit is contained in:
@@ -115,6 +115,13 @@ def get_challenge_points(streamer):
|
||||
return 0
|
||||
|
||||
|
||||
def get_last_activity(streamer):
|
||||
datas = read_json(streamer, return_response=False)
|
||||
if datas != {}:
|
||||
return datas["series"][-1]["x"]
|
||||
return 0
|
||||
|
||||
|
||||
def json_all():
|
||||
return Response(
|
||||
json.dumps(
|
||||
@@ -143,7 +150,7 @@ def streamers():
|
||||
return Response(
|
||||
json.dumps(
|
||||
[
|
||||
{"name": s, "points": get_challenge_points(s)}
|
||||
{"name": s, "points": get_challenge_points(s), "last_activity": get_last_activity(s)}
|
||||
for s in sorted(streamers_available())
|
||||
]
|
||||
),
|
||||
|
||||
@@ -86,6 +86,12 @@
|
||||
<a href="#" class="dropdown-item" onClick="changeSortBy(this)">
|
||||
Points descending
|
||||
</a>
|
||||
<a href="#" class="dropdown-item" onClick="changeSortBy(this)">
|
||||
Last activity ascending
|
||||
</a>
|
||||
<a href="#" class="dropdown-item" onClick="changeSortBy(this)">
|
||||
Last activity descending
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -85,6 +85,7 @@ var annotations = [];
|
||||
|
||||
var streamersList = [];
|
||||
var sortBy = "Name ascending";
|
||||
var sortField = 'name';
|
||||
|
||||
var startDate = new Date();
|
||||
startDate.setDate(startDate.getDate() - daysAgo);
|
||||
@@ -104,6 +105,9 @@ $(document).ready(function () {
|
||||
$('#endDate').val(formatDate(endDate));
|
||||
|
||||
sortBy = localStorage.getItem("sort-by");
|
||||
if (sortBy.includes("Points")) sortField = 'points';
|
||||
else if (sortBy.includes("Last activity")) sortField = 'last_activity';
|
||||
else sortField = 'name';
|
||||
$('#sorting-by').text(sortBy);
|
||||
getStreamers();
|
||||
|
||||
@@ -184,12 +188,15 @@ function renderStreamers() {
|
||||
|
||||
function sortStreamers() {
|
||||
streamersList = streamersList.sort((a, b) => {
|
||||
return (a[sortBy.includes("Name") ? 'name' : 'points'] > b[sortBy.includes("Name") ? 'name' : 'points'] ? 1 : -1) * (sortBy.includes("ascending") ? 1 : -1);
|
||||
return (a[sortField] > b[sortField] ? 1 : -1) * (sortBy.includes("ascending") ? 1 : -1);
|
||||
});
|
||||
}
|
||||
|
||||
function changeSortBy(option) {
|
||||
sortBy = option.innerText.trim();
|
||||
if (sortBy.includes("Points")) sortField = 'points'
|
||||
else if (sortBy.includes("Last activity")) sortField = 'last_activity'
|
||||
else sortField = 'name';
|
||||
sortStreamers();
|
||||
renderStreamers();
|
||||
$('#sorting-by').text(sortBy);
|
||||
|
||||
Reference in New Issue
Block a user