These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

EveAI Live (EVE-Online API/class library for .Net/ C#/ VB.Net)

Author
Jerik Telorian
State War Academy
Caldari State
#61 - 2012-01-24 20:54:51 UTC
Thanks for this great wrapper. You've got some solid, intuitive code here.

I have a question about accessing character info, though. If I wanted to get basic character sheet info (for something like EveMon), it looks like the way I'd get the info for each character is to:

Quote:
Grab the API info using only the ID and Verification code

Get ApiKeyInfo

Get Character ID's from ApiKeyInfo

Get the api three new times, one each with character ID (for characters 1 through 3).

Work with those individual instances of api data.


Just checking to see if this is right, or I'm missing something -- at first the thought of so many calls seemed odd, but it accesses cached info so it should be okay to make multiple calls, right?

dan Rotsuda
State War Academy
Caldari State
#62 - 2012-01-24 21:17:23 UTC  |  Edited by: dan Rotsuda
I have an API for both my characters on 1 account! How can i get 1 or 2 character with your dll, like apigetinfo().character or somthing else!
Jognu
French Kiss Singularity
#63 - 2012-01-25 13:12:56 UTC
Harleigh > I'll create a little app to show you how to do that.

dan Rotsuda > for your nullreference, you should use auth.CharacterID = **** if you have an API with all characters of the account.
To get the characters list, use : api.getApiKeyInfo()


Jerik Telorian > yes you have the good process.
You can use the same api object each time, just change the Auth data.

You have a cache for each function of the API and for each auth data.
So if you get CharacterSheet for api key id xxx and character id xxx you have a cache, and you have another one if you call the same api with a different key id or a different character ID.

I'll make a release with the modifications of Crucible 1.1 as soon as they release the static data.

EveAI developper: https://forums.eveonline.com/default.aspx?g=posts&t=21803

dan Rotsuda
State War Academy
Caldari State
#64 - 2012-01-26 06:42:30 UTC  |  Edited by: dan Rotsuda
Pplease help!
My code for api.getApiKeyInfo is in C#:

APIKeyInfo AKI = api.getApiKeyInfo();

listBox1.Items.Add(AKI.Characters);

something wrong i know! But what should i write to see an CharacterID and other in my listbox?

in result i see (Collection) in listBox field!!!

And how can i get a character portrait?
Jognu
French Kiss Singularity
#65 - 2012-01-26 08:57:43 UTC
Ok, for Harleigh and dan Rotsuda, try this little demo app : http://sparklin.org/eveai/demoEveAI.zip
It show you how to list the characters of an API key on a listbox, and how to list research & production jobs not completed on a listbox.

Look on the property of the listbox to know how I display which information.

EveAI developper: https://forums.eveonline.com/default.aspx?g=posts&t=21803

dan Rotsuda
State War Academy
Caldari State
#66 - 2012-01-26 10:08:55 UTC
Thanks for the test! But where i can find a portrait of character?
Jognu
French Kiss Singularity
#67 - 2012-01-26 10:54:07 UTC
You can use the ImageServer class of EveAI if you want to download the portrait.
Or you just use the URL : https://image.eveonline.com/Character/ID_size.jpg
For example https://image.eveonline.com/Character/1662056138_512.jpg

EveAI developper: https://forums.eveonline.com/default.aspx?g=posts&t=21803

Harleigh
Genbuku.
Psycho Unicorn Squad
#68 - 2012-01-28 05:42:02 UTC
Jognu wrote:
Ok, for Harleigh and dan Rotsuda, try this little demo app : http://sparklin.org/eveai/demoEveAI.zip
It show you how to list the characters of an API key on a listbox, and how to list research & production jobs not completed on a listbox.

Look on the property of the listbox to know how I display which information.




Dude .. you rock . Thanks for the great work on this wrapper and assisting a noob like myself :)

Jognu
French Kiss Singularity
#69 - 2012-01-28 16:38:55 UTC
A first release with just the new static data (I will release another one later with the modifications on the API).
Quote:

Version 2.3.0.0

  • New static data (Crucible_1.1_334471)

EveAI developper: https://forums.eveonline.com/default.aspx?g=posts&t=21803

dan Rotsuda
State War Academy
Caldari State
#70 - 2012-01-31 18:03:51 UTC  |  Edited by: dan Rotsuda
Well, i have a problem or question, i don`t know how it looks!
2 characters on 1 account, and user create Customizable API keys for All Character! Can i get Customizable API keys for each character(1,2,3), or he should to create Customizable API keys for each character manually and then send it to me!!!!
How can i get type of skills for some item, for example - drake!
Tairia Lor'than
Stellar Excavations
#71 - 2012-02-01 19:44:09 UTC
Awsome work Jognu!

If you got time for it sometimes, please could you implement overloads for the relevant Get functions to allow transactions, journal etc walking in basic mode too?

Example: GetCorporationWalletTransactions() method currently has two overloads: one without accepting account key as parameter, and one with it.

Two others would be:

+1) GetCorporationWalletTransactions(int accountKey, int rowCount)
+2) GetCorporationWalletTransactions(int accountKey, int rowCount, long fromTransactionID)

Would be cool. Till that i keep trying advanced mode.. .;]

thanks!

tai
dan Rotsuda
State War Academy
Caldari State
#72 - 2012-02-04 09:47:44 UTC
well! i can get from character all learned skills from him! How can i compare his skills with skills needed to fly on drake!
i need to get items skills! How?
LazurusDemon
Riemannian Manifold Torus
#73 - 2012-02-13 23:30:39 UTC
Hey Jognu,

Great work on keeping this project going! It's just awesome.

An issue I'm having trouble with however is that I'm after a list of current, unfinished, production jobs in a listbox, now I got the code working as I get a load of jobs listed. The thing is it's listing every single job I've ever done, except the ones that are currently running? Am I doing something wrong?

Thanks for the help ^_^
dan Rotsuda
State War Academy
Caldari State
#74 - 2012-02-25 16:42:58 UTC  |  Edited by: dan Rotsuda
HI! Please help me where in library i can get skills for some ship! I can`t find anything(((( for ex. i want to see what skills i need to fly on Boa etc.
Almeiti du Larr
University of Caille
Gallente Federation
#75 - 2012-02-25 20:19:08 UTC  |  Edited by: Almeiti du Larr
Hey there,

Ran into a bug with the wallet journal API. If you try and use the multipart query, it gets caught in an infinite loop.
The problem seems to be that ProcessXmlData() does not update FromID, so it keeps requesting the same data from the server over and over again.

Would you be able to fix this one and release a patch? I'd be happy to fix/test myself if you send me the source.

thx!

Edit: I'm using 2.3.0.0 BTW
Jognu
French Kiss Singularity
#76 - 2012-02-26 11:02:23 UTC
Hello,
I'll take a look at your requests !

EveAI developper: https://forums.eveonline.com/default.aspx?g=posts&t=21803

Jognu
French Kiss Singularity
#77 - 2012-02-28 14:15:52 UTC
dan Rotsuda > you can't get this info from the library.
But you could take the sql export from CCP and use the SQL request write by CCP Prisx X : https://forums.eveonline.com/default.aspx?g=posts&m=662032#post662032

With this you can easily find the skills needed for a ship !

Tairia Lor'than > I just saw that the fromID and rowCount doesn't work for walletTransaction. I fixed this in the last release.
For the moment you still need to use the advanced mode for this two options.

Almeiti du Larr > Can you try with this realease ? It should work better.

LazurusDemon > Take a look at this post : https://forums.eveonline.com/default.aspx?g=posts&m=710321#post710321

Quote:

Version 2.3.1.0

  • Fix the rowCount and fromID for WalletTransactionApi
  • Fix an issue with the WalletJournalApi

EveAI developper: https://forums.eveonline.com/default.aspx?g=posts&t=21803

Gorn Che
Fly By Logistics
#78 - 2012-02-28 17:28:42 UTC
HI
I am having an issue with the MemberTrackingApi. I think that CCP split the requests in to a limited and extended member details which have there own access masks. to get access to the extended info you need to put &extended=1 on the end of the request body.

I have tested this with fiddler and it works. I am wondering if there is a way I can inject this value on the end of the request at the moment of making the call?

Great Work By the way.
Almeiti du Larr
University of Caille
Gallente Federation
#79 - 2012-02-29 01:49:09 UTC
Jognu wrote:

Almeiti du Larr > Can you try with this realease ? It should work better.


Hi Jognu,

Thanks. D/L v2.3.1 but still have the infinite loop. I was able to reproduce and fix it using reflector, BTW.

The problem is here in EveAPIBase:
while (this.MultiPartRequestQuery != null)
{
data = this.PerformWebRequest(ref error);
error = !this.UpdateDataInternal(data, ref document, true, false);
if (error)
{
break;
}
}

For the wallet journal, the MultiPartRequestQuery property is not returning null so the loop never exits. The way I got it to work is to do this in WalletJournalApi:

if ((num2 != 0) && ((this.FindDataEntry(num).DateLocalTime + EveApiBase.maximumMultiPartTime) >= DateTime.Now))
{
this.fromID = num;
}
else
{
this.fromID = -1;
this.RowCount = -1;
}

Note that both fromID and RowCount need to be set to -1 once we run out of nodes. This will allow the loop to exit.
Marcus Sworaven
Falcon Regiment
#80 - 2012-03-04 20:06:24 UTC  |  Edited by: Marcus Sworaven
I'm trying to extract transactions for each wallet from my corp. I'm using this for loop:
Quote:
For i As Integer = 0 To 6
CorpWalletTransactions(i) = apiCorp.GetCorporationWalletTransactions(1000 + i)
Next


CorpWalletTransactions is declared as follows:
Quote:
Public CorpWalletTransactions(6) As List(Of EveAI.Live.TransactionEntry)

CorpWalletTransactions(6) = New List(Of EveAI.Live.TransactionEntry)


When I extract the first wallet (the master wallet) it shows 0 transactions. Which is correct. Then I extract the second wallet, which shows a number of transactions, also correct. But when I extract the remaining wallets (which should be empty) I get the transactions identical to the second wallet.

I get the same result when I declare the wallets separately.

Am I missing something? Am I doing something wrong?