Автоматизация кросс-постинга: боремся с трудностями API Facebook | 2026-05-23T14:28:22

Доделал в лучшем виде кросс-постинг из фейсбука на два моих сайта-блога [на которые почти никто не заходит] — beinginamerica точка com и raufaliev точка com. При публикации нового поста в фейсбуке по расписанию стартует механизм перевода поста на английский, разбор приложенных картинок, генерация описаний к ним, создание заголовка на основе текста поста и описания картинок, создание тегов на их же основе, запись поста в turso db — это облачная база, бесплатная до определенных лимитов, создание эмбеддингов через openai, запись в qdrant cloud — это тоже облачная база, но уже векторная, ну и загрузка изображений в wordpress по API, и публикация поста на английском и на русском по API.

Все бы хорошо, но из всех API самый дурацкий — у фейсбука. Во-первых, для страниц как у меня, переведенных в New Experience, нет возможности использовать почти все из этого API. Точнее, есть, но нужно долго доказывать фейсбуку, что это реально надо, показывая документы на стартап, демонстрируя приложение и т.д. Очевидно, им не хочется иметь дело с чем-то уносящим контент из их системы во вне. Кроме этого, токен, который дает доступ к последним сообщениям, относительно короткоживущий (возможно, несколько недель), и получать его заново нужно через браузер только. То есть, любая автоматика требует регулярного внимания, иначе она ломается.

Если протупил и вовремя не выгрузил последние посты через этот Facebook Graph API, они просто исчезают из списка последних и все, больше по API к ним не обратиться. Единственный способ — запросить выгрузку архива у фейсбука. Эта выгрузка тоже довольно дурацкая — там нужно много трансформаций делать и убирать лишнее. Например, в файле с постами, который я обрабатываю, там почему-то хранятся ссылки, которые я отправлял в комментариях без сопроводительного текста. А комментарии там идут в отдельном файле!

Чтобы назначить теги, пришлось решить отдельный челендж. Вот есть около 10000 постов за все время. Это большой кусок, и по нему теги построить нельзя, потому что он в контекстное окно LLM не помещается. А надо. Поэтому я делал так: скрипт берет случайные посты из 10000 в таком объеме, чтобы их суммарный размер был чуть меньше указанного лимита в токенах, и в конец этого блока добавляется промпт «сгенери мне наиболее частые теги, 30 штук» (промпт привожу упрощенно). В итоге я запустил это 10 раз и получил 10 наборов тегов по 30 штук, сгенерированных для разных срезов базы. Получилось 300 тегов, из которых конечно есть полные дубликаты, а есть синонимы и близкие по смыслу. Это все скармливается LLM, и получаем список тегов и иерархию тегов. Теперь у нас есть ограниченный набор тегов, которые максимально отражают 10000 постов. Так получилось, что за почти 20 лет на фейсбуке у меня расклад такой:

Тег Постов

==================================================

#Russia 3412

#Thoughts 3146

#Tech 3105

#Culture 2765

#Hobbies 2726

#AI 1603

#Science 1367

#Software 1358

#Travel 1298

#Learning 1138

#Society 1050

#Nature 958

#Education 915

#Business 902

#Art 894

#Programming 889

#Humor 840

#History 807

#Gadgets 750

#Moscow 713

#USA 614

#Cinema 567

#Webdev 493

#Music 476

#Sports 473

#Mindset 443

#Auto 400

#Books 386

ну и так далее. Этот список включает как теги из ограниченного списка, так и теги, которые LLM поставила материалу просто потому, что не нашла в ограниченном ничего подходящего.

Теги из ограниченного списка стали категориями на сайте. Остальные теги + эти стали просто тегами wordpress.

Поиск по картинкам. У меня было две идеи как его сделать. Первая — OpenCLIP. Это довольно просто, но требует хостинга модели где-нибудь. На своей машине легко, но каждый раз ее запускать неудобно, плюс я планировал переносить мигратор на дешевый сервер в амазон. В облачных моделях тоже нормально считать, но хоть немного за это надо платить, а это еще одна dependency. Но главное — что и без этого неплохо работает. Я с помощью OpenAI , который и так используется для перевода на английский, генерю описания к картинкам, и дальше по этим описаниям делаю embeddings с помощью large модели. Пока что все тесты на поиск проходят на ура. Особенно, когда на картинке есть текст, и большой вопрос разобрал бы ли его OpenCLIP.

В итоге:

1) вордпресс raufaliev точка com — бесплатный

2) вордпресс beinginamerica точка com — бесплатный

3) turso db где хранятся все посты — бесплатный

4) qdrant cloud где хранятся эмбеддинги — бесплатный

5) openai для перевода и описания картинок — не бесплатный, но недорогой (обработка постов за год потребовала 30 баксов).

Прикладываю два скриншота — как работает поиск по изображениям, и по текстам, а также дашборд мигратора.

Полицейская машина «не в службе»: неожиданная остановка | 2026-05-09T14:11:02

Я думал такое только на автобусах пишут, которые в депо поехали

Лисы и Юки: Встречи в золотом свете | 2026-05-09T03:10:53

Гуляем с Юки. Он очень нравится лисам. Они всегда его долго разглядывают. Видео в комментариях

Разочарование в «Project Hail Mary» | 2026-05-04T16:40:03

Сходили вчера на Project Hail Mary. Честно говоря, совсем не понравилось ни мне, ни Наде. Может, мы просто выросли из возраста, кому такие кино нравятся. Комикс-стайл. Сам инопланетянин, на мой взгляд, появился из экономии. Мне кажется, уровень начала 2000-х годов — тогда можно было бы сделать вот точно тоже самое. Тот же фильм Прибытие вспомните, где пыталить сделать что-то придумать необычное. Ну правда, это каменое уродство стоило 200М? Весь сюжет полон условностей и банальностей. За минуту они сделали так, что человек и инопланетянин начали прекрасно друг друга понимать с помощью какой-то программы, которую учитель естествознания создал за день. Мол, пусть астронавт и кусок камня сразу начинают болтать как приятели.. 5 километров железной цепи толщиной в указательный палец это где-то 10 тонн металла … это у них на корабле было столько?

Режиссеры стали успешными на поприще мультфильмов Лего-фильм и Осадки в виде фрикаделек, парой комедийных сериалов и Мачо и ботан. Я ожидал фильма в духе Интерстеллара или Марсианина, умного взрослого sci-fi, который не боится научных деталей, а получил детскую сказку с некрасивым инопланетянином.

Погуглил, оказалось, что прям до фига народу в восторге от этого, и кассу собирает.. Вероятно, люди соскучились по такому среди постиронии, сатиры, повесточек разных, Лантимоса и «Битвы за битвой». В детстве все смотрели «Полет навигатора» и «Короткое замыкание», ну вот взрослые ностальгируют по простому добру. Возможно, что это просто такой семейный фильм, для просмотра с детьми. Тогда может и норм.

ну ок, возвращаемся к просмотру второго сезона Succession. Он значительно лучше.

Как Пиноккио избежал смерти: редакционное спасение и народный выбор | 2026-05-01T16:52:59

Оказалось, что изначально Карло Коллоди, написавший «Приключения Пиноккио», не собирался превращать своего героя из деревянной куклы в настоящего мальчика. Пиноккио ожидала судьба быть повешенным Котом и Лисой на дубе — в назидание всем детям, которые врут и не слушаются старших.

Продолжить приключения Пиноккио автора убедил редактор «Детской газеты», который сказал, что иначе это станет их последней публикацией. Читатели были настолько возмущены гибелью героя, что редакцию завалили письмами с требованиями продолжения.

В итоге через несколько месяцев автор был вынужден «воскресить» куклу. Именно так в истории появилась Голубая Фея, которая спасла Пиноккио из петли, а сама мрачная притча постепенно превратилась в привычную нам сказку с хорошим финалом.

Когда Пиноккио уже висел на дубе и задыхался, в окне домика неподалеку появилась Красивая Девочка с Лазоревыми Волосами. В тот момент она описывается не как добрая фея, а скорее как привидение или дух (она говорит, что в этом доме все умерли, и она тоже ждет своего гроба).

Увидев болтающуюся на дереве куклу, она сжалилась и организовала целую спасательную команду. Фея трижды хлопнула в ладоши. Прилетел огромный Сокол. Она приказала ему лететь к Большому Дубу, перегрызть веревку клювом и аккуратно опустить Пиноккио на траву. Затем она вызвала своего слугу — пуделя по имени Медоро. Он был одет в праздничную ливрею, в треуголке и с кудрявым париком. Медоро отправили за Пиноккио на роскошной карете, запряженной сотней пар белых мышей. Когда куклу привезли в замок, она была ни жива ни мертва. Чтобы решить, что делать дальше, Фея вызвала «светил» медицины. К постели Пиноккио пришли Ворон, Сыч, и Говорящий Сверчок (тот самый, которого Пиноккио «убил» в начале книги, но он вернулся в виде духа).

Жесть.

По сути, своим счастливым концом герой обязан не милосердию автора, а коммерческому успеху и давлению публики.

Странности в окне: когда бездна засматривается в ответ | 2026-05-01T12:56:16

Нарисовалось. Изначально Юка ждал в окне дерево. Как там у Ницше, «Если ты долго смотришь в бездну, то бездна начинает смотреть на тебя»

Откровения Ильи Ремесло: между идеями и реальностью | 2026-04-27T21:37:47

Интересное интервью Ильи Ремесло у Собчак. Но если бы я был политтехнологом у Ильи, я бы предложил гораздо более стройную историю: мол, проснулся одним утром, оглянулся на прошлое, и решил починить карму, вместо того, чтобы топиться. Всё, что делал до этого утра -моя прошлая жизнь. Мы можем о ней поговорить, но, мол, для меня это закрытая страница, мне за нее стыдно, и если когда-то нибудь решат меня за нее наказать — будет справедливо, буду готов. Если же накажут за сегодняшнюю позицию — будет несправедливо, но я тоже готов. Всяко любой из вариантов лучше, чем топиться, отсюда и смелость. Такая история была бы намного более стройной, и неважно, имеет ли она что-то общее с реальностью.

Из реалистичных объяснений я для себя держу то, что чуваку совершенно реально угрожали смертью, кто-то из властьприближенных, непонятно за что, варианты могут быть самые разные, и из всех опций что делать этот имел самые лучшие шансы остаться живым, потому что если реализуют угрозу сейчас, рейтинги упадут ещё больше. Ну если посадят, то это почти госзащита от угроз.

Есть ещё одно. Возможно, что этот товарищ дал знать кому надо, что если его закрывают, какой-то очень серьёзный компромат тут же уйдёт в СМИ, но если с ним ничего не случится, то будет тишина.

Финалы без ответов: тенденция современных сериалов | 2026-04-20T13:27:41

Досмотрели сериал «Пит». Такое впечатление, что режиссеры сериалов делают всё, чтобы последняя серия не давала никаких ответов, а была похожа на обычный эпизод из середины. Во многих тв шоу на вопросы отвечают пред-предпоследние серии или предпоследние, а финальная редко радует, всегда подкидывает массу зацепок и новых вопросов, которые, вероятно, служат приглашением в следующий сезон, которого может и не быть. Или будет, но пока режиссер не знает, что там будет, и оставляет много недосказанного. Но скорее цель — пораздражать зрителей, чтобы они ринулись на реддиты и фейсбуки обсуждать увиденное. Логичный конец был только у сериала Чернобыль, кажется.

Осенние и весенние причуды Юки | 2026-04-09T14:31:01

У Юки снова включился режим «уууу» (7 апреля 2026). Обычно длится несколько дней в апреле и октябре.

Предыдущие разы были —

— 15-20 октября 2025

— 11 апреля 2025

— 1-4 апреля 2024

— 2 февраля 2023,

— 27 октября 2022,

— 15 марта 2022

Изменения в поведении в этот период такие:

1) может петь песни час напролет. Например, в шесть утра.

2) внезапно ему нравится гулять. Обычно не нравится. При том, что у него всегда открыт двор, ему нужно именно на прогулку. Может подойти к двери и стукать по ней лапой. Обычно на слово гулять он улепётывает на третий этаж.

Теперь же он в рот смотрит, когда ему что-то говоришь. Постоянно чего-то ждет, что может вдруг быть вопросом, а не хочет ли он погулять. Долбится в окно и входную дверь лапой.

И да, начинает он хотеть гулять часов в шесть утра, а в следующий раз — вскоре после возвращения с прогулки.

3) на прогулке сует нос в траву каждые пять минут, и его еле оттуда отдерешь. Обычно такое редко, а тут прям постоянно.

4) может полчаса сидеть и смотреть на закат.

5) нестабильный аппетит, временами. Кладешь ему мясо сверху корма, он на него даже не смотрит.