An open API service indexing awesome lists of open source software.

https://github.com/yukkerike/vklml

Перехват удаленных/измененных сообщений
https://github.com/yukkerike/vklml

backup bot-framework flask-app logging messages-backup python3 vk vkapi vkontakte webui

Last synced: about 1 year ago
JSON representation

Перехват удаленных/измененных сообщений

Awesome Lists containing this project

README

          

# vklml (ex. vkMessageActionLogger)

Перехват удаленных/измененных сообщений вконтакте

Особенности/фичи:

* Формирование отчётов об изменении сообщений.
* Конфигурация с помощью конфиг-файла.
* Поиск удалённых фотографий по таймеру во всех сообщениях, в том числе в пересланных (по умолчанию - раз в сутки).
* Встроенный веб-сервер, формирующий каталог отчётов и отдающий их, с возможностью входа по логину и паролю (можно запускать как в составе бота, так и gunicorn'ом).
* При использовании другого веб-сервера для раздачи статических страниц отчёта, можно запускать генератор списка отчётов по расписанию, либо включить его запуск самим ботом в конфиге.
* Возможность дописывать свои обработчики событий (можно отключить основной функционал бота по записи сообщений в базу и использовать его только для выполнения своих обработчиков).

## Начало

**[python 3.4](https://python.org/) или новее**

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

Получить токен можно тут:

## Советы по настройке

- Если вы хотите включить предзагрузку сообщений, полученных до запуска программы, измените значение ключа __preloadMessages__ на __true__.

- Если вы хотите, чтобы к файлам отчёта генерировался index.html с ссылками на отчёты по дням за текущий месяц (__излишне в случае использования встроенного веб-сервера__), добавьте правило для запуска __updateIndex.py__ раз в месяц в crontab, либо измените значение __false__ на __true__ ключа __createIndex__ в __config.json__.

- Когда вы захотите обновить кэш названий чатов, запустите __updateNames.py__.

- Если вы не хотите использовать встроенный веб-сервер, flask можно не устанавливать.

- Если хотите использовать встроенный веб-сервер, измените значение ключа __enableFlaskWebServer__ на __true__. Использование простой http аутентификации настраивается ключом __useAuth__, список пользователей представлен словарём в ключе __users__, измените стандартный пароль перед использованием.

> Помимо прямого назначения, бота можно использовать для выполнения своих действий в ответ на события:
>
> 1. Измените значение __false__ на __true__ ключа __customActions__ в __config.json__.
> 1. Добавьте свои обработчики действий в файле __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__, он будет автоматически обновлён, если в новой версии список поддерживаемых настроек отличается.