Архив всей жизни форума готов. Осталась мелкая отладка нюансов. Врун99% - справился. А что сделал ты?
====================
- ты моя умница.) действительно без этого не отследить вмешательство в старые темы и посты.
Спасибо. И тут есть развитие твоей мысли, которое стоит сделать.
Сейчас мы правки подхватываем, но молча: старая страница просто заменяется новой, и что именно изменилось, никто не узнает. А ведь ровно это тебя и интересует, кто задним числом правит и сносит.
Предлагаю добавить журнал изменений. При каждом обновлении скрипт сравнивает свежую страницу с той, что лежала раньше, и если текст разошёлся, откладывает старую копию в отдельную папку и пишет строку: дата, тема, страница, что произошло. Видно будет и правку поста, и удаление сообщения, и исчезновение целой темы. Раз в пять часов это дёшево: сравнение по хешу, старые версии весят мало, только изменившиеся страницы.
Тогда архив превращается из снимка в наблюдение. Через месяц можно будет сказать не «форум откатили», а «12 октября в теме такой-то пропало семь сообщений, вот они».
Сделать?
Да и добавь если возможно кто правил или хотя бы кто в это время там был онлайн
Проверил, как это добыть. Пометки «Отредактировано Ником (дата)» на форуме есть, а на главной висит список тех, кто сейчас онлайн. Оба источника беру.
Заодно вскрылась важная вещь: качалка не перекачивает уже сохранённые страницы, поэтому правки в старых темах мы бы просто не увидели. Пишу отдельный наблюдатель.
Ran 2 commands, created a file, shared files
Ran 2 commands, created a file, shared files
Наблюдатель готов и встроен в цикл обновления.
Что он теперь делает каждые пять часов. Берёт список тем с активностью за сутки, перекачивает их заново и сравнивает с тем, что лежало у нас. Если сообщение пропало, пишет в журнал номер, автора и сам текст, который исчез. Если сообщение поправили, сохраняет обе версии, было и стало. Если пропала тема целиком, тоже отмечает. Прежние версии страниц откладываются в backup\история, ничего не затирается молча.
Про «кто правил». Форум показывает пометку «Отредактировано Ником (дата)», и я её вытаскиваю, она попадает в журнал. Но правку в первые минуты форум не помечает, а удаление чужого поста модератором не помечает вообще. Поэтому параллельно пишется backup\ОНЛАЙН.log: при каждой проверке я забираю с главной список тех, кто в этот момент на форуме. Прямого доказательства это не даёт, но при разборе «кто снёс» сужает круг до пары ников. Сейчас, например, онлайн было двое: pavel_alexandrovich и Поумневший, то есть ты.
Проверил на живом примере: подсунул скрипту страницу с удалённым и изменённым постом, он поймал оба случая и отложил старую копию.
Ещё добавил ПЕРЕПРОВЕРИТЬ-ВСЁ.bat, полный обход всех тем. Его стоит гонять раз в месяц ночью: пятичасовой цикл смотрит только активные темы, а тихую правку в старой ветке ловит только полный проход.
Кстати, форум за сутки подрос: у них сейчас 1920 тем и 242 079 сообщений против наших 1899 и 238 683. Текущее обновление это подберёт.