
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Market Manager and Market Browser plugin for Alliance Auth.
Inspired by EveMarketer, Fuzzworks Market and all those that came before them
Private Structure Orders
Configurable Alerts
Managed WatchConfigs, to allow external apps to manage and create their own configs.
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.
pip install aa-market-manager
Configure your Auth settings (local.py
) as follows:
'marketmanager'
to INSTALLED_APPS
## 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),
}
# Watch Configs
CELERYBEAT_SCHEDULE['marketmanager_update_managed_supply_configs'] = {
'task': 'marketmanager.tasks.update_managed_supply_configs',
'schedule': crontab(minute='0', hour='2'),
}
CELERYBEAT_SCHEDULE['marketmanager_run_all_watch_configs'] = {
'task': 'marketmanager.tasks.run_all_watch_configs',
'schedule': crontab(minute=0, hour='*/3'),
}
# Background Tasks
CELERYBEAT_SCHEDULE['marketmanager_update_all_type_statistics'] = {
'task': 'marketmanager.tasks.update_all_type_statistics',
'schedule': crontab(minute='0', hour='7'),
}
# Cleanup
CELERYBEAT_SCHEDULE['marketmanager_garbage_collection'] = {
'task': 'marketmanager.tasks.garbage_collection',
'schedule': crontab(minute='0', hour=0),
}
python manage.py migrate
python manage.py collectstatic
supervisorctl restart myauth:
python manage.py eveuniverse_load_data map
This will load Regions, Constellations and Solar SystemsThis is less required the more you have used eveuniverse in the past
python manage.py eveuniverse_load_data ships --types-enabled-sections market_groups
This will load Ships, which are nearly universally on the marketpython manage.py eveuniverse_load_data structures
, this will load Structures for use in Filterspython manage.py marketmanager_preload_common_eve_types
This will preload a series of Types using Groups and Categories I've analyzed to be popular on the market, please note this currently will not import MarketGroups until a market update is run for the first time, this may impact your ability to make SupplyConfigs immediately.In the Admin interface, visit marketmanager
or <AUTH-URL>/admin/marketmanager
Select the Regions you would like to pull Public Market Data for
Select the Regions you would like to calculate Percentiles, Medians and Weighted Averages for
Map the appropriate tokens with Access to Docking and Market (this cant be assumed), to the right Structures And/Or Corps.
Configure some supply alerts
fittings
fittings.fit.<FIT_ID>
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 Corporation Token with required scopes | Enables the "Add Corporation Token" button to request the needed scopes from a user |
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_SUPPLY_CONFIGS | Celery task priority for SupplyConfig tasks, This is Lower than Orders to ensure it runs while Orders are all up to date | 6 |
MARKETMANAGER_TASK_PRIORITY_PRICE_CONFIGS | Celery task priority for PriceConfig 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 |
MARKETMANAGER_TYPESTATISTICS_MINIMUM_ORDER_COUNT | Minimum number of Orders to exist before calculating Medians, Averages and Percentiles | 10 |
Creating Watch Configs from external applications is relatively straight forward and Market Manager provides an Optional Model for keeping track of these Watch Configs.
How an app maintains these Watch Configs is left to the developer, but Fittings provides a decent starting point using App Signals and referencing the Managed Watch Config model.
managed_app should follow python referencing convention. fittings
, projectname.modulename
managed_app_identifier is up to the app, but i would suggest following from Fittings, fittings.fit.{fit.id}
managed_app_reason is presented to users as to_why_ a managed config exists, Standard MWD Eagle x50
def marketmanager_active() -> bool:
return apps.is_installed("marketmanager")
if marketmanager_active():
from marketmanager.models import WatchConfig, ManagedAppConfig
# ...
# Maintain your Watch Configs here
# ...
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.
FAQs
AllianceAuth Market Management Tool
We found that aa-market-manager demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.