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
def get_eveapi(self): return EVEAPIConnection(cacheHandler=EVEAPIRedisCache(self.redis))
from datetime import datetime from flask import Flask, render_template, request, redirect, flash, session, url_for from jinja2 import evalcontextfilter, Markup from eveapi import EVEAPIConnection, Error from cache import DbCacheHandler from utils import mask_check eveapi = EVEAPIConnection(cacheHandler=DbCacheHandler()) app = Flask('apishiv') API_ACCESS_TYPE = { 0: 'Account Balance', 1: 'Asset List', 2: 'Calendar Event Attendees', 3: 'Character Sheet', 4: 'Standings/Contacts (PCs/Corps/Alliances)', 5: 'Contact Notifications', 6: 'Faction Warfare Stats', 7: 'Industry Jobs', 8: 'Kill Log', 9: 'Mail Bodies', 10: 'Mailing Lists', 11: 'Mail Messages', 12: 'Market Orders', 13: 'Medals', 14: 'Notifications', 15: 'Notification Texts', 16: 'Research Jobs', 17: 'Skill In Training', 18: 'Skill Queue',
from datetime import datetime, timedelta from logging import getLogger from HTMLParser import HTMLParser from icalendar import Calendar, Event from eveapi import EVEAPIConnection, Error api = EVEAPIConnection() def mask_check(accessmask, bit): """Returns a bool indicating if the bit is set in the accessmask""" mask = 1 << bit return (accessmask & mask) > 0 class EVEEvent(Event): """Represents a EVE Event, a subclassed iCal event""" @staticmethod def from_eveapi(tree): event = EVEEvent() h = HTMLParser() startdate = datetime.fromtimestamp(tree.eventDate) if tree.duration > 0: enddate = startdate + timedelta(minutes=tree.duration) else: enddate = None event['uid'] = '*****@*****.**' % tree.eventID event.add('summary', tree.eventTitle)
def __init__(self, keyid, vcode, cache_handler=None): self.eveapi = EVEAPIConnection(cacheHandler=cache_handler).auth(keyID=keyid, vCode=vcode) self.standings_type = type