From fcfbdb91774b6ccfbb02a6223d47a2a3d7bc0113 Mon Sep 17 00:00:00 2001 From: silentguy256 Date: Tue, 14 Feb 2023 08:45:01 +0100 Subject: [PATCH] Add sorting by last activity * Update AnalyticsServer.py * Update charts.html * Update script.js --- TwitchChannelPointsMiner/classes/AnalyticsServer.py | 9 ++++++++- assets/charts.html | 6 ++++++ assets/script.js | 9 ++++++++- 3 files changed, 22 insertions(+), 2 deletions(-) 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);