Skip to content

Commit

Permalink
First Public Release
Browse files Browse the repository at this point in the history
  • Loading branch information
eve-seat committed Apr 12, 2014
1 parent 02ab6a2 commit 2fb7759
Show file tree
Hide file tree
Showing 378 changed files with 25,251 additions and 3 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/bootstrap/compiled.php
/vendor
composer.phar
composer.lock
.env.local.php
.env.php
.DS_Store
Thumbs.db
50 changes: 47 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,48 @@
seat
====
## SeAT - Simple (or Stupid) EVE Online API Tool ##

Simple (or Stupid) EVE Online API Tool
# *This is very much BETA software with a ton of things not yet implemented. USE AT YOUR OWN RISK* #

### Introduction ###
SeAT attempts to be a EVE Online™ Corporation Management Tool written in PHP using the [Laravel][1] Framework driven by a MySQL database.
The SeAT backend is *highly* influenced by YAPEAL. SeAT itself is the result of a rewrite of the original Corporation Management Tool that I wrote for our corp and figured there may be others out there that may need similar tools.

### Features ###
SeAT allows corporation CEO's and directors to manage member API keys, store member wallet & mail history, monitor corporaton poses, wallets, transactions, account ledgers etc.

### Technical Summary ###
API Keys are stored in the backend database and get updated as the schedule is configured. A cronjob gets kicked off every minute that checks which jobs need to be scheduled and actions as required.
A 'job' can be defined as a set of categorized API calls to update certains part of a Character, Corporation, Eve or Map related information in the backend. More than 55 API Endpoints have been implemented and form part of these jobs.

### Screenshots ###

Character View
![Character View](http://i.imgur.com/yhsfWrb.png)

Starbase Details View
![Starbase Details View](http://i.imgur.com/2OOmKkI.png)

### Installation ###
Refer to the `docs/` directory for installation instructions

### Todo ###
There really is a TON of stuff that still needs to be done:

- Corporation Wallet Ledger
- Asset Search
- Skill Search
- Clone Overview
- Character Interactions (ie Player Tradings, Mails etc.)
- Starbase Fuel Time Left calculations as well as Silo input/output end etas.
- Corporation Sheets with Member Security Roles view

There is a metric ton of information pulled via the API that is not yet exposed on the web front end... so *lots* to do still :)

A much longer term goal would be to get the system to such a state where corporation members are able to register and view thier own keys and administrators are able to deletegate roles such as recruiters etc.

### Contact ###
You can get hold of me via Twitter [@qu1ckkkk](https://twitter.com/qu1ckkkk), ingame character [qu1ckkkk](http://evewho.com/pilot/qu1ckkkk) or on [IRC](https://kiwiirc.com/client/irc.coldfront.net/?nick=seat_user|?#wcs-pub) at #wcs-pub on irc.coldfront.net

[1]: http://laravel.com/

### Legal ###
EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. CCP hf. has granted permission to DOTLAN EveMaps to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, DOTLAN EveMaps. CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.
Empty file added app/commands/.gitkeep
Empty file.
75 changes: 75 additions & 0 deletions app/commands/SeatAPIDeleteKey.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
<?php

namespace Seat\Commands;

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;

class SeatAPIDeleteKey extends Command {

/**
* The console command name.
*
* @var string
*/
protected $name = 'seat:delete-key';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Delete a API key.';

/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}

/**
* Execute the console command.
*
* @return mixed
*/
public function fire()
{
$keyID = $this->argument('keyID');
$this->info('Searching for key: ' . $keyID);

$key = \SeatKey::where('keyID', '=', $keyID)->first();

if (count($key) == 1) {

if ($this->confirm('Are you sure you want to delete this key? [yes|no] ', true)) {

$key = \SeatKey::where('keyID', '=', $keyID)->delete();
$this->comment('Key deleted!');
return;
} else {

$this->info('Not doing antything');
}
} else {

$this->error('Key not found.');
}
}

/**
* Get the console command arguments.
*
* @return array
*/
protected function getArguments()
{
return array(
array('keyID', InputArgument::REQUIRED, 'The keyID to delete.'),
);
}
}
69 changes: 69 additions & 0 deletions app/commands/SeatAPIFindKeyByName.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
<?php

namespace Seat\Commands;

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;

class SeatAPIFindKeyByName extends Command {

/**
* The console command name.
*
* @var string
*/
protected $name = 'seat:find-key-by-name';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Search for a API key attached to a character name.';

/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}

/**
* Execute the console command.
*
* @return mixed
*/
public function fire()
{
$name = $this->argument('name');
$this->info('Searching for term: ' . $name);

$characters = \EveAccountAPIKeyInfoCharacters::where('characterName', 'like', '%' . $name . '%')->get();

if (count($characters) > 0) {

foreach ($characters as $character) {
$this->info('Found match: ' . $character->characterName . ' with keyID: ' . $character->keyID);
}
} else {

$this->error('No matches found.');
}
}

/**
* Get the console command arguments.
*
* @return array
*/
protected function getArguments()
{
return array(
array('name', InputArgument::REQUIRED, 'The name of the character to search the key for.'),
);
}
}
70 changes: 70 additions & 0 deletions app/commands/SeatAPIFindNameByKey.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?php

namespace Seat\Commands;

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;

class SeatAPIFindNameByKey extends Command {

/**
* The console command name.
*
* @var string
*/
protected $name = 'seat:find-name-by-key';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Return known characters on a key.';

/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}

/**
* Execute the console command.
*
* @return mixed
*/
public function fire()
{
$keyID = $this->argument('keyID');
$this->info('Searching for key: ' . $keyID);

$characters = \EveAccountAPIKeyInfoCharacters::where('keyID', 'like', '%' . $keyID . '%')->get();

if (count($characters) > 0) {

foreach ($characters as $character) {
$this->info('Found match: ' . $character->characterName . ' with keyID: ' . $character->keyID);
}
} else {

$this->error('No matches found.');
}
}

/**
* Get the console command arguments.
*
* @return array
*/
protected function getArguments()
{
return array(
array('keyID', InputArgument::REQUIRED, 'The keyID to search for.'),
);
}

}
54 changes: 54 additions & 0 deletions app/commands/SeatAPIFindSickKeys.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<?php

namespace Seat\Commands;

use Illuminate\Console\Command;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;

class SeatAPIFindSickKeys extends Command {

/**
* The console command name.
*
* @var string
*/
protected $name = 'seat:find-sick-keys';

/**
* The console command description.
*
* @var string
*/
protected $description = 'Show keys which are disabled due to API Authentication errors.';

/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}

/**
* Execute the console command.
*
* @return mixed
*/
public function fire()
{

$this->info('Finding keys that are not ok.');
foreach (\SeatKey::where('isOk', '=', 0)->get() as $key) {

$this->comment('Key ' . $key->keyID . ' is not ok.');
$this->line('Characters on this key:');

foreach (\EveAccountAPIKeyInfoCharacters::where('keyID', '=', $key->keyID)->get() as $character) {
$this->line($characterName);
}
}
}
}
Loading

0 comments on commit 2fb7759

Please sign in to comment.