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.
 

[EveLib] A .NET library for EveXML, CREST, EveCentral, and more

First post
Author
Xiaou Bijoun
Imperial Academy
Amarr Empire
#381 - 2016-04-27 19:38:42 UTC
That seems to have fixed the problem with creating a ZKillboard object.

Thanks again.
Icahmura Hasaki
Perkone
Caldari State
#382 - 2016-04-27 19:41:39 UTC
Xiaou Bijoun wrote:
That seems to have fixed the problem with creating a ZKillboard object.

Thanks again.


I will be uploading a pre-release of zkb to nuget shortly with support for the stats endpoint if you're interested :)

Developer of EveLib and EveAuthUtility

Icahmura Hasaki
Perkone
Caldari State
#383 - 2016-04-27 19:50:39 UTC
Pre-release of ZKB with stats support available here, let me know if there are any issues :)
https://www.nuget.org/packages/eZet.EveLib.ZKillboard/3.0.4-beta1

Developer of EveLib and EveAuthUtility

Icahmura Hasaki
Perkone
Caldari State
#384 - 2016-04-29 17:38:35 UTC
New version of EveCrest: https://github.com/ezet/evelib/releases/tag/EveCrest_v3.4.1

Added support for characterstats and fixed a recently introduced bug caused by a change on CCPs end.

Use crest.GetCharacterStats(id) to get stats. AggregateYears is a dictionary of ExpandoObjects as values, dynamically created at runtime. The propertynames match the json names, but are converted to PascalCase.

Developer of EveLib and EveAuthUtility

Icahmura Hasaki
Perkone
Caldari State
#385 - 2016-05-02 18:10:58 UTC
EveXml: https://www.nuget.org/packages/eZet.EveLib.EveXml/3.0.8

Access masks should no longer cause integer overflows.

Developer of EveLib and EveAuthUtility

Xiaou Bijoun
Imperial Academy
Amarr Empire
#386 - 2016-05-03 18:39:38 UTC
Have you or are you intending on implementing the latest changes in the Citadel release?

For example the orders endpoint CCP recently added to get all orders from a region?

"Along with the buy and sell market order resources there is a new resource that gives you the both the buy and sell orders."

Thank you
Brain Gehirn
Macabre Votum
Northern Coalition.
#387 - 2016-05-03 20:21:57 UTC
Looks like that there is a problem with the AllianceCollection.
It is returning a conversion error. Looked like something about ID being Int64 but the generic collection is using the normal int (32).

I haven't had any issues with the direct conversion using the link to the alliance ID (that I am generating inside the code atm). But I probably haven't tested enough.

Let me know if you need something more specific and I will try to grab it when I get back home.
Icahmura Hasaki
Perkone
Caldari State
#388 - 2016-05-03 21:23:18 UTC
I've seen the updates, there is quite a lot of them. I intend to add them, but not sure when I will have the time to do so at the moment.

I'll look into the AllianceCollection this weekend, I'll send you an evemail if I need more information.

I'm currently looking into converting the project to a new format, and with that I'll hopefully be able to add support for uwp/uap and other platforms. I'm also looking into creating a library for CREST using dynamic types exclusively, possibly utilizing the metadata provided by HEAD requests, which would require far less maintenance. So many ideas, and so little time..

Developer of EveLib and EveAuthUtility

Brain Gehirn
Macabre Votum
Northern Coalition.
#389 - 2016-05-03 23:22:11 UTC  |  Edited by: Brain Gehirn
CREST authentication looks broken too:
- Under EveAuth_Tests, methods Authenticate and Refresh are returning error HTTP Error 400. (got the same in my application)


Edit: Alliance error was:
error invalid literal for long() with base 10: '2?'


Code:
 crest.GetRoot().Query(r => r.Alliances).Query(o => o.Where(alliance => alliance.Id == allianceId)).FirstOrDefault(); 



But since I have made a change to the AllianceCollection to be able to make this query, can be that.
The change is:

 public sealed class AllianceCollection : CollectionResource<AllianceCollection, AllianceCollection.Alliance> 



If you have some better alternative, let me know.
Bree Butter
Neptune PVP Corporation
Azure Citizen
#390 - 2016-05-04 09:47:32 UTC  |  Edited by: Bree Butter
Hi,

First of all, thanks for this cool library, every part has so far been working great for me. I just have one problem when deploying to my webhosting. I keep getting this error:

Access to the path '\EveLib\EveXmlCache' is denied.


I've been looking through this thread and your github pages and I've tried to change the cachefolder through my web.config as suggested:

< add key="eveLib.AppData" value="EveLib" / >


But the path is still based out of the AppData, which I dont have access to.

Ive also tried to create a new instance of the cache like so:

EveLibFileCache cache = new EveLibFileCache(Server.MapPath("~") + "\\EveLib", "LocalCache");


But this does not seem to affect the EveXml method I call afterwards.

Is there any way to force the library to use the application folder for its cache?

Thanks for your time o/
Icahmura Hasaki
Perkone
Caldari State
#391 - 2016-05-04 15:55:26 UTC
The cache config is a mess, on my TODO list. Try changing Config.AppData to the path you want, and remember to do so before creating your EveXml objects.

Developer of EveLib and EveAuthUtility

Icahmura Hasaki
Perkone
Caldari State
#392 - 2016-05-04 16:48:55 UTC  |  Edited by: Icahmura Hasaki
Brain Gehirn wrote:
CREST authentication looks broken too:
- Under EveAuth_Tests, methods Authenticate and Refresh are returning error HTTP Error 400. (got the same in my application)


Edit: Alliance error was:
error invalid literal for long() with base 10: '2?'


Code:
 crest.GetRoot().Query(r =&gt; r.Alliances).Query(o =&gt; o.Where(alliance =&gt; alliance.Id == allianceId)).FirstOrDefault(); 



But since I have made a change to the AllianceCollection to be able to make this query, can be that.
The change is:

 public sealed class AllianceCollection : CollectionResource&lt;AllianceCollection, AllianceCollection.Alliance&gt; 



If you have some better alternative, let me know.


Both the refresh and authenticate methods test fine here, granted you need to update the refresh token and authcode, as they are very old.

Regarding the AllianceCollection, what did you change exactly? Did you just rename AllianceCollection.AllianceData to AllianceCollection.Alliance, or ? Are you on the newest version of EveCrest and Core ?

In any case, your query should work without making any changes, and I just tested it here without errors. Also, you should place the predicates in your call to FirstOrDefault, so the method can return when it finds your alliance. As it is, it will always scan the whole collection because of your Where clause, which could result in 12 additional needless requests.


var alliance = crest.GetRoot().Query(r => r.Alliances).Query(list => list.FirstOrDefault(a => a.Id == allianceId));


edit: Send me an evemail if you still can't figure it out, we could chat somewhere to make it a bit easier

Developer of EveLib and EveAuthUtility

Bree Butter
Neptune PVP Corporation
Azure Citizen
#393 - 2016-05-04 17:44:08 UTC
Icahmura Hasaki wrote:
The cache config is a mess, on my TODO list. Try changing Config.AppData to the path you want, and remember to do so before creating your EveXml objects.


Hi, thanks for the quick response. I've tried to change the AppData, but it won't let me because it is readonly:

http://i.imgur.com/H9GTUPo.png
Icahmura Hasaki
Perkone
Caldari State
#394 - 2016-05-04 17:51:37 UTC
Bree Butter wrote:
Icahmura Hasaki wrote:
The cache config is a mess, on my TODO list. Try changing Config.AppData to the path you want, and remember to do so before creating your EveXml objects.


Hi, thanks for the quick response. I've tried to change the AppData, but it won't let me because it is readonly:

http://i.imgur.com/H9GTUPo.png


Which version of Core are you using? I suspect you might be using an older version?

Developer of EveLib and EveAuthUtility

Bree Butter
Neptune PVP Corporation
Azure Citizen
#395 - 2016-05-04 17:59:44 UTC
Ah yes, i had 3.0.2 (only downloaded it like yesterday, you work fast xD) now ive upgraded to 3.0.7 and appdata can be set now, now i just need to figure out why it says that it cant find the cachefactory field Lol
Icahmura Hasaki
Perkone
Caldari State
#396 - 2016-05-04 18:04:31 UTC  |  Edited by: Icahmura Hasaki
If you're referring to CachePath, it's been converted form a field to a property, so you would need to recompile. I can't imagine you should need to set that property tho, instead set AppData to where you want the cache folder to be created.

nvm, I misread you. CacheFactory is still a property, you should be able to set it. But you shouldn't have to unless you need to change the default name of the cache folder, which is "Cache".

Developer of EveLib and EveAuthUtility

Icahmura Hasaki
Perkone
Caldari State
#397 - 2016-05-04 18:10:12 UTC
New version of EveCrest: https://www.nuget.org/packages/eZet.EveLib.EveCrest/3.4.2
Notes: https://github.com/ezet/evelib/releases/tag/EveCrest_v3.4.2

Added support for the new combined MarketOrder resource, since that was a quick fix.

The other new endpoints might take a little longer. If anyone has specific requests for an endpoint they need, please let me know and I'll find some time :)

Developer of EveLib and EveAuthUtility

Bree Butter
Neptune PVP Corporation
Azure Citizen
#398 - 2016-05-04 18:18:40 UTC
Ive gotten it to work, thanks!
Brain Gehirn
Macabre Votum
Northern Coalition.
#399 - 2016-05-04 22:49:53 UTC  |  Edited by: Brain Gehirn
Your answer gave me a direction for now (my source was not using AllianceData just the old href thing).
My visual studio wasn't updating things as I thought.

I will do my merge + tests again.



Edit: Everything is working as it should be. Thanks and sorry.
Aio Kaze
Black Shell Industries
#400 - 2016-05-05 13:07:36 UTC
The LP store endpoint would be very useful as I've been wanting to put together an LP profit calculator and don't fancy entering thousands of LP/ISK/item requirements by hand.