Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] [15]:: one page |
|
Author |
Thread Statistics | Show CCP posts - 2 post(s) |
Icahmura Hasaki
Perkone Caldari State
31
|
Posted - 2016.06.14 16:44:34 -
[421] - Quote
With all the breaking changes to CREST, I will probably not be actively developing or supporting EveCrest anymore, it's simply too time consuming to keep up with all the changes.
I will focus on DynamiCrest, and my first priority is to add support for PUT and DELETE requests. If you are currently using GET and POST requests, I would suggest you replace EveCrest with DynamiCrest. The syntax and feature set is almost identical, and it's a lot more future proof.
As always, if anyone is having issues or need help in general, I'm more than happy to help. I expect to be able to put some work in towards DynamiCrest over the next couple of weeks.
Developer of EveLib and EveAuthUtility
|
Mathliney Kagrel
Too Many Miners
0
|
Posted - 2016.06.14 17:49:13 -
[422] - Quote
Icahmura Hasaki wrote:With all the breaking changes to CREST, I will probably not be actively developing or supporting EveCrest anymore, it's simply too time consuming to keep up with all the changes.
I will focus on DynamiCrest, and my first priority is to add support for PUT and DELETE requests. If you are currently using GET and POST requests, I would suggest you replace EveCrest with DynamiCrest. The syntax and feature set is almost identical, and it's a lot more future proof.
As always, if anyone is having issues or need help in general, I'm more than happy to help. I expect to be able to put some work in towards DynamiCrest over the next couple of weeks.
Will give Dynamic version a try then.
Can you explain in a few words what are the main differencies between regular and dynamic version ? I mean why "dynamic" for example ? |
Icahmura Hasaki
Perkone Caldari State
31
|
Posted - 2016.06.14 18:11:43 -
[423] - Quote
https://forums.eveonline.com/default.aspx?g=posts&m=6487983#post6487983 https://blogs.msdn.microsoft.com/csharpfaq/2009/09/30/dynamic-in-c-4-0-introducing-the-expandoobject/
Developer of EveLib and EveAuthUtility
|
Mathliney Kagrel
Too Many Miners
0
|
Posted - 2016.06.14 21:47:21 -
[424] - Quote
Dread Griffin wrote:It seems executing a foreach loop on your eZet.EveLib.DynamicCrest.Expando object works fine until the end when I get an exception for the object not containing a definition for 'next'. I've looked up ways to identify if an ExpandoObject contains a given method, but I don't think you can use them to control a foreach call.
I'm currently just catching and suppressing the exception and everything is going fine. I'm not sure if I need to be doing something different or if your object could end a foreach differently.
Yep, having the same error for every kind of resource, easy to avoid btw.
So far, I really like this dynamic version, easier to use imho.
Nice work. |
Mathliney Kagrel
Too Many Miners
0
|
Posted - 2016.06.18 14:04:16 -
[425] - Quote
I have a small problem but kinda blocking : how can we get for example market history for a said item in a said region ?
I mean I can get every orders (thanx to "orderAll") but the same question would apply if I only want to get Jita orders for Tritanium (usual example).
Let's say we have something like this (several steps just to step in with debugger) :
var regionId = 10000002; var typeId = 34;
var crest = new DynamicCrest();
var root = await crest.GetAsync(crest.Host); var regions = await root.GetAsync(r => r.regions); var tmpRegion = await regions.GetAsync(a => a.FirstOrDefault(o => o.id == regionId));
//here it fails since it needs typeId somehow... var tmpHistory = await tmpRegion.GetAsync(h => h.marketHistory);
Can someone give me an example of the correct syntax to do this ?
Regards |
Icahmura Hasaki
Perkone Caldari State
31
|
Posted - 2016.06.18 14:46:54 -
[426] - Quote
See if this works:
var itemUrl = "https://crest-tq.eveonline.com/types/589/"; var tmpHistory = await tmpRegion.GetAsync(h => h.marketHistory, "type", itemUrl);
Obviously you don't want to hardcode the url like that for production code, but rather find the item url through CREST. Let me know if it works, if not I'll try to find the time to fix it. This is how it's done in EveCrest, I can't remember if I implemented it in DynamiCrest.
Developer of EveLib and EveAuthUtility
|
Mathliney Kagrel
Too Many Miners
0
|
Posted - 2016.06.18 14:49:34 -
[427] - Quote
Icahmura Hasaki wrote:See if this works: var itemUrl = "https://crest-tq.eveonline.com/types/589/"; var tmpHistory = await tmpRegion.GetAsync(h => h.marketHistory, "type", itemUrl);
Obviously you don't want to hardcore the url like that for production code, but rather find the item url through CREST. Let me know if it works, if not I'll try to find the time to fix it. This is how it's done in EveCrest, I can't remember if I implemented it in DynamiCrest.
Thank you for reply,
Already tried this way but "GetAsync" only takes 1 argument, not 3, maybe I should use a List for arguments ?
I don't mind using direct URL like this, I can build it with SDE info or grab it from CREST, not a big deal. |
Icahmura Hasaki
Perkone Caldari State
31
|
Posted - 2016.06.18 14:53:18 -
[428] - Quote
Mathliney Kagrel wrote:Icahmura Hasaki wrote:See if this works: var itemUrl = "https://crest-tq.eveonline.com/types/589/"; var tmpHistory = await tmpRegion.GetAsync(h => h.marketHistory, "type", itemUrl);
Obviously you don't want to hardcore the url like that for production code, but rather find the item url through CREST. Let me know if it works, if not I'll try to find the time to fix it. This is how it's done in EveCrest, I can't remember if I implemented it in DynamiCrest. Thank you for reply, Already tried this way but "GetAsync" only takes 2 arguments, not 3, maybe I should use a List for arguments ? I don't mind using direct URL like this, I can build it with SDE info or grab it from CREST, not a big deal.
What is the expected type if the second argument? I don't have access to the code here and it's been a while since I worked on it last. In any case, parameters probably aren't supported then. I'll see if I can fix that this week.
edit: Oh, actually, you can append "?type=https://crest-tq.eveonline.com/inventory/types/18/" to tmpRegion.marketHistory.Url or Href or whatever property has the url, and then perform the query, that should work. It's a bit of a hack, but you should be able to get it working, and it shouldnt cause any issues with future releases.
Developer of EveLib and EveAuthUtility
|
Mathliney Kagrel
Too Many Miners
0
|
Posted - 2016.06.18 15:03:44 -
[429] - Quote
Icahmura Hasaki wrote:Mathliney Kagrel wrote:Icahmura Hasaki wrote:See if this works: var itemUrl = "https://crest-tq.eveonline.com/types/589/"; var tmpHistory = await tmpRegion.GetAsync(h => h.marketHistory, "type", itemUrl);
Obviously you don't want to hardcore the url like that for production code, but rather find the item url through CREST. Let me know if it works, if not I'll try to find the time to fix it. This is how it's done in EveCrest, I can't remember if I implemented it in DynamiCrest. Thank you for reply, Already tried this way but "GetAsync" only takes 2 arguments, not 3, maybe I should use a List for arguments ? I don't mind using direct URL like this, I can build it with SDE info or grab it from CREST, not a big deal. What is the expected type if the second argument? I don't have access to the code here and it's been a while since I worked on it last. In any case, parameters probably aren't supported then. I'll see if I can fix that this week. edit: Oh, actually, you can append "?type=https://crest-tq.eveonline.com/inventory/types/18/" to tmpRegion.marketHistory.Url or Href or whatever property has the url, and then perform the query, that should work. It's a bit of a hack, but you should be able to get it working, and it shouldnt cause any issues with future releases.
Will try to append url completin string.
Candidates are
Task"Expando" GetAsync(Func"dynamic,ExpandoObject")
and
Task"Expando" GetAsync(Func"List"dynamic",ExpandoObject")
Sorry for the "" but forum doesn't accept Greater and Lower than symbols... |
Mathliney Kagrel
Too Many Miners
0
|
Posted - 2016.06.18 15:05:02 -
[430] - Quote
Icahmura Hasaki wrote:Mathliney Kagrel wrote:Icahmura Hasaki wrote:See if this works: var itemUrl = "https://crest-tq.eveonline.com/types/589/"; var tmpHistory = await tmpRegion.GetAsync(h => h.marketHistory, "type", itemUrl);
Obviously you don't want to hardcore the url like that for production code, but rather find the item url through CREST. Let me know if it works, if not I'll try to find the time to fix it. This is how it's done in EveCrest, I can't remember if I implemented it in DynamiCrest. Thank you for reply, Already tried this way but "GetAsync" only takes 2 arguments, not 3, maybe I should use a List for arguments ? I don't mind using direct URL like this, I can build it with SDE info or grab it from CREST, not a big deal. What is the expected type if the second argument? I don't have access to the code here and it's been a while since I worked on it last. In any case, parameters probably aren't supported then. I'll see if I can fix that this week. edit: Oh, actually, you can append "?type=https://crest-tq.eveonline.com/inventory/types/18/" to tmpRegion.marketHistory.Url or Href or whatever property has the url, and then perform the query, that should work. It's a bit of a hack, but you should be able to get it working, and it shouldnt cause any issues with future releases.
Btw, what is the simpliest way to request an url directly with this API ?
May be useful sometimes I think... |
|
Icahmura Hasaki
Perkone Caldari State
31
|
Posted - 2016.06.18 15:09:13 -
[431] - Quote
You are already doing that here:
var root = await crest.GetAsync(crest.Host);
You should be able to request any url using that :)
Developer of EveLib and EveAuthUtility
|
Mathliney Kagrel
Too Many Miners
0
|
Posted - 2016.06.18 15:16:25 -
[432] - Quote
Icahmura Hasaki wrote:You are already doing that here: var root = await crest.GetAsync(crest.Host); You should be able to request any url using that :)
Yep, just figured :)
Will be handy for sure. |
Mathliney Kagrel
Too Many Miners
0
|
Posted - 2016.06.21 07:13:15 -
[433] - Quote
Dread Griffin wrote:It seems executing a foreach loop on your eZet.EveLib.DynamicCrest.Expando object works fine until the end when I get an exception for the object not containing a definition for 'next'. I've looked up ways to identify if an ExpandoObject contains a given method, but I don't think you can use them to control a foreach call.
I'm currently just catching and suppressing the exception and everything is going fine. I'm not sure if I need to be doing something different or if your object could end a foreach differently.
Beside try...catch you can also use foreach on the expando["items"] and then check for ["next"] to send a new request and treat ["items"] from reply, rince and repeat until ["next"] is null.
Not as convenient but :
1) won't raise exception 2) you can send all requests concurrently, would be faster
Icahmura is surely working on a fix anyway but sending several requests concurrently is a good thing anyway if you ask me. |
Xiaou Bijoun
The Society of Mutual Respect Care Factor
1
|
Posted - 2016.06.24 16:02:44 -
[434] - Quote
I know you are probably concentrating on dynamic crest right now but I have an issue with the xml api for GetPlanetaryPins, the times have no information in them and the QuantityPerCycle is always 0. Everything else is fine.
Thank you.
|
Ashley Traynor
Lazerhawks
0
|
Posted - 2016.07.27 22:37:44 -
[435] - Quote
So far I'm pulling my hair out over this. I'm a little new to vb so I might be doing something stupid but this is what i have here:
http://i.imgur.com/ClPkf5p.png
I think I can see why it doesn't work... but could someone help me at all? I'm just trying to use the eve API with XML to write to a Datatable which i can use to fill am ASP Gridview anddisplay corp history
|
White 0rchid
SniggWaffe WAFFLES.
10
|
Posted - 2016.08.02 17:33:18 -
[436] - Quote
Icahmura Hasaki wrote:Yeah, the cache folder is in the users Appdata folder on windows machines. This will be a lot easier to change in the next version, but I haven't gotten around to fix it yet. I'm still out for a few days so I won't be able to fix that quite yet unfortunately. You can try changing the cache path before creating the character object
Core.Config.CacheFactory = () => new EveLibFileCache(yourPath + "EveXmlCache", "register");
Or to change the cache on an existing object, set the cache directly
character.RequestHandler.Cache = new EveLibFileCache(yourPath + "EveXmlCache", "register");
It's not letting me do this for some reason. I can't figure out why these permissions dont work.
I'm writing an ASP MVC website and it keeps erroring on the cache, yet all my user accounts have access to AppData. |
|
CCP Phantom
C C P C C P Alliance
7347
|
Posted - 2016.12.19 13:28:45 -
[437] - Quote
Thread has been unlocked on request. Originally the thread was automatically locked by the forum software due to inactivity.
CCP Phantom - Senior Community Developer
|
|
Icahmura Hasaki
Perkone Caldari State
32
|
Posted - 2016.12.19 18:28:21 -
[438] - Quote
I've just updated most of the modules with bugfixes, which should resolve most of the bugs that have been introduced by new versions of the APIs and Eve Online.
Affected modules are: Core EveXml Crest EveCentral EveStaticData ZKillboard
There are probably some bugs still lingering, but I wanted to publish this update as soon as possible while I still have time. As always, report any bugs here or on github and I'll try to help you.
I do not intent to implement any new features for this library since there is a new API coming. I might finish post/put/delete operations for the dynamic crest library, if time permits.
I'm working on a .NET client for the ESI API, let me know if you're interested in testing it.
Developer of EveLib and EveAuthUtility
|
Zetsubou Gakusei
Pupper Appreciation Station White Stag Exit Bag
5
|
Posted - 2016.12.23 18:54:08 -
[439] - Quote
Thanks for updating the library, I recently got back into eve and now I'm again checking out development and I turned again to this lib.
I'm still trying to get the basics done, it's a bit hard though because there are no examples.
By the way what's the difference between the CREST and the Dynamic CREST library? |
Icahmura Hasaki
Perkone Caldari State
32
|
Posted - 2016.12.29 10:14:49 -
[440] - Quote
Zetsubou Gakusei wrote:Thanks for updating the library, I recently got back into eve and now I'm again checking out development and I turned again to this lib.
I'm still trying to get the basics done, it's a bit hard though because there are no examples.
By the way what's the difference between the CREST and the Dynamic CREST library?
I don't know the status of ESI yet (is it usable?) but if it works then I'm very interested in testing it out
There are examples here: https://github.com/ezet/evelib/wiki/Module:-EveCrest https://github.com/ezet/evelib/blob/master/EveLib.Tests/EveCrest_Authed_Tests.cs https://github.com/ezet/evelib/blob/master/EveLib.Tests/EveCrest_Public_Tests.cs
CREST uses typed classes for API data, while dynamic CREST uses dynamically created expando objects.
Developer of EveLib and EveAuthUtility
|
|
Aeon Haginen
Hogyoku Goonswarm Federation
0
|
Posted - 2017.01.10 12:36:36 -
[441] - Quote
Icahmura Hasaki wrote:I'm working on a .NET client for the ESI API, let me know if you're interested in testing it.
It's not needed. You can auto generate .NET client using official swagger generator at "https://generator.swagger.io/". I've already created small (140 lines including usings and comments) C# program that can automatically download autogenerated .NET library for latest ESI version, extract it and update my sollution with it. Can share it if someone want. |
Zetsubou Gakusei
All-Out White Stag Exit Bag
5
|
Posted - 2017.01.10 12:49:03 -
[442] - Quote
Aeon Haginen wrote:Icahmura Hasaki wrote:I'm working on a .NET client for the ESI API, let me know if you're interested in testing it. It's not needed. You can auto generate .NET client using official swagger generator at "https://generator.swagger.io/". I've already created small (140 lines including usings and comments) C# program that can automatically download autogenerated .NET library for latest ESI version, extract it and update my sollution with it. Can share it if someone want.
Please do, I have almost no idea about how to do this stuff, right now I'm just calling ESI manually through restsharp (and it works only half the time) |
Aeon Haginen
Hogyoku Goonswarm Federation
0
|
Posted - 2017.01.10 13:48:11 -
[443] - Quote
okok, here it is: http://pastebin.com/0CX20Uy7 and http://pastebin.com/y3WiXGT7 (HttpContent.ReadAsFile).
to include autogenerated swagger client in your project, just create new folder "Swagger" (physical folder, not a project folder) and edit .csproj file: add: (Compile Include="Swagger\**\*.cs" /) into proper location: Project/ItemGroup/ where others (Compile)s are PS: I'm unable to write proper xml brackets, so I used () instead |
Icahmura Hasaki
Perkone Caldari State
32
|
Posted - 2017.01.13 16:50:55 -
[444] - Quote
Aeon Haginen wrote:Icahmura Hasaki wrote:I'm working on a .NET client for the ESI API, let me know if you're interested in testing it. It's not needed. You can auto generate .NET client using official swagger generator at "https://generator.swagger.io/". I've already created small (140 lines including usings and comments) C# program that can automatically download autogenerated .NET library for latest ESI version, extract it and update my sollution with it. Can share it if someone want.
Yes, I'm aware of that. I was working on templates to integrate SSO authentication, eg. EveAuth.
Developer of EveLib and EveAuthUtility
|
KenFlorian
Jednota Inc
43
|
Posted - 2017.04.07 16:06:21 -
[445] - Quote
Icahmura Hasaki wrote:
I'm working on a .NET client for the ESI API, let me know if you're interested in testing it.
I'm interested in working with the ESI implementation. |
Mixee
Real Enemy Academy SOLAR WING.
0
|
Posted - 2017.04.18 19:43:41 -
[446] - Quote
Hi,
Thanks for the library I found it very useful, I'd like to ask about some issues;
In EveLibFileCache.cs there's int variable _counter (which I'm guessing is there to throttle hitting the disk with IO writes), which gets compared to some magic number 10, meaning any less than 10 requests, or any requests that didn't fit into a multiple of 10 will not be listed in the "register" file when the program terminates, is that intended behaviour for a cache or is that a bug where the dictionary isn't flushed on termination?
I've hacked around the Core and Xml modules until they worked with .NET Core 1.1 and the (code) changes needed aren't too extensive; namely it's grabbing 5 nugets, replacing instances of WebClient with HttpClient and some minor changes e.g. getting rid of char.ToString(formatter) since it doesn't exist in corefx char api. I didn't tinker with the rest of the modules so I suppose I'm going into assumption here that there's not many changes needed.
So my question is; do you have any plans on supporting .NET core? If not would you consider merging patches to make it a bit easier to do so for people who need it? |
Icahmura Hasaki
Perkone Caldari State
33
|
Posted - 2017.05.09 11:21:44 -
[447] - Quote
I haven't looked at this library in a very long time, and currently don't have any plans of updating it. Maybe some time in the future. The ESI library has also been put on hold.
That could very well be a bug, feel free to submit fixes.
If you want to port it to core 1.1 I'd happily accept PRs, but I won't have time to update nuget until summer.
Developer of EveLib and EveAuthUtility
|
|
|
|
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] [15]:: one page |
First page | Previous page | Next page | Last page |