A corporation manager and dashboard for EVE Online
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 
 

47 行
1.4 KiB

  1. # -*- coding: utf-8 -*-
  2. from collections import namedtuple
  3. from flask import g
  4. from flask_mako import render_template
  5. from ._provided import blueprint
  6. SCOPES = {"esi-corporations.read_corporation_membership.v1"}
  7. _Member = namedtuple("_Member", ["id", "name", "roles"])
  8. # ... sort by seniority
  9. def get_members():
  10. """Return a list of the members of the user's corporation.
  11. Members are returned as 3-namedtuples of (id, name, roles). An empty list
  12. is returned if there was some error with tokens.
  13. """
  14. token = g.auth.get_token()
  15. if not token:
  16. return []
  17. corp_id = g.config.get("corp.id")
  18. resp = g.eve.esi(token).v2.corporations(corp_id).members.get()
  19. cids = ",".join(str(item["character_id"]) for item in resp)
  20. ceo_id = g.eve.esi(token).v2.corporations(corp_id).get()["ceo_id"]
  21. resp = g.eve.esi(token).v1.characters.names.get(character_ids=cids)
  22. return [_Member(item["character_id"], item["character_name"],
  23. "CEO" if item["character_id"] == ceo_id else None)
  24. for item in resp]
  25. def home():
  26. """Render and return the main members page."""
  27. return render_template("members/members.mako", members=get_members())
  28. def navitem():
  29. """Render and return the navigation item for this module."""
  30. return render_template("members/navitem.mako").decode("utf8")
  31. @blueprint.rroute("/members")
  32. def members():
  33. """Render and return the main members page."""
  34. return home()