コード例 #1
0
ファイル: memberstracking.py プロジェクト: elDante/ncxi
    def handle_noargs(self, **options):
        from corp.models import Corporation, CorporationMemberLocation, CorporationMemberTracking, CorporationAccount
        from eve.views import get_corp_member_tracking
        from datetime import datetime as dt
        from django.utils.timezone import utc

        for corporation in Corporation.objects.all():
            try:
                c_account = corporation.corporation_account.latest("id")
            except CorporationAccount.DoesNotExist:
                continue
            members_tracking = get_corp_member_tracking(c_account.key_id, c_account.v_code, extended=True)
            for member in corporation.corporation_members.all():
                tracking = members_tracking.members.Get(member.member_id)
                location, response = CorporationMemberLocation.objects.get_or_create(
                    location_id=tracking.get("locationID")
                )
                location.location = tracking.get("location")
                location.save()
                CorporationMemberTracking.objects.get_or_create(
                    member=member,
                    corporation=corporation,
                    logon=dt.utcfromtimestamp(tracking.get("logonDateTime")).replace(tzinfo=utc),
                    logoff=dt.utcfromtimestamp(tracking.get("logoffDateTime")).replace(tzinfo=utc),
                    base=location,
                )
コード例 #2
0
ファイル: updatemembers.py プロジェクト: elDante/ncxi
    def handle_noargs(self, **options):
        from corp.models import CorporationMember, Corporation
        from corp.models import CorporationAccount
        from eve.views import get_corp_member_tracking

        for corporation in Corporation.objects.all():
            validate = []
            try:
                c_account = corporation.corporation_account.latest('id')
            except CorporationAccount.DoesNotExist:
                continue
            members_tracking = get_corp_member_tracking(
                c_account.key_id,
                c_account.v_code
            )
            for member in members_tracking.members:
                CorporationMember.objects.get_or_create(
                    corporation=corporation,
                    member_id=member.get('characterID'),
                    member_name=member.get('name')
                )
                validate.append(member.get('characterID'))
            invalid = CorporationMember.objects.filter(
                corporation=corporation
            ).exclude(
                member_id__in=validate
            )
            for member in invalid: member.delete()