mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-07-08 20:10:17 +02:00
62 lines
1.5 KiB
Python
62 lines
1.5 KiB
Python
# this module generates profile URLs for dotlan
|
|
|
|
from urllib.parse import urljoin, quote
|
|
|
|
from . import (
|
|
_ESI_CATEGORY_ALLIANCE,
|
|
_ESI_CATEGORY_CORPORATION,
|
|
_ESI_CATEGORY_REGION,
|
|
_ESI_CATEGORY_SOLARSYSTEM
|
|
)
|
|
|
|
|
|
_BASE_URL = 'http://evemaps.dotlan.net'
|
|
|
|
|
|
def _build_url(category: str, name: str) -> str:
|
|
"""return url to profile page for an eve entity"""
|
|
|
|
if category == _ESI_CATEGORY_ALLIANCE:
|
|
partial = 'alliance'
|
|
|
|
elif category == _ESI_CATEGORY_CORPORATION:
|
|
partial = 'corp'
|
|
|
|
elif category == _ESI_CATEGORY_REGION:
|
|
partial = 'map'
|
|
|
|
elif category == _ESI_CATEGORY_SOLARSYSTEM:
|
|
partial = 'system'
|
|
|
|
else:
|
|
raise NotImplementedError(
|
|
"Not implemented yet for category:" + category
|
|
)
|
|
|
|
url = urljoin(
|
|
_BASE_URL,
|
|
'{}/{}'.format(partial, quote(str(name).replace(" ", "_")))
|
|
|
|
)
|
|
return url
|
|
|
|
|
|
def alliance_url(name: str) -> str:
|
|
"""url for page about given alliance on dotlan"""
|
|
return _build_url(_ESI_CATEGORY_ALLIANCE, name)
|
|
|
|
|
|
def corporation_url(name: str) -> str:
|
|
"""url for page about given corporation on dotlan"""
|
|
return _build_url(_ESI_CATEGORY_CORPORATION, name)
|
|
|
|
|
|
def region_url(name: str) -> str:
|
|
"""url for page about given region on dotlan"""
|
|
return _build_url(_ESI_CATEGORY_REGION, name)
|
|
|
|
|
|
def solar_system_url(name: str) -> str:
|
|
"""url for page about given solar system on dotlan"""
|
|
return _build_url(_ESI_CATEGORY_SOLARSYSTEM, name)
|