NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

ownerGroupUtils.py (2087B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\structure\accessGroups\ownerGroupUtils.py
      2 from brennivin.itertoolsext import Bundle
      3 from eve.client.script.ui.control.allUserEntries import AllUserEntries
      4 from eve.client.script.ui.util.linkUtil import GetItemIDFromTextLink
      5 from ownergroups.ownergroupConst import MEMBERSHIP_TYPE_MEMBER, PUBLIC_MEMBER_ID
      6 
      7 def GetOwnerIDsAndMembershipTypeFromNodes(nodes, useNodeMembershipType = False, membershipType = MEMBERSHIP_TYPE_MEMBER):
      8     if not nodes:
      9         return
     10     firstNode = nodes[0]
     11     guid = getattr(firstNode, '__guid__', None)
     12     if guid not in AllUserEntries():
     13         nodes = GetTextLinkNode(firstNode)
     14         if nodes is None:
     15             return
     16     membershipTypesByMemberID = {}
     17     for eachNode in nodes:
     18         if useNodeMembershipType:
     19             membershipType = eachNode.get('membershipType', membershipType)
     20         else:
     21             membershipType = membershipType
     22         membershipTypesByMemberID[eachNode.itemID] = membershipType
     23 
     24     return membershipTypesByMemberID
     25 
     26 
     27 def GetTextLinkNode(node):
     28     validTypeIDs = [const.typeCharacter, const.typeCorporation, const.typeAlliance]
     29     memberID = GetItemIDFromTextLink(node, validTypeIDs)
     30     if memberID is None:
     31         return
     32     return [Bundle(itemID=memberID)]
     33 
     34 
     35 def GetMemberIDsToUpdate(memberIDs, failedInfo):
     36     failedIDs = {x[0] for x in failedInfo}
     37     membersToUpdate = {x for x in memberIDs if x not in failedIDs}
     38     return membersToUpdate
     39 
     40 
     41 def GetOwnerTypeSortValue(typeID):
     42     if typeID == const.typeCorporation:
     43         return 2
     44     if typeID == const.typeAlliance:
     45         return 1
     46     if typeID == PUBLIC_MEMBER_ID:
     47         return 0
     48     return 3
     49 
     50 
     51 def ConvertDBRowToBundle(dbRow):
     52     ret = Bundle()
     53     for eachColName in dbRow.__columns__:
     54         value = getattr(dbRow, eachColName)
     55         ret[eachColName] = value
     56 
     57     return ret
     58 
     59 
     60 def GetMembershipTypeByMemberID(members):
     61     membershipTypeByMemberID = {x.memberID:x.membershipType for x in members}
     62     return membershipTypeByMemberID