def status_init(self): from eve.views import get_account_status from django.utils.timezone import utc account_status = get_account_status(self.key_id, self.v_code) self.account_status.create( account=self, create_date=datetime.datetime.fromtimestamp(account_status.createDate, utc), paid_until=datetime.datetime.fromtimestamp(account_status.paidUntil, utc), ) self.account_status_tracker.create( account=self, logon_count=int(account_status.logonCount), logon_minutes=int(account_status.logonMinutes) )
def status_update(self): from eve.views import get_account_status from django.utils.timezone import utc account_status = get_account_status(self.key_id, self.v_code) status = self.account_status.get() status.paid_until = datetime.datetime.fromtimestamp(account_status.paidUntil, utc) status.save() latest_logon = self.account_status_tracker.latest().logon_count if not latest_logon == account_status.logonCount: self.account_status_tracker.create( account=self, logon_count=account_status.logonCount, logon_minutes=account_status.logonMinutes )
def handle_noargs(self, **options): from users.models import Account, AccountStatus, AccountStatusTracker from eve.views import get_account_status from datetime import datetime from django.utils.timezone import utc for account in Account.objects.all(): status = get_account_status(account.key_id, account.v_code) if status: current, response = account.account_status.get_or_create() current.create_date = datetime.utcfromtimestamp(status.createDate).replace(tzinfo=utc) current.paid_until = datetime.utcfromtimestamp(status.paidUntil).replace(tzinfo=utc) current.save() AccountStatusTracker.objects.get_or_create( account=account, logon_count=status.logonCount, logon_minutes=status.logonMinutes )