From 2b90dccd83b76905827df24651b2a21f00b05dad Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Sat, 19 Sep 2026 18:20:46 +0330 Subject: [PATCH] Keep legacy photo highlights contiguous --- _art/2024-10-09-Kazakhstan_DSC-0865.md | 2 +- _art/2024-10-09-Kazakhstan_DSC-0870.md | 2 +- ...-World-Nomad-Games,-Kazakhstan_DSC-0251.md | 2 +- ...-World-Nomad-Games,-Kazakhstan_DSC-0298.md | 2 +- ...-World-Nomad-Games,-Kazakhstan_DSC-0472.md | 2 +- ...-World-Nomad-Games,-Kazakhstan_DSC-0536.md | 2 +- ...-World-Nomad-Games,-Kazakhstan_DSC-0685.md | 2 +- _art/2024-10-09-x_DSC-0994.md | 2 +- _art/2024-10-09-x_DSC-0999.md | 2 +- ...2024-10-25-Bazaar-e-Tabriz_000521270008.md | 2 +- ...2024-10-25-Bazaar-e-Tabriz_000521270009.md | 2 +- ...2024-10-25-Bazaar-e-Tabriz_000521270010.md | 2 +- _art/2024-10-25-Bistoon_000521270025.md | 2 +- _art/2024-10-25-Bistoon_000521270026.md | 2 +- _art/2024-10-25-Bistoon_000521270027.md | 2 +- ...-10-25-Cowboy-from-Hamadan_000521270030.md | 2 +- ...24-10-25-Ganjname,-Hamadan_000521270029.md | 2 +- _art/2024-10-25-Hamadan_000521270031.md | 2 +- _art/2024-10-25-Hamadan_000521270032.md | 2 +- _art/2024-10-25-Hamadan_000521270033.md | 2 +- _art/2024-10-25-Hamadan_000521270034.md | 2 +- _art/2024-10-25-Hamadan_000521270035.md | 2 +- _art/2024-10-25-Iran_000521270021.md | 2 +- _art/2024-10-25-Iran_000521270023.md | 2 +- _art/2024-10-25-Tabriz_000521270012.md | 2 +- _art/2024-10-25-Tabriz_000521270013.md | 2 +- _art/2024-10-25-Taq-e-Bostan_000521270018.md | 2 +- _art/2024-10-25-Taq-e-Bostan_000521270019.md | 2 +- _art/2024-10-25-Taq-e-Bostan_000521270020.md | 2 +- scripts/organize-photo-highlights.py | 54 ++++++++++++++++++- scripts/tests/test_photo_highlights.py | 36 +++++++++++++ 31 files changed, 118 insertions(+), 30 deletions(-) diff --git a/_art/2024-10-09-Kazakhstan_DSC-0865.md b/_art/2024-10-09-Kazakhstan_DSC-0865.md index eb95cee..adcee58 100644 --- a/_art/2024-10-09-Kazakhstan_DSC-0865.md +++ b/_art/2024-10-09-Kazakhstan_DSC-0865.md @@ -1,7 +1,7 @@ --- layout: post title: Kazakhstan_DSC-0865.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:51+00:00" categories: art --- diff --git a/_art/2024-10-09-Kazakhstan_DSC-0870.md b/_art/2024-10-09-Kazakhstan_DSC-0870.md index 67eeffc..dcd0b54 100644 --- a/_art/2024-10-09-Kazakhstan_DSC-0870.md +++ b/_art/2024-10-09-Kazakhstan_DSC-0870.md @@ -1,7 +1,7 @@ --- layout: post title: Kazakhstan_DSC-0870.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:52+00:00" categories: art --- diff --git a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0251.md b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0251.md index b59f789..ef4e4d8 100644 --- a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0251.md +++ b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0251.md @@ -1,7 +1,7 @@ --- layout: post title: World-Nomad-Games,-Kazakhstan_DSC-0251.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:53+00:00" categories: art --- diff --git a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0298.md b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0298.md index 2a11b22..4c2349f 100644 --- a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0298.md +++ b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0298.md @@ -1,7 +1,7 @@ --- layout: post title: World-Nomad-Games,-Kazakhstan_DSC-0298.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:54+00:00" categories: art --- diff --git a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0472.md b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0472.md index e6f5379..2486a2a 100644 --- a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0472.md +++ b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0472.md @@ -1,7 +1,7 @@ --- layout: post title: World-Nomad-Games,-Kazakhstan_DSC-0472.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:55+00:00" categories: art --- diff --git a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0536.md b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0536.md index d71ddfe..250c1bf 100644 --- a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0536.md +++ b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0536.md @@ -1,7 +1,7 @@ --- layout: post title: World-Nomad-Games,-Kazakhstan_DSC-0536.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:56+00:00" categories: art --- diff --git a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0685.md b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0685.md index da7f0de..3779be2 100644 --- a/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0685.md +++ b/_art/2024-10-09-World-Nomad-Games,-Kazakhstan_DSC-0685.md @@ -1,7 +1,7 @@ --- layout: post title: World-Nomad-Games,-Kazakhstan_DSC-0685.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:57+00:00" categories: art --- diff --git a/_art/2024-10-09-x_DSC-0994.md b/_art/2024-10-09-x_DSC-0994.md index 18ba5d3..d80e366 100644 --- a/_art/2024-10-09-x_DSC-0994.md +++ b/_art/2024-10-09-x_DSC-0994.md @@ -1,7 +1,7 @@ --- layout: post title: x_DSC-0994.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:58+00:00" categories: art --- diff --git a/_art/2024-10-09-x_DSC-0999.md b/_art/2024-10-09-x_DSC-0999.md index 01d413f..228d3c8 100644 --- a/_art/2024-10-09-x_DSC-0999.md +++ b/_art/2024-10-09-x_DSC-0999.md @@ -1,7 +1,7 @@ --- layout: post title: x_DSC-0999.jpg -date: 2024-10-09 +date: "2024-10-09T23:59:59+00:00" categories: art anchor: "Kazakhstan - World Nomad Games" --- diff --git a/_art/2024-10-25-Bazaar-e-Tabriz_000521270008.md b/_art/2024-10-25-Bazaar-e-Tabriz_000521270008.md index e10a144..73dabe7 100644 --- a/_art/2024-10-25-Bazaar-e-Tabriz_000521270008.md +++ b/_art/2024-10-25-Bazaar-e-Tabriz_000521270008.md @@ -1,7 +1,7 @@ --- layout: post title: Bazaar-e-Tabriz_000521270008.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:40+00:00" categories: art --- diff --git a/_art/2024-10-25-Bazaar-e-Tabriz_000521270009.md b/_art/2024-10-25-Bazaar-e-Tabriz_000521270009.md index 6df24e9..678f6b0 100644 --- a/_art/2024-10-25-Bazaar-e-Tabriz_000521270009.md +++ b/_art/2024-10-25-Bazaar-e-Tabriz_000521270009.md @@ -1,7 +1,7 @@ --- layout: post title: Bazaar-e-Tabriz_000521270009.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:41+00:00" categories: art --- diff --git a/_art/2024-10-25-Bazaar-e-Tabriz_000521270010.md b/_art/2024-10-25-Bazaar-e-Tabriz_000521270010.md index 6ddeb38..c29a266 100644 --- a/_art/2024-10-25-Bazaar-e-Tabriz_000521270010.md +++ b/_art/2024-10-25-Bazaar-e-Tabriz_000521270010.md @@ -1,7 +1,7 @@ --- layout: post title: Bazaar-e-Tabriz_000521270010.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:42+00:00" categories: art --- diff --git a/_art/2024-10-25-Bistoon_000521270025.md b/_art/2024-10-25-Bistoon_000521270025.md index 27e7d10..60f9d4a 100644 --- a/_art/2024-10-25-Bistoon_000521270025.md +++ b/_art/2024-10-25-Bistoon_000521270025.md @@ -1,7 +1,7 @@ --- layout: post title: Bistoon_000521270025.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:43+00:00" categories: art --- diff --git a/_art/2024-10-25-Bistoon_000521270026.md b/_art/2024-10-25-Bistoon_000521270026.md index 24a1d5e..16dd65e 100644 --- a/_art/2024-10-25-Bistoon_000521270026.md +++ b/_art/2024-10-25-Bistoon_000521270026.md @@ -1,7 +1,7 @@ --- layout: post title: Bistoon_000521270026.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:44+00:00" categories: art --- diff --git a/_art/2024-10-25-Bistoon_000521270027.md b/_art/2024-10-25-Bistoon_000521270027.md index 096df9d..6a626e7 100644 --- a/_art/2024-10-25-Bistoon_000521270027.md +++ b/_art/2024-10-25-Bistoon_000521270027.md @@ -1,7 +1,7 @@ --- layout: post title: Bistoon_000521270027.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:45+00:00" categories: art --- diff --git a/_art/2024-10-25-Cowboy-from-Hamadan_000521270030.md b/_art/2024-10-25-Cowboy-from-Hamadan_000521270030.md index 317b24f..bcd2ffa 100644 --- a/_art/2024-10-25-Cowboy-from-Hamadan_000521270030.md +++ b/_art/2024-10-25-Cowboy-from-Hamadan_000521270030.md @@ -1,7 +1,7 @@ --- layout: post title: Cowboy-from-Hamadan_000521270030.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:46+00:00" categories: art --- diff --git a/_art/2024-10-25-Ganjname,-Hamadan_000521270029.md b/_art/2024-10-25-Ganjname,-Hamadan_000521270029.md index fdba8d7..a41e1a9 100644 --- a/_art/2024-10-25-Ganjname,-Hamadan_000521270029.md +++ b/_art/2024-10-25-Ganjname,-Hamadan_000521270029.md @@ -1,7 +1,7 @@ --- layout: post title: Ganjname,-Hamadan_000521270029.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:47+00:00" categories: art --- diff --git a/_art/2024-10-25-Hamadan_000521270031.md b/_art/2024-10-25-Hamadan_000521270031.md index 2e563bf..518edd1 100644 --- a/_art/2024-10-25-Hamadan_000521270031.md +++ b/_art/2024-10-25-Hamadan_000521270031.md @@ -1,7 +1,7 @@ --- layout: post title: Hamadan_000521270031.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:48+00:00" categories: art --- diff --git a/_art/2024-10-25-Hamadan_000521270032.md b/_art/2024-10-25-Hamadan_000521270032.md index cb20da4..2e48fbf 100644 --- a/_art/2024-10-25-Hamadan_000521270032.md +++ b/_art/2024-10-25-Hamadan_000521270032.md @@ -1,7 +1,7 @@ --- layout: post title: Hamadan_000521270032.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:49+00:00" categories: art --- diff --git a/_art/2024-10-25-Hamadan_000521270033.md b/_art/2024-10-25-Hamadan_000521270033.md index 36691d9..c75bf8a 100644 --- a/_art/2024-10-25-Hamadan_000521270033.md +++ b/_art/2024-10-25-Hamadan_000521270033.md @@ -1,7 +1,7 @@ --- layout: post title: Hamadan_000521270033.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:50+00:00" categories: art --- diff --git a/_art/2024-10-25-Hamadan_000521270034.md b/_art/2024-10-25-Hamadan_000521270034.md index 14e9fb5..b126dcd 100644 --- a/_art/2024-10-25-Hamadan_000521270034.md +++ b/_art/2024-10-25-Hamadan_000521270034.md @@ -1,7 +1,7 @@ --- layout: post title: Hamadan_000521270034.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:51+00:00" categories: art --- diff --git a/_art/2024-10-25-Hamadan_000521270035.md b/_art/2024-10-25-Hamadan_000521270035.md index bed868f..f5f208f 100644 --- a/_art/2024-10-25-Hamadan_000521270035.md +++ b/_art/2024-10-25-Hamadan_000521270035.md @@ -1,7 +1,7 @@ --- layout: post title: Hamadan_000521270035.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:52+00:00" categories: art --- diff --git a/_art/2024-10-25-Iran_000521270021.md b/_art/2024-10-25-Iran_000521270021.md index c046204..dbe2325 100644 --- a/_art/2024-10-25-Iran_000521270021.md +++ b/_art/2024-10-25-Iran_000521270021.md @@ -1,7 +1,7 @@ --- layout: post title: Iran_000521270021.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:53+00:00" categories: art --- diff --git a/_art/2024-10-25-Iran_000521270023.md b/_art/2024-10-25-Iran_000521270023.md index 3186ad5..cb74851 100644 --- a/_art/2024-10-25-Iran_000521270023.md +++ b/_art/2024-10-25-Iran_000521270023.md @@ -1,7 +1,7 @@ --- layout: post title: Iran_000521270023.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:54+00:00" categories: art --- diff --git a/_art/2024-10-25-Tabriz_000521270012.md b/_art/2024-10-25-Tabriz_000521270012.md index ae10e40..a2f9387 100644 --- a/_art/2024-10-25-Tabriz_000521270012.md +++ b/_art/2024-10-25-Tabriz_000521270012.md @@ -1,7 +1,7 @@ --- layout: post title: Tabriz_000521270012.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:55+00:00" categories: art --- diff --git a/_art/2024-10-25-Tabriz_000521270013.md b/_art/2024-10-25-Tabriz_000521270013.md index 8fe2f64..d64c5bb 100644 --- a/_art/2024-10-25-Tabriz_000521270013.md +++ b/_art/2024-10-25-Tabriz_000521270013.md @@ -1,7 +1,7 @@ --- layout: post title: Tabriz_000521270013.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:56+00:00" categories: art --- diff --git a/_art/2024-10-25-Taq-e-Bostan_000521270018.md b/_art/2024-10-25-Taq-e-Bostan_000521270018.md index 67476d1..376ebb5 100644 --- a/_art/2024-10-25-Taq-e-Bostan_000521270018.md +++ b/_art/2024-10-25-Taq-e-Bostan_000521270018.md @@ -1,7 +1,7 @@ --- layout: post title: Taq-e-Bostan_000521270018.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:57+00:00" categories: art --- diff --git a/_art/2024-10-25-Taq-e-Bostan_000521270019.md b/_art/2024-10-25-Taq-e-Bostan_000521270019.md index 77e4113..10a51d1 100644 --- a/_art/2024-10-25-Taq-e-Bostan_000521270019.md +++ b/_art/2024-10-25-Taq-e-Bostan_000521270019.md @@ -1,7 +1,7 @@ --- layout: post title: Taq-e-Bostan_000521270019.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:58+00:00" categories: art --- diff --git a/_art/2024-10-25-Taq-e-Bostan_000521270020.md b/_art/2024-10-25-Taq-e-Bostan_000521270020.md index 750741c..4b4278b 100644 --- a/_art/2024-10-25-Taq-e-Bostan_000521270020.md +++ b/_art/2024-10-25-Taq-e-Bostan_000521270020.md @@ -1,7 +1,7 @@ --- layout: post title: Taq-e-Bostan_000521270020.jpg -date: 2024-10-25 +date: "2024-10-25T23:59:59+00:00" categories: art anchor: "Iran - Hamadan, Kermanshah, Tabriz" --- diff --git a/scripts/organize-photo-highlights.py b/scripts/organize-photo-highlights.py index 45929f4..f1b57b8 100644 --- a/scripts/organize-photo-highlights.py +++ b/scripts/organize-photo-highlights.py @@ -2,6 +2,8 @@ from datetime import datetime, timedelta, timezone from pathlib import Path import html +import json +import re ART = Path("_art") @@ -26,6 +28,40 @@ ungrouped = [(OLD[2], 2), (OLD[2], 3)] ordered = armenia + romania + ungrouped assert len(ordered) == len(set(ordered)) == 18 +collection_groups = [ + ( + "iran-analog-2024", + datetime(2024, 10, 25, 23, 59, 59, tzinfo=timezone.utc), + "Iran - Hamadan, Kermanshah, Tabriz", + [ + "Taq-e-Bostan_000521270020.jpg", "Taq-e-Bostan_000521270019.jpg", + "Taq-e-Bostan_000521270018.jpg", "Tabriz_000521270013.jpg", + "Tabriz_000521270012.jpg", "Iran_000521270023.jpg", + "Iran_000521270021.jpg", "Hamadan_000521270035.jpg", + "Hamadan_000521270034.jpg", "Hamadan_000521270033.jpg", + "Hamadan_000521270032.jpg", "Hamadan_000521270031.jpg", + "Ganjname,-Hamadan_000521270029.jpg", "Cowboy-from-Hamadan_000521270030.jpg", + "Bistoon_000521270027.jpg", "Bistoon_000521270026.jpg", + "Bistoon_000521270025.jpg", "Bazaar-e-Tabriz_000521270010.jpg", + "Bazaar-e-Tabriz_000521270009.jpg", "Bazaar-e-Tabriz_000521270008.jpg", + ], + ), + ( + "kazakhstan-2024", + datetime(2024, 10, 9, 23, 59, 59, tzinfo=timezone.utc), + "Kazakhstan - World Nomad Games", + [ + "x_DSC-0999.jpg", "x_DSC-0994.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0685.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0536.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0472.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0298.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0251.jpg", + "Kazakhstan_DSC-0870.jpg", "Kazakhstan_DSC-0865.jpg", + ], + ), +] + anchors = {armenia[0]: "Armenia", romania[0]: "Romania"} captions = {(OLD[2], 7): "Transmission of Flesh by Erfan Ashourioun"} first_for_job = {} @@ -58,4 +94,20 @@ for position, (job, index) in enumerate(ordered): target = ART / f"2026-09-19-photo-{job}-{index:02}.md" target.write_text("\n".join(lines) + "\n") -print("Created 18 individual photo documents in Armenia, Romania, and ungrouped order") +for folder, group_start, anchor, filenames in collection_groups: + for position, filename in enumerate(filenames): + image = f"/img/arts/{folder}/{filename}" + matches = [path for path in ART.glob("*.md") if image in path.read_text()] + assert len(matches) == 1, (image, matches) + path = matches[0] + content = path.read_text() + date = group_start - timedelta(seconds=position) + content = re.sub(r"^date:.*$", f'date: "{date.isoformat()}"', content, + count=1, flags=re.MULTILINE) + content = re.sub(r"^anchor:.*\n", "", content, flags=re.MULTILINE) + if position == 0: + content = content.replace("categories: art\n", "categories: art\nanchor: " + + json.dumps(anchor) + "\n", 1) + path.write_text(content) + +print("Organized Armenia, Romania, Iran, and Kazakhstan into contiguous highlights") diff --git a/scripts/tests/test_photo_highlights.py b/scripts/tests/test_photo_highlights.py index 5d97189..0ce89fb 100644 --- a/scripts/tests/test_photo_highlights.py +++ b/scripts/tests/test_photo_highlights.py @@ -14,6 +14,29 @@ ROMANIA = [f"/img/arts/uploads/{JOB}/{index:02}.jpg" for index in (0, 1)] + [ for index in range(5)] + [ "/img/arts/uploads/260cc99527c13f256d4ea39d0959f5daa942c888ea882852e73fd94f6c30b7db/00.jpg", "/img/arts/uploads/b18a2f1c7127077c801160782012cb164759f0b9dd41762205b45e4c9a07d673/00.jpg"] +COLLECTIONS = { + "iran-analog-2024": [ + "Taq-e-Bostan_000521270020.jpg", "Taq-e-Bostan_000521270019.jpg", + "Taq-e-Bostan_000521270018.jpg", "Tabriz_000521270013.jpg", + "Tabriz_000521270012.jpg", "Iran_000521270023.jpg", + "Iran_000521270021.jpg", "Hamadan_000521270035.jpg", + "Hamadan_000521270034.jpg", "Hamadan_000521270033.jpg", + "Hamadan_000521270032.jpg", "Hamadan_000521270031.jpg", + "Ganjname,-Hamadan_000521270029.jpg", "Cowboy-from-Hamadan_000521270030.jpg", + "Bistoon_000521270027.jpg", "Bistoon_000521270026.jpg", + "Bistoon_000521270025.jpg", "Bazaar-e-Tabriz_000521270010.jpg", + "Bazaar-e-Tabriz_000521270009.jpg", "Bazaar-e-Tabriz_000521270008.jpg", + ], + "kazakhstan-2024": [ + "x_DSC-0999.jpg", "x_DSC-0994.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0685.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0536.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0472.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0298.jpg", + "World-Nomad-Games,-Kazakhstan_DSC-0251.jpg", + "Kazakhstan_DSC-0870.jpg", "Kazakhstan_DSC-0865.jpg", + ], +} class PhotoHighlightTests(unittest.TestCase): @@ -40,6 +63,19 @@ class PhotoHighlightTests(unittest.TestCase): self.assertIn('anchor: "Iran - Hamadan, Kermanshah, Tabriz"', iran) self.assertIn('anchor: "Kazakhstan - World Nomad Games"', kazakhstan) + def test_existing_collection_order_uses_distinct_seconds(self): + for folder, filenames in COLLECTIONS.items(): + records = [] + for path in ART.glob("*.md"): + content = path.read_text() + image = re.search(rf'/img/arts/{folder}/([^\s)"\']+)', content) + if image: + date = re.search(r'^date: "([^"]+)"', content, re.MULTILINE) + records.append((datetime.fromisoformat(date.group(1)), image.group(1))) + records.sort(reverse=True) + self.assertEqual([filename for _, filename in records], filenames) + self.assertEqual(len({date for date, _ in records}), len(filenames)) + if __name__ == "__main__": unittest.main()