Added some more niceness. Updated eve api for pulling ticker from corp

This commit is contained in:
Raynaldo Rivera 2014-10-05 23:29:19 -07:00
parent b748c223c8
commit 7521d9fc4d
8 changed files with 138 additions and 28 deletions

View File

@ -151,11 +151,11 @@ STATIC_URL = '/static/'
# ALLIANCE INFO # ALLIANCE INFO
ALLIANCE_ID = 0 ALLIANCE_ID = 0
ALLIANCE_NAME = 'AllianceName' ALLIANCE_NAME = ''
# Jabber Prosody Info # Jabber Prosody Info
OPENFIRE_ADDRESS = "http://someaddress.com:9090/" OPENFIRE_ADDRESS = "http://someaddress.com:9090/"
OPENFIRE_SECRET_KEY = "somekey" OPENFIRE_SECRET_KEY = "somesecretkey"
# Mumble settings # Mumble settings
MUMBLE_SERVER_ID = 1 MUMBLE_SERVER_ID = 1

View File

@ -1,7 +1,7 @@
from django.db import models from django.db import models
from django.contrib.auth.models import BaseUserManager from django.contrib.auth.models import BaseUserManager
from django.contrib.auth.models import AbstractBaseUser from django.contrib.auth.models import AbstractBaseUser
# Todo Add a check to make sure the email / username has not been used before
class AllianceUserManager(BaseUserManager): class AllianceUserManager(BaseUserManager):
@ -66,18 +66,47 @@ class AllianceUserManager(BaseUserManager):
def check_if_user_exist_by_name(self, user_name): def check_if_user_exist_by_name(self, user_name):
return AllianceUser.objects.filter(username=user_name).exists() return AllianceUser.objects.filter(username=user_name).exists()
def update_user_form_info(self, username, password, user_id):
if AllianceUser.objects.filter(id=user_id).exists():
user = AllianceUser.objects.get(id=user_id)
user.forum_username = username
user.forum_password = password
user.save(update_fields=['forum_username', 'forum_password'])
def update_user_jabber_info(self, username, password, user_id):
if AllianceUser.objects.filter(id=user_id).exists():
user = AllianceUser.objects.get(id=user_id)
user.jabber_username = username
user.jabber_password = password
user.save(update_fields=['jabber_username', 'jabber_password'])
def update_user_mumble_info(self, username, password, user_id):
if AllianceUser.objects.filter(id=user_id).exists():
user = AllianceUser.objects.get(id=user_id)
user.mumble_username = username
user.mumble_password = password
user.save(update_fields=['mumble_username', 'mumble_password'])
class AllianceUser(AbstractBaseUser): class AllianceUser(AbstractBaseUser):
username = models.CharField(max_length = 40,unique=True) username = models.CharField(max_length=40, unique=True)
email = models.EmailField(max_length=255,unique=True) email = models.EmailField(max_length=255, unique=True)
is_active = models.BooleanField(default=True) is_active = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False) is_admin = models.BooleanField(default=False)
is_moderator = models.BooleanField(default = False) is_moderator = models.BooleanField(default=False)
is_banned = models.BooleanField(default = False) is_banned = models.BooleanField(default=False)
api_id = models.CharField(max_length = 254) api_id = models.CharField(max_length=254)
api_key = models.CharField(max_length = 254) api_key = models.CharField(max_length=254)
main_char_id = models.IntegerField(default = 0) main_char_id = models.IntegerField(default=0)
# Login information stuff
forum_username = models.CharField(max_length=64)
forum_password = models.CharField(max_length=64)
jabber_username = models.CharField(max_length=64)
jabber_password = models.CharField(max_length=64)
mumble_username = models.CharField(max_length=64)
mumble_password = models.CharField(max_length=64)
objects = AllianceUserManager() objects = AllianceUserManager()
USERNAME_FIELD = 'username' USERNAME_FIELD = 'username'

View File

@ -1,4 +1,5 @@
from models import EveCharacter from models import EveCharacter
from services.eveapi_manager import EveApiManager
class EveCharacterManager(): class EveCharacterManager():
@ -7,7 +8,7 @@ class EveCharacterManager():
pass pass
def create_character(self, character_id, character_name, corporation_id, def create_character(self, character_id, character_name, corporation_id,
corporation_name, alliance_id, corporation_name, corporation_ticker, alliance_id,
alliance_name, allianceuser_owner): alliance_name, allianceuser_owner):
eve_char = EveCharacter(); eve_char = EveCharacter();
@ -15,6 +16,7 @@ class EveCharacterManager():
eve_char.character_name = character_name eve_char.character_name = character_name
eve_char.corporation_id = corporation_id eve_char.corporation_id = corporation_id
eve_char.corporation_name = corporation_name eve_char.corporation_name = corporation_name
eve_char.corporation_ticker = corporation_ticker
eve_char.alliance_id = alliance_id eve_char.alliance_id = alliance_id
eve_char.alliance_name = alliance_name eve_char.alliance_name = alliance_name
eve_char.allianceuser_owner = allianceuser_owner eve_char.allianceuser_owner = allianceuser_owner
@ -22,12 +24,17 @@ class EveCharacterManager():
eve_char.save() eve_char.save()
def create_characters_from_list(self, chars, owner): def create_characters_from_list(self, chars, owner):
evemanager = EveApiManager()
for char in chars.result: for char in chars.result:
if not self.check_if_character_exist(chars.result[char]['name']): if not self.check_if_character_exist(chars.result[char]['name']):
self.create_character(chars.result[char]['id'], self.create_character(chars.result[char]['id'],
chars.result[char]['name'], chars.result[char]['name'],
chars.result[char]['corp']['id'], chars.result[char]['corp']['name'], chars.result[char]['corp']['id'],
chars.result[char]['alliance']['id'], chars.result[char]['alliance']['name'], chars.result[char]['corp']['name'],
evemanager.get_corporation_ticker_from_id(chars.result[char]['corp']['id']),
chars.result[char]['alliance']['id'],
chars.result[char]['alliance']['name'],
owner) owner)
def check_if_character_exist(self, char_name): def check_if_character_exist(self, char_name):

View File

@ -8,6 +8,7 @@ class EveCharacter(models.Model):
character_name = models.CharField(max_length=254) character_name = models.CharField(max_length=254)
corporation_id = models.CharField(max_length=254) corporation_id = models.CharField(max_length=254)
corporation_name = models.CharField(max_length=254) corporation_name = models.CharField(max_length=254)
corporation_ticker = models.CharField(max_length=254)
alliance_id = models.CharField(max_length=254) alliance_id = models.CharField(max_length=254)
alliance_name = models.CharField(max_length=254) alliance_name = models.CharField(max_length=254)
allianceuser_owner = models.ForeignKey(AllianceUser) allianceuser_owner = models.ForeignKey(AllianceUser)

View File

@ -1,3 +1,4 @@
import sys
import evelink.api import evelink.api
import evelink.char import evelink.char
import evelink.eve import evelink.eve
@ -8,12 +9,30 @@ class EveApiManager():
def __init__(self): def __init__(self):
pass pass
def get_characters_from_api(self, api_id, api_key): def get_characters_from_api(self, api_id, api_key):
api = evelink.api.API(api_key=(api_id, api_key)) chars = []
# Should get characters try:
account = evelink.account.Account(api=api) api = evelink.api.API(api_key=(api_id, api_key))
chars = account.characters() # Should get characters
account = evelink.account.Account(api=api)
chars = account.characters()
except evelink.api.APIError as error:
print error
return chars return chars
def get_corporation_ticker_from_id(self, corp_id):
ticker = ""
try:
print corp_id
api = evelink.api.API()
corp = evelink.corp.Corp(api)
response = corp.corporation_sheet(corp_id)
print response
ticker = response[0]['ticker']
except evelink.api.APIError as error:
print error
return ticker

View File

@ -28,7 +28,10 @@
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a class="navbar-brand" href="{% url 'auth_dashboard' %}">{{ ALLIANCE_NAME }}</a> <img src="https://image.eveonline.com/Alliance/{{ ALLIANCE_ID }}_64.png" alt="" class="navbar-brand">
<a class="navbar-brand" href="{% url 'auth_dashboard' %}">
{{ ALLIANCE_NAME }}
</a>
</div> </div>
<div class="navbar-collapse collapse"> <div class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">

View File

@ -8,12 +8,62 @@
{% block content %} {% block content %}
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"> <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
<h3> Really dumb right now</h3> <h1 class="page-header text-center">Available Applications</h1>
<p> Click button to add user to services</p> <table class="table table-bordered">
<a href="{% url 'auth_activate_forum' %}"><button type="button" class="btn btn-default">Activate Forum</button></a> <tr>
<a href="{% url 'auth_activate_jabber' %}"><button type="button" class="btn btn-default">Activate Jabber</button></a> <th class="text-center">Application</th>
<a href="{% url 'auth_activate_mumble' %}"><button type="button" class="btn btn-default">Activate Jabber</button></a> <th class="text-center">Username</th>
<th class="text-center">Password</th>
<th class="text-center">Action</th>
</tr>
<tr>
<td class="text-center">Forums</td>
<td class="text-center">{{ user.forum_username }}</td>
<td class="text-center">{{ user.forum_password }}</td>
<td class="text-center">
<a href="{% url 'auth_activate_forum' %}">
<button type="button" class="btn btn-success"><span class="glyphicon glyphicon-ok"></span></button>
</a>
<a href="{% url 'auth_activate_forum' %}">
<button type="button" class="btn btn-danger"><span class="glyphicon glyphicon-remove"></span></button>
</a>
<a href="{% url 'auth_activate_forum' %}">
<button type="button" class="btn btn-primary"><span class="glyphicon glyphicon-refresh"></span></button>
</a>
</td>
</tr>
<tr>
<td class="text-center">Jabber</td>
<td class="text-center">{{ user.jabber_username }}</td>
<td class="text-center">{{ user.jabber_password }}</td>
<td class="text-center">
<a href="{% url 'auth_activate_jabber' %}">
<button type="button" class="btn btn-success"><span class="glyphicon glyphicon-ok"></span></button>
</a>
<a href="{% url 'auth_activate_jabber' %}">
<button type="button" class="btn btn-danger"><span class="glyphicon glyphicon-remove"></span></button>
</a>
<a href="{% url 'auth_activate_jabber' %}">
<button type="button" class="btn btn-primary"><span class="glyphicon glyphicon-refresh"></span></button>
</a>
</td>
<tr>
<td class="text-center">Mumble</td>
<td class="text-center">{{ user.mumble_username }}</td>
<td class="text-center">{{ user.mumble_password }}</td>
<td class="text-center">
<a href="{% url 'auth_activate_mumble' %}">
<button type="button" class="btn btn-success"><span class="glyphicon glyphicon-ok"></span></button>
</a>
<a href="{% url 'auth_activate_mumble' %}">
<button type="button" class="btn btn-danger"><span class="glyphicon glyphicon-remove"></span></button>
</a>
<a href="{% url 'auth_activate_mumble' %}">
<button type="button" class="btn btn-primary"><span class="glyphicon glyphicon-refresh"></span></button>
</a>
</td>
</tr>
</table>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -15,8 +15,9 @@
<div class="col-sm-12"> <div class="col-sm-12">
<div class="col-xs-12 col-sm-8"> <div class="col-xs-12 col-sm-8">
<h3>{{character.character_name}}</h3> <h3>{{character.character_name}}</h3>
<p><strong>Corporation: </strong>{{character.corporation_name}}</p>
<p><strong>Alliance: </strong> {{character.alliance_name}} </p> <p><strong>Alliance: </strong> {{character.alliance_name}} </p>
<p><strong>Corporation: </strong>{{character.corporation_name}}</p>
<p><strong>Corporation Ticker: </strong> {{character.corporation_ticker}} </p>
</div> </div>
<div class="col-xs-8 col-sm-4 text-center"> <div class="col-xs-8 col-sm-4 text-center">
<figure> <figure>