Автоматически удалять комментарии оставленные НЕ подписчиков группы?
Модуль, который проверяет каждый оставленный комментарий в первых 10 и 50-100 постах на предмет того, оставлен ли он участником группы. Логика действий простая: получить все комментарии с айди (словарь вида: айди_коммента, айди_автора, время_коммента) авторов каждого комментария, проверить есть ли айди автора комментария в списке участников группы, если нет – составить список значений из списка словарей выше, далее запустить луп, в котором удалять каждый комментарий ил списка словарей комментариев, которые оставлены не участниками группы.
Данная логика не рассматривает использование vk_execute, но в моем модуле он используется. Возможно, я расскажу именно о vk_script когда-нибудь позднее, когда закончу разработку всех мыслимых модулей, которые запланировал внедрить.
На основе: http://www.trianglesis.org.ua/vk-execute-args-python-requests
Последнее время работаю над системой, которая выполняет рутинное удаление всех комментариев, которые оставляют профили, не являющиеся подписчиками.
На 90% это всегда спам, вбросы, политота и прочая непристояная пахабень. Удалить коммент и забанить не всегда успеваешь, часто боты успевают засрать какой-то пост политотой так, что там уже просто ад творится. Для того, чтобы больше не думать о том, как вычислить ботов и забанить их, я просто удаляю все, что они пишут.
До недавнего времени это работало только на те профайлы, которые не подписались на группу, но недавно дописал модуль “Молчанка” – по сути просто одна таблица MySQL и простой скриптец, который добавляет, убирает, показывает всех кто в базе.
На основе: http://www.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://www.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 сек
В планах сделать такую штуку, когда подписчики сами в специальной теме указывают профайл того, кому следует дать “молчанку” ну или соответственно убрать её.