feat: автоматизация сборки и поддержка бессрочных токенов
- Исправлена ошибка ImportError: QtWebEngineCore путем перехода на PyInstaller. - Добавлен скрипт build.py для автоматической сборки, очистки DLL и создания ZIP-архива. - Реализована поддержка бессрочного доступа (offline_access) для VK Access Token. - Обновлен README.md: добавлены разделы для разработчиков и описание структуры данных. - Оптимизирован размер билда за счет удаления неиспользуемых библиотек Qt и папок локализации.
This commit is contained in:
130
README.md
130
README.md
@@ -1,37 +1,42 @@
|
||||
# Anabasis VK Chat Manager
|
||||
# 🚀 Anabasis VK Chat Manager
|
||||
|
||||
## Описание проекта
|
||||
**Anabasis VK Chat Manager** — специализированное десктопное приложение для HR-менеджеров и администраторов сообществ, предназначенное для автоматизации управления участниками в чатах ВКонтакте. Избавьтесь от рутины и управляйте всеми беседами из одного удобного интерфейса.
|
||||
|
||||
**Anabasis VK Chat Manager** — это десктопное приложение на Python с графическим интерфейсом, разработанное для упрощения управления пользователями в чатах ВКонтакте. Оно позволяет авторизоваться через VK OAuth, просматривать список своих чатов, а также исключать или приглашать пользователей в выбранные чаты.
|
||||
---
|
||||
|
||||
Приложение спроектировано для минимизации ручных операций и повышения удобства управления групповыми беседами VK.
|
||||
## ✨ Основные возможности
|
||||
|
||||
## Возможности
|
||||
* **🔐 Безопасная авторизация:** Вход через официальный VK OAuth во встроенном защищенном браузере.
|
||||
* **💾 Умное сохранение сессий:** Поддержка Persistent Cookies — не нужно вводить пароль при каждом запуске.
|
||||
* **⏳ Таймер токена:** Наглядное отображение времени действия сессии прямо в интерфейсе.
|
||||
* **📊 Массовые операции:**
|
||||
* Моментальная загрузка всех доступных чатов пользователя.
|
||||
* Групповой выбор чатов («Выбрать все» / «Снять выбор»).
|
||||
* Быстрое обновление списка бесед.
|
||||
* **👤 Интеллектуальный поиск ID:** Автоматическое распознавание ID пользователя из ссылок любого формата (например, `vk.com/id123`, `vk.com/durov` или просто `durov`).
|
||||
* **🛠 Управление в один клик:** Кнопки для мгновенного исключения или приглашения пользователя во все выбранные чаты одновременно.
|
||||
* **🛡 Стабильность:** Улучшенная обработка ошибок VK API и автоматическая реакция на смену IP-адреса.
|
||||
|
||||
* **Авторизация через VK OAuth:** Безопасный процесс входа через официальный VK API.
|
||||
* **Сохранение сессии:** Поддержка сохранения куки-файлов браузера для длительной авторизации в `QWebEngineView`.
|
||||
* **Управление токенами:** Автоматическое сохранение и загрузка VK Access Token для удобства использования.
|
||||
* **Список чатов:** Загрузка и отображение списка доступных чатов пользователя.
|
||||
* **Выбор чатов:** Возможность выбора одного или нескольких чатов для выполнения операций.
|
||||
* **Автоматическое определение ID пользователя:** Получение ID пользователя VK из различных форматов ссылок (например, `vk.com/id123`, `vk.com/durov`).
|
||||
* **Исключение пользователей:** Удаление пользователя из выбранных чатов.
|
||||
* **Приглашение пользователей:** Добавление пользователя в выбранные чаты.
|
||||
* **Визуальный таймер токена:** Отображение оставшегося времени действия Access Token.
|
||||
* **Информативные сообщения:** Детальные статусы операций и сообщения об ошибках.
|
||||
* **Обработка ошибок:** Улучшенная обработка ошибок VK API, включая смену IP-адреса.
|
||||
---
|
||||
|
||||
## Установка
|
||||
## 📦 Установка и запуск
|
||||
|
||||
### Готовый билд
|
||||
### Вариант 1: Готовый билд (Windows)
|
||||
1. Перейдите в раздел **Releases** на GitHub.
|
||||
2. Скачайте архив формата `AnabasisManager-1.x.zip`.
|
||||
3. Распакуйте архив в удобную папку.
|
||||
4. Запустите файл **AnabasisManager.exe**.
|
||||
|
||||
Скачайте последнюю доступную версию из релизов и распакуйте архив
|
||||
### Вариант 2: Запуск из исходного кода
|
||||
Вам потребуется **Python 3.10** или выше.
|
||||
|
||||
### Ручная установка
|
||||
Для запуска приложения вам потребуется Python 3 и библиотеки `PySide6` и `vk_api`.
|
||||
1. **Клонируйте репозиторий:**
|
||||
```bash
|
||||
git clone [https://github.com/your-username/AnabasisVKChatManager.git](https://github.com/your-username/AnabasisVKChatManager.git)
|
||||
cd AnabasisVKChatManager
|
||||
```
|
||||
|
||||
1. **Клонируйте репозиторий**
|
||||
|
||||
2. **Создайте и активируйте виртуальное окружение (рекомендуется):**
|
||||
2. **Настройте виртуальное окружение:**
|
||||
```bash
|
||||
python -m venv venv
|
||||
# Для Windows:
|
||||
@@ -45,50 +50,55 @@
|
||||
pip install PySide6 vk_api
|
||||
```
|
||||
|
||||
## Использование
|
||||
4. **Запустите приложение:**
|
||||
```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
1. **Запустите приложение:**
|
||||
* *Готовый билд:*
|
||||
* Запустите **AnabasisHRChatManager.exe**
|
||||
* *Ручная установка:*
|
||||
* ```bash
|
||||
python main.py
|
||||
```
|
||||
|
||||
2. **Авторизация:**
|
||||
* Нажмите кнопку "Авторизоваться через VK".
|
||||
* В открывшемся окне браузера войдите в свой аккаунт ВКонтакте.
|
||||
* Разрешите доступ приложению, если потребуется.
|
||||
* После успешной авторизации окно закроется, и токен доступа будет сохранен.
|
||||
---
|
||||
|
||||
3. **Выбор чатов:**
|
||||
* После авторизации приложение автоматически загрузит список ваших чатов.
|
||||
* Отметьте галочками те чаты, с которыми хотите работать. Используйте кнопки "Выбрать все" / "Снять выбор со всех" для удобства.
|
||||
* Кнопка "Обновить чаты" позволяет перезагрузить список чатов.
|
||||
## 🕹 Инструкция по использованию
|
||||
|
||||
4. **Управление пользователями:**
|
||||
* В поле "Введите или вставьте ссылку на страницу VK" вставьте ссылку на страницу пользователя ВКонтакте (например, `vk.com/id123` или `vk.com/durov`). Приложение автоматически определит ID пользователя.
|
||||
* Нажмите кнопку "ИСКЛЮЧИТЬ ПОЛЬЗОВАТЕЛЯ" для удаления пользователя из выбранных чатов.
|
||||
* Нажмите кнопку "ПРИГЛАСИТЬ ПОЛЬЗОВАТЕЛЯ" для добавления пользователя в выбранные чаты.
|
||||
* Опция "Показать 250 последних сообщений при добавлении" позволяет управлять видимостью истории сообщений для нового участника (Примечание: VK API может игнорировать этот параметр для `messages.addChatUser`).
|
||||
1. **Вход:** Нажмите кнопку «Авторизоваться через VK». Введите данные в открывшемся окне браузера.
|
||||
2. **Выбор целей:** Отметьте галочками чаты, в которых нужно произвести изменения.
|
||||
3. **Данные пользователя:** Вставьте ссылку на профиль VK человека, которого нужно добавить или удалить.
|
||||
4. **Действие:** Нажмите кнопку нужной операции. Следите за прогрессом в окне системных сообщений.
|
||||
|
||||
## Структура данных и конфигурация
|
||||
---
|
||||
|
||||
Приложение хранит данные в директории, специфичной для данных приложения, что соответствует рекомендациям операционных систем.
|
||||
## 📂 Техническая информация
|
||||
|
||||
* **`token.json`**: Файл для сохранения VK Access Token. Находится в `[AppDataLocation]/AnabasisVKChatManager/token.json`.
|
||||
* **`web_engine_cache/`**: Директория для хранения куки-файлов и кэша `QWebEngineProfile`, обеспечивающая сохранение сессии внутри встроенного браузера. Находится в `[AppDataLocation]/AnabasisVKChatManager/web_engine_cache/`.
|
||||
### Сборка проекта (для разработчиков)
|
||||
Проект использует кастомный скрипт автоматизации `build.py`, который оптимизирует зависимости `PySide6` и корректно упаковывает `QtWebEngineCore`.
|
||||
|
||||
`[AppDataLocation]` соответствует:
|
||||
* Windows: `%APPDATA%` (например, `C:\Users\YourUser\AppData\Roaming`)
|
||||
* macOS: `~/Library/Application Support`
|
||||
* Linux: `~/.local/share`
|
||||
**Команда для сборки:**
|
||||
```bash
|
||||
python build.py
|
||||
```
|
||||
|
||||
## Известные проблемы / Ограничения
|
||||
Скрипт автоматически:
|
||||
|
||||
* Параметр `visible_messages_count` для `messages.addChatUser` может быть проигнорирован VK API согласно официальной документации. Приложение уведомит вас об этом при попытке использования.
|
||||
* При смене IP-адреса, токен авторизации VK может стать недействительным, потребуется повторная авторизация. Приложение автоматически предложит её.
|
||||
Собирает .exe через PyInstaller с использованием --collect-all для модулей WebEngine.
|
||||
|
||||
## Лицензия
|
||||
Удаляет лишние библиотеки (PDF, Multimedia, Designer) и папки переводов, сокращая размер сборки на ~100 МБ.
|
||||
|
||||
Этот проект распространяется под лицензией MIT.
|
||||
Создает готовый ZIP-архив с актуальной версией в названии.
|
||||
|
||||
Хранение данных
|
||||
|
||||
Приложение использует системные папки AppData для изоляции пользовательских данных:
|
||||
|
||||
Windows: %APPDATA%/AnabasisVKChatManager
|
||||
|
||||
macOS: ~/Library/Application Support/AnabasisVKChatManager
|
||||
|
||||
В этих папках хранятся token.json (доступ к API) и web_engine_cache/ (сессия браузера).
|
||||
|
||||
---
|
||||
|
||||
## 📜 Лицензия
|
||||
|
||||
---
|
||||
Проект распространяется под лицензией MIT.
|
||||
|
||||
Сэкономьте часы ручного труда с Anabasis VK Chat Manager.
|
||||
Reference in New Issue
Block a user