A corporation manager and dashboard for EVE Online
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 

64 líneas
1.7 KiB

  1. # -*- coding: utf-8 -*-
  2. import platform
  3. import requests
  4. from .clock import Clock
  5. from .esi import EVESwaggerInterface
  6. from .image import ImageServer
  7. from .sso import SSOManager
  8. from .zkill import ZKillboard
  9. from .. import __release__, baseLogger
  10. __all__ = ["EVE"]
  11. class EVE:
  12. """Interface to EVE's various APIs."""
  13. def __init__(self, config):
  14. session = requests.Session()
  15. agent = self._get_user_agent(config.get("site.contact"))
  16. session.headers["User-Agent"] = agent
  17. logger = baseLogger.getChild("eve")
  18. self._clock = Clock()
  19. self._esi = EVESwaggerInterface(session, logger.getChild("esi"))
  20. self._image = ImageServer()
  21. self._sso = SSOManager(session, logger.getChild("sso"))
  22. self._zkill = ZKillboard(session, logger.getChild("zkill"))
  23. @staticmethod
  24. def _get_user_agent(contact):
  25. """Return the user agent when accessing APIs."""
  26. template = ("Calefaction/{} ({}; Python/{}; {}; "
  27. "https://github.com/earwig/calefaction)")
  28. return template.format(
  29. __release__, requests.utils.default_user_agent(),
  30. platform.python_version(), contact)
  31. @property
  32. def clock(self):
  33. """The Clock API module."""
  34. return self._clock
  35. @property
  36. def esi(self):
  37. """The EVE Swagger Interface API module."""
  38. return self._esi
  39. @property
  40. def image(self):
  41. """The ImageServer API module."""
  42. return self._image
  43. @property
  44. def sso(self):
  45. """The Single Sign-On API module."""
  46. return self._sso
  47. @property
  48. def zkill(self):
  49. """The zKillboard API module."""
  50. return self._zkill