Thread viewer for Bluesky

pick number of days using the slider

+1 -1
index.html
··· 101 </p> 102 103 <p> 104 - Time range: <input type="range" min="1" max="90" value="30"> 30 days 105 </p> 106 107 <p>
··· 101 </p> 102 103 <p> 104 + Time range: <input type="range" min="1" max="60" value="14"> <label>14 days</label> 105 </p> 106 107 <p>
+15 -2
skythread.js
··· 130 scanPostingStats(); 131 }); 132 133 window.appView = new BlueskyAPI('api.bsky.app', false); 134 window.blueAPI = new BlueskyAPI('blue.mackuba.eu', false); 135 window.accountAPI = new BlueskyAPI(undefined, true); ··· 461 $id('posting_stats_page').style.display = 'block'; 462 } 463 464 - function scanPostingStats() { 465 - let days = 7; 466 467 let submit = $(postingStatsPage.querySelector('input[type=submit]'), HTMLInputElement); 468 submit.disabled = true; 469 470 let output = $(postingStatsPage.querySelector('input[type=submit] + output')); 471 output.innerText = '';
··· 130 scanPostingStats(); 131 }); 132 133 + $(postingStatsPage.querySelector('input[type="range"]')).addEventListener('input', (e) => { 134 + let range = $(e.target, HTMLInputElement); 135 + configurePostingStats({ days: range.value }); 136 + }); 137 + 138 window.appView = new BlueskyAPI('api.bsky.app', false); 139 window.blueAPI = new BlueskyAPI('blue.mackuba.eu', false); 140 window.accountAPI = new BlueskyAPI(undefined, true); ··· 466 $id('posting_stats_page').style.display = 'block'; 467 } 468 469 + function configurePostingStats(args) { 470 + if (args.days) { 471 + let label = $(postingStatsPage.querySelector('input[type=range] + label')); 472 + label.innerText = (args.days == 1) ? '1 day' : `${args.days} days`; 473 + } 474 + } 475 476 + function scanPostingStats() { 477 let submit = $(postingStatsPage.querySelector('input[type=submit]'), HTMLInputElement); 478 submit.disabled = true; 479 + 480 + let range = $(postingStatsPage.querySelector('input[type=range]'), HTMLInputElement); 481 + let days = parseInt(range.value, 10); 482 483 let output = $(postingStatsPage.querySelector('input[type=submit] + output')); 484 output.innerText = '';
+5
style.css
··· 721 display: none; 722 } 723 724 #posting_stats_page .scan-result { 725 border: 1px solid #333; 726 border-collapse: collapse;
··· 721 display: none; 722 } 723 724 + #posting_stats_page input[type="range"] { 725 + width: 250px; 726 + vertical-align: middle; 727 + } 728 + 729 #posting_stats_page .scan-result { 730 border: 1px solid #333; 731 border-collapse: collapse;