aa-captrack 1.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aa_captrack-1.0.0/LICENSE +21 -0
- aa_captrack-1.0.0/MANIFEST.in +6 -0
- aa_captrack-1.0.0/PKG-INFO +217 -0
- aa_captrack-1.0.0/README.md +183 -0
- aa_captrack-1.0.0/aa_captrack.egg-info/PKG-INFO +217 -0
- aa_captrack-1.0.0/aa_captrack.egg-info/SOURCES.txt +47 -0
- aa_captrack-1.0.0/aa_captrack.egg-info/dependency_links.txt +1 -0
- aa_captrack-1.0.0/aa_captrack.egg-info/requires.txt +3 -0
- aa_captrack-1.0.0/aa_captrack.egg-info/top_level.txt +2 -0
- aa_captrack-1.0.0/captrack/__init__.py +1 -0
- aa_captrack-1.0.0/captrack/admin.py +154 -0
- aa_captrack-1.0.0/captrack/apps.py +19 -0
- aa_captrack-1.0.0/captrack/constants.py +1 -0
- aa_captrack-1.0.0/captrack/helpers.py +18 -0
- aa_captrack-1.0.0/captrack/hooks.py +38 -0
- aa_captrack-1.0.0/captrack/migrations/0001_initial.py +55 -0
- aa_captrack-1.0.0/captrack/migrations/0002_alter_captracksettings_options.py +17 -0
- aa_captrack-1.0.0/captrack/migrations/0003_alter_captracksettings_options.py +17 -0
- aa_captrack-1.0.0/captrack/migrations/0004_update_basic_access_permission_name.py +28 -0
- aa_captrack-1.0.0/captrack/migrations/0005_capwatchlist_alert_snoozed_until_and_more.py +28 -0
- aa_captrack-1.0.0/captrack/migrations/__init__.py +0 -0
- aa_captrack-1.0.0/captrack/models.py +117 -0
- aa_captrack-1.0.0/captrack/services.py +205 -0
- aa_captrack-1.0.0/captrack/tasks.py +226 -0
- aa_captrack-1.0.0/captrack/templates/captrack/dashboard .bak +245 -0
- aa_captrack-1.0.0/captrack/templates/captrack/dashboard.html +263 -0
- aa_captrack-1.0.0/captrack/urls.py +8 -0
- aa_captrack-1.0.0/captrack/utils/__init__.py +1 -0
- aa_captrack-1.0.0/captrack/utils/discord.py +224 -0
- aa_captrack-1.0.0/captrack/views.py +146 -0
- aa_captrack-1.0.0/images/admin-settings.jpg +0 -0
- aa_captrack-1.0.0/images/admin.jpg +0 -0
- aa_captrack-1.0.0/images/collapsed.jpg +0 -0
- aa_captrack-1.0.0/images/discord-critical.jpg +0 -0
- aa_captrack-1.0.0/images/overview.jpg +0 -0
- aa_captrack-1.0.0/images/snoozed.jpg +0 -0
- aa_captrack-1.0.0/pyproject.toml +3 -0
- aa_captrack-1.0.0/setup.cfg +4 -0
- aa_captrack-1.0.0/setup.py +38 -0
- aa_captrack-1.0.0/testproj/__init__.py +0 -0
- aa_captrack-1.0.0/testproj/apps.py +28 -0
- aa_captrack-1.0.0/testproj/manage.py +22 -0
- aa_captrack-1.0.0/testproj/models-mock.py +96 -0
- aa_captrack-1.0.0/testproj/settings.py +130 -0
- aa_captrack-1.0.0/testproj/testproj/__init__.py +0 -0
- aa_captrack-1.0.0/testproj/testproj/asgi.py +16 -0
- aa_captrack-1.0.0/testproj/testproj/settings.py +115 -0
- aa_captrack-1.0.0/testproj/testproj/urls.py +22 -0
- aa_captrack-1.0.0/testproj/testproj/wsgi.py +16 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Stephen Swindlehurst
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aa-captrack
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Capital ship movement early warning plugin for AllianceAuth
|
|
5
|
+
Home-page: https://github.com/SteveTh3Piirate/aa-captrack
|
|
6
|
+
Author: Stephen Swindlehurst
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Source, https://github.com/SteveTh3Piirate/aa-captrack
|
|
9
|
+
Project-URL: Issues, https://github.com/SteveTh3Piirate/aa-captrack/issues
|
|
10
|
+
Classifier: Framework :: Django
|
|
11
|
+
Classifier: Framework :: Django :: 4.2
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: allianceauth>=4.0
|
|
21
|
+
Requires-Dist: allianceauth-corptools>=2.15.2
|
|
22
|
+
Requires-Dist: requests>=2.0
|
|
23
|
+
Dynamic: author
|
|
24
|
+
Dynamic: classifier
|
|
25
|
+
Dynamic: description
|
|
26
|
+
Dynamic: description-content-type
|
|
27
|
+
Dynamic: home-page
|
|
28
|
+
Dynamic: license
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
Dynamic: project-url
|
|
31
|
+
Dynamic: requires-dist
|
|
32
|
+
Dynamic: requires-python
|
|
33
|
+
Dynamic: summary
|
|
34
|
+
|
|
35
|
+
# aa-captrack
|
|
36
|
+
|
|
37
|
+
AllianceAuth plugin for tracking and alerting on capital ship activity
|
|
38
|
+
|
|
39
|
+
Version: **v1.0.0**
|
|
40
|
+
Status: **Stable Baseline**
|
|
41
|
+
|
|
42
|
+
## Overview
|
|
43
|
+
|
|
44
|
+
`aa-captrack` is an AllianceAuth plugin designed to monitor capital ship activity across characters and accounts, providing:
|
|
45
|
+
|
|
46
|
+
- Real-time dashboard visibility
|
|
47
|
+
- Threshold-based alerting
|
|
48
|
+
- Discord notifications
|
|
49
|
+
- Per-pilot snoozing
|
|
50
|
+
- Clear separation between tracked, alerting, and informational states
|
|
51
|
+
|
|
52
|
+
The plugin prioritises operational clarity and avoids unnecessary alert noise.
|
|
53
|
+
|
|
54
|
+
## Capital Tracking Logic
|
|
55
|
+
|
|
56
|
+
| Ship Class | Behavior |
|
|
57
|
+
|-----------|---------|
|
|
58
|
+
| Titans | Always alerting |
|
|
59
|
+
| Supercarriers | Always alerting |
|
|
60
|
+
| Dreadnoughts | Alert when ≥ threshold (default: 5) under same main |
|
|
61
|
+
| Lancer Dreads | Alert when ≥ threshold |
|
|
62
|
+
| Carriers | Alert when ≥ threshold |
|
|
63
|
+
| Force Auxiliaries | Alert when ≥ threshold |
|
|
64
|
+
| Capital Industrials | Tracked only (no alerts) |
|
|
65
|
+
|
|
66
|
+
Threshold logic is applied consistently across:
|
|
67
|
+
- Dashboard
|
|
68
|
+
- Discord alerts
|
|
69
|
+
- Background tasks
|
|
70
|
+
|
|
71
|
+
## Dashboard
|
|
72
|
+
|
|
73
|
+
- Collapsible cards with rotating chevrons
|
|
74
|
+
- Clear separation of:
|
|
75
|
+
- Critical
|
|
76
|
+
- Alerting
|
|
77
|
+
- Informational
|
|
78
|
+
- Optional display of unclassified ships
|
|
79
|
+
- Configurable refresh interval
|
|
80
|
+
- Optional remembered collapse state per user
|
|
81
|
+
|
|
82
|
+
## Discord Integration
|
|
83
|
+
|
|
84
|
+
- Discord alerts include **only alerting ships**
|
|
85
|
+
- Separate webhooks for:
|
|
86
|
+
- Critical alerts
|
|
87
|
+
- Standard alerts
|
|
88
|
+
- Configurable ping behavior (roles / policy)
|
|
89
|
+
- Optional inclusion of:
|
|
90
|
+
- System
|
|
91
|
+
- Region
|
|
92
|
+
- Dashboard link
|
|
93
|
+
|
|
94
|
+
## Snoozing
|
|
95
|
+
|
|
96
|
+
- Snoozing is **per pilot** (by design)
|
|
97
|
+
- Supports multiple durations (e.g. 1h / 6h / 24h)
|
|
98
|
+
- Snoozed pilots are excluded from:
|
|
99
|
+
- Dashboard alerts
|
|
100
|
+
- Discord notifications
|
|
101
|
+
|
|
102
|
+
## Permissions
|
|
103
|
+
|
|
104
|
+
| Permission | Description |
|
|
105
|
+
|----------|-------------|
|
|
106
|
+
| `captrack.basic_access` | View dashboard |
|
|
107
|
+
| `captrack.admin_access` | Configure settings |
|
|
108
|
+
|
|
109
|
+
## Installation
|
|
110
|
+
|
|
111
|
+
1. Install the plugin:
|
|
112
|
+
|
|
113
|
+
pip install aa-captrack
|
|
114
|
+
|
|
115
|
+
2. Add to `INSTALLED_APPS`:
|
|
116
|
+
|
|
117
|
+
1. INSTALLED_APPS += ["captrack"]
|
|
118
|
+
|
|
119
|
+
3. Run migrations:
|
|
120
|
+
|
|
121
|
+
python manage.py migrate captrack
|
|
122
|
+
|
|
123
|
+
4. Collect static files:
|
|
124
|
+
|
|
125
|
+
5. Restart AllianceAuth services.
|
|
126
|
+
|
|
127
|
+
## Configuration
|
|
128
|
+
|
|
129
|
+
Configuration is managed via the AllianceAuth Admin Panel:
|
|
130
|
+
|
|
131
|
+
Admin → Captrack → CapTrack Settings
|
|
132
|
+
|
|
133
|
+
Only **one settings row** is expected.
|
|
134
|
+
|
|
135
|
+
### Configurable Options Include
|
|
136
|
+
|
|
137
|
+
- Enabled / disabled state
|
|
138
|
+
- Tracked group IDs
|
|
139
|
+
- Industrial group IDs
|
|
140
|
+
- Alert thresholds per ship class
|
|
141
|
+
- Discord webhook URLs
|
|
142
|
+
- Discord ping policy
|
|
143
|
+
- Dashboard behavior options
|
|
144
|
+
- Snooze durations
|
|
145
|
+
- Display preferences
|
|
146
|
+
|
|
147
|
+
## Data Model Notes
|
|
148
|
+
|
|
149
|
+
- Capital activity is grouped by **main character**
|
|
150
|
+
- Industrials are tracked but do not generate alerts
|
|
151
|
+
- Alert logic is centralized in:
|
|
152
|
+
- `services.py`
|
|
153
|
+
- `views.py`
|
|
154
|
+
- `tasks.py`
|
|
155
|
+
|
|
156
|
+
## Compatibility
|
|
157
|
+
|
|
158
|
+
- AllianceAuth: 4.x
|
|
159
|
+
- Django: 4.2
|
|
160
|
+
- Database:
|
|
161
|
+
- MySQL / MariaDB (recommended)
|
|
162
|
+
- SQLite (development only)
|
|
163
|
+
|
|
164
|
+
## Versioning Policy
|
|
165
|
+
|
|
166
|
+
- **v1.0.0**: Stable baseline
|
|
167
|
+
- Future versions will:
|
|
168
|
+
- Avoid destructive migrations
|
|
169
|
+
- Prefer additive schema changes
|
|
170
|
+
- Be tested against existing installs
|
|
171
|
+
|
|
172
|
+
## Screenshots
|
|
173
|
+
|
|
174
|
+
> Screenshots are placeholders and may change as the UI evolves.
|
|
175
|
+
|
|
176
|
+
### Dashboard — Overview
|
|
177
|
+
|
|
178
|
+

|
|
179
|
+
|
|
180
|
+
Displays all tracked capital activity grouped by main character, with clear visual separation between critical, alerting, and informational states.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Dashboard — Collapsed / Expanded States
|
|
185
|
+
|
|
186
|
+

|
|
187
|
+
|
|
188
|
+
Cards can be collapsed to reduce noise. Collapse state can optionally be remembered per user.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
### Dashboard — Snoozed Pilots
|
|
193
|
+
|
|
194
|
+

|
|
195
|
+
|
|
196
|
+
Pilots can be snoozed individually to suppress alerts and notifications for a configurable duration.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### Admin — CapTrack Settings
|
|
201
|
+
|
|
202
|
+

|
|
203
|
+
|
|
204
|
+
All configuration is managed through a single settings entry in the AllianceAuth admin panel.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
### Discord — Critical Alert Example
|
|
209
|
+
|
|
210
|
+

|
|
211
|
+
|
|
212
|
+
Critical alerts (Titans, Supercarriers) are always sent immediately.
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
## License
|
|
216
|
+
|
|
217
|
+
MIT License
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# aa-captrack
|
|
2
|
+
|
|
3
|
+
AllianceAuth plugin for tracking and alerting on capital ship activity
|
|
4
|
+
|
|
5
|
+
Version: **v1.0.0**
|
|
6
|
+
Status: **Stable Baseline**
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
`aa-captrack` is an AllianceAuth plugin designed to monitor capital ship activity across characters and accounts, providing:
|
|
11
|
+
|
|
12
|
+
- Real-time dashboard visibility
|
|
13
|
+
- Threshold-based alerting
|
|
14
|
+
- Discord notifications
|
|
15
|
+
- Per-pilot snoozing
|
|
16
|
+
- Clear separation between tracked, alerting, and informational states
|
|
17
|
+
|
|
18
|
+
The plugin prioritises operational clarity and avoids unnecessary alert noise.
|
|
19
|
+
|
|
20
|
+
## Capital Tracking Logic
|
|
21
|
+
|
|
22
|
+
| Ship Class | Behavior |
|
|
23
|
+
|-----------|---------|
|
|
24
|
+
| Titans | Always alerting |
|
|
25
|
+
| Supercarriers | Always alerting |
|
|
26
|
+
| Dreadnoughts | Alert when ≥ threshold (default: 5) under same main |
|
|
27
|
+
| Lancer Dreads | Alert when ≥ threshold |
|
|
28
|
+
| Carriers | Alert when ≥ threshold |
|
|
29
|
+
| Force Auxiliaries | Alert when ≥ threshold |
|
|
30
|
+
| Capital Industrials | Tracked only (no alerts) |
|
|
31
|
+
|
|
32
|
+
Threshold logic is applied consistently across:
|
|
33
|
+
- Dashboard
|
|
34
|
+
- Discord alerts
|
|
35
|
+
- Background tasks
|
|
36
|
+
|
|
37
|
+
## Dashboard
|
|
38
|
+
|
|
39
|
+
- Collapsible cards with rotating chevrons
|
|
40
|
+
- Clear separation of:
|
|
41
|
+
- Critical
|
|
42
|
+
- Alerting
|
|
43
|
+
- Informational
|
|
44
|
+
- Optional display of unclassified ships
|
|
45
|
+
- Configurable refresh interval
|
|
46
|
+
- Optional remembered collapse state per user
|
|
47
|
+
|
|
48
|
+
## Discord Integration
|
|
49
|
+
|
|
50
|
+
- Discord alerts include **only alerting ships**
|
|
51
|
+
- Separate webhooks for:
|
|
52
|
+
- Critical alerts
|
|
53
|
+
- Standard alerts
|
|
54
|
+
- Configurable ping behavior (roles / policy)
|
|
55
|
+
- Optional inclusion of:
|
|
56
|
+
- System
|
|
57
|
+
- Region
|
|
58
|
+
- Dashboard link
|
|
59
|
+
|
|
60
|
+
## Snoozing
|
|
61
|
+
|
|
62
|
+
- Snoozing is **per pilot** (by design)
|
|
63
|
+
- Supports multiple durations (e.g. 1h / 6h / 24h)
|
|
64
|
+
- Snoozed pilots are excluded from:
|
|
65
|
+
- Dashboard alerts
|
|
66
|
+
- Discord notifications
|
|
67
|
+
|
|
68
|
+
## Permissions
|
|
69
|
+
|
|
70
|
+
| Permission | Description |
|
|
71
|
+
|----------|-------------|
|
|
72
|
+
| `captrack.basic_access` | View dashboard |
|
|
73
|
+
| `captrack.admin_access` | Configure settings |
|
|
74
|
+
|
|
75
|
+
## Installation
|
|
76
|
+
|
|
77
|
+
1. Install the plugin:
|
|
78
|
+
|
|
79
|
+
pip install aa-captrack
|
|
80
|
+
|
|
81
|
+
2. Add to `INSTALLED_APPS`:
|
|
82
|
+
|
|
83
|
+
1. INSTALLED_APPS += ["captrack"]
|
|
84
|
+
|
|
85
|
+
3. Run migrations:
|
|
86
|
+
|
|
87
|
+
python manage.py migrate captrack
|
|
88
|
+
|
|
89
|
+
4. Collect static files:
|
|
90
|
+
|
|
91
|
+
5. Restart AllianceAuth services.
|
|
92
|
+
|
|
93
|
+
## Configuration
|
|
94
|
+
|
|
95
|
+
Configuration is managed via the AllianceAuth Admin Panel:
|
|
96
|
+
|
|
97
|
+
Admin → Captrack → CapTrack Settings
|
|
98
|
+
|
|
99
|
+
Only **one settings row** is expected.
|
|
100
|
+
|
|
101
|
+
### Configurable Options Include
|
|
102
|
+
|
|
103
|
+
- Enabled / disabled state
|
|
104
|
+
- Tracked group IDs
|
|
105
|
+
- Industrial group IDs
|
|
106
|
+
- Alert thresholds per ship class
|
|
107
|
+
- Discord webhook URLs
|
|
108
|
+
- Discord ping policy
|
|
109
|
+
- Dashboard behavior options
|
|
110
|
+
- Snooze durations
|
|
111
|
+
- Display preferences
|
|
112
|
+
|
|
113
|
+
## Data Model Notes
|
|
114
|
+
|
|
115
|
+
- Capital activity is grouped by **main character**
|
|
116
|
+
- Industrials are tracked but do not generate alerts
|
|
117
|
+
- Alert logic is centralized in:
|
|
118
|
+
- `services.py`
|
|
119
|
+
- `views.py`
|
|
120
|
+
- `tasks.py`
|
|
121
|
+
|
|
122
|
+
## Compatibility
|
|
123
|
+
|
|
124
|
+
- AllianceAuth: 4.x
|
|
125
|
+
- Django: 4.2
|
|
126
|
+
- Database:
|
|
127
|
+
- MySQL / MariaDB (recommended)
|
|
128
|
+
- SQLite (development only)
|
|
129
|
+
|
|
130
|
+
## Versioning Policy
|
|
131
|
+
|
|
132
|
+
- **v1.0.0**: Stable baseline
|
|
133
|
+
- Future versions will:
|
|
134
|
+
- Avoid destructive migrations
|
|
135
|
+
- Prefer additive schema changes
|
|
136
|
+
- Be tested against existing installs
|
|
137
|
+
|
|
138
|
+
## Screenshots
|
|
139
|
+
|
|
140
|
+
> Screenshots are placeholders and may change as the UI evolves.
|
|
141
|
+
|
|
142
|
+
### Dashboard — Overview
|
|
143
|
+
|
|
144
|
+

|
|
145
|
+
|
|
146
|
+
Displays all tracked capital activity grouped by main character, with clear visual separation between critical, alerting, and informational states.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
### Dashboard — Collapsed / Expanded States
|
|
151
|
+
|
|
152
|
+

|
|
153
|
+
|
|
154
|
+
Cards can be collapsed to reduce noise. Collapse state can optionally be remembered per user.
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
### Dashboard — Snoozed Pilots
|
|
159
|
+
|
|
160
|
+

|
|
161
|
+
|
|
162
|
+
Pilots can be snoozed individually to suppress alerts and notifications for a configurable duration.
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### Admin — CapTrack Settings
|
|
167
|
+
|
|
168
|
+

|
|
169
|
+
|
|
170
|
+
All configuration is managed through a single settings entry in the AllianceAuth admin panel.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
### Discord — Critical Alert Example
|
|
175
|
+
|
|
176
|
+

|
|
177
|
+
|
|
178
|
+
Critical alerts (Titans, Supercarriers) are always sent immediately.
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
## License
|
|
182
|
+
|
|
183
|
+
MIT License
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: aa-captrack
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Capital ship movement early warning plugin for AllianceAuth
|
|
5
|
+
Home-page: https://github.com/SteveTh3Piirate/aa-captrack
|
|
6
|
+
Author: Stephen Swindlehurst
|
|
7
|
+
License: MIT
|
|
8
|
+
Project-URL: Source, https://github.com/SteveTh3Piirate/aa-captrack
|
|
9
|
+
Project-URL: Issues, https://github.com/SteveTh3Piirate/aa-captrack/issues
|
|
10
|
+
Classifier: Framework :: Django
|
|
11
|
+
Classifier: Framework :: Django :: 4.2
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Requires-Python: >=3.10
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Requires-Dist: allianceauth>=4.0
|
|
21
|
+
Requires-Dist: allianceauth-corptools>=2.15.2
|
|
22
|
+
Requires-Dist: requests>=2.0
|
|
23
|
+
Dynamic: author
|
|
24
|
+
Dynamic: classifier
|
|
25
|
+
Dynamic: description
|
|
26
|
+
Dynamic: description-content-type
|
|
27
|
+
Dynamic: home-page
|
|
28
|
+
Dynamic: license
|
|
29
|
+
Dynamic: license-file
|
|
30
|
+
Dynamic: project-url
|
|
31
|
+
Dynamic: requires-dist
|
|
32
|
+
Dynamic: requires-python
|
|
33
|
+
Dynamic: summary
|
|
34
|
+
|
|
35
|
+
# aa-captrack
|
|
36
|
+
|
|
37
|
+
AllianceAuth plugin for tracking and alerting on capital ship activity
|
|
38
|
+
|
|
39
|
+
Version: **v1.0.0**
|
|
40
|
+
Status: **Stable Baseline**
|
|
41
|
+
|
|
42
|
+
## Overview
|
|
43
|
+
|
|
44
|
+
`aa-captrack` is an AllianceAuth plugin designed to monitor capital ship activity across characters and accounts, providing:
|
|
45
|
+
|
|
46
|
+
- Real-time dashboard visibility
|
|
47
|
+
- Threshold-based alerting
|
|
48
|
+
- Discord notifications
|
|
49
|
+
- Per-pilot snoozing
|
|
50
|
+
- Clear separation between tracked, alerting, and informational states
|
|
51
|
+
|
|
52
|
+
The plugin prioritises operational clarity and avoids unnecessary alert noise.
|
|
53
|
+
|
|
54
|
+
## Capital Tracking Logic
|
|
55
|
+
|
|
56
|
+
| Ship Class | Behavior |
|
|
57
|
+
|-----------|---------|
|
|
58
|
+
| Titans | Always alerting |
|
|
59
|
+
| Supercarriers | Always alerting |
|
|
60
|
+
| Dreadnoughts | Alert when ≥ threshold (default: 5) under same main |
|
|
61
|
+
| Lancer Dreads | Alert when ≥ threshold |
|
|
62
|
+
| Carriers | Alert when ≥ threshold |
|
|
63
|
+
| Force Auxiliaries | Alert when ≥ threshold |
|
|
64
|
+
| Capital Industrials | Tracked only (no alerts) |
|
|
65
|
+
|
|
66
|
+
Threshold logic is applied consistently across:
|
|
67
|
+
- Dashboard
|
|
68
|
+
- Discord alerts
|
|
69
|
+
- Background tasks
|
|
70
|
+
|
|
71
|
+
## Dashboard
|
|
72
|
+
|
|
73
|
+
- Collapsible cards with rotating chevrons
|
|
74
|
+
- Clear separation of:
|
|
75
|
+
- Critical
|
|
76
|
+
- Alerting
|
|
77
|
+
- Informational
|
|
78
|
+
- Optional display of unclassified ships
|
|
79
|
+
- Configurable refresh interval
|
|
80
|
+
- Optional remembered collapse state per user
|
|
81
|
+
|
|
82
|
+
## Discord Integration
|
|
83
|
+
|
|
84
|
+
- Discord alerts include **only alerting ships**
|
|
85
|
+
- Separate webhooks for:
|
|
86
|
+
- Critical alerts
|
|
87
|
+
- Standard alerts
|
|
88
|
+
- Configurable ping behavior (roles / policy)
|
|
89
|
+
- Optional inclusion of:
|
|
90
|
+
- System
|
|
91
|
+
- Region
|
|
92
|
+
- Dashboard link
|
|
93
|
+
|
|
94
|
+
## Snoozing
|
|
95
|
+
|
|
96
|
+
- Snoozing is **per pilot** (by design)
|
|
97
|
+
- Supports multiple durations (e.g. 1h / 6h / 24h)
|
|
98
|
+
- Snoozed pilots are excluded from:
|
|
99
|
+
- Dashboard alerts
|
|
100
|
+
- Discord notifications
|
|
101
|
+
|
|
102
|
+
## Permissions
|
|
103
|
+
|
|
104
|
+
| Permission | Description |
|
|
105
|
+
|----------|-------------|
|
|
106
|
+
| `captrack.basic_access` | View dashboard |
|
|
107
|
+
| `captrack.admin_access` | Configure settings |
|
|
108
|
+
|
|
109
|
+
## Installation
|
|
110
|
+
|
|
111
|
+
1. Install the plugin:
|
|
112
|
+
|
|
113
|
+
pip install aa-captrack
|
|
114
|
+
|
|
115
|
+
2. Add to `INSTALLED_APPS`:
|
|
116
|
+
|
|
117
|
+
1. INSTALLED_APPS += ["captrack"]
|
|
118
|
+
|
|
119
|
+
3. Run migrations:
|
|
120
|
+
|
|
121
|
+
python manage.py migrate captrack
|
|
122
|
+
|
|
123
|
+
4. Collect static files:
|
|
124
|
+
|
|
125
|
+
5. Restart AllianceAuth services.
|
|
126
|
+
|
|
127
|
+
## Configuration
|
|
128
|
+
|
|
129
|
+
Configuration is managed via the AllianceAuth Admin Panel:
|
|
130
|
+
|
|
131
|
+
Admin → Captrack → CapTrack Settings
|
|
132
|
+
|
|
133
|
+
Only **one settings row** is expected.
|
|
134
|
+
|
|
135
|
+
### Configurable Options Include
|
|
136
|
+
|
|
137
|
+
- Enabled / disabled state
|
|
138
|
+
- Tracked group IDs
|
|
139
|
+
- Industrial group IDs
|
|
140
|
+
- Alert thresholds per ship class
|
|
141
|
+
- Discord webhook URLs
|
|
142
|
+
- Discord ping policy
|
|
143
|
+
- Dashboard behavior options
|
|
144
|
+
- Snooze durations
|
|
145
|
+
- Display preferences
|
|
146
|
+
|
|
147
|
+
## Data Model Notes
|
|
148
|
+
|
|
149
|
+
- Capital activity is grouped by **main character**
|
|
150
|
+
- Industrials are tracked but do not generate alerts
|
|
151
|
+
- Alert logic is centralized in:
|
|
152
|
+
- `services.py`
|
|
153
|
+
- `views.py`
|
|
154
|
+
- `tasks.py`
|
|
155
|
+
|
|
156
|
+
## Compatibility
|
|
157
|
+
|
|
158
|
+
- AllianceAuth: 4.x
|
|
159
|
+
- Django: 4.2
|
|
160
|
+
- Database:
|
|
161
|
+
- MySQL / MariaDB (recommended)
|
|
162
|
+
- SQLite (development only)
|
|
163
|
+
|
|
164
|
+
## Versioning Policy
|
|
165
|
+
|
|
166
|
+
- **v1.0.0**: Stable baseline
|
|
167
|
+
- Future versions will:
|
|
168
|
+
- Avoid destructive migrations
|
|
169
|
+
- Prefer additive schema changes
|
|
170
|
+
- Be tested against existing installs
|
|
171
|
+
|
|
172
|
+
## Screenshots
|
|
173
|
+
|
|
174
|
+
> Screenshots are placeholders and may change as the UI evolves.
|
|
175
|
+
|
|
176
|
+
### Dashboard — Overview
|
|
177
|
+
|
|
178
|
+

|
|
179
|
+
|
|
180
|
+
Displays all tracked capital activity grouped by main character, with clear visual separation between critical, alerting, and informational states.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Dashboard — Collapsed / Expanded States
|
|
185
|
+
|
|
186
|
+

|
|
187
|
+
|
|
188
|
+
Cards can be collapsed to reduce noise. Collapse state can optionally be remembered per user.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
### Dashboard — Snoozed Pilots
|
|
193
|
+
|
|
194
|
+

|
|
195
|
+
|
|
196
|
+
Pilots can be snoozed individually to suppress alerts and notifications for a configurable duration.
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
### Admin — CapTrack Settings
|
|
201
|
+
|
|
202
|
+

|
|
203
|
+
|
|
204
|
+
All configuration is managed through a single settings entry in the AllianceAuth admin panel.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
### Discord — Critical Alert Example
|
|
209
|
+
|
|
210
|
+

|
|
211
|
+
|
|
212
|
+
Critical alerts (Titans, Supercarriers) are always sent immediately.
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
## License
|
|
216
|
+
|
|
217
|
+
MIT License
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
MANIFEST.in
|
|
3
|
+
README.md
|
|
4
|
+
pyproject.toml
|
|
5
|
+
setup.py
|
|
6
|
+
aa_captrack.egg-info/PKG-INFO
|
|
7
|
+
aa_captrack.egg-info/SOURCES.txt
|
|
8
|
+
aa_captrack.egg-info/dependency_links.txt
|
|
9
|
+
aa_captrack.egg-info/requires.txt
|
|
10
|
+
aa_captrack.egg-info/top_level.txt
|
|
11
|
+
captrack/__init__.py
|
|
12
|
+
captrack/admin.py
|
|
13
|
+
captrack/apps.py
|
|
14
|
+
captrack/constants.py
|
|
15
|
+
captrack/helpers.py
|
|
16
|
+
captrack/hooks.py
|
|
17
|
+
captrack/models.py
|
|
18
|
+
captrack/services.py
|
|
19
|
+
captrack/tasks.py
|
|
20
|
+
captrack/urls.py
|
|
21
|
+
captrack/views.py
|
|
22
|
+
captrack/migrations/0001_initial.py
|
|
23
|
+
captrack/migrations/0002_alter_captracksettings_options.py
|
|
24
|
+
captrack/migrations/0003_alter_captracksettings_options.py
|
|
25
|
+
captrack/migrations/0004_update_basic_access_permission_name.py
|
|
26
|
+
captrack/migrations/0005_capwatchlist_alert_snoozed_until_and_more.py
|
|
27
|
+
captrack/migrations/__init__.py
|
|
28
|
+
captrack/templates/captrack/dashboard .bak
|
|
29
|
+
captrack/templates/captrack/dashboard.html
|
|
30
|
+
captrack/utils/__init__.py
|
|
31
|
+
captrack/utils/discord.py
|
|
32
|
+
images/admin-settings.jpg
|
|
33
|
+
images/admin.jpg
|
|
34
|
+
images/collapsed.jpg
|
|
35
|
+
images/discord-critical.jpg
|
|
36
|
+
images/overview.jpg
|
|
37
|
+
images/snoozed.jpg
|
|
38
|
+
testproj/__init__.py
|
|
39
|
+
testproj/apps.py
|
|
40
|
+
testproj/manage.py
|
|
41
|
+
testproj/models-mock.py
|
|
42
|
+
testproj/settings.py
|
|
43
|
+
testproj/testproj/__init__.py
|
|
44
|
+
testproj/testproj/asgi.py
|
|
45
|
+
testproj/testproj/settings.py
|
|
46
|
+
testproj/testproj/urls.py
|
|
47
|
+
testproj/testproj/wsgi.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
default_app_config = "captrack.apps.CapTrackConfig"
|