Перехват удаленных/измененных сообщений вконтакте
Особенности/фичи:
- Формирование отчётов об изменении сообщений.
- Конфигурация с помощью конфиг-файла.
- Поиск удалённых фотографий по таймеру во всех сообщениях, в том числе в пересланных (по умолчанию - раз в сутки).
- Встроенный веб-сервер, формирующий каталог отчётов и отдающий их, с возможностью входа по логину и паролю (можно запускать как в составе бота, так и gunicorn'ом).
- При использовании другого веб-сервера для раздачи статических страниц отчёта, можно запускать генератор списка отчётов по расписанию, либо включить его запуск самим ботом в конфиге.
- Возможность дописывать свои обработчики событий (можно отключить основной функционал бота по записи сообщений в базу и использовать его только для выполнения своих обработчиков).
python 3.4 или новее
git clone https://github.com/yukkerike/vklml.git
cd vklml
pip3 install -r requirements.txt
Либо скачайте всё в архиве и распакуйте (Clone or download > Download ZIP).
Зависимости лучше устанавливать от имени администратора. В случае с windows стоит писать не pip3, а py -m pip, и не python3, а py.
Укажите токен в config.json и запустите скрипт:
python3 main.py
Либо передайте токен в качестве аргумента к скрипту, он будет помещен в конфиг:
python3 main.py ACCESS_TOKEN
Получить токен можно тут: https://oauth.vk.com/authorize?client_id=2685278&scope=69632&redirect_uri=https://oauth.vk.com/blank.html&display=page&response_type=token&revoke=1
-
Если вы хотите включить предзагрузку сообщений, полученных до запуска программы, измените значение ключа preloadMessages на true.
-
Если вы хотите, чтобы к файлам отчёта генерировался index.html с ссылками на отчёты по дням за текущий месяц (излишне в случае использования встроенного веб-сервера), добавьте правило для запуска updateIndex.py раз в месяц в crontab, либо измените значение false на true ключа createIndex в config.json.
-
Когда вы захотите обновить кэш названий чатов, запустите updateNames.py.
-
Если вы не хотите использовать встроенный веб-сервер, flask можно не устанавливать.
-
Если хотите использовать встроенный веб-сервер, измените значение ключа enableFlaskWebServer на true. Использование простой http аутентификации настраивается ключом useAuth, список пользователей представлен словарём в ключе users, измените стандартный пароль перед использованием.
Помимо прямого назначения, бота можно использовать для выполнения своих действий в ответ на события:
- Измените значение false на true ключа customActions в config.json.
- Добавьте свои обработчики действий в файле customActions.py.
Либо использовать исключительно для выполнения своих действий, отключив запись удалений/изменений сообщений переведением ключа disableMessagesLogging в true.
В папке autostart приложены примеры сервисов для автозапуска программы, в них требуется подкорректировать пути до main.py.
- SysV init – vkCacheBot -> /etc/init.d
- systemd– vkCacheBot.service -> /lib/systemd/system (~/.local/share/systemd/user/ для запуска от имени пользователя)
- Windows – vkCacheBot.vbs -> C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
Сверьте, не изменился ли список зависимостей в requirements.txt. Если нужно, установите их. Замените файлы новыми версиями. Допустимо сохранить свой config.json, он будет автоматически обновлён, если в новой версии список поддерживаемых настроек отличается.