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.
123Next page
 

Devsite blog: CREST Updates For January 2016

First post First post
Author
CCP Phantom
C C P
C C P Alliance
#1 - 2016-01-06 16:45:33 UTC  |  Edited by: CCP Logibro
With January 2016 we will see a large update to CREST bringing us new exciting features such as:

* Read and write of personal contacts
* Write of autopilot routes
* Updated alliance resources
* Dogma information

Get all the details in CCP FoxFour's latest blog CREST Updates For January 2016!

Happy New Year!

CCP Phantom - Senior Community Developer

CCP FoxFour
C C P
C C P Alliance
#2 - 2016-01-06 16:47:40 UTC
MORE STUFF! :D SUCH EXCITE!

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

Messenger Of Truth
Butlerian Crusade
#3 - 2016-01-06 18:07:25 UTC
This writeable CREST stuff is rather exciting.

On the subject of waypoints, when we have citadels will we also be able to have waypoints and courier contracts to them? If one use case for citadels might be player market hubs, it seems rather desirable to be able to create waypoints or courier contracts that terminate at these hubs.

Trade Hub Price Checker: stop.hammerti.me.uk/pricecheck

Visit "Haulers Channel" in game for all matters courier-related.

Structure name/system API: stop.hammerti.me.uk/api

CCP FoxFour
C C P
C C P Alliance
#4 - 2016-01-06 19:05:42 UTC
Messenger Of Truth wrote:
This writeable CREST stuff is rather exciting.

On the subject of waypoints, when we have citadels will we also be able to have waypoints and courier contracts to them? If one use case for citadels might be player market hubs, it seems rather desirable to be able to create waypoints or courier contracts that terminate at these hubs.


This has not really been discussed yet so I don't know.

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

Shegox Gabriel
Liga Freier Terraner
Northern Coalition.
#5 - 2016-01-06 22:42:26 UTC  |  Edited by: Shegox Gabriel
Just road it and it sounds awesome, i would like to thank you for the awesome work you do :) .

Will test the new futeres and Crest at all with the new patch and when my study starts (more time).

Kind Regards

Shegox

edit: if you work in this speed, maybe wallet transactions by summer 2016 Big smile
Jack Hayson
The Scope
Gallente Federation
#6 - 2016-01-08 16:11:57 UTC  |  Edited by: Jack Hayson
Quote:
CHARACTER LOCATION

#HYPE

A notification when a character is online isn't really necessary tbh.
You'd only really need something like this when you want to use this as a Full-API on steroids to permanently track your corp member's movements and login times.
I'll just add a button in our wormhole mapping tool where you can activate tracking for individual characters and when you log off a character it stops tracking it. That way people have control over when the tool tracks them. (just like they have now with the IGB)

Adding the current ship type would be extremely useful.Blink Our mapping tool uses it to estimate how much mass has been used up on a wormhole.


Thanks for your amazing work!
Rain6637
GoonWaffe
Goonswarm Federation
#7 - 2016-01-09 08:02:39 UTC  |  Edited by: Rain6637
Hel O'Ween
Men On A Mission
#8 - 2016-01-09 09:54:45 UTC
CCP FoxFour wrote:
Messenger Of Truth wrote:
This writeable CREST stuff is rather exciting.

On the subject of waypoints, when we have citadels will we also be able to have waypoints and courier contracts to them? If one use case for citadels might be player market hubs, it seems rather desirable to be able to create waypoints or courier contracts that terminate at these hubs.


This has not really been discussed yet so I don't know.


That's your chance right there, FoxFour: sneak it in and present it as "works as intended". Big smile

EVEWalletAware - an offline wallet manager.

Iam Widdershins
Project Nemesis
#9 - 2016-01-09 17:35:40 UTC
Hey FoxFour! Really cool with the contacts mutability exposure, looking forward to using that.

Any thoughts about opening the /corporations/* route to include alliance history information? As of right now it is impossible to programmatically determine whether a character was in an alliance/war with exposed APIs...

Lobbying for your right to delete your signature

CCP FoxFour
C C P
C C P Alliance
#10 - 2016-01-10 15:26:05 UTC
Just as a heads up the POST requests for contacts wont be enabled until Wedneday. Sorry about that!

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

Arrek Lemmont
Center for Advanced Studies
Gallente Federation
#11 - 2016-01-10 17:59:03 UTC
Writing autopilot routes looks exciting. Did reading autopilot waypoints already exist? I'd love to see dotlan show my current route on their maps.
Freelancer117
So you want to be a Hero
#12 - 2016-01-10 22:45:27 UTC
Subbed again for a month, just for this amazing piece of software engineering Cool

Eve online is :

A) mining simulator B) glorified chatroom C) spreadsheets online

D) CCP Games Pay to Win at skill leveling, with instant gratification

http://eve-radio.com//images/photos/3419/223/34afa0d7998f0a9a86f737d6.jpg

http://bit.ly/1egr4mF

CCP FoxFour
C C P
C C P Alliance
#13 - 2016-01-13 10:56:49 UTC
Hey people,

So for the most part the deployment has gone OK. The POST resource for contacts goes live with downtime today and hopefully that goes as well as most of the rest of this release.

There is however a defect with the locations resource. I feel like explaining this, not sure why, probably because I know how much I would like reading this if I didn't work here. So here we go:

The way this resource currently works is when the incoming request lands on a proxy node service CREST we make a service call (service context vs character context, as in I haven't spun up a session on this proxy for the character, just using the CREST service session to make the MachoNet call) to the character node for the specified character.

On the character node I check to see if the specified character ID is in the sessions this node has in memory (sessions are essentially just stored in a python dictionary in memory) and if it is there I return the solar system.

Easy. Except to understand where this falls apart you need to understand a bit more of how sessions work. The only place that is guaranteed to have an up to date session is the proxy that created that session and where the session now lives. When a call from the client reaches that proxy the proxy makes the appropriate call to the backend and passes the session along with the call. The backend node receiving the call then stores that session in the dictionary I talked about before. If that backend node calls another node the session is propagated to whatever node it is calling as well. If a client disconnects for whatever reason the proxy it was connected to sends a notification to all nodes that the session should be cleared and it is removed from the in memory cache.

What this really means is that the character node we are calling potentially has a stale session and not the correct location information. When we started down this path we believed that there was enough network communication between the character node and other nodes along with the client that this would essentially always be up to date.

Initial testing showed that when a character jumped from one solar system to another that solar system would make a request to the character node, therefor propagating the updated session. The problem is however that it only seems to do this when you jump into a solar system for the first time. After that the information the solar system needs is cached by the solar system and not requested again. So when you jump back into a solar system after the first time that cross node call is not made. It also turns out that simply changing solar systems doesn't really make the client do any requests to the character node.

Whelp.

If you try out the location resource right now and the character being tracked is actually doing things than generally speaking this information will be correct. If however the pilot is just flying between systems, some of which they have visited, and isn't interacting with the client in any meaningful way than this is likely to be incorrect at times.

I am working on a solution to this, there are many including writing a service just to handle the location or just forcing the services that handle jumping to update the session on the character node, but do not have an ETA. I hope in the coming weeks but no promises.

I would still encourage developers to work towards integrating this functionality as it will be fixed. Getting this information correct and out via CREST is essential to us being able to nuke the IGB so you can be assured this will be fixed.

Anyways... that was my morning. Onto other stuff for a bit while I think.

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

Shegox Gabriel
Liga Freier Terraner
Northern Coalition.
#14 - 2016-01-13 14:36:41 UTC
Hey FoxFour,

i tried a post to the contacts,
actual i am posting to the https://crest-tq.eveonline.com/characters/92439100/contacts/ (my contacts).
I use php and i can fetch the contacts (so no auth issue).
I use an array and encode it to json.

Output is this as array:
Array
(
[standing] => 10
[contactType] => Alliance
[contact] => Array
(
[id_str] => 386292982
[href] => https://public-crest.eveonline.com/alliances/386292982/
[name] => Pandemic Legion
[id] => 386292982
)

)
Convert to Json:
{"standing":10,"contactType":"Alliance","contact":{"id_str":"386292982","href":"https:\/\/public-crest.eveonline.com\/alliances\/386292982\/","name":"Pandemic Legion","id":386292982}}

And the respond from the crest-server:
stdClass Object
(
[message] => No JSON object could be decoded
[key] => badJson
[exceptionType] => BadRequestError
)

What is wrong ?
Can you help me please?
Friendly wishes
Shegox
Squizz Caphinator
The Wormhole Police
#15 - 2016-01-13 15:23:47 UTC
Assuming you're using json_encode, try disable slash escaping by passing JSON_UNESCAPED_SLASHES
Reference: http://php.net/manual/en/function.json-encode.php

Various projects I enjoy putting my free time into:

https://zkillboard.com | https://evewho.com

CCP FoxFour
C C P
C C P Alliance
#16 - 2016-01-13 15:27:23 UTC
Shegox Gabriel wrote:
Hey FoxFour,

i tried a post to the contacts,
actual i am posting to the https://crest-tq.eveonline.com/characters/92439100/contacts/ (my contacts).
I use php and i can fetch the contacts (so no auth issue).
I use an array and encode it to json.

Output is this as array:
Array
(
[standing] => 10
[contactType] => Alliance
[contact] => Array
(
[id_str] => 386292982
[href] => https://public-crest.eveonline.com/alliances/386292982/
[name] => Pandemic Legion
[id] => 386292982
)

)
Convert to Json:
{"standing":10,"contactType":"Alliance","contact":{"id_str":"386292982","href":"https:\/\/public-crest.eveonline.com\/alliances\/386292982\/","name":"Pandemic Legion","id":386292982}}

And the respond from the crest-server:
stdClass Object
(
[message] => No JSON object could be decoded
[key] => badJson
[exceptionType] => BadRequestError
)

What is wrong ?
Can you help me please?
Friendly wishes
Shegox


Hey man,

Something else must be going on. I copy and pasted that string into Postman and sent a POST and it came back fine.

https://i.imgur.com/rfX40Qi.png

So really not sure. As I said something else must be happening in there. Any chance you can toss the rest of the code up on a public Gist or something?

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

Shegox Gabriel
Liga Freier Terraner
Northern Coalition.
#17 - 2016-01-13 15:36:52 UTC  |  Edited by: Shegox Gabriel
CCP FoxFour wrote:
Shegox Gabriel wrote:
Hey FoxFour,

i tried a post to the contacts,
actual i am posting to the https://crest-tq.eveonline.com/characters/92439100/contacts/ (my contacts).
I use php and i can fetch the contacts (so no auth issue).
I use an array and encode it to json.

Output is this as array:
Array
(
[standing] => 10
[contactType] => Alliance
[contact] => Array
(
[id_str] => 386292982
[href] => https://public-crest.eveonline.com/alliances/386292982/
[name] => Pandemic Legion
[id] => 386292982
)

)
Convert to Json:
{"standing":10,"contactType":"Alliance","contact":{"id_str":"386292982","href":"https:\/\/public-crest.eveonline.com\/alliances\/386292982\/","name":"Pandemic Legion","id":386292982}}

And the respond from the crest-server:
stdClass Object
(
[message] => No JSON object could be decoded
[key] => badJson
[exceptionType] => BadRequestError
)

What is wrong ?
Can you help me please?
Friendly wishes
Shegox


Hey man,

Something else must be going on. I copy and pasted that string into Postman and sent a POST and it came back fine.

https://i.imgur.com/rfX40Qi.png

So really not sure. As I said something else must be happening in there. Any chance you can toss the rest of the code up on a public Gist or something?



oh that looks, then like a problem on my side.

Here is the gist, i got the auth_code over the call form a js with Get Parameters.

Here is the gist from my code: https://gist.github.com/anonymous/cf83e6d04f84c49ca826

Edit: Found the problem, i forget to send a content-type Header. Thanks for testing it out though.

You are truly awesome!
Ortho Loess
Escalated.
OnlyFleets.
#18 - 2016-01-13 15:43:44 UTC  |  Edited by: Ortho Loess
We've talked it over on tweetfleet slack (#devfleet) and it looks like the problem is that you're not sending a content type header.

Credit goes to Robert Schuh.

Try adding a header of

Content-Type: application/json


If that doesn't work, Steve Ronuken thinks it may be that you're sending it as a random post field, rather then the body
Shegox Gabriel
Liga Freier Terraner
Northern Coalition.
#19 - 2016-01-13 15:51:25 UTC  |  Edited by: Shegox Gabriel
Thank you very much.
The content-type was the problem, i fixed and now it works. Testing now for characters though :)

Otherwise i found not in the Read or Write is folders, is it able to post to folders ?
CCP FoxFour
C C P
C C P Alliance
#20 - 2016-01-13 17:47:36 UTC
Ah content type. I always forget about that as Postmand and the libraries I use set that. :(

Shegox Gabriel wrote:
Otherwise i found not in the Read or Write is folders, is it able to post to folders ?


Sorry I don't understand the question.

@CCP_FoxFour // Technical Designer // Team Tech Co

Third-party developer? Check out the official developers site for dev blogs, resources, and more.

123Next page