Сегодня на Ычане произошли две вещи:
- В /b/ ввели имена файлов. Я не буду распространяться здесь о моём личном мнении об имплементации. В любом случае, это не является проблемой, и у всех файлов, запощенных после нововведения, будет отображаться имя файла. Имена у файлов, запощенных до этого, не появятся, даже если на данный момент они присутствуют на Ычане. По крайней мере до того как А/д/министрация не уберёт затирание.
- На всех досках исчез префикс "Файл: " перед ссылкой на прикреплённое изображение в посте. Это серьёзная проблема, повлекшая остановку всей грабилки на пару часов, потому что в ограниченных условиях удалённого дебагинга у меня не было уверенности, что посты парсятся правильно.
Далее следует подробное описание п.2.
Проблема заключалась в том, что "Файл: " было якорным выражением, за которое зацеплялся парсер информации о файле. Соответственно, с его исчезновением парсер не мог соотнести отрывки html с тем, что он искал. Соответственно, у постов не сохранялись изображения.
17:48 MSK. Обнаружено, что данное изменение затрагивает все доски (http://ii.yakuji.moe/b/res/4737901.html#4738238), после чего вскоре была остановлена грабилка. Даже если целостность самих постов и гарантировалась (что нельзя было проверить на тот момент), было решено пренебречь возможными удалениями за два часа ради облегчения восстановления изображений.
19:09. Исправленная грабилка запущена и подхватила все живые посты после этого, вместе с картинками.
20:13. Обнаружен баг, который прекращал отрисовку /stat/ до отдачи грабилки первой команды. Из-за невнимательности, исправленная версия не была запущена вплоть до 23:18.
01:28. Посты без изображений, оставленные в период с ~14:00 по 16:09, восстановлены репарсингом постов. Если среди них затерялись посты с md5 вместо имени файла, то они сохранились в таковом формате.
01:58. Посты без изображений, оставленные в период с 16:09 по ~17:48, восстановлены репарсингом постов. Задержка в 30 минут связана с ошибочными параметрами поиска для репарсинга.
Выводы
За последние два года Ычан начал меняться, и меняться непредсказуемо. Изменение может произойти в любое время, не быть никак задокументировано, и быть крайне незаметно на глаз. В связи с этим, парсинг регулярками даёт о себе знать.
Тем не менее, я не считаю, что есть правильный ответ на этот вопрос. У нас уже есть пример изменения внутренней структуры, что не затронула грабилку, но убило нумерацию постов в треде на самом Ычане, потому что использовало XPath. От внезапных изменений не застрахован никто. Поэтому на данный момент я не буду рассматривать замену парсера, потому что не вижу, как ямогу гарантировать защиту себя от дальнейших изменений.
Внешний вид этого архива стремится в точности повторять Ычан. И он будет показывать имена файлов в /b/. С этим всё в порядке.
Тем не менее, я принял решение не убирать "Файл: " из выдачи. Не столько чтобы напомнить об этом инциженте, но потому что считаю, что оно выглядит ужасно, особенно у постов с удалёнными изображениями/тумбнейлами.