From afb4ed26760af2ff97c84b971cd1119ba95a6016 Mon Sep 17 00:00:00 2001 From: Mahdi Dibaiee Date: Sun, 20 Sep 2026 01:16:09 +0330 Subject: [PATCH] Merge Paris and Lille photo highlights --- ...5a074de422f30a389ab9589630b9c163fc0e-00.md | 5 ++-- ...5a074de422f30a389ab9589630b9c163fc0e-01.md | 2 +- ...5a074de422f30a389ab9589630b9c163fc0e-02.md | 2 +- ...5a074de422f30a389ab9589630b9c163fc0e-03.md | 2 +- ...5a074de422f30a389ab9589630b9c163fc0e-04.md | 2 +- ...5a074de422f30a389ab9589630b9c163fc0e-05.md | 2 +- ...5a074de422f30a389ab9589630b9c163fc0e-06.md | 2 +- ...5a074de422f30a389ab9589630b9c163fc0e-07.md | 2 +- ...5a074de422f30a389ab9589630b9c163fc0e-08.md | 2 +- ...5a074de422f30a389ab9589630b9c163fc0e-09.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-00.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-01.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-02.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-03.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-04.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-05.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-06.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-07.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-08.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-09.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-10.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-11.md | 2 +- ...e83abbcd82cb11a16f85e53b670e8613d34f-12.md | 2 +- scripts/organize-photo-highlights.py | 28 +++++++++++++++++++ scripts/tests/test_photo_highlights.py | 20 +++++++++++++ 25 files changed, 73 insertions(+), 24 deletions(-) diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-00.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-00.md index 32fd08b..02dd372 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-00.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-00.md @@ -1,9 +1,10 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e" -date: "2026-09-19T21:36:37.329738+00:00" +date: "2026-09-19T21:41:17+00:00" categories: art -anchor: "Paris" --- +
+

diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01.md index e1155b7..912a9af 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01" -date: "2026-09-19T21:36:36.329738+00:00" +date: "2026-09-19T21:41:16+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02.md index 0e96f23..f23f0c1 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02" -date: "2026-09-19T21:36:35.329738+00:00" +date: "2026-09-19T21:41:15+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03.md index f717c7f..3df8ba8 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03" -date: "2026-09-19T21:36:34.329738+00:00" +date: "2026-09-19T21:41:14+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04.md index 40bb570..96c6d27 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04" -date: "2026-09-19T21:36:33.329738+00:00" +date: "2026-09-19T21:41:13+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05.md index 41ad06e..7779629 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05" -date: "2026-09-19T21:36:32.329738+00:00" +date: "2026-09-19T21:41:12+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06.md index 1de8a81..cce3802 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06" -date: "2026-09-19T21:36:31.329738+00:00" +date: "2026-09-19T21:41:11+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07.md index 5a6733f..98086a9 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07" -date: "2026-09-19T21:36:30.329738+00:00" +date: "2026-09-19T21:41:10+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08.md index 7ab2975..056875f 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08" -date: "2026-09-19T21:36:29.329738+00:00" +date: "2026-09-19T21:41:09+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09.md index 1be1dcb..f7ef4f0 100644 --- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09.md +++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09" -date: "2026-09-19T21:36:28.329738+00:00" +date: "2026-09-19T21:41:08+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-00.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-00.md index c089804..78e5e07 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-00.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-00.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f" -date: "2026-09-19T21:41:30.995462+00:00" +date: "2026-09-19T21:41:30+00:00" categories: art anchor: "Paris & Lille" --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01.md index 0fb6654..739c252 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01" -date: "2026-09-19T21:41:29.995462+00:00" +date: "2026-09-19T21:41:29+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02.md index 407556c..4cdc3f2 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02" -date: "2026-09-19T21:41:28.995462+00:00" +date: "2026-09-19T21:41:28+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03.md index 6fa2727..69ca005 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03" -date: "2026-09-19T21:41:27.995462+00:00" +date: "2026-09-19T21:41:27+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04.md index 862df26..011b47f 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04" -date: "2026-09-19T21:41:26.995462+00:00" +date: "2026-09-19T21:41:26+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05.md index 15959ab..d1bf4fd 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05" -date: "2026-09-19T21:41:25.995462+00:00" +date: "2026-09-19T21:41:25+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06.md index 8849f12..d6db15b 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06" -date: "2026-09-19T21:41:24.995462+00:00" +date: "2026-09-19T21:41:24+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07.md index b715a96..dac5c35 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07" -date: "2026-09-19T21:41:23.995462+00:00" +date: "2026-09-19T21:41:23+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08.md index d39431f..cad18a4 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08" -date: "2026-09-19T21:41:22.995462+00:00" +date: "2026-09-19T21:41:22+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09.md index 6fef73f..7c8de84 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09" -date: "2026-09-19T21:41:21.995462+00:00" +date: "2026-09-19T21:41:21+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10.md index 2cb6286..02142f0 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10" -date: "2026-09-19T21:41:20.995462+00:00" +date: "2026-09-19T21:41:20+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11.md index ae5a6c2..0dbd1fb 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11" -date: "2026-09-19T21:41:19.995462+00:00" +date: "2026-09-19T21:41:19+00:00" categories: art --- diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12.md index b791cc1..437b2b8 100644 --- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12.md +++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12.md @@ -1,7 +1,7 @@ --- layout: post title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12" -date: "2026-09-19T21:41:18.995462+00:00" +date: "2026-09-19T21:41:18+00:00" categories: art --- diff --git a/scripts/organize-photo-highlights.py b/scripts/organize-photo-highlights.py index 40b6d88..249548a 100644 --- a/scripts/organize-photo-highlights.py +++ b/scripts/organize-photo-highlights.py @@ -110,6 +110,17 @@ collection_groups = [ ), ] +paris = "85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e" +paris_lille = "e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f" +uploaded_highlight_groups = [ + ( + "Paris & Lille", + datetime(2026, 9, 19, 21, 41, 30, tzinfo=timezone.utc), + [(paris_lille, index) for index in range(13)] + + [(paris, index) for index in range(10)], + ), +] + anchors = {armenia[0]: "Armenia", romania[0]: "Romania"} captions = {(OLD[2], 7): "Transmission of Flesh by Erfan Ashourioun"} first_for_job = {} @@ -159,4 +170,21 @@ for folder, group_start, anchor, filenames in collection_groups: json.dumps(anchor) + "\n", 1) path.write_text(content) +for anchor, group_start, photos in uploaded_highlight_groups: + for position, (job, index) in enumerate(photos): + path = ART / f"2026-09-19-photo-{job}-{index:02}.md" + 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) + elif index == 0: + # Removing this batch's old highlight must not remove its published + # receipt target from the rendered gallery. + content = content.replace("---\n\n", f'---\n\n
\n\n', 1) + path.write_text(content) + print("Organized all configured photo highlights into contiguous groups") diff --git a/scripts/tests/test_photo_highlights.py b/scripts/tests/test_photo_highlights.py index 8cd1880..e2ef650 100644 --- a/scripts/tests/test_photo_highlights.py +++ b/scripts/tests/test_photo_highlights.py @@ -65,6 +65,8 @@ COLLECTIONS = [ "Belfast_000512350018.jpg", ]), ] +PARIS = "85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e" +PARIS_LILLE = "e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f" class PhotoHighlightTests(unittest.TestCase): @@ -106,6 +108,24 @@ class PhotoHighlightTests(unittest.TestCase): self.assertEqual([filename for _, filename in records], filenames) self.assertEqual(len({date for date, _ in records}), len(filenames)) + def test_paris_and_lille_is_one_contiguous_highlight(self): + records = [] + anchors = [] + for job, count in ((PARIS_LILLE, 13), (PARIS, 10)): + for index in range(count): + path = ART / f"2026-09-19-photo-{job}-{index:02}.md" + content = path.read_text() + date = re.search(r'^date: "([^"]+)"', content, re.MULTILINE) + records.append((datetime.fromisoformat(date.group(1)), job, index)) + anchors.extend(re.findall(r'^anchor: "([^"]+)"', content, re.MULTILINE)) + records.sort(reverse=True) + self.assertEqual([(job, index) for _, job, index in records], + [(PARIS_LILLE, index) for index in range(13)] + + [(PARIS, index) for index in range(10)]) + self.assertEqual(anchors, ["Paris & Lille"]) + former_paris = (ART / f"2026-09-19-photo-{PARIS}-00.md").read_text() + self.assertIn(f'
', former_paris) + if __name__ == "__main__": unittest.main()