def import_wallet_journal(corporation_id): corp = Corporation.objects.get(pk=corporation_id) api = EVEAPIConnection(cacheHandler=APICache.DjangoCacheHandler()) # create current month MonthTotal.objects.get_or_create(corporation=corp, year=now().year, month=now().month) for key in corp.keys.all(): auth = api.auth(keyID=key.pk, vCode=key.vcode) def get_records(corp=None, fromID=None, rowCount=2560): if fromID and fromID <= corp.last_transaction: return None try: res = auth.corp.WalletJournal(rowCount=rowCount, fromID=fromID) except Error, e: print e key.error = str(e) key.save(noupdate=True) else: key.error = None key.save(noupdate=True) if type(res.entries) == str: return None entries = res.entries.SortedBy('refID', reverse=True) if len(entries) == rowCount: rows = get_records(corp, fromID=entries[-1].refID) if rows and len(rows): for row in rows._rows: entries.append(row) return entries
def update_api(self): api = EVEAPIConnection(cacheHandler=APICache.DjangoCacheHandler()) auth = api.auth(keyID=self.keyid, vCode=self.vcode) try: res = auth.account.APIKeyInfo() except Error, e: logging.error('Error calling EVE API: %s' % str(e)) raise e
def process_pac_wallet(): paymentid = {} for corp in Corporation.objects.all(): paymentid[corp.payment_id] = corp if not 'payments.keyid' in managerconf or not 'payments.vcode' in managerconf: logging.error('No payments Key ID / vCode set!') return api = EVEAPIConnection(cacheHandler=APICache.DjangoCacheHandler()) auth = api.auth(keyID=managerconf['payments.keyid'], vCode=managerconf['payments.vcode']) try: entries = auth.corp.WalletJournal(rowCount=2560).entries.SortedBy('refID', reverse=True) except Error, e: logging.error('Error importing Payments wallet: %s' % e) return
def get_context_data(self, **kwargs): ctx = super(CorporationDetailView, self).get_context_data(**kwargs) api = EVEAPIConnection(cacheHandler=APICache.DjangoCacheHandler()) balances = [] last_update = None for key in self.object.keys.all(): try: res = api.auth(keyID=key.pk, vCode=key.vcode).corp.AccountBalance() for acc in res.accounts: balances.append((int(acc.accountKey) - 1000, Decimal(str(acc.balance)))) last_update = datetime.fromtimestamp(res._meta.currentTime) break except Error: continue ctx.update({ 'balances': balances, 'last_update': last_update, 'payment_corp': managerconf.get('payment.corpname', 'Upvote'), }) return ctx