diff --git a/TwitchChannelPointsMiner/classes/AnalyticsServer.py b/TwitchChannelPointsMiner/classes/AnalyticsServer.py
index ed4a1f1..dd4cecf 100644
--- a/TwitchChannelPointsMiner/classes/AnalyticsServer.py
+++ b/TwitchChannelPointsMiner/classes/AnalyticsServer.py
@@ -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())
]
),
diff --git a/assets/charts.html b/assets/charts.html
index 40c12a2..c779f89 100644
--- a/assets/charts.html
+++ b/assets/charts.html
@@ -86,6 +86,12 @@
Points descending
+
+ Last activity ascending
+
+
+ Last activity descending
+
diff --git a/assets/script.js b/assets/script.js
index 6793a91..e67c58b 100644
--- a/assets/script.js
+++ b/assets/script.js
@@ -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);