Кстати, а вечные баны как-то в статистике отражаются?
Сейчас статус пользователя обновляется при каждом запуске скрипта, но с некоторой вероятностью
. Скрипт проходит список топиков на странице, сверяет дату последнего обновления с датой, хранящейся в БД, и в случае расхождения сканирует топик, начиная с (кажется) предпоследней загруженной страницы. Обновляются статусы всех пользователей, чьи сообщения попадут в эту выборку. Теоретически, пользователь может оказаться забаненным достаточно поздно для того, что его статус не сможет обновиться. Но когда я все-таки допишу наконец новую версию, у меня изредка будет повторяться полное повторное сканирование форума.
P. S. Пока писал, придумал, как можно обновлять статусы пользователей, не имея доступа к списку пользователей. Проходить по списку в БД, для каждого пользователя выбирать первое попавшееся сообщение, генерировать ссылку вида "http://dxdy.ru/post123456.html#p123456", переходить по ней - и вот вам статус...