Skip to content

Commit a81aa84

Browse files
committed
Dynamic age
1 parent 9233e56 commit a81aa84

File tree

5 files changed

+103
-114
lines changed

5 files changed

+103
-114
lines changed

.github/workflows/update.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,11 @@ jobs:
2525
- name: Run update script
2626
run: uv run python update_releases.py
2727

28+
- name: Display and changes
29+
run: git diff
30+
2831
- name: Commit changes
29-
uses: stefanzweifel/git-auto-commit-action@v4
32+
uses: stefanzweifel/git-auto-commit-action@v6
3033
with:
3134
commit_message: "Update release information"
3235
branch: main

index.html

Lines changed: 53 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,9 @@ <h1>Open Data Cube Release Tracker</h1>
121121
<tr>
122122
<th data-sort="name">Package Name</th>
123123
<th data-sort="pypi_stable_version">PyPI Version</th>
124-
<th data-sort="pypi_stable_age_days">PyPI Age (days)</th>
124+
<th data-sort="pypi_stable_age_days">PyPI Age</th>
125125
<th data-sort="github_stable_version">GitHub Version</th>
126-
<th data-sort="github_stable_age_days">GitHub Age (days)</th>
126+
<th data-sort="github_stable_age_days">GitHub Age</th>
127127
</tr>
128128
</thead>
129129
<tbody>
@@ -137,7 +137,7 @@ <h1>Open Data Cube Release Tracker</h1>
137137
<td>
138138
<div class="age-display">
139139

140-
<span>2 days ago</span>
140+
<span class="pypi-stable-age" data-published-at="2025-08-05T03:43:30.771732Z"></span>
141141
<span class="date">(05 August 2025)</span>
142142

143143

@@ -149,7 +149,7 @@ <h1>Open Data Cube Release Tracker</h1>
149149
<td>
150150
<div class="age-display">
151151

152-
<span>2 days ago</span>
152+
<span class="github-stable-age" data-published-at="2025-08-05T03:34:09Z"></span>
153153
<span class="date">(05 August 2025)</span>
154154

155155
</div>
@@ -165,7 +165,7 @@ <h1>Open Data Cube Release Tracker</h1>
165165
<td>
166166
<div class="age-display">
167167

168-
<span>97 days ago</span>
168+
<span class="pypi-stable-age" data-published-at="2025-05-01T05:20:49.632058Z"></span>
169169
<span class="date">(01 May 2025)</span>
170170

171171

@@ -177,7 +177,7 @@ <h1>Open Data Cube Release Tracker</h1>
177177
<td>
178178
<div class="age-display">
179179

180-
<span>97 days ago</span>
180+
<span class="github-stable-age" data-published-at="2025-05-01T05:27:38Z"></span>
181181
<span class="date">(01 May 2025)</span>
182182

183183
</div>
@@ -193,7 +193,7 @@ <h1>Open Data Cube Release Tracker</h1>
193193
<td>
194194
<div class="age-display">
195195

196-
<span>22 days ago</span>
196+
<span class="pypi-stable-age" data-published-at="2025-07-16T02:26:00.716583Z"></span>
197197
<span class="date">(16 July 2025)</span>
198198

199199

@@ -224,12 +224,12 @@ <h1>Open Data Cube Release Tracker</h1>
224224
<td>
225225
<div class="age-display">
226226

227-
<span>157 days ago</span>
227+
<span class="pypi-stable-age" data-published-at="2025-03-03T04:12:22.114450Z"></span>
228228
<span class="date">(03 March 2025)</span>
229229

230230

231231
<span class="prerelease">
232-
<span>(98 days ago)</span>
232+
<span class="pypi-prerelease-age" data-published-at="2025-05-01T03:04:49.650498Z"></span>
233233
</span>
234234

235235
</div>
@@ -240,7 +240,7 @@ <h1>Open Data Cube Release Tracker</h1>
240240
<td>
241241
<div class="age-display">
242242

243-
<span>157 days ago</span>
243+
<span class="github-stable-age" data-published-at="2025-03-03T04:21:43Z"></span>
244244
<span class="date">(03 March 2025)</span>
245245

246246
</div>
@@ -256,7 +256,7 @@ <h1>Open Data Cube Release Tracker</h1>
256256
<td>
257257
<div class="age-display">
258258

259-
<span>51 days ago</span>
259+
<span class="pypi-stable-age" data-published-at="2025-06-17T00:21:41.050285Z"></span>
260260
<span class="date">(17 June 2025)</span>
261261

262262

@@ -268,7 +268,7 @@ <h1>Open Data Cube Release Tracker</h1>
268268
<td>
269269
<div class="age-display">
270270

271-
<span>51 days ago</span>
271+
<span class="github-stable-age" data-published-at="2025-06-17T00:20:58Z"></span>
272272
<span class="date">(17 June 2025)</span>
273273

274274
</div>
@@ -284,7 +284,7 @@ <h1>Open Data Cube Release Tracker</h1>
284284
<td>
285285
<div class="age-display">
286286

287-
<span>705 days ago</span>
287+
<span class="pypi-stable-age" data-published-at="2023-09-01T05:59:34.497489Z"></span>
288288
<span class="date">(01 September 2023)</span>
289289

290290

@@ -296,7 +296,7 @@ <h1>Open Data Cube Release Tracker</h1>
296296
<td>
297297
<div class="age-display">
298298

299-
<span>705 days ago</span>
299+
<span class="github-stable-age" data-published-at="2023-09-01T06:28:08Z"></span>
300300
<span class="date">(01 September 2023)</span>
301301

302302
</div>
@@ -312,7 +312,7 @@ <h1>Open Data Cube Release Tracker</h1>
312312
<td>
313313
<div class="age-display">
314314

315-
<span>26 days ago</span>
315+
<span class="pypi-stable-age" data-published-at="2025-07-11T04:35:26.465387Z"></span>
316316
<span class="date">(11 July 2025)</span>
317317

318318

@@ -324,7 +324,7 @@ <h1>Open Data Cube Release Tracker</h1>
324324
<td>
325325
<div class="age-display">
326326

327-
<span>27 days ago</span>
327+
<span class="github-stable-age" data-published-at="2025-07-11T04:14:03Z"></span>
328328
<span class="date">(11 July 2025)</span>
329329

330330
</div>
@@ -340,7 +340,7 @@ <h1>Open Data Cube Release Tracker</h1>
340340
<td>
341341
<div class="age-display">
342342

343-
<span>254 days ago</span>
343+
<span class="pypi-stable-age" data-published-at="2024-11-25T06:15:21.070046Z"></span>
344344
<span class="date">(25 November 2024)</span>
345345

346346

@@ -352,7 +352,7 @@ <h1>Open Data Cube Release Tracker</h1>
352352
<td>
353353
<div class="age-display">
354354

355-
<span>227 days ago</span>
355+
<span class="github-stable-age" data-published-at="2024-12-23T03:51:48Z"></span>
356356
<span class="date">(23 December 2024)</span>
357357

358358
</div>
@@ -372,12 +372,12 @@ <h1>Open Data Cube Release Tracker</h1>
372372
<td>
373373
<div class="age-display">
374374

375-
<span>126 days ago</span>
375+
<span class="pypi-stable-age" data-published-at="2025-04-03T00:14:01.687146Z"></span>
376376
<span class="date">(03 April 2025)</span>
377377

378378

379379
<span class="prerelease">
380-
<span>(9 days ago)</span>
380+
<span class="pypi-prerelease-age" data-published-at="2025-07-28T06:35:44.828036Z"></span>
381381
</span>
382382

383383
</div>
@@ -388,7 +388,7 @@ <h1>Open Data Cube Release Tracker</h1>
388388
<td>
389389
<div class="age-display">
390390

391-
<span>126 days ago</span>
391+
<span class="github-stable-age" data-published-at="2025-04-03T00:13:24Z"></span>
392392
<span class="date">(03 April 2025)</span>
393393

394394
</div>
@@ -404,7 +404,7 @@ <h1>Open Data Cube Release Tracker</h1>
404404
<td>
405405
<div class="age-display">
406406

407-
<span>28 days ago</span>
407+
<span class="pypi-stable-age" data-published-at="2025-07-10T03:14:57.827283Z"></span>
408408
<span class="date">(10 July 2025)</span>
409409

410410

@@ -431,7 +431,7 @@ <h1>Open Data Cube Release Tracker</h1>
431431
<td>
432432
<div class="age-display">
433433

434-
<span>78 days ago</span>
434+
<span class="pypi-stable-age" data-published-at="2025-05-20T06:05:41.138310Z"></span>
435435
<span class="date">(20 May 2025)</span>
436436

437437

@@ -443,7 +443,7 @@ <h1>Open Data Cube Release Tracker</h1>
443443
<td>
444444
<div class="age-display">
445445

446-
<span>78 days ago</span>
446+
<span class="github-stable-age" data-published-at="2025-05-20T06:04:56Z"></span>
447447
<span class="date">(20 May 2025)</span>
448448

449449
</div>
@@ -459,7 +459,7 @@ <h1>Open Data Cube Release Tracker</h1>
459459
<td>
460460
<div class="age-display">
461461

462-
<span>631 days ago</span>
462+
<span class="pypi-stable-age" data-published-at="2023-11-15T03:26:21.415914Z"></span>
463463
<span class="date">(15 November 2023)</span>
464464

465465

@@ -486,7 +486,7 @@ <h1>Open Data Cube Release Tracker</h1>
486486
<td>
487487
<div class="age-display">
488488

489-
<span>568 days ago</span>
489+
<span class="pypi-stable-age" data-published-at="2024-01-17T01:07:12.404052Z"></span>
490490
<span class="date">(17 January 2024)</span>
491491

492492

@@ -513,7 +513,7 @@ <h1>Open Data Cube Release Tracker</h1>
513513
<td>
514514
<div class="age-display">
515515

516-
<span>631 days ago</span>
516+
<span class="pypi-stable-age" data-published-at="2023-11-15T03:26:25.444556Z"></span>
517517
<span class="date">(15 November 2023)</span>
518518

519519

@@ -540,7 +540,7 @@ <h1>Open Data Cube Release Tracker</h1>
540540
<td>
541541
<div class="age-display">
542542

543-
<span>631 days ago</span>
543+
<span class="pypi-stable-age" data-published-at="2023-11-15T03:26:18.404842Z"></span>
544544
<span class="date">(15 November 2023)</span>
545545

546546

@@ -567,7 +567,7 @@ <h1>Open Data Cube Release Tracker</h1>
567567
<td>
568568
<div class="age-display">
569569

570-
<span>22 days ago</span>
570+
<span class="pypi-stable-age" data-published-at="2025-07-16T04:08:52.277365Z"></span>
571571
<span class="date">(16 July 2025)</span>
572572

573573

@@ -638,12 +638,10 @@ <h1>Open Data Cube Release Tracker</h1>
638638

639639
// Extract numeric value for age columns
640640
if (sortKey.includes("_age_days")) {
641-
aValue = parseFloat(aValue.split(" ")[0]) || 0; // "22 days ago" -> 22
642-
bValue = parseFloat(bValue.split(" ")[0]) || 0; // "N/A" -> 0
643-
}
644-
645-
if (typeof aValue === 'number' && typeof bValue === 'number') {
646-
return currentSortOrder === "asc" ? aValue - bValue : bValue - aValue;
641+
// For age columns, get the data-published-at attribute for accurate sorting
642+
const aDate = new Date(aCell.querySelector('[data-published-at]').dataset.publishedAt);
643+
const bDate = new Date(bCell.querySelector('[data-published-at]').dataset.publishedAt);
644+
return currentSortOrder === "asc" ? aDate.getTime() - bDate.getTime() : bDate.getTime() - aDate.getTime();
647645
} else {
648646
return currentSortOrder === "asc" ? aValue.localeCompare(bValue) : bValue.localeCompare(aValue);
649647
}
@@ -662,6 +660,26 @@ <h1>Open Data Cube Release Tracker</h1>
662660
}
663661
return index + 1;
664662
}
663+
664+
// Function to calculate and display days ago
665+
function calculateAndDisplayAge() {
666+
const now = new Date();
667+
document.querySelectorAll('[data-published-at]').forEach(element => {
668+
const publishedAt = new Date(element.dataset.publishedAt);
669+
const diffTime = Math.abs(now - publishedAt);
670+
const diffDays = Math.floor(diffTime / (1000 * 60 * 60 * 24));
671+
if (diffDays === 0) {
672+
element.innerText = "today";
673+
} else if (diffDays === 1) {
674+
element.innerText = "1 day ago";
675+
} else {
676+
element.innerText = `${diffDays} days ago`;
677+
}
678+
});
679+
}
680+
681+
calculateAndDisplayAge(); // Initial calculation
682+
setInterval(calculateAndDisplayAge, 3600000); // Update every hour (3600000 ms)
665683
});
666684
</script>
667685
<div id="last-checked-info" style="text-align: center; margin-top: 20px; font-size: 0.8em; color: #888;"></div>

0 commit comments

Comments
 (0)