diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7e7f31b --- /dev/null +++ b/LICENSE @@ -0,0 +1,18 @@ +MIT License + +Copyright (c) 2025 Aleksandr Denisov + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial +portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README b/README new file mode 100644 index 0000000..fda165a --- /dev/null +++ b/README @@ -0,0 +1,94 @@ +# Anabasis VK Chat Manager + +## Описание проекта + +**Anabasis VK Chat Manager** — это десктопное приложение на Python с графическим интерфейсом, разработанное для упрощения управления пользователями в чатах ВКонтакте. Оно позволяет авторизоваться через VK OAuth, просматривать список своих чатов, а также исключать или приглашать пользователей в выбранные чаты. + +Приложение спроектировано для минимизации ручных операций и повышения удобства управления групповыми беседами VK. + +## Возможности + +* **Авторизация через VK OAuth:** Безопасный процесс входа через официальный VK API. +* **Сохранение сессии:** Поддержка сохранения куки-файлов браузера для длительной авторизации в `QWebEngineView`. +* **Управление токенами:** Автоматическое сохранение и загрузка VK Access Token для удобства использования. +* **Список чатов:** Загрузка и отображение списка доступных чатов пользователя. +* **Выбор чатов:** Возможность выбора одного или нескольких чатов для выполнения операций. +* **Автоматическое определение ID пользователя:** Получение ID пользователя VK из различных форматов ссылок (например, `vk.com/id123`, `vk.com/durov`). +* **Исключение пользователей:** Удаление пользователя из выбранных чатов. +* **Приглашение пользователей:** Добавление пользователя в выбранные чаты. +* **Визуальный таймер токена:** Отображение оставшегося времени действия Access Token. +* **Информативные сообщения:** Детальные статусы операций и сообщения об ошибках. +* **Обработка ошибок:** Улучшенная обработка ошибок VK API, включая смену IP-адреса. + +## Установка + +### Готовый билд + +Скачайте последнюю доступную версию из релизов и распакуйте архив + +### Ручная установка +Для запуска приложения вам потребуется Python 3 и библиотеки `PySide6` и `vk_api`. + +1. **Клонируйте репозиторий** + +2. **Создайте и активируйте виртуальное окружение (рекомендуется):** + ```bash + python -m venv venv + # Для Windows: + .\venv\Scripts\activate + # Для macOS/Linux: + source venv/bin/activate + ``` + +3. **Установите зависимости:** + ```bash + pip install PySide6 vk_api + ``` + +## Использование + +1. **Запустите приложение:** + * *Готовый билд:* + * Запустите **AnabasisHRChatManager.exe** + * *Ручная установка:* + * ```bash + python main.py + ``` + +2. **Авторизация:** + * Нажмите кнопку "Авторизоваться через VK". + * В открывшемся окне браузера войдите в свой аккаунт ВКонтакте. + * Разрешите доступ приложению, если потребуется. + * После успешной авторизации окно закроется, и токен доступа будет сохранен. + +3. **Выбор чатов:** + * После авторизации приложение автоматически загрузит список ваших чатов. + * Отметьте галочками те чаты, с которыми хотите работать. Используйте кнопки "Выбрать все" / "Снять выбор со всех" для удобства. + * Кнопка "Обновить чаты" позволяет перезагрузить список чатов. + +4. **Управление пользователями:** + * В поле "Введите или вставьте ссылку на страницу VK" вставьте ссылку на страницу пользователя ВКонтакте (например, `vk.com/id123` или `vk.com/durov`). Приложение автоматически определит ID пользователя. + * Нажмите кнопку "ИСКЛЮЧИТЬ ПОЛЬЗОВАТЕЛЯ" для удаления пользователя из выбранных чатов. + * Нажмите кнопку "ПРИГЛАСИТЬ ПОЛЬЗОВАТЕЛЯ" для добавления пользователя в выбранные чаты. + * Опция "Показать 250 последних сообщений при добавлении" позволяет управлять видимостью истории сообщений для нового участника (Примечание: VK API может игнорировать этот параметр для `messages.addChatUser`). + +## Структура данных и конфигурация + +Приложение хранит данные в директории, специфичной для данных приложения, что соответствует рекомендациям операционных систем. + +* **`token.json`**: Файл для сохранения VK Access Token. Находится в `[AppDataLocation]/AnabasisVKChatManager/token.json`. +* **`web_engine_cache/`**: Директория для хранения куки-файлов и кэша `QWebEngineProfile`, обеспечивающая сохранение сессии внутри встроенного браузера. Находится в `[AppDataLocation]/AnabasisVKChatManager/web_engine_cache/`. + +`[AppDataLocation]` соответствует: +* Windows: `%APPDATA%` (например, `C:\Users\YourUser\AppData\Roaming`) +* macOS: `~/Library/Application Support` +* Linux: `~/.local/share` + +## Известные проблемы / Ограничения + +* Параметр `visible_messages_count` для `messages.addChatUser` может быть проигнорирован VK API согласно официальной документации. Приложение уведомит вас об этом при попытке использования. +* При смене IP-адреса, токен авторизации VK может стать недействительным, потребуется повторная авторизация. Приложение автоматически предложит её. + +## Лицензия + +Этот проект распространяется под лицензией MIT. \ No newline at end of file