Giter VIP home page Giter VIP logo

vklml's Introduction

vklml (ex. vkMessageActionLogger)

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

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

  • Формирование отчётов об изменении сообщений.
  • Конфигурация с помощью конфиг-файла.
  • Поиск удалённых фотографий по таймеру во всех сообщениях, в том числе в пересланных (по умолчанию - раз в сутки).
  • Встроенный веб-сервер, формирующий каталог отчётов и отдающий их, с возможностью входа по логину и паролю (можно запускать как в составе бота, так и 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, измените стандартный пароль перед использованием.

Помимо прямого назначения, бота можно использовать для выполнения своих действий в ответ на события:

  1. Измените значение false на true ключа customActions в config.json.
  2. Добавьте свои обработчики действий в файле 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, он будет автоматически обновлён, если в новой версии список поддерживаемых настроек отличается.

vklml's People

Contributors

yukkerike avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

sergei270106

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.