AllianceAuth Market Management Tool
Project description
Market Manager for Alliance Auth
Market Manager and Market Browser plugin for Alliance Auth.
Inspired by EveMarketer, Fuzzworks Market and all those that came before them
Features
- Market Browser
- Item Search with Autocomplete
- Buy/Sell Orders
- Region filtering
- Order highlighting on Corporation and User ownership of Orders
- Order Fetching
- Public Orders
- Character Orders from Token
- Corporation Orders from Token (Includes Title/Role Sanity)
- Private Structure Orders
- Requires mapping tokens to their allowed Structures and/or Corporation's Structures.
- Failing to resolve will disable the token mapping to avoid error-bans.
- Structure ID Resolver
- Resolves Stations via Django-EveUniverse EveEntity resolver
- Resolves Citadels internally
- Fetches Corporation Citadels from Corporation Tokens loaded with the appropriate EVE Roles ("Station_Manager")
- get_universe_structures_structure_id requires docking ACL Access. As there is no way to tell who has docking (even the owner corporation is not a guarantee),
- Configurable Alerts
- Supply Alerts, Ensure adequate volume is on the market at a given price.
- Will detect and use any tokens loaded by other means, if you request the scopes as part of a wider scoped app (Such as an Audit tool etc.)
Planned Features
-
Market Browser
- Item Statistics, Medians and Percentiles
-
Private Structure Orders
- Failing to resolve will disable the token mapping to avoid error-bans.
-
Configurable Alerts
- Bargains, Alerts on items being sold under a price.
- Scalpers, Highlights bad people scalping the market.
-
Managed WatchConfigs, to allow external apps to manage and create their own configs.
- For example, whole ship fits?
-
Manually defining Tokens that are on ACLs for use in pulling structures from the get_universe_structures_structure_id endpoint which wont require Station_Manager.
Installation
Step 1 - Django Eve Universe
Market Manager is an App for Alliance Auth, Please make sure you have this installed. Market Manager is not a standalone Django Application
Market Manager needs the app django-eveuniverse to function. Please make sure it is installed before continuing.
Step 2 - Install app
pip install aa-market-manager
Step 3 - Configure Auth settings
Configure your Auth settings (local.py
) as follows:
- Add
'marketmanager'
toINSTALLED_APPS
- Add below lines to your settings file:
## Settings for AA-MarketManager
# Market Orders
CELERYBEAT_SCHEDULE['marketmanager_fetch_public_market_orders'] = {
'task': 'marketmanager.tasks.fetch_public_market_orders',
'schedule': crontab(minute=0, hour='*/3'),
}
CELERYBEAT_SCHEDULE['marketmanager_fetch_all_character_orders'] = {
'task': 'marketmanager.tasks.fetch_all_character_orders',
'schedule': crontab(minute=0, hour='*/3'),
}
CELERYBEAT_SCHEDULE['marketmanager_fetch_all_corporation_orders'] = {
'task': 'marketmanager.tasks.fetch_all_corporation_orders',
'schedule': crontab(minute=0, hour='*/3'),
}
CELERYBEAT_SCHEDULE['marketmanager_fetch_all_structure_orders'] = {
'task': 'marketmanager.tasks.fetch_all_structure_orders',
'schedule': crontab(minute=0, hour='*/3'),
}
# Structure Information
CELERYBEAT_SCHEDULE['marketmanager_fetch_public_structures'] = {
'task': 'marketmanager.tasks.fetch_public_structures',
'schedule': crontab(minute=0, hour=4),
}
CELERYBEAT_SCHEDULE['marketmanager_update_private_structures'] = {
'task': 'marketmanager.tasks.update_private_structures',
'schedule': crontab(minute=0, hour=5),
}
CELERYBEAT_SCHEDULE['marketmanager_fetch_all_corporations_structures'] = {
'task': 'marketmanager.tasks.fetch_all_corporations_structures',
'schedule': crontab(minute=0, hour=6),
}
CELERYBEAT_SCHEDULE['marketmanager_run_all_watch_configs'] = {
'task': 'marketmanager.tasks.run_all_watch_configs',
'schedule': crontab(minute=0, hour='*/3'),
}
# Cleanup
CELERYBEAT_SCHEDULE['marketmanager_garbage_collection'] = {
'task': 'marketmanager.tasks.garbage_collection',
'schedule': crontab(minute=0, hour='0', day_of_week=5),
}
Step 4 - Maintain Alliance Auth
- Run migrations
python manage.py migrate
- Gather your staticfiles
python manage.py collectstatic
- Restart your project
supervisorctl restart myauth:
Step 5 (Optional) - Pre-Load Django-EveUniverse
This is less required the more you have used eveuniverse in the past
python manage.py eveuniverse_load_data map
This will load Regions, Constellations and Solar Systemspython manage.py eveuniverse_load_data ships
This will load Ships, which are nearly universally on the marketpython manage.py marketmanager_preload_common_eve_types
This will preload a series of evetypes using Groups and Categories I've analyzed to be popular on the market.
Step 5 - Configure Further
In the Admin interface, visit marketmanager
or <AUTH-URL>/admin/marketmanager
Under PublicConfig, Open ID 1 Select the Regions you would like to pull Public Market Data for.
Under PrivateConfig, Map the appropriate tokens with Access to Docking and Market (this cant be assumed), to the right Structures And/Or Corps.
Under WatchConfig, configure some supply alerts
WatchConfig Types
Supply Check
- Ensures a Volume of Orders for an Item in a Location. Example. Warn if there is less than 1,000,000 Units of Oxygen Isotopes under 1,000 ISK/Unit, in 9KOE-A.
Bargain Finder WIP
- Highlights orders that meet a defined config. Example. Notify if Naglfars under 3,000,000,000 ISK/Unit are on sale in Curse NPC Stations
Scalp Checker WIP
- Highlights Character/Corporation orders (not public), that breach Jita/Universe price. Example. Notify Leadership that Ariel Rin is selling Nanite Repair Paste at over 500% Jita price in Staging.
Permissions
Perm | Admin Site | Perm | Description |
---|---|---|---|
basic_market_browser | nill | Can access the Standard Market Browser | Can access the normal user facing market browser |
advanced_market_browser | nill | Can access the Advanced Market Browser | Can access the more advanced management browser with private details |
order_highlight_user | nill | Can access other character's data for own alliance. | Enables Highlighting a users own Orders in the Market Browser |
order_highlight_corporation | nill | Can access other character's data for own corp. | Enables Highlighting the orders of a users corporation in the Market Browser |
can_add_token_character | nill | Can add a Character Token with required scopes | Enables the "Add Character Token" button to request the needed scopes from a user |
can_add_token_corporation | nill | Can add a Corpration Token with required scopes | Enables the "Add Corporation Token" button to request the needed scopes from a user |
Settings
Name | Description | Default |
---|---|---|
MARKETMANAGER_CLEANUP_DAYS_STRUCTURE |
Number of days without an update, before considering a Structure stale and to be deleted | 30 |
MARKETMANAGER_CLEANUP_DAYS_ORDER |
Number of days without an update, before considering an Order stale and to be deleted | 30 |
MARKETMANAGER_TASK_PRIORITY_ORDERS |
Celery task priority for Order tasks | 5 |
MARKETMANAGER_TASK_PRIORITY_STRUCTURES |
Celery task priority for Structure tasks | 4 |
MARKETMANAGER_TASK_PRIORITY_BACKGROUND |
Celery task priority for Background tasks | 7 |
MARKETMANAGER_TASK_PRIORITY_WATCH_CONFIGS |
Celery task priority for Watch Config tasks, This is Lower than Orders to ensure it runs while Orders are all up to date | 6 |
MARKETMANAGER_WEBHOOK_COLOUR_ERROR |
Webhook colour for Errors | 16711710 |
MARKETMANAGER_WEBHOOK_COLOUR_WARNING |
Webhook colour for Errors | 14177041 |
MARKETMANAGER_WEBHOOK_COLOUR_INFO |
Webhook colour for Errors | 42751 |
MARKETMANAGER_WEBHOOK_COLOUR_SUCCESS |
Webhook colour for Success | 6684416 |
Contributing
Make sure you have signed the License Agreement by logging in at https://developers.eveonline.com before submitting any pull requests. All bug fixes or features must not include extra superfluous formatting changes.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aa-market-manager-0.4.0a0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 195b2b3181e1b13528c51d5d3915983699f6fd02eff8c4f5fd366251bc05737c |
|
MD5 | 0c3b4b5e7274e9420909eeb0e8c29477 |
|
BLAKE2b-256 | 683bd59c53ba63476988a9801674f245c6dd5b6f1f5582a5b906128a03e3baff |
Hashes for aa_market_manager-0.4.0a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6044f6fd6e702599ac8a1be4cb7c28b970c8bc028ec5bcdc17a4b1fbf2fa774a |
|
MD5 | 548dc5b2c3aa476388777719c1b4e40c |
|
BLAKE2b-256 | f161e5104296773838f70192d55d8385605685042f0dc40ccc268459db9bcbc8 |