Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 .. 26 :: one page |
|
Author |
Thread Statistics | Show CCP posts - 2 post(s) |
Amida Ta
|
Posted - 2007.12.08 02:14:00 -
[1]
Had some time to fiddle around a bit and here is the result:
A .Net 2.0 class library to easily access the EVE APIs named EveAI Live.
Using the library is very simple e.g.: EveApi api = new EveApi (); List<Alliance> alliances = api.GetAllianceData ();
This is version 0.1 Preview. Feel free to use it and if you like it send some ISK to me. The Archive come with a small example application that simply displays the retrieved data.
EveAI.Live 0.1 Preview
Please note that not everything is working because the library is already prepared for the EVE API 2 which is not active yet.
|
Amida Ta
|
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
|
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
|
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 DEEzNUTS-DzN
|
Posted - 2007.12.17 21:53:00 -
[6]
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.
Any help would be great.
|
Amida Ta
|
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
|
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
|
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
|
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
|
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
|
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 Ka-Tet
|
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)
It was like a baby, it landed on my lap and was helpless and totally defenseless. Then I shot it and bragged about it on a killboard.
|
Amida Ta
|
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
|
Posted - 2008.01.06 20:20:00 -
[17]
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.
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
|
Posted - 2008.01.06 20:21:00 -
[18]
I forgot to add: this is a great project, and very useful. I am still waiting for director roles, I will get you anonymized starbase sample files as soon as I can.
Shout if I can help in any other way.
|
Sister Madeline
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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
|
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 10 11 12 13 14 15 16 17 18 19 20 .. 26 :: one page |
First page | Previous page | Next page | Last page |