A corporation manager and dashboard for EVE Online
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

__init__.py 1.9 KiB

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