import os
msgs = os.listdir('msg')
for h in msgs:
if os.path.getsize('msg/%s' % h) == 0:
os.remove('msg/%s' % h)
msgs.remove(h)
echoes = os.listdir('echo')
for ea in echoes:
passed = []
echo = open('echo/%s' % ea).read().splitlines()
for h in echo:
if h in msgs:
msgs.remove(h)
passed.append(h)
if passed != echo:
passed = passed + [''] or []
open('echo/%s' % ea,'w').write('\n'.join(passed))
for h in msgs:
os.remove('msg/%s' % h)
ребилдит базу - удаляет левые записи и дубли, удаляет сообщения, которых нет ни в одной эхе (в файле эх, если просто отписались от эхи, ничего не удалится), удаляет сообщения с размером 0, которые у меня откуда-то плодятся...
использовать с осторожностью! сначала чекером прогнать с записью в лог. затем заархивировать базу. и только потом запускать фиксер!
но по хорошему, кто-то, кто php языки говорит, нужно, чтобы переписал php-ноду. точнее, тот момент, где оно записывает сообщение в базу - чтобы левое сообщение там не могло пройти, только то, что стандарт прописал :)