Keep legacy photo highlights contiguous
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Kazakhstan_DSC-0865.jpg
|
title: Kazakhstan_DSC-0865.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:51+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Kazakhstan_DSC-0870.jpg
|
title: Kazakhstan_DSC-0870.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:52+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: World-Nomad-Games,-Kazakhstan_DSC-0251.jpg
|
title: World-Nomad-Games,-Kazakhstan_DSC-0251.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:53+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: World-Nomad-Games,-Kazakhstan_DSC-0298.jpg
|
title: World-Nomad-Games,-Kazakhstan_DSC-0298.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:54+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: World-Nomad-Games,-Kazakhstan_DSC-0472.jpg
|
title: World-Nomad-Games,-Kazakhstan_DSC-0472.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:55+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: World-Nomad-Games,-Kazakhstan_DSC-0536.jpg
|
title: World-Nomad-Games,-Kazakhstan_DSC-0536.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:56+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: World-Nomad-Games,-Kazakhstan_DSC-0685.jpg
|
title: World-Nomad-Games,-Kazakhstan_DSC-0685.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:57+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: x_DSC-0994.jpg
|
title: x_DSC-0994.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:58+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: x_DSC-0999.jpg
|
title: x_DSC-0999.jpg
|
||||||
date: 2024-10-09
|
date: "2024-10-09T23:59:59+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
anchor: "Kazakhstan - World Nomad Games"
|
anchor: "Kazakhstan - World Nomad Games"
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Bazaar-e-Tabriz_000521270008.jpg
|
title: Bazaar-e-Tabriz_000521270008.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:40+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Bazaar-e-Tabriz_000521270009.jpg
|
title: Bazaar-e-Tabriz_000521270009.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:41+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Bazaar-e-Tabriz_000521270010.jpg
|
title: Bazaar-e-Tabriz_000521270010.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:42+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Bistoon_000521270025.jpg
|
title: Bistoon_000521270025.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:43+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Bistoon_000521270026.jpg
|
title: Bistoon_000521270026.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:44+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Bistoon_000521270027.jpg
|
title: Bistoon_000521270027.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:45+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Cowboy-from-Hamadan_000521270030.jpg
|
title: Cowboy-from-Hamadan_000521270030.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:46+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Ganjname,-Hamadan_000521270029.jpg
|
title: Ganjname,-Hamadan_000521270029.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:47+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Hamadan_000521270031.jpg
|
title: Hamadan_000521270031.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:48+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Hamadan_000521270032.jpg
|
title: Hamadan_000521270032.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:49+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Hamadan_000521270033.jpg
|
title: Hamadan_000521270033.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:50+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Hamadan_000521270034.jpg
|
title: Hamadan_000521270034.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:51+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Hamadan_000521270035.jpg
|
title: Hamadan_000521270035.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:52+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Iran_000521270021.jpg
|
title: Iran_000521270021.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:53+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Iran_000521270023.jpg
|
title: Iran_000521270023.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:54+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Tabriz_000521270012.jpg
|
title: Tabriz_000521270012.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:55+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Tabriz_000521270013.jpg
|
title: Tabriz_000521270013.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:56+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Taq-e-Bostan_000521270018.jpg
|
title: Taq-e-Bostan_000521270018.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:57+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Taq-e-Bostan_000521270019.jpg
|
title: Taq-e-Bostan_000521270019.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:58+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
layout: post
|
layout: post
|
||||||
title: Taq-e-Bostan_000521270020.jpg
|
title: Taq-e-Bostan_000521270020.jpg
|
||||||
date: 2024-10-25
|
date: "2024-10-25T23:59:59+00:00"
|
||||||
categories: art
|
categories: art
|
||||||
anchor: "Iran - Hamadan, Kermanshah, Tabriz"
|
anchor: "Iran - Hamadan, Kermanshah, Tabriz"
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
from datetime import datetime, timedelta, timezone
|
from datetime import datetime, timedelta, timezone
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
import html
|
import html
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
ART = Path("_art")
|
ART = Path("_art")
|
||||||
@@ -26,6 +28,40 @@ ungrouped = [(OLD[2], 2), (OLD[2], 3)]
|
|||||||
ordered = armenia + romania + ungrouped
|
ordered = armenia + romania + ungrouped
|
||||||
assert len(ordered) == len(set(ordered)) == 18
|
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"}
|
anchors = {armenia[0]: "Armenia", romania[0]: "Romania"}
|
||||||
captions = {(OLD[2], 7): "Transmission of Flesh by Erfan Ashourioun"}
|
captions = {(OLD[2], 7): "Transmission of Flesh by Erfan Ashourioun"}
|
||||||
first_for_job = {}
|
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 = ART / f"2026-09-19-photo-{job}-{index:02}.md"
|
||||||
target.write_text("\n".join(lines) + "\n")
|
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")
|
||||||
|
|||||||
@@ -14,6 +14,29 @@ ROMANIA = [f"/img/arts/uploads/{JOB}/{index:02}.jpg" for index in (0, 1)] + [
|
|||||||
for index in range(5)] + [
|
for index in range(5)] + [
|
||||||
"/img/arts/uploads/260cc99527c13f256d4ea39d0959f5daa942c888ea882852e73fd94f6c30b7db/00.jpg",
|
"/img/arts/uploads/260cc99527c13f256d4ea39d0959f5daa942c888ea882852e73fd94f6c30b7db/00.jpg",
|
||||||
"/img/arts/uploads/b18a2f1c7127077c801160782012cb164759f0b9dd41762205b45e4c9a07d673/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):
|
class PhotoHighlightTests(unittest.TestCase):
|
||||||
@@ -40,6 +63,19 @@ class PhotoHighlightTests(unittest.TestCase):
|
|||||||
self.assertIn('anchor: "Iran - Hamadan, Kermanshah, Tabriz"', iran)
|
self.assertIn('anchor: "Iran - Hamadan, Kermanshah, Tabriz"', iran)
|
||||||
self.assertIn('anchor: "Kazakhstan - World Nomad Games"', kazakhstan)
|
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__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|||||||
Reference in New Issue
Block a user