Авто удаление комментариев Вконтакте

Автоматически удалять комментарии оставленные НЕ подписчиков группы?

Модуль, который проверяет каждый оставленный комментарий в первых 10 и 50-100 постах на предмет того, оставлен ли он участником группы. Логика действий простая: получить все комментарии с айди (словарь вида: айди_коммента, айди_автора, время_коммента) авторов каждого комментария, проверить есть ли айди автора комментария в списке участников группы, если нет — составить список значений из списка словарей выше, далее запустить луп, в котором удалять каждый комментарий ил списка словарей комментариев, которые оставлены не участниками группы.

Данная логика не рассматривает использование vk_execute, но в моем модуле он используется. Возможно, я расскажу именно о vk_script когда-нибудь позднее, когда закончу разработку всех мыслимых модулей, которые запланировал внедрить.

На основе: http://trianglesis.org.ua/vk-execute-args-python-requests

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

На 90% это всегда спам, вбросы, политота и прочая непристояная пахабень. Удалить коммент и забанить не всегда успеваешь, часто боты успевают засрать какой-то пост политотой так, что там уже просто ад творится. Для того, чтобы больше не думать о том, как вычислить ботов и забанить их, я просто удаляю все, что они пишут.

До недавнего времени это работало только на те профайлы, которые не подписались на группу, но недавно дописал модуль «Молчанка» — по сути просто одна таблица MySQL и простой скриптец, который добавляет, убирает, показывает всех кто в базе.

На основе: http://trianglesis.org.ua/python-run-external-command-and-get-output-on-screen-or-in-variable

Типа:

[root@test ~]# /var/www/python-lab/vkontakte_tools/comments_delete/manage_silence.py add 8967352
[root@test ~]# /var/www/python-lab/vkontakte_tools/comments_delete/manage_silence.py del 8967352
[root@test ~]# /var/www/python-lab/vkontakte_tools/comments_delete/manage_silence.py all 
(('1098670',), ('176154615',), ('241259442',), ('241867001',), ('328160811',), ('333030006',), ('340739828',), ('372058606',), ('55031730',), ('60508149',), ('60605003',), ('71125282',), ('8967352',))

И ведет лог, типа:

1 21-07-2016 - 17:29:14 30_sec_bot -> ===========================================================================================
    692 21-07-2016 - 19:03:58 5_min_bot -> ERROR!!! : Connection ERROR while isMember!
    693 21-07-2016 - 19:19:17 5_min_bot -> Will delete comment from silenced user: 176154615
    694 21-07-2016 - 19:19:17 5_min_bot -> Will delete comment from silenced user: 176154615
    695 21-07-2016 - 19:19:17 5_min_bot -> Bot will delete those comments:                           2
    696 21-07-2016 - 19:19:17 5_min_bot -> Bot is finishing this iteration! Time spent:       6.973768949508667
    697 21-07-2016 - 19:19:17 5_min_bot -> ===========================================================================================
    698 21-07-2016 - 19:24:25 5_min_bot -> Will delete comment from silenced user: 176154615
    699 21-07-2016 - 19:24:25 5_min_bot -> Will delete comment from silenced user: 176154615
    700 21-07-2016 - 19:24:25 5_min_bot -> Bot will delete those comments:                           2
    701 21-07-2016 - 19:24:25 5_min_bot -> Bot is finishing this iteration! Time spent:       6.872513771057129
    702 21-07-2016 - 19:24:25 5_min_bot -> ===========================================================================================
    703 21-07-2016 - 19:44:46 30_sec_bot -> Will delete comment from silenced user: 55031730
    704 21-07-2016 - 19:44:46 30_sec_bot -> Will delete comment from silenced user: 55031730
    705 21-07-2016 - 19:44:46 30_sec_bot -> Will delete comment from silenced user: 55031730
    706 21-07-2016 - 19:44:46 30_sec_bot -> Will delete comment from silenced user: 55031730
    707 21-07-2016 - 19:44:46 30_sec_bot -> Bot will delete those comments:                           4
    708 21-07-2016 - 19:44:46 30_sec_bot -> Bot is finishing this iteration! Time spent:       0.9948654174804688

А еще это все реализовано как служба:

На основе: http://trianglesis.org.ua/python-script-as-centos-service

[root@test ~]# service comments_delete status
Usage: /etc/init.d/tornado-tts {start|stop|restart}
[root@test ~]# service comments_delete restart
1008
Server killed.
Server started.

Код выполняется в промежутки:

  • раз в 30 сек (иногда меняю от 10 до 60)
  • раз в 300 сек

В планах сделать такую штуку, когда подписчики сами в специальной теме указывают профайл того, кому следует дать «молчанку» ну или соответственно убрать её.

 

trianglesis

Об авторе trianglesis

Александр Брюндтзвельт - гений, филантроп, 100 гривен в кармане. Этот блог - "сток" моих мыслей и заметок. Достаточно одного взгляда на него, чтобы понять, что такой же бардак творится у меня в голове. Если вам этот бардак интересен - милости прошу.
Закладка Постоянная ссылка.