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

ContainerID?

First post
Author
Emma Royd
Maddled Gommerils
#1 - 2012-01-26 16:00:54 UTC
After some messing about, I've managed to get my corp Science & Industry jobs down into excel so I can see which slots are available for use.

They key one is the ContainerID column which is where things are happening, is there an easy way of finding out the name that ties up with the number eg "1005385254089" = "9-5 Comp Array 1" or is it just a case of trying to work it out by being in game and looking at the end times, runs etc and trying to decipher it from there?

Thanks

Emma
Desmont McCallock
#2 - 2012-01-26 16:51:40 UTC  |  Edited by: Desmont McCallock
You have to make the association with the data from the "Assets" API call.

Read more at : http://wiki.eve-id.net/APIv2_Corp_IndustryJobs_XML
Emma Royd
Maddled Gommerils
#3 - 2012-01-26 19:17:49 UTC
Thanks Desmont, it looks like it's going to be more hassle than it's worth for the time taken What? it's a shame that CCP don't include names with the API data, but that's their way.
Max Kolonko
Caldari Provisions
Caldari State
#4 - 2012-01-26 23:00:38 UTC
Emma Royd wrote:
Thanks Desmont, it looks like it's going to be more hassle than it's worth for the time taken What? it's a shame that CCP don't include names with the API data, but that's their way.


This, would make my life much easier :)
CCP Prism X
C C P
C C P Alliance
#5 - 2012-01-27 09:43:07 UTC
You should be able to use the location API to get the container name as long as you have a key from the owner of the container allowing you to query location information.

If the containerID is on the range of 60m to 61m (not inclusvive) then that is static npc station you should be able to find in the SDE, so no need to query for that name. If it's on the range of 61 million to 64 million that's a player controlled station so the conquerableStationList call should provide you with all the names you need there.

I think most relevant names are available to you through different methods. The reason we do not include the string translation of every ID in every call is because we expect many people to have their own local storage to do that thus saving bandwidth.
Desmont McCallock
#6 - 2012-01-27 11:15:26 UTC  |  Edited by: Desmont McCallock
CCP Prism X wrote:
The reason we do not include the string translation of every ID in every call is because we expect many people to have their own local storage to do that thus saving bandwidth.


With all due respect CCP Prism X (you know I'm a big fan of yours) that's a pretty lame excuse for a company of the size of CCP.
But who am I to oppose...

Edit: In case of names found in SDE, yes there is no need to include the names but for player assigned names then it's mandatory.
Painkillaz
Caldari Provisions
Caldari State
#7 - 2012-01-27 11:37:11 UTC
I would tend to agree that Player assigned names should be included in the API.

As of now, I dont see ANY way of linking a container ID with the player assigned names, since its just not provided anywhere.
CCP Prism X
C C P
C C P Alliance
#8 - 2012-01-27 11:53:17 UTC
You should be able to get these player assignable names here:
http://api.eveonline.com/eve/ConquerableStationList.xml.aspx
And this should be commitable to any storage device, much like the SDE.

Or am I missing something?
I've been known to miss things.
Like points. Lol
Desmont McCallock
#9 - 2012-01-27 12:02:27 UTC  |  Edited by: Desmont McCallock
The issue here is not the conquerable station names but the POS tower or modules names. Get my point?

Edit: Those of course can be extracted by the Assets call but we are talking here for doing things with less API calls.

Edit 2: And while I have your attention, any comment on this?
Even a "will add it in our TODO list and may implemented it in about 3-4 years" will suffice.
Painkillaz
Caldari Provisions
Caldari State
#10 - 2012-01-27 12:16:46 UTC  |  Edited by: Painkillaz
Well

i.e. im thinking of things like assets and the like here.

just as an example I have a huge container in Jita called "My huge container of spacetravelling teddybears"

If i lookup the assetlist, it will display as a container with an ID "123456789123456789"

How would i fare if i want to translate that ID into my containers name without referencing the ID to something. or it being provided by the API.


Im not interested in the TYPENAME(thats trivial), but instead the real ingame name which was set by a player with the Set Name command.
CCP Prism X
C C P
C C P Alliance
#11 - 2012-01-27 13:04:08 UTC
You can get the name of those locations through:
/char/Locations.xml.aspx?ids=someID,someOtherID,someOtherIDotherThanSomeOtherID
/corp/Locations.xml.aspx?ids=someID,someOtherID,someOtherIDotherThanSomeOtherID

As long as you have keys from that character / corporation which allows access to that Location call and that character / corporation is the owner of said container.

Or that was the plan at least..
Ione Hawke
Darkness Industries
#12 - 2012-01-27 13:09:55 UTC  |  Edited by: Ione Hawke
Desmont McCallock wrote:
CCP Prism X wrote:
The reason we do not include the string translation of every ID in every call is because we expect many people to have their own local storage to do that thus saving bandwidth.


With all due respect CCP Prism X (you know I'm a big fan of yours) that's a pretty lame excuse for a company of the size of CCP.
But who am I to oppose...

Edit: In case of names found in SDE, yes there is no need to include the names but for player assigned names then it's mandatory.


No, it is really bad design to just pump redundant information over the internet. If you want to read up more background information start at wikipedia :Database normalization and random quick google database design.

It is relevant here, because A) it explains how you should approach and stucture storing relational information. B) explains why CCP presents you the data in the way they do.
Painkillaz
Caldari Provisions
Caldari State
#13 - 2012-01-27 13:22:13 UTC  |  Edited by: Painkillaz
https://api.eveonline.com/char/locations.xml.aspx?characterID=XXXXXXXXXX&vCode=YYYYYYYY&keyID=ZZZZZZ

Well i see.. well it isnt even documented :/


And its not even listed here(ofc not CCPs responsability)
http://wiki.eve-id.net/APIv2_Page_Index

but

http://wiki.eveonline.com/en/wiki/EVE_API_Character_Locations

Certainly is... ill try to see what it can provide :)


EDIT:

Cant get that darn thing to work

"Owner is not the owner of all itemIDs or a non-existant itemID was passed in. If you are not trying to scrape the API, please ensure your input are valid locations associated with the key owner."

Thing is, it states

".... owner of all itemIDs" -> so it want itemIDs?
".... are valid locations" -> so it want locationIDs?

but hell, i got a containerID.(well i got the rest as well)

Double checked that the ids(tried locationID, typeID and containerID(from char/assets)) i provided is 100% mine, so something is not right.

Mind pointing me in the right direction?

URL used:

https://api.eveonline.com/char/locations.xml.aspx?characterID=XXXXXXXXXX&vCode=YYYYYYYY&keyID=ZZZZZZ&ids=QQQQQ
CCP Prism X
C C P
C C P Alliance
#14 - 2012-01-27 13:49:45 UTC
All locationIDs are itemIDs, they are just itemIDs that require positional coordinates in 3D space. All owners are also items, they are just items that are capable of being the owners of other items. Blink

Are you perhaps using the char call for corporation owned items?
Painkillaz
Caldari Provisions
Caldari State
#15 - 2012-01-27 14:30:57 UTC
CCP Prism X wrote:
All locationIDs are itemIDs, they are just itemIDs that require positional coordinates in 3D space. All owners are also items, they are just items that are capable of being the owners of other items. Blink

Are you perhaps using the char call for corporation owned items?


Got it to work, I stored a test value on items which didnt belong to a container, and that was the first to pop up :D

Ill try to implement some of this for my upcoming site.

I just feel that 1 call to the API seems kinda redundant since:

-it have little value to any system.

-but it has a huge value to players being able to distinct items

on the other hand CharacterID, which is used videly by any Eve system is OK, since its reusable.
Captain Thunk
Ministry of War
Amarr Empire
#16 - 2012-01-27 14:35:37 UTC
Painkillaz wrote:

EDIT:

Cant get that darn thing to work

"Owner is not the owner of all itemIDs or a non-existant itemID was passed in. If you are not trying to scrape the API, please ensure your input are valid locations associated with the key owner."

Thing is, it states

".... owner of all itemIDs" -> so it want itemIDs?
".... are valid locations" -> so it want locationIDs?

but hell, i got a containerID.(well i got the rest as well)

Double checked that the ids(tried locationID, typeID and containerID(from char/assets)) i provided is 100% mine, so something is not right.

Mind pointing me in the right direction?

URL used:

https://api.eveonline.com/char/locations.xml.aspx?characterID=XXXXXXXXXX&vCode=YYYYYYYY&keyID=ZZZZZZ&ids=QQQQQ


When dealing with assets you can't just process all itemIDs through locations.xml, only certain items are available. Stuff that's in space (locationID >30000000 & <40000000 (dunno how many zeros are in that and it prob doesn't include w-space, but you get the idea). The rest in assets you can rule out if its not singleton=1 (packaged). This gives you a final group which may or may not be allowed through locations.xml. So far I've been testing the items categoryID against 2 (celestial stuff) and 6 (spaceships), so far I've not been sending an illegitmate item doing this.

Send one wrong id with your list of IDs then of course the whole lot fails.

I can't speak for itemIDs from other pages other than assets yet, but I would imagine they are much easier to handle.

Also, if the item is in a station (location id > 60000000) then you should probably ignore x,y,z atm these can be non 0 values
Painkillaz
Caldari Provisions
Caldari State
#17 - 2012-01-27 15:28:53 UTC
Captain Thunk wrote:

When dealing with assets you can't just process all itemIDs through locations.xml, only certain items are available. Stuff that's in space (locationID >30000000 & <40000000 (dunno how many zeros are in that and it prob doesn't include w-space, but you get the idea). The rest in assets you can rule out if its not singleton=1 (packaged). This gives you a final group which may or may not be allowed through locations.xml. So far I've been testing the items categoryID against 2 (celestial stuff) and 6 (spaceships), so far I've not been sending an illegitmate item doing this.

Send one wrong id with your list of IDs then of course the whole lot fails.

I can't speak for itemIDs from other pages other than assets yet, but I would imagine they are much easier to handle.

Also, if the item is in a station (location id > 60000000) then you should probably ignore x,y,z atm these can be non 0 values


well i get my from find all assets which have a sub branch, and it works, not need to make a rule on the Singleton,


row itemID="1005090401708" locationID="61000074" typeID="17368" quantity="1" flag="4" singleton="1" rawQuantity="-1"/>
row itemID="1005095619448" locationID="61000074" typeID="17368" quantity="1" flag="4" singleton="1" rawQuantity="-1">
rowset name="contents" key="itemID" columns="itemID,typeID,quantity,flag,singleton">
row itemID="594462869" typeID="8529" quantity="1" flag="64" singleton="1" rawQuantity="-1"/>
row itemID="1308251671" typeID="5051" quantity="6" flag="64" singleton="0"/>
row itemID="1344332132" typeID="240" quantity="7" flag="64" singleton="0"/>
row itemID="1624311864" typeID="25595" quantity="2" flag="64" singleton="0"/>
row itemID="1628289917" typeID="25601" quantity="589" flag="64" singleton="0"/>
CCP Prism X
C C P
C C P Alliance
#18 - 2012-01-27 15:52:20 UTC
You should include the singleton rule though.

If you request an un-assembled ship in a list of 250 ids, you'll get a fail return as a non-assembled ship cannot (Fine.. should not.. never say never) have location coordinates.
Painkillaz
Caldari Provisions
Caldari State
#19 - 2012-01-27 16:16:32 UTC
CCP Prism X wrote:
You should include the singleton rule though.

If you request an un-assembled ship in a list of 250 ids, you'll get a fail return as a non-assembled ship cannot (Fine.. should not.. never say never) have location coordinates.


Well that would never be the case, cause when you arent requesting the name from the location.xml from item which doesnt have a sub branch in the XML, you will never lookup an unassembled ship.


i.e. IF it has a sub branch tree in the XML, it MUST be containing some kind of item, thus it cannot be unassembled right?
Captain Thunk
Ministry of War
Amarr Empire
#20 - 2012-01-27 16:21:48 UTC
Painkillaz wrote:
CCP Prism X wrote:
You should include the singleton rule though.

If you request an un-assembled ship in a list of 250 ids, you'll get a fail return as a non-assembled ship cannot (Fine.. should not.. never say never) have location coordinates.


Well that would never be the case, cause when you arent requesting the name from the location.xml from item which doesnt have a sub branch in the XML, you will never lookup an unassembled ship.


i.e. IF it has a sub branch tree in the XML, it MUST be containing some kind of item, thus it cannot be unassembled right?


If I understand you correctly you're only calling 1005095619448 out of the list you gave a few posts ago, I guess thats fine, although I'm pretty sure you are missing some items you could be calling as a result.

eg, corpse names and probably anything that has been assembled that doesn't have items inside (I'm guessing they don't have empty sub branches) like renamable pos modules

but if it works and you're happy Smile
12Next page