Exemple #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
Exemple #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
Exemple #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
Exemple #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
Exemple #5
0
 def get_eveapi(self):
     return EVEAPIConnection(cacheHandler=EVEAPIRedisCache(self.redis))
Exemple #6
0
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',
Exemple #7
0
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)
Exemple #8
0
 def __init__(self, keyid, vcode, cache_handler=None):
     self.eveapi = EVEAPIConnection(cacheHandler=cache_handler).auth(keyID=keyid, vCode=vcode)
     self.standings_type = type