open All Channels
seplocked EVE Technology Lab
blankseplocked EveAI Live (EVE-Online API/class library for .Net/ C#/ VB.Net)
 
This thread is older than 90 days and has been locked due to inactivity.


 
Pages: [1] 2 3 4 5 6 7 8 9 ... : last (26)

Author Topic

Amida Ta
German Mining and Manufacture Corp.
Posted - 2007.12.08 02:14:00 - [1]
 

Edited by: Amida Ta on 18/11/2010 13:27:10
EveAI Live Version 1.3.5 has been released!

EveAI consists of several .Net/CLI 2.0 Libraries that can be used for development for Eve Online. EveAI is completely self-contained and does not need any database or other libraries except the .Net/Mono framework and runs on Windows and Linux.
It comes with a small test application.

Changes since last preview version:


Current version is:
http://dl.eve-files.com/media/corp/Foxfire/EveAI_Live_1.3.5.zip

Additional information (Descriptions, Samples etc.) is available at:
http://wiki.eve-id.net/EveAI

Amida Ta
German Mining and Manufacture Corp.
Posted - 2007.12.16 15:42:00 - [2]
 

Edited by: Amida Ta on 16/12/2007 15:43:01
EveAI.Live 0.2 Preview has been released. It is mostly feature complete and contains the entire Eve v2 API (minus a few problems - see below).

It comes together with a test application that can query most of the v2 APIs and displays an object-oriented result view.

EveAI.Live 0.2 Preview

Unfortunatelly I don't have access to a reasonably big set of results for:
KillLog, StarbaseDetail and StarbaseList APIs, so these are only halfway finished and completely untested. Please supply some DataFiles if possible.

With this version the default cache directory changed to Application Data\EveAI

Vincent Liftor
Posted - 2007.12.17 04:26:00 - [3]
 

Tried to download the EveAI 0.2 preview but I'm getting an error trying to expand the EveAI.Core.dll file. The specific error is: 0x80004005: Unspecified error. Helpful, huh?

Amida Ta
German Mining and Manufacture Corp.
Posted - 2007.12.17 07:39:00 - [4]
 

Edited by: Amida Ta on 17/12/2007 07:45:49
Originally by: Vincent Liftor
Tried to download the EveAI 0.2 preview but I'm getting an error trying to expand the EveAI.Core.dll file. The specific error is: 0x80004005: Unspecified error. Helpful, huh?

Thanks for the info. Just tried and it seems that the file became corrupt on eve-files...

Amida Ta
German Mining and Manufacture Corp.
Posted - 2007.12.17 08:05:00 - [5]
 

Edited by: Amida Ta on 17/12/2007 08:06:26
Originally by: Amida Ta
Edited by: Amida Ta on 17/12/2007 07:45:49
Originally by: Vincent Liftor
Tried to download the EveAI 0.2 preview but I'm getting an error trying to expand the EveAI.Core.dll file. The specific error is: 0x80004005: Unspecified error. Helpful, huh?

Thanks for the info. Just tried and it seems that the file became corrupt on eve-files...

Something is really fishy with eve-files. Tried to upload again and the file again became corrupted. Now I reduced the compression of the ZIP-file and everything seems to work -> Very strange...

Working URL is (replaced the old one): EveAI.Live 0.2 Preview

Gremrod
Minmatar
Cryptic Rebound Inc
Posted - 2007.12.17 21:53:00 - [6]
 

Edited by: Gremrod on 17/12/2007 22:00:23
I love it. Big time saver. I was getting ready to write my own wrapper when I found EveAI Live.

I was trying to figure one thing out though about the eve api. The map api how do we get region names, anyone know? I can see a regionid in the xml but nothing to relate that id to for the region name. I think I am over looking something.

oh to be clear I see regionid in the market logs you can export in game.

Any help would be great.

Amida Ta
German Mining and Manufacture Corp.
Posted - 2007.12.18 23:07:00 - [7]
 

For which API?
The manual region lookup is not yet implemented.
But you can simply browse the objects to get the region data.
E.g. if you have the SovereignityData you will get the Region name with:
sov.SolarSystem.Region.Name

Amida Ta
German Mining and Manufacture Corp.
Posted - 2007.12.19 23:07:00 - [8]
 

Additional info is available here:
http://wiki.eve-dev.net/EveAI

Etherna
Posted - 2007.12.20 04:56:00 - [9]
 

Good work! :) and as Gremrod was saying, it's indeed a big time saver.

Now I can check at work how my sales are going without having to manually download/read the XML every couple of hours :).



Skolima
Posted - 2007.12.20 11:12:00 - [10]
 

I'm still getting a "corrupted zip file" error when trying to extract the 0.2 Preview.

Amida Ta
German Mining and Manufacture Corp.
Posted - 2007.12.20 16:50:00 - [11]
 

Originally by: Skolima
I'm still getting a "corrupted zip file" error when trying to extract the 0.2 Preview.

Works for me. Maybe try to delete your cache.

La Dudette
State War Academy
Posted - 2007.12.31 12:45:00 - [12]
 

Hi there!

First of all, this is a great effort and very useful. A quick question around starbases details though:

The method GetCorporationStarbaseDetail() does not take a starbase ID as parameter. How do you intend it to be used?

I have not got round to using the method yet, awaiting director flag, but will want to soonish. I can then help you complete the POS API if you want.

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.05 17:48:00 - [13]
 

EveAI.Live 0.9 Preview has been released. It is basically feature complete and contains the entire Eve v2 API (minus a few problems - see below).

It comes together with a test application that can query most of the v2 APIs and displays an object-oriented result view.

EveAI.Live 0.9 Preview

I'm still missing XML files for:
KillLog, StarbaseDetail and StarbaseList APIs, so KillLog and StarbaseList is untested and StarbaseDetail is incomplete. Please supply some DataFiles if possible.

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.05 17:49:00 - [14]
 

Originally by: La Dudette
Hi there!

First of all, this is a great effort and very useful. A quick question around starbases details though:

The method GetCorporationStarbaseDetail() does not take a starbase ID as parameter. How do you intend it to be used?

I have not got round to using the method yet, awaiting director flag, but will want to soonish. I can then help you complete the POS API if you want.


That would be nice, however currently there is no method of specifying the starbaseID, as I have no data to test it.

Xaroth Brook
Minmatar
BIG
Gentlemen's Agreement
Posted - 2008.01.06 01:29:00 - [15]
 

Seeing as I don't have time to test this right now (as there's no source to fiddle with and this work puter doesn't do .net 2.0) (stupid terminals).
How is the caching done, one generic file, or numerous files, and if so, what's the confinement of em (I'm trying to get some ideas of building a cache server for myself since I tend to swap places quite a bit)

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.06 13:49:00 - [16]
 

Originally by: Xaroth Brook
Seeing as I don't have time to test this right now (as there's no source to fiddle with and this work puter doesn't do .net 2.0) (stupid terminals).
How is the caching done, one generic file, or numerous files, and if so, what's the confinement of em (I'm trying to get some ideas of building a cache server for myself since I tend to swap places quite a bit)

You can configure the cache directory to your linkings. Default is the application settings directory (Also see the link to eve-dev a few posts up).
The cache files are very similar to the original files that the server sends except query information gets coded in and some additional fields are added (like Timezone offsets and stuff).

La Dudette
State War Academy
Posted - 2008.01.06 20:20:00 - [17]
 

Edited by: La Dudette on 06/01/2008 20:33:54
Ok, moved to 0.9 from 0.2 and I now get errors. When checking LastErrors as follows:

if (api.LastErrors.Count > 0)
{
throw new Exception(api.LastErrors[0].ToString());
}

I persistently get "ClientMissingCacheFile". I deleted the EveAI directory in application data, same result. (Quick edit: I probably misunderstood how the error handling is supposed to work. Do you want us to check api.Result first and then errors? And if the results is not Error, the "errors" are not really errors?)

In your test application, when viewing alliance membership I got this:

************** Exception Text **************
System.OverflowException: Value was either too large or too small for an Int32.
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at EveAI.Live.Corporation.MemberTrackingApi.ProcessXMLData(XmlNode resultNode, Boolean clearExistingData)
at EveAI.Live.Utility.EveApiBase.UpdateDataInternal(String data, XmlDocument& document, Boolean liveData, Boolean ignoreCacheDate)
at EveAI.Live.Utility.EveApiBase.UpdateDataFromWeb()

I hope this helps!

La Dudette
State War Academy
Posted - 2008.01.06 20:21:00 - [18]
 

Edited by: La Dudette on 07/01/2008 00:26:56
I forgot to add: this is a great project, and very useful.

I have now got the required access, and have eve-mailed you starbase sample files: the list and a detail file.

I downloaded these using: http://games.chruker.dk/eve_online/test_eve_api.php

I found a few more issues cropping up:

- During member list access, and starbase list get: AuthenticationSecurityLevelNotHighEnough. No idea what that is - I can get them through the PHP link above.
- ClientMissingCacheFile, mixed in with it

When viewing starbase list through the helper GUI you included, I get:

System.NullReferenceException: Object reference not set to an instance of an object.
at EveAI.Live.Corporation.StarbaseListApi.ProcessXMLData(XmlNode resultNode, Boolean clearExistingData)
at EveAI.Live.Utility.EveApiBase.UpdateDataInternal(String data, XmlDocument& document, Boolean liveData, Boolean ignoreCacheDate)

Please let me know what else I can do to help.

Sister Madeline
Amarr
Ka-Tet
Posted - 2008.01.07 11:21:00 - [19]
 

Also, if you try to look at one char's character sheet, then try to do the same for another character on the same account you will get the other char's sheet info, as it's saying "NotUpdatedCacheActive"

While at the same time i do see that the charactersheet file is named 'properly'.

I tested this, if you supply an erroneous api key it will still return the 'proper' info, as such bypassing api security.. it might be useful to use encryption for this.

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.07 20:37:00 - [20]
 

Edited by: Amida Ta on 07/01/2008 20:42:43
Originally by: Sister Madeline
Also, if you try to look at one char's character sheet, then try to do the same for another character on the same account you will get the other char's sheet info, as it's saying "NotUpdatedCacheActive"

While at the same time i do see that the charactersheet file is named 'properly'.


This should be fixed in the next release. The memory cache was not properly invalidated.
Originally by: Sister Madeline

I tested this, if you supply an erroneous api key it will still return the 'proper' info, as such bypassing api security.. it might be useful to use encryption for this.

This is by design. It will return cached data if it can retrieve it. The data is stored in your user profile, so it is save in your profile. And if anybody can fully access your computer account then there is no sense in using encryption either because you could easily bypass it.

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.07 20:45:00 - [21]
 

Originally by: La Dudette

I persistently get "ClientMissingCacheFile". I deleted the EveAI directory in application data, same result. (Quick edit: I probably misunderstood how the error handling is supposed to work. Do you want us to check api.Result first and then errors? And if the results is not Error, the "errors" are not really errors?)

This is by design. You should now only need to check the Result. Errors just contains various information about what went wrong internally (e.g. that no Cachfile is existing or that it has an invalid structure and so on).

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.07 23:17:00 - [22]
 

Just uploaded a small update (Version 0.9.1):

EveAI.Live 0.9.1 Preview

La Dudette
State War Academy
Posted - 2008.01.09 10:44:00 - [23]
 

Great - I dropped this in, and I can now retrieve member details and the starbase list without errors.

I sent you another mail with the correct URL of a starbase detail sample - I hope this will help.

One other thing: to calculate accurately the amount of fuel remaining in a starbase, and also for user information, I need the cachedUntil value from the messages. Is there any way you can expose that as a property, say, LastCachedUntil on the API class?

Many thanks! LD

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.09 22:36:00 - [24]
 

Edited by: Amida Ta on 09/01/2008 22:41:04
Ok, the details should now work, too.
I also added a LastUpdateTime property (Last API update in local time), however I don't like those Last* properties altogether in the simple mode API (the complex one had this for ages).
It might be interesting to add a property like remaining time for the starbase-resources anyways.

EveAI.Live 0.9.2 Preview

Some other small changes as well, but you'll see ;)

La Dudette
State War Academy
Posted - 2008.01.09 23:57:00 - [25]
 

Ok, dropped this in too.. am I mistaken or do I have to check the error code against 5 different possible error conditions everytime I call the API now? :P

As it stands, I still won't be able to use the starbase details API - I can't specify the starbase I want the details for. What I need to do is:

1. Get the starbase list
2. Go through the list, get the details for each tower (this will probably have to be a parameter for CorporationStarbaseDetails

Also, you are right about the last updated.. in fact, the value that will actually be necessary is the cachedUntil that CCP supplies - because that indicates when they last updated the API results from the actual game engine. There is no way you or I can derive that, it has to be passed on.

Thx for those continuing fast responses :)

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.10 08:06:00 - [26]
 

Originally by: La Dudette
Ok, dropped this in too.. am I mistaken or do I have to check the error code against 5 different possible error conditions everytime I call the API now? :P


There is a flag called Error that you can check the bits for that is true for every error (if (error & ErrorFlags.Error) )

Originally by: La Dudette

As it stands, I still won't be able to use the starbase details API - I can't specify the starbase I want the details for. What I need to do is:

1. Get the starbase list
2. Go through the list, get the details for each tower (this will probably have to be a parameter for CorporationStarbaseDetails


Other than limitations on server side caching I don't see why this wouldn't currently work.
You can set the ID with StarbaseID in the AuthenticationData (Use Advanced in the Test client)

Originally by: La Dudette

Also, you are right about the last updated.. in fact, the value that will actually be necessary is the cachedUntil that CCP supplies - because that indicates when they last updated the API results from the actual game engine. There is no way you or I can derive that, it has to be passed on.

Thx for those continuing fast responses :)

Can you explain why you believe cachedUntil will help in that situation? Afaik the current implementation is correct and will give you the correct server update time (however converted to local system time).
If you work with the complex mode API there is a ClientUtcTimeOffset and Server UtcTimeOffset property to get more information. However you don't really need that because you can determine the ClientUtcTimeOffset from DateTime.

La Dudette
State War Academy
Posted - 2008.01.11 17:53:00 - [27]
 

Great! I now have everything working that I wanted to work. I'm still fiddling with trying to get moon information (the moon names of a POS), but will try to sort that out later.

As for the cache status. As I understand it, the cachedUntil for starbases indicates until when the API server will cache information before asking the game servers, e.g.:

API client <-> API server <-> Game server

From the cachedUntil, I want to compute when the API server queried the game server, because I know the timeout is 6 hours. So I take cachedUntil - 6 and use that.

What do you think?

La Dudette
State War Academy
Posted - 2008.01.14 00:10:00 - [28]
 

I have release the first version of my tool using EveAI Live.

Thread

Many thanks Amida! Credit duly given.

Amida Ta
German Mining and Manufacture Corp.
Posted - 2008.01.14 21:59:00 - [29]
 

Another small update:
This time some love goes to CharacterSheet and SkillInTraining which now contain most of the basic formulas like total skillpoints, time required to learn skills, total attributes and so on...
EveAI.Live 0.9.3 Preview

La Dudette
State War Academy
Posted - 2008.01.16 11:58:00 - [30]
 

I have not yet had the time to upgrade, alas...

However, I recently noticed that on some API calls the locations do not get resolved. For example, the solar system names on calls to the asset API are not resolved - the location is only resolved when it is a station.

Similar, the moon names on starbases.

I currently work around by shipping with my own moon identifier list. Is the plan that the API will provide only the IDs, or will it fully resolve? Either way is fine, but would be good to know :)

Many thanks.


Pages: [1] 2 3 4 5 6 7 8 9 ... : last (26)

This thread is older than 90 days and has been locked due to inactivity.


 


The new forums are live

Please adjust your bookmarks to https://forums.eveonline.com

These forums are archived and read-only