Пример #1
0
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
Пример #2
0
 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
Пример #3
0
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
Пример #4
0
 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