Metadata-Version: 2.4
Name: br_compensations
Version: 0.1.21
Summary: Плагин Alliance Auth для управления боевыми компенсациями
Home-page: https://git.misyagin.com/ekzoman/br_compensations
Author: Aleksei Misiagin
Author-email: me@misyagin.com
License: MIT
Keywords: allianceauth eveonline
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: allianceauth>=4.11.2
Requires-Dist: djangorestframework>=3.15.0
Requires-Dist: django-eveuniverse>=1.6.0
Requires-Dist: django-eveonline-sde>=0.0.1b5
Requires-Dist: cloudscraper>=1.2.70
Requires-Dist: django-redis>=5.4.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# BR Compensations

[![PyPI version](https://badge.fury.io/py/br-compensations.svg)](https://badge.fury.io/py/br-compensations)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/)

Плагин Alliance Auth учета компенсаций потерь в EVE Online.

## Описание

BR Compensations — это плагин для [Alliance Auth](https://github.com/allianceauth/allianceauth), который позволяет вести учет компенсаций за потери кораблей на боевых вылетах.

## Возможности

- 📊 Разбор боевых отчетов и загрузка киллмэйлов
- 🌐 Интеграция с EVE API через eveuniverse
- 📱 Адаптивный интерфейс

## Требования

- Python 3.8+
- Alliance Auth 4.11.2+
- Django 3.2+
- eveuniverse 1.4.0+

## Установка

### 1. Установка через pip

```bash
pip install br-compensations
```

### 2. Настройка Alliance Auth

Добавьте `'br_compensations'` в `INSTALLED_APPS` в файле `local.py`:

```python
INSTALLED_APPS = [
    # ... другие приложения
    'eveuniverse',
    'br_compensations',
]
```

### 3. Настройка Celery Beat

```python
# Автоматическая обработка баттл репортов и киллмэйлов
CELERYBEAT_SCHEDULE['Process scheduled reports'] = {
    'task': 'br_compensations.tasks.process_queued_links',
    'schedule': crontab(minute='*/5'),
}
# Автоматическая загрузка киллов из внутриигровой почты персонажей
CELERYBEAT_SCHEDULE['Get kills from user inbox'] = {
    'task': 'br_compensations.tasks.fetch_characters_mails',
    'schedule': crontab(minute='*/5'),
}
# Автоматическая загрузка баттл репортов с br.evetools.org
CELERYBEAT_SCHEDULE['Get new battle reports'] = {
    'task': 'br_compensations.tasks.load_battle_reports',
    'schedule': crontab(minute='*/30')
}
```

### 4. Применение миграций

```bash
python manage.py migrate br_compensations
```

### 5. Сбор статических файлов

```bash
python manage.py collectstatic
```

### 6. Перезапуск сервера

```bash
# Если используете systemd
sudo systemctl restart myauth

# Или если используете supervisor
sudo supervisorctl restart myauth
```

## Настройка

### Права доступа

Плагин использует следующие права доступа:

| Право | Описание |
|-------|----------|
| `br_compensations.can_manage` | Доступ к модулю компенсаций |

Настройте права доступа через админ-панель Alliance Auth: **Auth → Permissions**.

### Настройка URL

URL автоматически добавляются через `auth_hooks.py`. Доступ к модулю осуществляется через главное меню Alliance Auth.

## Использование

### Управление статусом компенсаций

| Статус | Код | Описание |
|--------|-----|----------|
| Новый | `N` | Ожидает обработки |
| Компенсирован | `C` | Одобрено к выплате |
| Отклонен | `R` | Отклонено |

### Управление статусом боевых отчетов

| Статус | Код | Описание |
|--------|-----|----------|
| Новый | `N` | Ожидает обработки |
| В обработке | `P` | Обрабатывается |
| Завершен | `C` | Успешно обработан |
| Ошибка | `F` | Ошибка обработки |
| Переинициализация | `R` | Требуется повторная обработка |

## API

Плагин предоставляет REST API для интеграции с внешними системами.

### Эндпоинты

#### Боевые отчеты
- `GET /api/battle-reports/` — список всех отчётов
- `POST /api/battle-reports/` — создание нового отчёта
- `GET /api/battle-reports/{id}/` — детали отчёта
- `PATCH /api/battle-reports/{id}/` — обновление отчёта

#### Киллмэйлы
- `GET /api/killmails/` — список киллмэйлов
- `GET /api/killmails/{id}/` — детали киллмэйла
- `PATCH /api/killmails/{id}/` — обновление статуса киллмэйла

#### Фильтры
- `GET /api/filters/` — список фильтров
- `POST /api/filters/` — добавление фильтра
- `DELETE /api/filters/{id}/` — удаление фильтра

#### Парсер почты
- `GET /api/mailparser/` — список персонажей для парсинга почты
- `POST /api/mailparser/` — добавление персонажа
- `DELETE /api/mailparser/{id}/` — удаление персонажа

#### Поиск сущностей
- `POST /api/filter-term/find` — поиск сущностей в EVE Universe

API требует аутентификации через токен Alliance Auth.

## Конфигурация

### Настройка прокси

Для работы с внешними API через прокси настройте параметры в админ-панели:

| Параметр | Описание |
|----------|----------|
| HTTP Proxy | HTTP прокси (формат: `http://host:port`) |
| HTTPS Proxy | HTTPS прокси (формат: `https://host:port`) |
| SOCKS5 Proxy | SOCKS5 прокси (формат: `socks5://host:port`) |

### Типы активности

| Тип | Код | Описание |
|-----|-----|----------|
| CTA | `C` | Call To Arms |
| HOMEDEF | `H` | Home defence |
| OTHER | `O` | Other |

## Задачи Celery

| Задача | Интервал | Описание |
|--------|----------|----------|
| `process_queued_links` | 5 мин | Обработка отложенных ссылок |
| `fetch_characters_mails` | 5 мин | Загрузка киллов из почты |
| `load_battle_reports` | 30 мин | Загрузка БР с br.evetools.org |
| `fetch_all_characters_mails` | по требованию | Полная загрузка почты |
| `process_mass_action` | по требованию | Массовая обработка киллмэйлов |

## Поддержка

- **Баг-трекер**: https://git.misyagin.com/ekzoman/br_compensations/issues

## Лицензия

Этот проект распространяется под лицензией MIT. Подробности см. в файле [LICENSE](LICENSE).

## Благодарности

- Команде [Alliance Auth](https://allianceauth.org/) за отличную платформу
- Сообществу EVE Online за вдохновение
