Skip to main content

AA wanderer

Project description

aa-wanderer-map

PyPI Python Version Django Version License

Alliance Auth application linking your auth with a wanderer instance.

This is a maintained fork of the original aa-wanderer by T'rahk Rokym, which includes bug fixes and improvements.

Recent Updates

v0.1.5 - Fixed migration errors and improved database table initialization handling

Credit to:

  • T'rahk Rokym for the original aa-wanderer implementation
  • A-A-Ron for his work on allianceauth-multiverse without which multiple services wouldn't have been possible

Planned features

  • Wanderer ACL management through the auth

Usage

Currently, I recommend keeping a normal wanderer access list on your map that you configure yourself. You can add your corporation/alliance on this access list to make sure that all mains can easily open your map. It also allows you to add another group if needed during a joint op.
The application will create another access list that will be fully managed and shouldn't be manually edited. The only thing you can change on that access list is moving some characters to admin or manager to keep an overview. But even these admin/manager characters will be removed from the access list if they lose access to the service.

Installation

Step 1 - Check prerequisites

  1. aa-wanderer is a plugin for Alliance Auth. If you don't have Alliance Auth running already, please install it first before proceeding. (see the official AA installation guide for details)
  2. You need to have a map with administrator access on wanderer to recover the map API key that will be used to create a new access list.

Step 2 - Install app

Make sure you are in the virtual environment (venv) of your Alliance Auth installation. Then install the newest release from PyPI:

pip install aa-wanderer-map

Step 3 - Configure Auth settings

Configure your Auth settings (local.py) as follows:

  • Add 'wanderer' to INSTALLED_APPS
  • Add below lines to your settings file:
CELERYBEAT_SCHEDULE['wanderer_cleanup_access_lists'] = {
    'task': 'wanderer.tasks.cleanup_all_access_lists',
    'schedule': crontab(minute='0', hour='*/1'),
}

Step 4 - Finalize App installation

Run migrations & copy static files

python manage.py migrate
python manage.py collectstatic --noinput

Restart your supervisor services for Auth.

Commands

The following commands can be used when running the module:

Name Description
wanderer_cleanup_acls Will execute the cleanup command on all your managed maps and update their access lists.

Development

Development Setup

If you want to contribute to this project or test it locally, follow these steps:

1. Install System Dependencies

Before setting up the development environment, you need to install system-level dependencies required by Alliance Auth:

Ubuntu/Debian:

sudo apt-get update
sudo apt-get install -y pkg-config python3-dev default-libmysqlclient-dev build-essential git redis-server

Or for MariaDB:

sudo apt-get install -y pkg-config python3-dev libmariadb-dev build-essential git redis-server

Fedora/RHEL/CentOS:

sudo dnf install -y pkg-config python3-devel mysql-devel gcc git redis

macOS:

brew install pkg-config mysql redis git

2. Clone the Repository

git clone https://github.com/guarzo/aa-wanderer-map.git
cd aa-wanderer-map

3. Create Virtual Environment

Using the setup script (recommended):

# Make the script executable
chmod +x dev-setup.sh

# Run the setup script
./dev-setup.sh

Manual setup:

# Create virtual environment
python3 -m venv venv

# Activate virtual environment
source venv/bin/activate  # On Linux/Mac
# or
venv\Scripts\activate  # On Windows

# Upgrade pip
pip install --upgrade pip

# Install development dependencies
pip install -e .
pip install tox black isort flake8

4. Running Tests

# Activate venv if not already activated
source venv/bin/activate

# Run all tests with tox
tox

# Run specific Python version tests
tox -e py310-django42

# Check code formatting
black --check .

# Format code
black .

# Check import sorting
isort . --check-only

# Sort imports
isort .

# Run linter
flake8 wanderer/

# Run pylint
tox -e pylint

5. Building the Package

# Install build tools
pip install build

# Build the package
python -m build

# Check the built package
ls -la dist/

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Format your code: black . && isort .
  5. Run tests: tox
  6. Commit your changes (git commit -m 'Add amazing feature')
  7. Push to the branch (git push origin feature/amazing-feature)
  8. Open a Pull Request

Troubleshooting

mysqlclient Build Errors

If you encounter errors like Can not find valid pkg-config name or mysql_config not found:

Solution: Install the required system packages:

# Ubuntu/Debian
sudo apt-get install pkg-config python3-dev default-libmysqlclient-dev build-essential

# Fedora/RHEL/CentOS
sudo dnf install pkg-config python3-devel mysql-devel gcc

# macOS
brew install pkg-config mysql

Then retry the setup.

Redis Connection Errors

If tests fail with Redis connection errors:

# Start Redis
redis-server --daemonize yes

# Or on macOS with Homebrew
brew services start redis

Code Formatting Issues

To format your code properly:

# Auto-format with Black
black .

# Sort imports
isort .

# Check for issues
flake8 wanderer/

# Then commit the changes
git add .
git commit -m "Fix formatting"

Reporting Issues

Please report issues on the GitHub issue tracker.

Include:

  • Steps to reproduce
  • Expected behavior
  • Actual behavior
  • Your Python version
  • Your Alliance Auth version
  • Any relevant error messages
  • Your operating system and version

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aa_wanderer_map-0.1.5.tar.gz (21.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aa_wanderer_map-0.1.5-py3-none-any.whl (24.5 kB view details)

Uploaded Python 3

File details

Details for the file aa_wanderer_map-0.1.5.tar.gz.

File metadata

  • Download URL: aa_wanderer_map-0.1.5.tar.gz
  • Upload date:
  • Size: 21.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for aa_wanderer_map-0.1.5.tar.gz
Algorithm Hash digest
SHA256 cb94b56fdb342674e82517b6b81a305f5c0c983cc511f7623f43e8abbb967c2e
MD5 2e6e5106cd063a0b09456d8b8716d27c
BLAKE2b-256 9b6ee03e95fa5b943cf92d85c2f37ae063c8d65a574105b931e3935bb7c3486b

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_wanderer_map-0.1.5.tar.gz:

Publisher: publish.yml on guarzo/aa-wanderer-map

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file aa_wanderer_map-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for aa_wanderer_map-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 d0d0d45bfc4605b7f0f46845ae2f37668d654c7b732db908f959e724324ea07f
MD5 4f2bbeee3872b0c637d1401b44d37e44
BLAKE2b-256 ad75ac05fbc840705297ede99a4edf7d53b2510aa423ca49002797754f6d201d

See more details on using hashes here.

Provenance

The following attestation bundles were made for aa_wanderer_map-0.1.5-py3-none-any.whl:

Publisher: publish.yml on guarzo/aa-wanderer-map

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page