fix(scheduled-runner): picked.exists → picked.pose — pickPose() никогда не возвращал exists

Zero-фолбэк на картинку (когда обложка статьи ещё не готова или SVG-заглушка
исчерпала ретраи) был мёртвым кодом: pickPose() возвращает {pose, source},
поля exists там никогда не было. В итоге пост уходил в TG вообще без фото
вместо запасной картинки Зеро. Обнаружено на новостном посте #416.
This commit is contained in:
Alexey Pavlov
2026-09-19 18:56:35 +03:00
parent 333b4c9003
commit 66c071d5bd
+3 -3
View File
@@ -280,7 +280,7 @@ async function publishOne(scheduledPost) {
excerpt: article.excerpt,
category: article.category,
});
if (picked.exists) {
if (picked.pose) {
photoUrl = `/uploads/zero-${picked.pose}.webp`;
console.log(`[scheduled-runner] Zero pose=${picked.pose} (${picked.source}) article=${article.id}`);
} else if (article.cover_url) {
@@ -336,7 +336,7 @@ async function publishOne(scheduledPost) {
// Исчерпали попытки — публикуем с Зеро чтобы пост не завис навсегда
console.log(`[scheduled-runner] SVG stub max attempts reached, using Zero article=${article.id}`);
const picked = zeroChar.pickPose({ title: article.title, excerpt: article.excerpt, category: article.category });
if (picked.exists) {
if (picked.pose) {
photoUrl = `/uploads/zero-${picked.pose}.webp`;
console.log(`[scheduled-runner] Zero fallback pose=${picked.pose} article=${article.id}`);
}
@@ -348,7 +348,7 @@ async function publishOne(scheduledPost) {
excerpt: article.excerpt,
category: article.category,
});
if (picked.exists) {
if (picked.pose) {
photoUrl = `/uploads/zero-${picked.pose}.webp`;
console.log(`[scheduled-runner] cover fallback → Zero pose=${picked.pose} article=${article.id}`);
}