mirror of
https://github.com/EDCD/EDDN.git
synced 2025-04-20 18:47:39 +03:00
Merge branch 'master' into develop
This commit is contained in:
commit
aa7fabf134
@ -126,7 +126,8 @@ set a `Content-Type` header of `applicaton/json`, and NOT any of:
|
||||
* `text/plain`
|
||||
|
||||
For historical reasons URL form-encoded data *is* supported, **but this is
|
||||
deprecated and no new software should attempt this method**.
|
||||
deprecated and no new software should attempt this method**. We
|
||||
purposefully do not further document the exact format for this.
|
||||
|
||||
You *MAY* use gzip compression on the body of the message, but it is not
|
||||
required.
|
||||
@ -310,35 +311,62 @@ make a valid request" responses you might experience the following:
|
||||
[commit 0e80c76cb564771465f61825e694227dcc3be312](https://github.com/EDCD/EDDN/commit/0e80c76cb564771465f61825e694227dcc3be312).
|
||||
|
||||
#### EDDN Gateway responses
|
||||
1. `400` - `Bad Request` - this can be for a variety of reasons, and should
|
||||
come with a response body with prefix `OK: ` or `FAIL: `:
|
||||
1. `FAIL: <python simplejson exception message>` - the request couldn't be
|
||||
parsed as valid JSON. e.g.
|
||||
For all failures the response body will contain text that begins `FAIL: `. Currently two different HTTP status codes are utilised:
|
||||
|
||||
```
|
||||
FAIL: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
|
||||
```
|
||||
2. `FAIL: [<ValidationError: "<schema validation failure>"]` - the JSON
|
||||
message failed to pass schema validation. e.g.
|
||||
1. `400` - `Bad Request` - This indicates something wrong with the request
|
||||
body. Possibly due to a format issue (compression, form encoding), or
|
||||
the actual content of the EDDN message:
|
||||
1. `FAIL: zlib.error: <detail>` - A failure to decompress a message that
|
||||
claimed to be compressed.
|
||||
|
||||
```
|
||||
FAIL: [<ValidationError: "'StarPos' is a required property">]
|
||||
```
|
||||
2. `FAIL: Malformed Upload: <detail>` - the message appeared to be
|
||||
form-encoded, but either the format was bad or there was no `data`
|
||||
key.
|
||||
|
||||
3. Other python exception message, e.g. if a message appeared to be
|
||||
gzip compressed, but a failure was experienced when attempting to
|
||||
decompress it. **NB: As of 2022-07-01 such messages won't have the
|
||||
`FAIL: ` prefix.** See
|
||||
[#161 - Gateway: Improve reporting of 'misc' errors ](https://github.com/EDCD/EDDN/issues/161)
|
||||
for any progress/resolution on this.
|
||||
|
||||
2. `426` - `Upgrade Required` - You sent a message with an outdated
|
||||
`$schemaRef` value. This could be either an old, deprecated version of
|
||||
a schema, or an entirely deprecated schema. e.g.
|
||||
3. `FAIL: JSON parsing: <detail>` - the
|
||||
message couldn't be parsed as valid JSON. e.g.
|
||||
|
||||
```
|
||||
FAIL: The schema you have used is no longer supported. Please check for an updated version of your application.
|
||||
FAIL: JSON parsing: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)
|
||||
```
|
||||
|
||||
4. `FAIL: Schema Validation: <detail>` - the message failed to validate
|
||||
against the cited schema. e.g.
|
||||
|
||||
```
|
||||
FAIL: Schema Validation: [<ValidationError: "'StarPos' is a required property">]
|
||||
```
|
||||
|
||||
The exact detail will be very much dependent on both the schema the
|
||||
message cited and the contents of the message that failed to pass the
|
||||
validation.
|
||||
|
||||
In particular, if the message contains a key that is tagged 'disallowed' in
|
||||
the schema the response will look like:
|
||||
|
||||
```
|
||||
FAIL: Schema Validation: "[<ValidationError: "{'type': ['array', 'boolean', 'integer', 'number', 'null', 'object', 'string']} is not allowed for 'BadKey'">]"
|
||||
```
|
||||
This is due to the use of a JSON schema stanza that says "don't allow
|
||||
any valid type for the value of this key" to trigger the error for such
|
||||
disallowed keys.
|
||||
|
||||
2. `426` - `Upgrade Required` - This indicates that the cited schema, or
|
||||
version thereof, is outdated. The body of the response will be:
|
||||
|
||||
```
|
||||
FAIL: Oudated Schema: The schema you have used is no longer supported. Please check for an updated version of your application.
|
||||
```
|
||||
The wording here is aimed at users of applications that send messages
|
||||
over EDDN. If you're the developer of such an application then
|
||||
obviously you need to update your code to use a currently supported
|
||||
schema and version thereof.
|
||||
|
||||
|
||||
There shouldn't be any other variants of a 'FAIL' message. If you find
|
||||
any then please
|
||||
[open an issue on GitHub](https://github.com/EDCD/EDDN/issues/new)
|
||||
with as much detail as possible so that we can update this documentation.
|
||||
|
||||
## Receiving messages
|
||||
|
||||
|
330
scripts/testing/gateway-responses/Market.json
Normal file
330
scripts/testing/gateway-responses/Market.json
Normal file
@ -0,0 +1,330 @@
|
||||
{ "timestamp":"2022-01-06T11:19:27Z", "event":"Market", "MarketID":128008448, "StationName":"Freeport", "StationType":"Coriolis", "StarSystem":"LP 98-132", "Items":[
|
||||
{ "id":128049152, "Name":"$platinum_name;", "Name_Localised":"Platinum", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":39557, "SellPrice":39555, "MeanPrice":58263, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049153, "Name":"$palladium_name;", "Name_Localised":"Palladium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":47901, "SellPrice":47360, "MeanPrice":50639, "StockBracket":1, "DemandBracket":0, "Stock":2, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049154, "Name":"$gold_name;", "Name_Localised":"Gold", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":44874, "SellPrice":44362, "MeanPrice":47610, "StockBracket":1, "DemandBracket":0, "Stock":2, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049155, "Name":"$silver_name;", "Name_Localised":"Silver", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":34289, "SellPrice":33471, "MeanPrice":37223, "StockBracket":1, "DemandBracket":0, "Stock":8, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049156, "Name":"$bertrandite_name;", "Name_Localised":"Bertrandite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":21216, "MeanPrice":18817, "StockBracket":0, "DemandBracket":2, "Stock":0, "Demand":1047, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049157, "Name":"$indite_name;", "Name_Localised":"Indite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":10508, "SellPrice":10238, "MeanPrice":11389, "StockBracket":1, "DemandBracket":0, "Stock":296, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049158, "Name":"$gallite_name;", "Name_Localised":"Gallite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":13829, "MeanPrice":11915, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1765, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049159, "Name":"$coltan_name;", "Name_Localised":"Coltan", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":7849, "MeanPrice":6163, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2063, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049160, "Name":"$uraninite_name;", "Name_Localised":"Uraninite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":4202, "MeanPrice":2957, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2899, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049161, "Name":"$lepidolite_name;", "Name_Localised":"Lepidolite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":4193, "SellPrice":3999, "MeanPrice":771, "StockBracket":1, "DemandBracket":0, "Stock":1271, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049162, "Name":"$cobalt_name;", "Name_Localised":"Cobalt", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":13474, "SellPrice":12870, "MeanPrice":3762, "StockBracket":1, "DemandBracket":0, "Stock":724, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049163, "Name":"$rutile_name;", "Name_Localised":"Rutile", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":11056, "MeanPrice":2083, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1306, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049165, "Name":"$bauxite_name;", "Name_Localised":"Bauxite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":10730, "SellPrice":10270, "MeanPrice":1140, "StockBracket":1, "DemandBracket":0, "Stock":595, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049166, "Name":"$water_name;", "Name_Localised":"Water", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":0, "SellPrice":599, "MeanPrice":278, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":336, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049168, "Name":"$beryllium_name;", "Name_Localised":"Beryllium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":8041, "SellPrice":7948, "MeanPrice":8243, "StockBracket":1, "DemandBracket":0, "Stock":2, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049169, "Name":"$indium_name;", "Name_Localised":"Indium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":5894, "SellPrice":5824, "MeanPrice":5845, "StockBracket":1, "DemandBracket":0, "Stock":8, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049170, "Name":"$gallium_name;", "Name_Localised":"Gallium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":5165, "SellPrice":5042, "MeanPrice":5203, "StockBracket":1, "DemandBracket":0, "Stock":11, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049171, "Name":"$tantalum_name;", "Name_Localised":"Tantalum", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":4099, "SellPrice":3999, "MeanPrice":4044, "StockBracket":1, "DemandBracket":0, "Stock":2, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049172, "Name":"$uranium_name;", "Name_Localised":"Uranium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":3139, "SellPrice":3060, "MeanPrice":2827, "StockBracket":1, "DemandBracket":0, "Stock":24, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049173, "Name":"$lithium_name;", "Name_Localised":"Lithium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":1906, "SellPrice":1855, "MeanPrice":1772, "StockBracket":1, "DemandBracket":0, "Stock":6, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049174, "Name":"$titanium_name;", "Name_Localised":"Titanium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":1377, "SellPrice":1319, "MeanPrice":1208, "StockBracket":2, "DemandBracket":0, "Stock":122, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049175, "Name":"$copper_name;", "Name_Localised":"Copper", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":1115, "SellPrice":1042, "MeanPrice":689, "StockBracket":2, "DemandBracket":0, "Stock":474, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049176, "Name":"$aluminium_name;", "Name_Localised":"Aluminium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":1127, "SellPrice":1045, "MeanPrice":551, "StockBracket":2, "DemandBracket":0, "Stock":352, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049177, "Name":"$algae_name;", "Name_Localised":"Algae", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":23, "SellPrice":22, "MeanPrice":356, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049178, "Name":"$fruitandvegetables_name;", "Name_Localised":"Fruit and Vegetables", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":0, "SellPrice":1060, "MeanPrice":509, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1637, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049180, "Name":"$grain_name;", "Name_Localised":"Grain", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":0, "SellPrice":919, "MeanPrice":410, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2980, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049182, "Name":"$animalmeat_name;", "Name_Localised":"Animal Meat", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":0, "SellPrice":1695, "MeanPrice":1539, "StockBracket":0, "DemandBracket":1, "Stock":0, "Demand":26, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049183, "Name":"$fish_name;", "Name_Localised":"Fish", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":0, "SellPrice":1008, "MeanPrice":650, "StockBracket":0, "DemandBracket":2, "Stock":0, "Demand":481, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049184, "Name":"$foodcartridges_name;", "Name_Localised":"Food Cartridges", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":0, "SellPrice":767, "MeanPrice":265, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1094, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049185, "Name":"$syntheticmeat_name;", "Name_Localised":"Synthetic Meat", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":0, "SellPrice":872, "MeanPrice":440, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":496, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049188, "Name":"$tea_name;", "Name_Localised":"Tea", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":0, "SellPrice":1923, "MeanPrice":1696, "StockBracket":0, "DemandBracket":2, "Stock":0, "Demand":43, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049189, "Name":"$coffee_name;", "Name_Localised":"Coffee", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":0, "SellPrice":2303, "MeanPrice":1499, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":527, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049190, "Name":"$leather_name;", "Name_Localised":"Leather", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":57, "SellPrice":56, "MeanPrice":435, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049191, "Name":"$naturalfabrics_name;", "Name_Localised":"Natural Fabrics", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":351, "SellPrice":350, "MeanPrice":688, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049193, "Name":"$syntheticfabrics_name;", "Name_Localised":"Synthetic Fabrics", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1705, "SellPrice":1435, "MeanPrice":416, "StockBracket":1, "DemandBracket":0, "Stock":197, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049197, "Name":"$polymers_name;", "Name_Localised":"Polymers", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":2614, "SellPrice":1960, "MeanPrice":376, "StockBracket":1, "DemandBracket":0, "Stock":272, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049199, "Name":"$semiconductors_name;", "Name_Localised":"Semiconductors", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":1415, "SellPrice":1355, "MeanPrice":1136, "StockBracket":1, "DemandBracket":0, "Stock":42, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049200, "Name":"$superconductors_name;", "Name_Localised":"Superconductors", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":6809, "SellPrice":6729, "MeanPrice":6679, "StockBracket":1, "DemandBracket":0, "Stock":14, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049202, "Name":"$hydrogenfuel_name;", "Name_Localised":"Hydrogen Fuel", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":126, "SellPrice":120, "MeanPrice":113, "StockBracket":1, "DemandBracket":0, "Stock":379, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049203, "Name":"$mineraloil_name;", "Name_Localised":"Mineral Oil", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":0, "SellPrice":1483, "MeanPrice":423, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":3336, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049204, "Name":"$explosives_name;", "Name_Localised":"Explosives", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":0, "SellPrice":2101, "MeanPrice":512, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":3964, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049205, "Name":"$pesticides_name;", "Name_Localised":"Pesticides", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":82, "SellPrice":81, "MeanPrice":437, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049208, "Name":"$agriculturalmedicines_name;", "Name_Localised":"Agri-Medicines", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":543, "SellPrice":542, "MeanPrice":1231, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049209, "Name":"$performanceenhancers_name;", "Name_Localised":"Performance Enhancers", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":0, "SellPrice":6907, "MeanPrice":6790, "StockBracket":0, "DemandBracket":1, "Stock":0, "Demand":40, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049210, "Name":"$basicmedicines_name;", "Name_Localised":"Basic Medicines", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":0, "SellPrice":963, "MeanPrice":493, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":904, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049213, "Name":"$tobacco_name;", "Name_Localised":"Tobacco", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":0, "SellPrice":5568, "MeanPrice":5325, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":398, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049214, "Name":"$beer_name;", "Name_Localised":"Beer", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":0, "SellPrice":799, "MeanPrice":430, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1777, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049215, "Name":"$wine_name;", "Name_Localised":"Wine", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":0, "SellPrice":411, "MeanPrice":507, "StockBracket":0, "DemandBracket":1, "Stock":0, "Demand":0, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049216, "Name":"$liquor_name;", "Name_Localised":"Liquor", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":0, "SellPrice":1331, "MeanPrice":879, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":453, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049217, "Name":"$powergenerators_name;", "Name_Localised":"Power Generators", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":0, "SellPrice":3475, "MeanPrice":2466, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":613, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049218, "Name":"$waterpurifiers_name;", "Name_Localised":"Water Purifiers", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":0, "SellPrice":2101, "MeanPrice":484, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1256, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049220, "Name":"$heliostaticfurnaces_name;", "Name_Localised":"Microbial Furnaces", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":0, "SellPrice":2010, "MeanPrice":434, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":537, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049221, "Name":"$mineralextractors_name;", "Name_Localised":"Mineral Extractors", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":0, "SellPrice":2647, "MeanPrice":801, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1698, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049222, "Name":"$cropharvesters_name;", "Name_Localised":"Crop Harvesters", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1564, "SellPrice":1563, "MeanPrice":2230, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049223, "Name":"$marinesupplies_name;", "Name_Localised":"Marine Equipment", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":2745, "SellPrice":2744, "MeanPrice":4135, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049225, "Name":"$computercomponents_name;", "Name_Localised":"Computer Components", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":267, "SellPrice":266, "MeanPrice":776, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049226, "Name":"$hazardousenvironmentsuits_name;", "Name_Localised":"H.E. Suits", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":0, "SellPrice":915, "MeanPrice":570, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":4363, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049227, "Name":"$robotics_name;", "Name_Localised":"Robotics", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":1447, "SellPrice":1446, "MeanPrice":2020, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049228, "Name":"$autofabricators_name;", "Name_Localised":"Auto-Fabricators", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":2685, "SellPrice":2684, "MeanPrice":3827, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049229, "Name":"$animalmonitors_name;", "Name_Localised":"Animal Monitors", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":630, "SellPrice":629, "MeanPrice":537, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049230, "Name":"$aquaponicsystems_name;", "Name_Localised":"Aquaponic Systems", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":321, "SellPrice":320, "MeanPrice":524, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049231, "Name":"$advancedcatalysers_name;", "Name_Localised":"Advanced Catalysers", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":0, "SellPrice":3756, "MeanPrice":3039, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":936, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049232, "Name":"$terrainenrichmentsystems_name;", "Name_Localised":"Land Enrichment Systems", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":3005, "SellPrice":3004, "MeanPrice":4928, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049234, "Name":"$battleweapons_name;", "Name_Localised":"Battle Weapons", "Category":"$MARKET_category_weapons;", "Category_Localised":"Weapons", "BuyPrice":4463, "SellPrice":4462, "MeanPrice":7451, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128049235, "Name":"$reactivearmour_name;", "Name_Localised":"Reactive Armour", "Category":"$MARKET_category_weapons;", "Category_Localised":"Weapons", "BuyPrice":0, "SellPrice":2669, "MeanPrice":2224, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":150, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049236, "Name":"$nonlethalweapons_name;", "Name_Localised":"Non-Lethal Weapons", "Category":"$MARKET_category_weapons;", "Category_Localised":"Weapons", "BuyPrice":0, "SellPrice":2417, "MeanPrice":1943, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":274, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049238, "Name":"$domesticappliances_name;", "Name_Localised":"Domestic Appliances", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":0, "SellPrice":1216, "MeanPrice":740, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":575, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049240, "Name":"$consumertechnology_name;", "Name_Localised":"Consumer Technology", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":0, "SellPrice":6883, "MeanPrice":6690, "StockBracket":0, "DemandBracket":1, "Stock":0, "Demand":0, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049241, "Name":"$clothing_name;", "Name_Localised":"Clothing", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":0, "SellPrice":963, "MeanPrice":546, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":955, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049244, "Name":"$biowaste_name;", "Name_Localised":"Biowaste", "Category":"$MARKET_category_waste;", "Category_Localised":"Waste", "BuyPrice":145, "SellPrice":87, "MeanPrice":358, "StockBracket":1, "DemandBracket":0, "Stock":103, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128049246, "Name":"$chemicalwaste_name;", "Name_Localised":"Chemical Waste", "Category":"$MARKET_category_waste;", "Category_Localised":"Waste", "BuyPrice":0, "SellPrice":599, "MeanPrice":672, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":159, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049248, "Name":"$scrap_name;", "Name_Localised":"Scrap", "Category":"$MARKET_category_waste;", "Category_Localised":"Waste", "BuyPrice":0, "SellPrice":625, "MeanPrice":300, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":182, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049669, "Name":"$progenitorcells_name;", "Name_Localised":"Progenitor Cells", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":0, "SellPrice":7529, "MeanPrice":6752, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":6, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049671, "Name":"$resonatingseparators_name;", "Name_Localised":"Resonating Separators", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":0, "SellPrice":7158, "MeanPrice":5937, "StockBracket":0, "DemandBracket":2, "Stock":0, "Demand":491, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128049672, "Name":"$bioreducinglichen_name;", "Name_Localised":"Bioreducing Lichen", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":0, "SellPrice":1703, "MeanPrice":1204, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":5473, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128064028, "Name":"$atmosphericextractors_name;", "Name_Localised":"Atmospheric Processors", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":331, "SellPrice":330, "MeanPrice":571, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128666746, "Name":"$eraninpearlwhisky_name;", "Name_Localised":"Eranin Pearl Whisky", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":2058, "SellPrice":2057, "MeanPrice":9040, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128666747, "Name":"$lavianbrandy_name;", "Name_Localised":"Lavian Brandy", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":3614, "SellPrice":3613, "MeanPrice":10365, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128666757, "Name":"$usscargorareartwork_name;", "Name_Localised":"Rare Artwork", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":15150, "SellPrice":15149, "MeanPrice":16807, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128667019, "Name":"$hip10175bushmeat_name;", "Name_Localised":"HIP 10175 Bush Meat", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2246, "SellPrice":2245, "MeanPrice":9382, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667020, "Name":"$albinoquechuamammoth_name;", "Name_Localised":"Albino Quechua Mammoth Meat", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2663, "SellPrice":2662, "MeanPrice":9687, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667021, "Name":"$utgaroarmillenialeggs_name;", "Name_Localised":"Utgaroar Millennial Eggs", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2217, "SellPrice":2216, "MeanPrice":9163, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667022, "Name":"$witchhaulkobebeef_name;", "Name_Localised":"Witchhaul Kobe Beef", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":4313, "SellPrice":4312, "MeanPrice":11085, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667023, "Name":"$karsukilocusts_name;", "Name_Localised":"Karsuki Locusts", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1583, "SellPrice":1582, "MeanPrice":8543, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667024, "Name":"$giantirukamasnails_name;", "Name_Localised":"Giant Irukama Snails", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2131, "SellPrice":2130, "MeanPrice":9174, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667025, "Name":"$baltahsinevacuumkrill_name;", "Name_Localised":"Baltah'sine Vacuum Krill", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1502, "SellPrice":1501, "MeanPrice":8479, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667026, "Name":"$cetirabbits_name;", "Name_Localised":"Ceti Rabbits", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2068, "SellPrice":2067, "MeanPrice":9079, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667027, "Name":"$kachiriginleaches_name;", "Name_Localised":"Kachirigin Filter Leeches", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":1359, "SellPrice":1358, "MeanPrice":8227, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667029, "Name":"$onionhead_name;", "Name_Localised":"Onionhead", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1814, "SellPrice":1813, "MeanPrice":8437, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667034, "Name":"$konggaale_name;", "Name_Localised":"Kongga Ale", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1578, "SellPrice":1577, "MeanPrice":8310, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667035, "Name":"$wuthielokufroth_name;", "Name_Localised":"Wuthielo Ku Froth", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1558, "SellPrice":1557, "MeanPrice":8194, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667036, "Name":"$alacarakmoskinart_name;", "Name_Localised":"Alacarakmo Skin Art", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1858, "SellPrice":1857, "MeanPrice":8899, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667037, "Name":"$eleuthermals_name;", "Name_Localised":"Eleu Thermals", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1571, "SellPrice":1570, "MeanPrice":8507, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667038, "Name":"$eshuumbrellas_name;", "Name_Localised":"Eshu Umbrellas", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":2187, "SellPrice":2186, "MeanPrice":9343, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667039, "Name":"$karetiicouture_name;", "Name_Localised":"Karetii Couture", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":4748, "SellPrice":4747, "MeanPrice":11582, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667040, "Name":"$njangarisaddles_name;", "Name_Localised":"Njangari Saddles", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1639, "SellPrice":1638, "MeanPrice":8356, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667041, "Name":"$anynacoffee_name;", "Name_Localised":"Any Na Coffee", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2165, "SellPrice":2164, "MeanPrice":9160, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667042, "Name":"$cd75catcoffee_name;", "Name_Localised":"CD-75 Kitten Brand Coffee", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2452, "SellPrice":2451, "MeanPrice":9571, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667043, "Name":"$gomanyauponcoffee_name;", "Name_Localised":"Goman Yaupon Coffee", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1843, "SellPrice":1842, "MeanPrice":8921, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667044, "Name":"$volkhabbeedrones_name;", "Name_Localised":"Volkhab Bee Drones", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":3849, "SellPrice":3848, "MeanPrice":10198, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667045, "Name":"$kinagoinstruments_name;", "Name_Localised":"Kinago Violins", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":6570, "SellPrice":6569, "MeanPrice":13030, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667046, "Name":"$ngunamodernantiques_name;", "Name_Localised":"Nguna Modern Antiques", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1989, "SellPrice":1988, "MeanPrice":8545, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667047, "Name":"$rajukrustoves_name;", "Name_Localised":"Rajukru Multi-Stoves", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":2346, "SellPrice":2345, "MeanPrice":8378, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667048, "Name":"$tiolcewaste2pasteunits_name;", "Name_Localised":"Tiolce Waste2Paste Units", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1648, "SellPrice":1647, "MeanPrice":8710, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667049, "Name":"$chieridanimarinepaste_name;", "Name_Localised":"Chi Eridani Marine Paste", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1426, "SellPrice":1425, "MeanPrice":8450, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667050, "Name":"$esusekucaviar_name;", "Name_Localised":"Esuseku Caviar", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2573, "SellPrice":2572, "MeanPrice":9625, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667051, "Name":"$livehecateseaworms_name;", "Name_Localised":"Live Hecate Sea Worms", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1899, "SellPrice":1898, "MeanPrice":8737, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667052, "Name":"$helvetitjpearls_name;", "Name_Localised":"Helvetitj Pearls", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":3507, "SellPrice":3506, "MeanPrice":10450, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667053, "Name":"$hip41181squid_name;", "Name_Localised":"HIP Proto-Squid", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1891, "SellPrice":1890, "MeanPrice":8947, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667054, "Name":"$coquimspongiformvictuals_name;", "Name_Localised":"Coquim Spongiform Victuals", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":10924, "SellPrice":10923, "MeanPrice":8077, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667055, "Name":"$aerialedenapple_name;", "Name_Localised":"Eden Apples Of Aerial", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1660, "SellPrice":1659, "MeanPrice":8331, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667056, "Name":"$neritusberries_name;", "Name_Localised":"Neritus Berries", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1616, "SellPrice":1615, "MeanPrice":8497, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667057, "Name":"$ochoengchillies_name;", "Name_Localised":"Ochoeng Chillies", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1659, "SellPrice":1658, "MeanPrice":8601, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667058, "Name":"$deuringastruffles_name;", "Name_Localised":"Deuringas Truffles", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2335, "SellPrice":2334, "MeanPrice":9232, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667059, "Name":"$hr7221wheat_name;", "Name_Localised":"HR 7221 Wheat", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1540, "SellPrice":1539, "MeanPrice":8190, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667060, "Name":"$jarouarice_name;", "Name_Localised":"Jaroua Rice", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2711, "SellPrice":2710, "MeanPrice":8169, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667061, "Name":"$belalansrayleather_name;", "Name_Localised":"Belalans Ray Leather", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1605, "SellPrice":1604, "MeanPrice":8519, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667062, "Name":"$damnacarapaces_name;", "Name_Localised":"Damna Carapaces", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":2925, "SellPrice":2924, "MeanPrice":8120, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667063, "Name":"$rapabaosnakeskins_name;", "Name_Localised":"Rapa Bao Snake Skins", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1726, "SellPrice":1725, "MeanPrice":8285, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667064, "Name":"$vanayequirhinofur_name;", "Name_Localised":"Vanayequi Ceratomorpha Fur", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1660, "SellPrice":1659, "MeanPrice":8331, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667065, "Name":"$bastsnakegin_name;", "Name_Localised":"Bast Snake Gin", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1724, "SellPrice":1723, "MeanPrice":8659, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667066, "Name":"$thrutiscream_name;", "Name_Localised":"Thrutis Cream", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1538, "SellPrice":1537, "MeanPrice":8550, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667067, "Name":"$wulpahyperboresystems_name;", "Name_Localised":"Wulpa Hyperbore Systems", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":2294, "SellPrice":2293, "MeanPrice":8726, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667073, "Name":"$deltaphoenicispalms_name;", "Name_Localised":"Delta Phoenicis Palms", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":1528, "SellPrice":1527, "MeanPrice":8188, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667074, "Name":"$toxandjivirocide_name;", "Name_Localised":"Toxandji Virocide", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":1678, "SellPrice":1677, "MeanPrice":8275, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667075, "Name":"$xihecompanions_name;", "Name_Localised":"Xihe Biomorphic Companions", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":4277, "SellPrice":4276, "MeanPrice":11058, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667076, "Name":"$sanumameat_name;", "Name_Localised":"Sanuma Decorative Meat", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1319, "SellPrice":1318, "MeanPrice":8504, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667077, "Name":"$ethgrezeteabuds_name;", "Name_Localised":"Ethgreze Tea Buds", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":3212, "SellPrice":3211, "MeanPrice":10197, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667078, "Name":"$ceremonialheiketea_name;", "Name_Localised":"Ceremonial Heike Tea", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2161, "SellPrice":2160, "MeanPrice":9251, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667079, "Name":"$tanmarktranquiltea_name;", "Name_Localised":"Tanmark Tranquil Tea", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2041, "SellPrice":2040, "MeanPrice":9177, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667080, "Name":"$azcancriformula42_name;", "Name_Localised":"AZ Cancri Formula 42", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":6106, "SellPrice":6105, "MeanPrice":12440, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667081, "Name":"$kamitracigars_name;", "Name_Localised":"Kamitra Cigars", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":5522, "SellPrice":5521, "MeanPrice":12282, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667082, "Name":"$rusanioldsmokey_name;", "Name_Localised":"Rusani Old Smokey", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":5179, "SellPrice":5178, "MeanPrice":11994, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667083, "Name":"$yasokondileaf_name;", "Name_Localised":"Yaso Kondi Leaf", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":5381, "SellPrice":5380, "MeanPrice":12171, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667084, "Name":"$chateaudeaegaeon_name;", "Name_Localised":"Chateau De Aegaeon", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1610, "SellPrice":1609, "MeanPrice":8791, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667085, "Name":"$watersofshintara_name;", "Name_Localised":"The Waters Of Shintara", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":7070, "SellPrice":7069, "MeanPrice":13711, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667668, "Name":"$ophiuchiexinoartefacts_name;", "Name_Localised":"Ophiuch Exino Artefacts", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":4072, "SellPrice":4071, "MeanPrice":10969, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667669, "Name":"$bakedgreebles_name;", "Name_Localised":"Baked Greebles", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1056, "SellPrice":1055, "MeanPrice":8211, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667670, "Name":"$cetiaepyornisegg_name;", "Name_Localised":"Aepyornis Egg", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2741, "SellPrice":2740, "MeanPrice":9769, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667671, "Name":"$saxonwine_name;", "Name_Localised":"Saxon Wine", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1863, "SellPrice":1862, "MeanPrice":8983, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667672, "Name":"$centaurimegagin_name;", "Name_Localised":"Centauri Mega Gin", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":3239, "SellPrice":3238, "MeanPrice":10217, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667673, "Name":"$anduligafireworks_name;", "Name_Localised":"Anduliga Fire Works", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1574, "SellPrice":1573, "MeanPrice":8519, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667674, "Name":"$bankiamphibiousleather_name;", "Name_Localised":"Banki Amphibious Leather", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1138, "SellPrice":1137, "MeanPrice":8338, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667675, "Name":"$cherbonesbloodcrystals_name;", "Name_Localised":"Cherbones Blood Crystals", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":10207, "SellPrice":10206, "MeanPrice":16714, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667678, "Name":"$gerasiangueuzebeer_name;", "Name_Localised":"Gerasian Gueuze Beer", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1067, "SellPrice":1066, "MeanPrice":8215, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667679, "Name":"$haidneblackbrew_name;", "Name_Localised":"Haiden Black Brew", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1693, "SellPrice":1692, "MeanPrice":8837, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667680, "Name":"$havasupaidreamcatcher_name;", "Name_Localised":"Havasupai Dream Catcher", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":8056, "SellPrice":8055, "MeanPrice":14639, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667682, "Name":"$hiporganophosphates_name;", "Name_Localised":"Hip Organophosphates", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":1039, "SellPrice":1038, "MeanPrice":8169, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667683, "Name":"$jaradharrepuzzlebox_name;", "Name_Localised":"Jaradharre Puzzle Box", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":10325, "SellPrice":10324, "MeanPrice":16816, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667684, "Name":"$korrokungpellets_name;", "Name_Localised":"Koro Kung Pellets", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":1190, "SellPrice":1189, "MeanPrice":8067, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667685, "Name":"$lftvoidextractcoffee_name;", "Name_Localised":"Void Extract Coffee", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2506, "SellPrice":2505, "MeanPrice":9554, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667686, "Name":"$honestypills_name;", "Name_Localised":"Honesty Pills", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":1686, "SellPrice":1685, "MeanPrice":8860, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667687, "Name":"$noneuclidianexotanks_name;", "Name_Localised":"Non Euclidian Exotanks", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1326, "SellPrice":1325, "MeanPrice":8526, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667688, "Name":"$ltthypersweet_name;", "Name_Localised":"LTT Hyper Sweet", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1233, "SellPrice":1232, "MeanPrice":8054, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667689, "Name":"$mechucoshightea_name;", "Name_Localised":"Mechucos High Tea", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1709, "SellPrice":1708, "MeanPrice":8846, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667690, "Name":"$medbstarlube_name;", "Name_Localised":"Medb Starlube", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":1953, "SellPrice":1952, "MeanPrice":8191, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667691, "Name":"$mokojingbeastfeast_name;", "Name_Localised":"Mokojing Beast Feast", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":2770, "SellPrice":2769, "MeanPrice":9788, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667692, "Name":"$mukusubiichitinos_name;", "Name_Localised":"Mukusubii Chitin-os", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1190, "SellPrice":1189, "MeanPrice":8359, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667693, "Name":"$mulachigiantfungus_name;", "Name_Localised":"Mulachi Giant Fungus", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":8230, "SellPrice":8229, "MeanPrice":7957, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667694, "Name":"$ngadandarifireopals_name;", "Name_Localised":"Ngadandari Fire Opals", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":12751, "SellPrice":12750, "MeanPrice":19112, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667695, "Name":"$tiegfriessynthsilk_name;", "Name_Localised":"Tiegfries Synth Silk", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1263, "SellPrice":1262, "MeanPrice":8478, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667696, "Name":"$uzumokulowgwings_name;", "Name_Localised":"Uzumoku Low-G Wings", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":7233, "SellPrice":7232, "MeanPrice":13845, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667697, "Name":"$vherculisbodyrub_name;", "Name_Localised":"V Herculis Body Rub", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":1730, "SellPrice":1729, "MeanPrice":8010, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667698, "Name":"$wheemetewheatcakes_name;", "Name_Localised":"Wheemete Wheat Cakes", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1164, "SellPrice":1163, "MeanPrice":8081, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667699, "Name":"$vegaslimweed_name;", "Name_Localised":"Vega Slimweed", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":2518, "SellPrice":2517, "MeanPrice":9588, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667700, "Name":"$altairianskin_name;", "Name_Localised":"Altairian Skin", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1262, "SellPrice":1261, "MeanPrice":8432, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667702, "Name":"$jotunmookah_name;", "Name_Localised":"Jotun Mookah", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1637, "SellPrice":1636, "MeanPrice":8780, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667703, "Name":"$giantverrix_name;", "Name_Localised":"Giant Verrix", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":5713, "SellPrice":5712, "MeanPrice":12496, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667704, "Name":"$indibourbon_name;", "Name_Localised":"Indi Bourbon", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1638, "SellPrice":1637, "MeanPrice":8806, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667705, "Name":"$aroucaconventualsweets_name;", "Name_Localised":"Arouca Conventual Sweets", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1557, "SellPrice":1556, "MeanPrice":8737, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667706, "Name":"$taurichimes_name;", "Name_Localised":"Tauri Chimes", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1374, "SellPrice":1373, "MeanPrice":8549, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667707, "Name":"$zeesszeantglue_name;", "Name_Localised":"Zeessze Ant Grub Glue", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1089, "SellPrice":1088, "MeanPrice":8161, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667708, "Name":"$pantaaprayersticks_name;", "Name_Localised":"Pantaa Prayer Sticks", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":2043, "SellPrice":2042, "MeanPrice":9177, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667709, "Name":"$fujintea_name;", "Name_Localised":"Fujin Tea", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1418, "SellPrice":1417, "MeanPrice":8597, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667710, "Name":"$chameleoncloth_name;", "Name_Localised":"Chameleon Cloth", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1959, "SellPrice":1958, "MeanPrice":9071, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667711, "Name":"$orrerianviciousbrew_name;", "Name_Localised":"Orrerian Vicious Brew", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1146, "SellPrice":1145, "MeanPrice":8342, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667712, "Name":"$uszaiantreegrub_name;", "Name_Localised":"Uszaian Tree Grub", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1379, "SellPrice":1378, "MeanPrice":8578, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667713, "Name":"$momusbogspaniel_name;", "Name_Localised":"Momus Bog Spaniel", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":2054, "SellPrice":2053, "MeanPrice":9184, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667714, "Name":"$disomacorn_name;", "Name_Localised":"Diso Ma Corn", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":1053, "SellPrice":1052, "MeanPrice":8134, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667715, "Name":"$leestianeviljuice_name;", "Name_Localised":"Leestian Evil Juice", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1086, "SellPrice":1085, "MeanPrice":8220, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667716, "Name":"$bluemilk_name;", "Name_Localised":"Azure Milk", "Category":"$MARKET_category_foods;", "Category_Localised":"Foods", "BuyPrice":3912, "SellPrice":3911, "MeanPrice":10805, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667717, "Name":"$alieneggs_name;", "Name_Localised":"Leathery Eggs", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":19095, "SellPrice":19094, "MeanPrice":25067, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667718, "Name":"$alyabodilysoap_name;", "Name_Localised":"Alya Body Soap", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":1078, "SellPrice":1077, "MeanPrice":8218, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667719, "Name":"$vidavantianlace_name;", "Name_Localised":"Vidavantian Lace", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":5861, "SellPrice":5860, "MeanPrice":12615, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128667760, "Name":"$transgeniconionhead_name;", "Name_Localised":"Lucan Onionhead", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1483, "SellPrice":1482, "MeanPrice":8472, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128668017, "Name":"$jaquesquinentianstill_name;", "Name_Localised":"Jaques Quinentian Still", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":7233, "SellPrice":7232, "MeanPrice":13845, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128668018, "Name":"$soontillrelics_name;", "Name_Localised":"Soontill Relics", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":13602, "SellPrice":13601, "MeanPrice":19885, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128668547, "Name":"$unknownartifact_name;", "Name_Localised":"Thargoid Sensor", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":234627, "SellPrice":234615, "MeanPrice":306252, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128668550, "Name":"$painite_name;", "Name_Localised":"Painite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":192955, "MeanPrice":53016, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":4, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128671118, "Name":"$osmium_name;", "Name_Localised":"Osmium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":23482, "SellPrice":23480, "MeanPrice":45198, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128671119, "Name":"$advert1_name;", "Name_Localised":"Ultra-Compact Processor Prototypes", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":15267, "SellPrice":15266, "MeanPrice":21542, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128671443, "Name":"$sap8corecontainer_name;", "Name_Localised":"SAP 8 Core Container", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":49112, "SellPrice":49109, "MeanPrice":67593, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672121, "Name":"$thehuttonmug_name;", "Name_Localised":"The Hutton Mug", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":2751, "SellPrice":2750, "MeanPrice":7986, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128672122, "Name":"$sothiscrystallinegold_name;", "Name_Localised":"Sothis Crystalline Gold", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":12751, "SellPrice":12750, "MeanPrice":19112, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128672124, "Name":"$encripteddatastorage_name;", "Name_Localised":"Encrypted Data Storage", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":4049, "SellPrice":4048, "MeanPrice":8313, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672127, "Name":"$comercialsamples_name;", "Name_Localised":"Commercial Samples", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":656, "SellPrice":655, "MeanPrice":1815, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672128, "Name":"$tacticaldata_name;", "Name_Localised":"Tactical Data", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":2170, "SellPrice":2169, "MeanPrice":15622, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672129, "Name":"$assaultplans_name;", "Name_Localised":"Assault Plans", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":3294, "SellPrice":3293, "MeanPrice":26074, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672130, "Name":"$encryptedcorrespondence_name;", "Name_Localised":"Encrypted Correspondence", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":3935, "SellPrice":3934, "MeanPrice":8226, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672131, "Name":"$diplomaticbag_name;", "Name_Localised":"Diplomatic Bag", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":4265, "SellPrice":4264, "MeanPrice":28625, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672132, "Name":"$scientificresearch_name;", "Name_Localised":"Scientific Research", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":13394, "SellPrice":13393, "MeanPrice":20151, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672133, "Name":"$scientificsamples_name;", "Name_Localised":"Scientific Samples", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":10878, "SellPrice":10877, "MeanPrice":7955, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672136, "Name":"$largeexplorationdatacash_name;", "Name_Localised":"Large Survey Data Cache", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":225210, "SellPrice":225198, "MeanPrice":255841, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672137, "Name":"$smallexplorationdatacash_name;", "Name_Localised":"Small Survey Data Cache", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":40615, "SellPrice":40612, "MeanPrice":25005, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672159, "Name":"$antiquejewellery_name;", "Name_Localised":"Antique Jewellery", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":158957, "SellPrice":158949, "MeanPrice":183163, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672160, "Name":"$preciousgems_name;", "Name_Localised":"Precious Gems", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":138850, "SellPrice":138843, "MeanPrice":160280, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672161, "Name":"$earthrelics_name;", "Name_Localised":"Earth Relics", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":14640, "SellPrice":14639, "MeanPrice":15161, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672162, "Name":"$genebank_name;", "Name_Localised":"Gene Bank", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":46704, "SellPrice":46701, "MeanPrice":59082, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672163, "Name":"$timecapsule_name;", "Name_Localised":"Time Capsule", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":2926, "SellPrice":2925, "MeanPrice":5364, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672294, "Name":"$cryolite_name;", "Name_Localised":"Cryolite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":14970, "MeanPrice":12173, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1166, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128672295, "Name":"$goslarite_name;", "Name_Localised":"Goslarite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":8024, "MeanPrice":5979, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1290, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128672296, "Name":"$moissanite_name;", "Name_Localised":"Moissanite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":16662, "SellPrice":16661, "MeanPrice":24833, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672297, "Name":"$pyrophyllite_name;", "Name_Localised":"Pyrophyllite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":13777, "MeanPrice":11538, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":341, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128672298, "Name":"$lanthanum_name;", "Name_Localised":"Lanthanum", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":6087, "SellPrice":6086, "MeanPrice":8707, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672299, "Name":"$thallium_name;", "Name_Localised":"Thallium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":2539, "SellPrice":2538, "MeanPrice":3745, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672300, "Name":"$bismuth_name;", "Name_Localised":"Bismuth", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":1607, "SellPrice":1606, "MeanPrice":2441, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672301, "Name":"$thorium_name;", "Name_Localised":"Thorium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":7969, "SellPrice":7968, "MeanPrice":11317, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672302, "Name":"$ceramiccomposites_name;", "Name_Localised":"Ceramic Composites", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":424, "SellPrice":423, "MeanPrice":415, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672303, "Name":"$syntheticreagents_name;", "Name_Localised":"Synthetic Reagents", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":4463, "SellPrice":4462, "MeanPrice":6651, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672305, "Name":"$surfacestabilisers_name;", "Name_Localised":"Surface Stabilisers", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":1656, "SellPrice":1550, "MeanPrice":726, "StockBracket":1, "DemandBracket":0, "Stock":67, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128672307, "Name":"$geologicalequipment_name;", "Name_Localised":"Geological Equipment", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1186, "SellPrice":1185, "MeanPrice":1886, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672308, "Name":"$thermalcoolingunits_name;", "Name_Localised":"Thermal Cooling Units", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":2516, "SellPrice":2515, "MeanPrice":3760, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672309, "Name":"$buildingfabricators_name;", "Name_Localised":"Building Fabricators", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1448, "SellPrice":1447, "MeanPrice":2312, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672310, "Name":"$mutomimager_name;", "Name_Localised":"Muon Imager", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":4218, "SellPrice":4217, "MeanPrice":6311, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672311, "Name":"$structuralregulators_name;", "Name_Localised":"Structural Regulators", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":1186, "SellPrice":1185, "MeanPrice":1932, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672313, "Name":"$skimercomponents_name;", "Name_Localised":"Skimmer Components", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":530, "SellPrice":529, "MeanPrice":1119, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672314, "Name":"$evacuationshelter_name;", "Name_Localised":"Evacuation Shelter", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":138, "SellPrice":137, "MeanPrice":522, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672315, "Name":"$geologicalsamples_name;", "Name_Localised":"Geological Samples", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":12144, "SellPrice":12143, "MeanPrice":8313, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672431, "Name":"$personalgifts_name;", "Name_Localised":"Personal Gifts", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":10000, "SellPrice":9999, "MeanPrice":16535, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128672432, "Name":"$crystallinespheres_name;", "Name_Localised":"Crystalline Spheres", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":5438, "SellPrice":5437, "MeanPrice":12216, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128672701, "Name":"$metaalloys_name;", "Name_Localised":"Meta-Alloys", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":162685, "SellPrice":162676, "MeanPrice":195453, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672775, "Name":"$taaffeite_name;", "Name_Localised":"Taaffeite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":51665, "SellPrice":51662, "MeanPrice":52089, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672776, "Name":"$jadeite_name;", "Name_Localised":"Jadeite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":40631, "SellPrice":40628, "MeanPrice":42383, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672810, "Name":"$unstabledatacore_name;", "Name_Localised":"Unstable Data Core", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":2371, "SellPrice":2370, "MeanPrice":4516, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128672812, "Name":"$onionheada_name;", "Name_Localised":"Onionhead Alpha Strain", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1272, "SellPrice":1271, "MeanPrice":8437, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128673069, "Name":"$onionheadb_name;", "Name_Localised":"Onionhead Beta Strain", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":1272, "SellPrice":1271, "MeanPrice":8437, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128673845, "Name":"$praseodymium_name;", "Name_Localised":"Praseodymium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":6708, "SellPrice":6707, "MeanPrice":8620, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673846, "Name":"$bromellite_name;", "Name_Localised":"Bromellite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":70950, "SellPrice":70946, "MeanPrice":30424, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673847, "Name":"$samarium_name;", "Name_Localised":"Samarium", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":31195, "SellPrice":31193, "MeanPrice":25852, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673848, "Name":"$lowtemperaturediamond_name;", "Name_Localised":"Low Temp. Diamonds", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":293785, "MeanPrice":106353, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128673850, "Name":"$hydrogenperoxide_name;", "Name_Localised":"Hydrogen Peroxide", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":0, "SellPrice":3301, "MeanPrice":3160, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":548, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128673851, "Name":"$liquidoxygen_name;", "Name_Localised":"Liquid oxygen", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":957, "SellPrice":850, "MeanPrice":1474, "StockBracket":1, "DemandBracket":0, "Stock":22, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128673852, "Name":"$methanolmonohydratecrystals_name;", "Name_Localised":"Methanol Monohydrate Crystals", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":1290, "SellPrice":1289, "MeanPrice":2478, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673853, "Name":"$lithiumhydroxide_name;", "Name_Localised":"Lithium Hydroxide", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":7350, "MeanPrice":5673, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":99, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128673854, "Name":"$methaneclathrate_name;", "Name_Localised":"Methane Clathrate", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":1740, "MeanPrice":1650, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2873, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128673855, "Name":"$insulatingmembrane_name;", "Name_Localised":"Insulating Membrane", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":10137, "SellPrice":10021, "MeanPrice":10724, "StockBracket":2, "DemandBracket":0, "Stock":2, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128673856, "Name":"$cmmcomposite_name;", "Name_Localised":"CMM Composite", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":3907, "SellPrice":3906, "MeanPrice":5988, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673857, "Name":"$coolinghoses_name;", "Name_Localised":"Micro-weave Cooling Hoses", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":707, "SellPrice":706, "MeanPrice":1886, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673858, "Name":"$neofabricinsulation_name;", "Name_Localised":"Neofabric Insulation", "Category":"$MARKET_category_industrial_materials;", "Category_Localised":"Industrial materials", "BuyPrice":3380, "SellPrice":3379, "MeanPrice":5978, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673859, "Name":"$articulationmotors_name;", "Name_Localised":"Articulation Motors", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":4463, "SellPrice":4462, "MeanPrice":7588, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673860, "Name":"$hnshockmount_name;", "Name_Localised":"HN Shock Mount", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1075, "SellPrice":1074, "MeanPrice":1922, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673861, "Name":"$emergencypowercells_name;", "Name_Localised":"Emergency Power Cells", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1338, "SellPrice":1337, "MeanPrice":2368, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673862, "Name":"$powerconverter_name;", "Name_Localised":"Power Converter", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":707, "SellPrice":706, "MeanPrice":1433, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673863, "Name":"$powergridassembly_name;", "Name_Localised":"Energy Grid Assembly", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1543, "SellPrice":1542, "MeanPrice":2659, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673864, "Name":"$powertransferconduits_name;", "Name_Localised":"Power Transfer Bus", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1254, "SellPrice":1253, "MeanPrice":2212, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673865, "Name":"$radiationbaffle_name;", "Name_Localised":"Radiation Baffle", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":935, "SellPrice":934, "MeanPrice":1787, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673866, "Name":"$exhaustmanifold_name;", "Name_Localised":"Exhaust Manifold", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1009, "SellPrice":1008, "MeanPrice":1873, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673867, "Name":"$reinforcedmountingplate_name;", "Name_Localised":"Reinforced Mounting Plate", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1446, "SellPrice":1445, "MeanPrice":2454, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673868, "Name":"$heatsinkinterlink_name;", "Name_Localised":"Heatsink Interlink", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1161, "SellPrice":1160, "MeanPrice":2100, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673869, "Name":"$magneticemittercoil_name;", "Name_Localised":"Magnetic Emitter Coil", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":656, "SellPrice":655, "MeanPrice":1357, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673870, "Name":"$modularterminals_name;", "Name_Localised":"Modular Terminals", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1075, "SellPrice":1074, "MeanPrice":2475, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673871, "Name":"$nanobreakers_name;", "Name_Localised":"Nanobreakers", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":1009, "SellPrice":1008, "MeanPrice":2366, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673872, "Name":"$telemetrysuite_name;", "Name_Localised":"Telemetry Suite", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":1543, "SellPrice":1542, "MeanPrice":3214, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673873, "Name":"$microcontrollers_name;", "Name_Localised":"Micro Controllers", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":3612, "SellPrice":3611, "MeanPrice":5590, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673874, "Name":"$iondistributor_name;", "Name_Localised":"Ion Distributor", "Category":"$MARKET_category_machinery;", "Category_Localised":"Machinery", "BuyPrice":1338, "SellPrice":1337, "MeanPrice":2363, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673875, "Name":"$diagnosticsensor_name;", "Name_Localised":"Hardware Diagnostic Sensor", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":4463, "SellPrice":4462, "MeanPrice":6727, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128673876, "Name":"$unknownartifact2_name;", "Name_Localised":"Thargoid Probe", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":344560, "SellPrice":344542, "MeanPrice":443535, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128682044, "Name":"$conductivefabrics_name;", "Name_Localised":"Conductive Fabrics", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":1937, "SellPrice":1810, "MeanPrice":709, "StockBracket":1, "DemandBracket":0, "Stock":55, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128682045, "Name":"$militarygradefabrics_name;", "Name_Localised":"Military Grade Fabrics", "Category":"$MARKET_category_textiles;", "Category_Localised":"Textiles", "BuyPrice":3690, "SellPrice":3527, "MeanPrice":984, "StockBracket":1, "DemandBracket":0, "Stock":46, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128682046, "Name":"$advancedmedicines_name;", "Name_Localised":"Advanced Medicines", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":0, "SellPrice":1726, "MeanPrice":1485, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":296, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128682047, "Name":"$medicaldiagnosticequipment_name;", "Name_Localised":"Medical Diagnostic Equipment", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":1779, "SellPrice":1778, "MeanPrice":3075, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128682048, "Name":"$survivalequipment_name;", "Name_Localised":"Survival Equipment", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":533, "SellPrice":532, "MeanPrice":684, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128682049, "Name":"$datacore_name;", "Name_Localised":"Data Core", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":3907, "SellPrice":3906, "MeanPrice":6791, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128682050, "Name":"$galactictravelguide_name;", "Name_Localised":"Galactic Travel Guide", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":359, "SellPrice":358, "MeanPrice":8627, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128682051, "Name":"$mysteriousidol_name;", "Name_Localised":"Mysterious Idol", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":13815, "SellPrice":13814, "MeanPrice":20863, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128682054, "Name":"$spacepioneerrelics_name;", "Name_Localised":"Space Pioneer Relics", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":5967, "SellPrice":5966, "MeanPrice":9780, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128682055, "Name":"$fossilremnants_name;", "Name_Localised":"Fossil Remnants", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":7379, "SellPrice":7378, "MeanPrice":11785, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128732183, "Name":"$ancientrelic_name;", "Name_Localised":"Guardian Relic", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":9126, "SellPrice":9125, "MeanPrice":24962, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128732184, "Name":"$ancientorb_name;", "Name_Localised":"Guardian Orb", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":5967, "SellPrice":5966, "MeanPrice":17415, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128732185, "Name":"$ancientcasket_name;", "Name_Localised":"Guardian Casket", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":5581, "SellPrice":5580, "MeanPrice":16294, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128732186, "Name":"$ancienttablet_name;", "Name_Localised":"Guardian Tablet", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":5967, "SellPrice":5966, "MeanPrice":17415, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128732187, "Name":"$ancienturn_name;", "Name_Localised":"Guardian Urn", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":3907, "SellPrice":3906, "MeanPrice":14907, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128732188, "Name":"$ancienttotem_name;", "Name_Localised":"Guardian Totem", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":7379, "SellPrice":7378, "MeanPrice":20437, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128732551, "Name":"$shanscharisorchid_name;", "Name_Localised":"Shan's Charis Orchid", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":1914, "SellPrice":1913, "MeanPrice":9043, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128737287, "Name":"$unknownresin_name;", "Name_Localised":"Thargoid Resin", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":22634, "SellPrice":22632, "MeanPrice":32825, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128737288, "Name":"$unknownbiologicalmatter_name;", "Name_Localised":"Thargoid Biological Matter", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":37090, "SellPrice":37088, "MeanPrice":51920, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128737289, "Name":"$unknowntechnologysamples_name;", "Name_Localised":"Thargoid Technology Samples", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":28012, "SellPrice":28010, "MeanPrice":39930, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128740752, "Name":"$unknownartifact3_name;", "Name_Localised":"Thargoid Link", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":37090, "SellPrice":37088, "MeanPrice":51920, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128748428, "Name":"$buckyballbeermats_name;", "Name_Localised":"Buckyball Beer Mats", "Category":"$MARKET_category_consumer_items;", "Category_Localised":"Consumer items", "BuyPrice":8230, "SellPrice":8229, "MeanPrice":7957, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128793113, "Name":"$harmasilversearum_name;", "Name_Localised":"Harma Silver Sea Rum", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":4217, "SellPrice":4216, "MeanPrice":9762, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128793114, "Name":"$platinumaloy_name;", "Name_Localised":"Platinum Alloy", "Category":"$MARKET_category_metals;", "Category_Localised":"Metals", "BuyPrice":12009, "SellPrice":12008, "MeanPrice":18333, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128793127, "Name":"$thargoidheart_name;", "Name_Localised":"Thargoid Heart", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":104381, "SellPrice":104375, "MeanPrice":140275, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128793128, "Name":"$thargoidtissuesampletype1_name;", "Name_Localised":"Thargoid Cyclops Tissue Sample", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":45421, "SellPrice":45418, "MeanPrice":63272, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128793129, "Name":"$thargoidtissuesampletype2_name;", "Name_Localised":"Thargoid Basilisk Tissue Sample", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":52545, "SellPrice":52542, "MeanPrice":72212, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128793130, "Name":"$thargoidtissuesampletype3_name;", "Name_Localised":"Thargoid Medusa Tissue Sample", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":60149, "SellPrice":60145, "MeanPrice":82435, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128824468, "Name":"$thargoidscouttissuesample_name;", "Name_Localised":"Thargoid Scout Tissue Sample", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":15982, "SellPrice":15981, "MeanPrice":23731, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128888499, "Name":"$ancientkey_name;", "Name_Localised":"Ancient Key", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":9760, "SellPrice":9759, "MeanPrice":29931, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128902652, "Name":"$thargoidtissuesampletype4_name;", "Name_Localised":"Thargoid Hydra Tissue Sample", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":79648, "SellPrice":79644, "MeanPrice":107495, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128913661, "Name":"$nanomedicines_name;", "Name_Localised":"Nanomedicines", "Category":"$MARKET_category_medicines;", "Category_Localised":"Medicines", "BuyPrice":2227, "SellPrice":2226, "MeanPrice":9859, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128922517, "Name":"$m_tissuesample_fluid_name;", "Name_Localised":"Mollusc Fluid", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":3380, "SellPrice":3379, "MeanPrice":6031, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922518, "Name":"$m_tissuesample_soft_name;", "Name_Localised":"Mollusc Soft Tissue", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":11290, "SellPrice":11289, "MeanPrice":17216, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922519, "Name":"$m_tissuesample_nerves_name;", "Name_Localised":"Mollusc Brain Tissue", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":22634, "SellPrice":22632, "MeanPrice":32825, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922520, "Name":"$s_tissuesample_cells_name;", "Name_Localised":"Pod Core Tissue", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":2532, "SellPrice":2531, "MeanPrice":4780, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922521, "Name":"$s_tissuesample_surface_name;", "Name_Localised":"Pod Dead Tissue", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":8438, "SellPrice":8437, "MeanPrice":13361, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922522, "Name":"$s_tissuesample_core_name;", "Name_Localised":"Pod Surface Tissue", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":19777, "SellPrice":19776, "MeanPrice":28819, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922523, "Name":"$p_particulatesample_name;", "Name_Localised":"Anomaly Particles", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":32061, "SellPrice":32059, "MeanPrice":45525, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922524, "Name":"$duradrives_name;", "Name_Localised":"Duradrives", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":13002, "SellPrice":13001, "MeanPrice":19356, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128922781, "Name":"$s9_tissuesample_shell_name;", "Name_Localised":"Pod Tissue", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":7890, "SellPrice":7889, "MeanPrice":12546, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922782, "Name":"$m3_tissuesample_membrane_name;", "Name_Localised":"Mollusc Membrane", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":12075, "SellPrice":12074, "MeanPrice":18352, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922783, "Name":"$m3_tissuesample_mycelium_name;", "Name_Localised":"Mollusc Mycelium", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":22634, "SellPrice":22632, "MeanPrice":32825, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922784, "Name":"$m3_tissuesample_spores_name;", "Name_Localised":"Mollusc Spores", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":3380, "SellPrice":3379, "MeanPrice":6031, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922785, "Name":"$s6_tissuesample_mesoglea_name;", "Name_Localised":"Pod Mesoglea", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":18488, "SellPrice":18487, "MeanPrice":27009, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922786, "Name":"$s6_tissuesample_cells_name;", "Name_Localised":"Pod Outer Tissue", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":4175, "SellPrice":4174, "MeanPrice":7210, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128922787, "Name":"$s6_tissuesample_coenosarc_name;", "Name_Localised":"Pod Shell Tissue", "Category":"$MARKET_category_salvage;", "Category_Localised":"Salvage", "BuyPrice":37090, "SellPrice":37088, "MeanPrice":51920, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128924325, "Name":"$rhodplumsite_name;", "Name_Localised":"Rhodplumsite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":275688, "MeanPrice":176839, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128924326, "Name":"$serendibite_name;", "Name_Localised":"Serendibite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":560027, "MeanPrice":172711, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128924327, "Name":"$monazite_name;", "Name_Localised":"Monazite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":840306, "MeanPrice":200975, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128924328, "Name":"$musgravite_name;", "Name_Localised":"Musgravite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":382972, "MeanPrice":198613, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128924329, "Name":"$benitoite_name;", "Name_Localised":"Benitoite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":570449, "MeanPrice":149395, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128924330, "Name":"$grandidierite_name;", "Name_Localised":"Grandidierite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":458141, "MeanPrice":197292, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128924331, "Name":"$alexandrite_name;", "Name_Localised":"Alexandrite", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":357530, "MeanPrice":217277, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128924332, "Name":"$opal_name;", "Name_Localised":"Void Opal", "Category":"$MARKET_category_minerals;", "Category_Localised":"Minerals", "BuyPrice":0, "SellPrice":525075, "MeanPrice":135284, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":1, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128924333, "Name":"$rockforthfertiliser_name;", "Name_Localised":"Rockforth Fertiliser", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":6, "SellPrice":5, "MeanPrice":9, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":false },
|
||||
{ "id":128924334, "Name":"$agronomictreatment_name;", "Name_Localised":"Agronomic Treatment", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":0, "SellPrice":15596, "MeanPrice":3105, "StockBracket":0, "DemandBracket":3, "Stock":0, "Demand":2, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":128958679, "Name":"$apavietii_name;", "Name_Localised":"Apa Vietii", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":3386, "SellPrice":3385, "MeanPrice":10362, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true },
|
||||
{ "id":128961249, "Name":"$tritium_name;", "Name_Localised":"Tritium", "Category":"$MARKET_category_chemicals;", "Category_Localised":"Chemicals", "BuyPrice":56235, "SellPrice":55627, "MeanPrice":51707, "StockBracket":1, "DemandBracket":0, "Stock":2, "Demand":1, "Consumer":false, "Producer":true, "Rare":false },
|
||||
{ "id":128983059, "Name":"$onionheadc_name;", "Name_Localised":"Onionhead Gamma Strain", "Category":"$MARKET_category_drugs;", "Category_Localised":"Legal drugs", "BuyPrice":0, "SellPrice":5755, "MeanPrice":4828, "StockBracket":0, "DemandBracket":1, "Stock":0, "Demand":0, "Consumer":true, "Producer":false, "Rare":false },
|
||||
{ "id":129002574, "Name":"$classifiedexperimentalequipment_name;", "Name_Localised":"Classified Experimental Equipment", "Category":"$MARKET_category_technology;", "Category_Localised":"Technology", "BuyPrice":4002, "SellPrice":4001, "MeanPrice":11423, "StockBracket":0, "DemandBracket":0, "Stock":0, "Demand":0, "Consumer":false, "Producer":false, "Rare":true }
|
||||
] }
|
18
scripts/testing/gateway-responses/README.md
Normal file
18
scripts/testing/gateway-responses/README.md
Normal file
@ -0,0 +1,18 @@
|
||||
# Gateway Testing Scripts
|
||||
|
||||
## Introduction
|
||||
This directory contains some very "rough and ready" scripts, plus
|
||||
supporting files, that can be utilised to test that the EDDN Gateway code
|
||||
is properly responding in the face of a variety of bad messages.
|
||||
|
||||
Ultimately the plan is to use these as a basis for implementing some proper
|
||||
automated tests.
|
||||
|
||||
## Use
|
||||
The scripts are mostly written against Python 3.x and expect a single
|
||||
filename to be passed on the commandline. The exception is `test-bad-gzip.
|
||||
sh` which is a Bourne Shell script, using `curl` to send a request that
|
||||
claims to be gzipped, but isn't valid.
|
||||
|
||||
They all have the beta EDDN Gateway URL hard-coded. **NEVER** change this
|
||||
to run them against the live service!
|
@ -0,0 +1,46 @@
|
||||
{
|
||||
"$schemaRef": "http://schemas.elite-markets.net/eddn/commodity/2",
|
||||
"message": {
|
||||
"timestamp": "2022-01-06T11:19:27Z",
|
||||
"systemName": "LP 98-132",
|
||||
"stationName": "Freeport",
|
||||
"marketId": 128008448,
|
||||
"commodities": [
|
||||
{
|
||||
"name": "advancedcatalysers",
|
||||
"meanPrice": 3039,
|
||||
"buyPrice": 0,
|
||||
"stock": 0,
|
||||
"stockBracket": 0,
|
||||
"sellPrice": 3756,
|
||||
"demand": 936,
|
||||
"demandBracket": 3
|
||||
},
|
||||
{
|
||||
"name": "advancedmedicines",
|
||||
"meanPrice": 1485,
|
||||
"buyPrice": 0,
|
||||
"stock": 0,
|
||||
"stockBracket": 0,
|
||||
"sellPrice": 1726,
|
||||
"demand": 296,
|
||||
"demandBracket": 3
|
||||
},
|
||||
{
|
||||
"name": "advert1",
|
||||
"meanPrice": 21542,
|
||||
"buyPrice": 15267,
|
||||
"stock": 0,
|
||||
"stockBracket": 0,
|
||||
"sellPrice": 15266,
|
||||
"demand": 0,
|
||||
"demandBracket": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
"header": {
|
||||
"uploaderID": "Athanasius Testing",
|
||||
"softwareName": "Athanasius Testing",
|
||||
"softwareVersion": "v0.0.1"
|
||||
}
|
||||
}
|
6576
scripts/testing/gateway-responses/commodity-too-large.json
Normal file
6576
scripts/testing/gateway-responses/commodity-too-large.json
Normal file
File diff suppressed because it is too large
Load Diff
50
scripts/testing/gateway-responses/market.json-to-schema.py
Normal file
50
scripts/testing/gateway-responses/market.json-to-schema.py
Normal file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
from collections import OrderedDict
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print('<script> Market.json')
|
||||
sys.exit(-1)
|
||||
|
||||
CANONICALISE_RE = re.compile(r'\$(.+)_name;')
|
||||
|
||||
def canonicalise(item) -> str:
|
||||
match = CANONICALISE_RE.match(item)
|
||||
return match and match.group(1) or item
|
||||
|
||||
entry = json.load(open(sys.argv[1], 'r'))
|
||||
|
||||
items = entry.get('Items')
|
||||
|
||||
commodities = sorted((OrderedDict([
|
||||
('name', canonicalise(commodity['Name'])),
|
||||
('meanPrice', commodity['MeanPrice']),
|
||||
('buyPrice', commodity['BuyPrice']),
|
||||
('stock', commodity['Stock']),
|
||||
('stockBracket', commodity['StockBracket']),
|
||||
('sellPrice', commodity['SellPrice']),
|
||||
('demand', commodity['Demand']),
|
||||
('demandBracket', commodity['DemandBracket']),
|
||||
]) for commodity in items), key=lambda c: c['name'])
|
||||
|
||||
msg = {
|
||||
'$schemaRef': 'https://eddn.edcd.io/schemas/commodity/3',
|
||||
'message': OrderedDict([
|
||||
('timestamp', entry['timestamp']),
|
||||
('systemName', entry['StarSystem']),
|
||||
('stationName', entry['StationName']),
|
||||
('marketId', entry['MarketID']),
|
||||
('commodities', commodities),
|
||||
]),
|
||||
|
||||
}
|
||||
|
||||
msg['header'] = {
|
||||
'uploaderID': 'Athanasius Testing',
|
||||
'softwareName': 'Athanasius Testing',
|
||||
'softwareVersion': 'v0.0.1',
|
||||
}
|
||||
print(json.dumps(msg, indent=2))
|
37
scripts/testing/gateway-responses/scan-invalid-JSON.json
Normal file
37
scripts/testing/gateway-responses/scan-invalid-JSON.json
Normal file
@ -0,0 +1,37 @@
|
||||
{]
|
||||
"$schemaRef": "https://eddn.edcd.io/schemas/journal/1",
|
||||
"header": {
|
||||
"uploaderID": "Athanasius Testing",
|
||||
"softwareName": "Athanasius Testing",
|
||||
"softwareVersion": "v0.0.1"
|
||||
},
|
||||
"message": {
|
||||
"timestamp":"2021-11-05T15:46:28Z",
|
||||
"event":"Scan",
|
||||
"ScanType":"AutoScan",
|
||||
"BodyName":"Elphin",
|
||||
"BodyID":1,
|
||||
"Parents":[ {"Null":0} ],
|
||||
"StarSystem":"Elphin",
|
||||
"StarPos":[-30.12500,8.18750,-17.00000],
|
||||
"SystemAddress":3932076118738,
|
||||
"DistanceFromArrivalLS":0.000000,
|
||||
"StarType":"K",
|
||||
"Subclass":3,
|
||||
"StellarMass":0.769531,
|
||||
"Radius":587464832.000000,
|
||||
"AbsoluteMagnitude":6.294067,
|
||||
"Age_MY":9558,
|
||||
"SurfaceTemperature":4796.000000,
|
||||
"Luminosity":"V",
|
||||
"SemiMajorAxis":1704360246658.325195,
|
||||
"Eccentricity":0.348740,
|
||||
"OrbitalInclination":-72.647343,
|
||||
"Periapsis":86.347190,
|
||||
"OrbitalPeriod":7189218699.932098,
|
||||
"AscendingNode":0.000000,
|
||||
"MeanAnomaly":351.262353,
|
||||
"RotationPeriod":248957.736717,
|
||||
"AxialTilt":-0.126915
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
{
|
||||
"$schemaRef": "https://eddn.edcd.io/schemas/journal/1",
|
||||
"message": {
|
||||
"timestamp":"2021-11-05T15:46:28Z",
|
||||
"event":"Scan",
|
||||
"ScanType":"AutoScan",
|
||||
"BodyName":"Elphin",
|
||||
"BodyID":1,
|
||||
"Parents":[ {"Null":0} ],
|
||||
"StarSystem":"Elphin",
|
||||
"StarPos":[-30.12500,8.18750,-17.00000],
|
||||
"SystemAddress":3932076118738,
|
||||
"DistanceFromArrivalLS":0.000000,
|
||||
"StarType":"K",
|
||||
"Subclass":3,
|
||||
"StellarMass":0.769531,
|
||||
"Radius":587464832.000000,
|
||||
"AbsoluteMagnitude":6.294067,
|
||||
"Age_MY":9558,
|
||||
"SurfaceTemperature":4796.000000,
|
||||
"Luminosity":"V",
|
||||
"SemiMajorAxis":1704360246658.325195,
|
||||
"Eccentricity":0.348740,
|
||||
"OrbitalInclination":-72.647343,
|
||||
"Periapsis":86.347190,
|
||||
"OrbitalPeriod":7189218699.932098,
|
||||
"AscendingNode":0.000000,
|
||||
"MeanAnomaly":351.262353,
|
||||
"RotationPeriod":248957.736717,
|
||||
"AxialTilt":-0.126915
|
||||
},
|
||||
"header": {
|
||||
"uploaderID": "Athanasius Testing",
|
||||
"softwareVersion": "v0.0.1"
|
||||
}
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
{
|
||||
"$schemaRef": "https://eddn.edcd.io/schemas/journal/1",
|
||||
"message": {
|
||||
"timestamp":"2021-11-05T15:46:28Z",
|
||||
"event":"Scan",
|
||||
"ScanType":"AutoScan",
|
||||
"BodyName":"Elphin",
|
||||
"BodyID":1,
|
||||
"Parents":[ {"Null":0} ],
|
||||
"StarSystem":"Elphin",
|
||||
"NOTStarPos":[-30.12500,8.18750,-17.00000],
|
||||
"SystemAddress":3932076118738,
|
||||
"DistanceFromArrivalLS":0.000000,
|
||||
"StarType":"K",
|
||||
"Subclass":3,
|
||||
"StellarMass":0.769531,
|
||||
"Radius":587464832.000000,
|
||||
"AbsoluteMagnitude":6.294067,
|
||||
"Age_MY":9558,
|
||||
"SurfaceTemperature":4796.000000,
|
||||
"Luminosity":"V",
|
||||
"SemiMajorAxis":1704360246658.325195,
|
||||
"Eccentricity":0.348740,
|
||||
"OrbitalInclination":-72.647343,
|
||||
"Periapsis":86.347190,
|
||||
"OrbitalPeriod":7189218699.932098,
|
||||
"AscendingNode":0.000000,
|
||||
"MeanAnomaly":351.262353,
|
||||
"RotationPeriod":248957.736717,
|
||||
"AxialTilt":-0.126915
|
||||
},
|
||||
"header": {
|
||||
"uploaderID": "Athanasius Testing",
|
||||
"softwareName": "Athanasius Testing",
|
||||
"softwareVersion": "v0.0.1"
|
||||
}
|
||||
}
|
37
scripts/testing/gateway-responses/scan-valid.json
Normal file
37
scripts/testing/gateway-responses/scan-valid.json
Normal file
@ -0,0 +1,37 @@
|
||||
{
|
||||
"$schemaRef": "https://eddn.edcd.io/schemas/journal/1",
|
||||
"message": {
|
||||
"timestamp":"2021-11-05T15:46:28Z",
|
||||
"event":"Scan",
|
||||
"ScanType":"AutoScan",
|
||||
"BodyName":"Elphin",
|
||||
"BodyID":1,
|
||||
"Parents":[ {"Null":0} ],
|
||||
"StarSystem":"Elphin",
|
||||
"StarPos":[-30.12500,8.18750,-17.00000],
|
||||
"SystemAddress":3932076118738,
|
||||
"DistanceFromArrivalLS":0.000000,
|
||||
"StarType":"K",
|
||||
"Subclass":3,
|
||||
"StellarMass":0.769531,
|
||||
"Radius":587464832.000000,
|
||||
"AbsoluteMagnitude":6.294067,
|
||||
"Age_MY":9558,
|
||||
"SurfaceTemperature":4796.000000,
|
||||
"Luminosity":"V",
|
||||
"SemiMajorAxis":1704360246658.325195,
|
||||
"Eccentricity":0.348740,
|
||||
"OrbitalInclination":-72.647343,
|
||||
"Periapsis":86.347190,
|
||||
"OrbitalPeriod":7189218699.932098,
|
||||
"AscendingNode":0.000000,
|
||||
"MeanAnomaly":351.262353,
|
||||
"RotationPeriod":248957.736717,
|
||||
"AxialTilt":-0.126915
|
||||
},
|
||||
"header": {
|
||||
"uploaderID": "from Athanasius Testing",
|
||||
"softwareName": "Athanasius Testing script",
|
||||
"softwareVersion": "v0.0.1"
|
||||
}
|
||||
}
|
24
scripts/testing/gateway-responses/test-bad-gzip.py
Normal file
24
scripts/testing/gateway-responses/test-bad-gzip.py
Normal file
@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import requests
|
||||
import sys
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print('test-sender.py <filename>')
|
||||
sys.exit(-1)
|
||||
|
||||
with open(sys.argv[1], 'r') as f:
|
||||
msg = f.read()
|
||||
|
||||
s = requests.Session()
|
||||
|
||||
s.headers['Content-Encoding'] = 'gzip'
|
||||
r = s.post(
|
||||
'https://beta.eddn.edcd.io:4431/upload/',
|
||||
data=msg,
|
||||
)
|
||||
|
||||
print(f'Response: {r!r}')
|
||||
print(f'Body: {r.content.decode()}')
|
||||
|
6
scripts/testing/gateway-responses/test-bad-gzip.sh
Normal file
6
scripts/testing/gateway-responses/test-bad-gzip.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# python `requests` appears to perform compression when you set the
|
||||
# 'Content-Encoding: gzip' header, so do this with curl.
|
||||
|
||||
curl --verbose -d 'wegiuweuygtfawgep9aqe8fpq2387lfbr;iufvypq38764tpgf' -H 'Content-Encoding: gzip' 'https://beta.eddn.edcd.io:4431/upload/'
|
37
scripts/testing/gateway-responses/test-gzip-bad-formdata.py
Normal file
37
scripts/testing/gateway-responses/test-gzip-bad-formdata.py
Normal file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import requests
|
||||
import sys
|
||||
import urllib3
|
||||
import zlib
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print('test-sender.py <filename>')
|
||||
sys.exit(-1)
|
||||
|
||||
with open(sys.argv[1], 'r') as f:
|
||||
# Read from provided file
|
||||
msg = f.read()
|
||||
|
||||
# Fake form-encode it
|
||||
msg = 'wibble=' + msg
|
||||
|
||||
# Compress it
|
||||
msg_gzip = zlib.compress(msg.encode('utf-8'))
|
||||
|
||||
http = urllib3.PoolManager()
|
||||
|
||||
# Send that compressed data as a POST body
|
||||
r = http.request(
|
||||
'POST',
|
||||
'https://beta.eddn.edcd.io:4431/upload/',
|
||||
headers={
|
||||
'Content-Encoding': 'gzip'
|
||||
},
|
||||
body=msg_gzip
|
||||
)
|
||||
|
||||
print(f'Response: {r.status!r}')
|
||||
print(f'Body:\n{r.data.decode()}\n')
|
||||
|
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import requests
|
||||
import sys
|
||||
import urllib3
|
||||
import zlib
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print('test-sender.py <filename>')
|
||||
sys.exit(-1)
|
||||
|
||||
with open(sys.argv[1], 'r') as f:
|
||||
# Read from provided file
|
||||
msg = f.read()
|
||||
|
||||
# Fake form-encode it
|
||||
msg = 'data=' + msg
|
||||
|
||||
# Compress it
|
||||
msg_gzip = zlib.compress(msg.encode('utf-8'))
|
||||
|
||||
http = urllib3.PoolManager()
|
||||
|
||||
# Send that compressed data as a POST body
|
||||
r = http.request(
|
||||
'POST',
|
||||
'https://beta.eddn.edcd.io:4431/upload/',
|
||||
headers={
|
||||
'Content-Encoding': 'gzip'
|
||||
},
|
||||
body=msg_gzip
|
||||
)
|
||||
|
||||
print(f'Response: {r.status!r}')
|
||||
print(f'Body:\n{r.data.decode()}\n')
|
||||
|
29
scripts/testing/gateway-responses/test-plain-bad-formdata.py
Normal file
29
scripts/testing/gateway-responses/test-plain-bad-formdata.py
Normal file
@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import sys
|
||||
import urllib3
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print('test-sender.py <filename>')
|
||||
sys.exit(-1)
|
||||
|
||||
with open(sys.argv[1], 'r') as f:
|
||||
# Read from provided file
|
||||
msg = f.read()
|
||||
|
||||
# Fake form-encode it
|
||||
msg = 'wibble=' + msg
|
||||
|
||||
http = urllib3.PoolManager()
|
||||
|
||||
# Send that data as a POST body
|
||||
r = http.request(
|
||||
'POST',
|
||||
'https://beta.eddn.edcd.io:4431/upload/',
|
||||
body=msg
|
||||
)
|
||||
|
||||
print(f'Response: {r.status!r}')
|
||||
print(f'Body:\n{r.data.decode()}\n')
|
||||
|
@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import sys
|
||||
import urllib3
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print('test-sender.py <filename>')
|
||||
sys.exit(-1)
|
||||
|
||||
with open(sys.argv[1], 'r') as f:
|
||||
# Read from provided file
|
||||
msg = f.read()
|
||||
|
||||
# Fake form-encode it
|
||||
msg = 'data=' + msg
|
||||
|
||||
http = urllib3.PoolManager()
|
||||
|
||||
# Send that data as a POST body
|
||||
r = http.request(
|
||||
'POST',
|
||||
'https://beta.eddn.edcd.io:4431/upload/',
|
||||
body=msg
|
||||
)
|
||||
|
||||
print(f'Response: {r.status!r}')
|
||||
print(f'Body:\n{r.data.decode()}\n')
|
||||
|
20
scripts/testing/gateway-responses/test-sender.py
Normal file
20
scripts/testing/gateway-responses/test-sender.py
Normal file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import json
|
||||
import requests
|
||||
import sys
|
||||
|
||||
if len(sys.argv) != 2:
|
||||
print('test-sender.py <filename>')
|
||||
sys.exit(-1)
|
||||
|
||||
with open(sys.argv[1], 'r') as f:
|
||||
msg = f.read()
|
||||
|
||||
s = requests.Session()
|
||||
|
||||
r = s.post('https://beta.eddn.edcd.io:4431/upload/', data=msg)
|
||||
|
||||
print(f'Response: {r!r}')
|
||||
print(f'Body: {r.content.decode()}')
|
||||
|
@ -128,22 +128,28 @@ def get_decompressed_message():
|
||||
:returns: The de-compressed request body.
|
||||
"""
|
||||
content_encoding = request.headers.get('Content-Encoding', '')
|
||||
logger.debug('Content-Encoding: ' + content_encoding)
|
||||
|
||||
if content_encoding in ['gzip', 'deflate']:
|
||||
logger.debug('Content-Encoding of gzip or deflate...')
|
||||
# Compressed request. We have to decompress the body, then figure out
|
||||
# if it's form-encoded.
|
||||
try:
|
||||
# Auto header checking.
|
||||
logger.debug('Trying zlib.decompress (15 + 32)...')
|
||||
message_body = zlib.decompress(request.body.read(), 15 + 32)
|
||||
except zlib.error:
|
||||
logger.error('zlib.error, trying zlib.decompress (-15)')
|
||||
# Negative wbits suppresses adler32 checksumming.
|
||||
message_body = zlib.decompress(request.body.read(), -15)
|
||||
logger.debug('Resulting message_body:\n%s\n' % (message_body))
|
||||
|
||||
# At this point, we're not sure whether we're dealing with a straight
|
||||
# un-encoded POST body, or a form-encoded POST. Attempt to parse the
|
||||
# body. If it's not form-encoded, this will return an empty dict.
|
||||
form_enc_parsed = urlparse.parse_qs(message_body)
|
||||
if form_enc_parsed:
|
||||
logger.debug('Request is form-encoded')
|
||||
# This is a form-encoded POST. The value of the data attrib will
|
||||
# be the body we're looking for.
|
||||
try:
|
||||
@ -153,14 +159,33 @@ def get_decompressed_message():
|
||||
"No 'data' POST key/value found. Check your POST key "
|
||||
"name for spelling, and make sure you're passing a value."
|
||||
)
|
||||
else:
|
||||
# Uncompressed request. Bottle handles all of the parsing of the
|
||||
# POST key/vals, or un-encoded body.
|
||||
data_key = request.forms.get('data')
|
||||
if data_key:
|
||||
# This is a form-encoded POST. Support the silly people.
|
||||
message_body = data_key
|
||||
|
||||
else:
|
||||
logger.debug('Request is *NOT* form-encoded')
|
||||
|
||||
else:
|
||||
logger.debug('Content-Encoding indicates *not* compressed...')
|
||||
|
||||
form_enc_parsed = urlparse.parse_qs(request.body.read())
|
||||
if form_enc_parsed:
|
||||
logger.debug('Request is form-encoded')
|
||||
|
||||
# Uncompressed request. Bottle handles all of the parsing of the
|
||||
# POST key/vals, or un-encoded body.
|
||||
data_key = request.forms.get('data')
|
||||
if data_key:
|
||||
logger.debug('form-encoded POST request detected...')
|
||||
# This is a form-encoded POST. Support the silly people.
|
||||
message_body = data_key
|
||||
|
||||
else:
|
||||
raise MalformedUploadError(
|
||||
"No 'data' POST key/value found. Check your POST key "
|
||||
"name for spelling, and make sure you're passing a value."
|
||||
)
|
||||
|
||||
else:
|
||||
logger.debug('Plain POST request detected...')
|
||||
# This is a non form-encoded POST body.
|
||||
message_body = request.body.read()
|
||||
|
||||
@ -171,7 +196,7 @@ def parse_and_error_handle(data):
|
||||
try:
|
||||
parsed_message = simplejson.loads(data)
|
||||
except (
|
||||
MalformedUploadError, TypeError, ValueError
|
||||
TypeError, ValueError
|
||||
) as exc:
|
||||
# Something bad happened. We know this will return at least a
|
||||
# semi-useful error message, so do so.
|
||||
@ -192,13 +217,14 @@ def parse_and_error_handle(data):
|
||||
pass
|
||||
|
||||
response.status = 400
|
||||
return 'FAIL: ' + str(exc)
|
||||
return 'FAIL: JSON parsing: ' + str(exc)
|
||||
|
||||
# Here we check if an outdated schema has been passed
|
||||
if parsed_message["$schemaRef"] in Settings.GATEWAY_OUTDATED_SCHEMAS:
|
||||
response.status = '426 Upgrade Required' # Bottle (and underlying httplib) don't know this one
|
||||
statsCollector.tally("outdated")
|
||||
return "FAIL: The schema you have used is no longer supported. Please check for an updated version of your application."
|
||||
return "FAIL: Outdated Schema: The schema you have used is no longer supported. Please check for an updated " \
|
||||
"version of your application."
|
||||
|
||||
validationResults = validator.validate(parsed_message)
|
||||
|
||||
@ -239,7 +265,7 @@ def parse_and_error_handle(data):
|
||||
|
||||
response.status = 400
|
||||
statsCollector.tally("invalid")
|
||||
return "FAIL: " + str(validationResults.messages)
|
||||
return "FAIL: Schema Validation: " + str(validationResults.messages)
|
||||
|
||||
|
||||
@app.route('/upload/', method=['OPTIONS', 'POST'])
|
||||
@ -268,14 +294,14 @@ def upload():
|
||||
print('Logging of "gzip error" failed: %s' % (e.message))
|
||||
pass
|
||||
|
||||
return exc.message
|
||||
return 'FAIL: zlib.error: ' + exc.message
|
||||
|
||||
except MalformedUploadError as exc:
|
||||
# They probably sent an encoded POST, but got the key/val wrong.
|
||||
response.status = 400
|
||||
logger.error("MalformedUploadError from %s: %s" % (get_remote_address(), exc.message))
|
||||
|
||||
return exc.message
|
||||
return 'FAIL: Malformed Upload: ' + exc.message
|
||||
|
||||
statsCollector.tally("inbound")
|
||||
return parse_and_error_handle(message_body)
|
||||
|
Loading…
x
Reference in New Issue
Block a user