improve maddavo parser
This commit is contained in:
@@ -8,93 +8,96 @@ public class ItemConverter {
|
||||
|
||||
|
||||
static {
|
||||
IDS.put("Explosives", "explosives");
|
||||
IDS.put("Hydrogen Fuel", "hydrogenfuel");
|
||||
IDS.put("Mineral Oil", "mineraloil");
|
||||
IDS.put("Pesticides", "pesticides");
|
||||
IDS.put("Clothing", "clothing");
|
||||
IDS.put("Consumer Technology", "consumertechnology");
|
||||
IDS.put("Domestic Appliances", "domesticappliances");
|
||||
IDS.put("Algae", "algae");
|
||||
IDS.put("Animal Meat", "animalmeat");
|
||||
IDS.put("Coffee", "coffee");
|
||||
IDS.put("Energy Drinks", "energydrinks");
|
||||
IDS.put("Fish", "fish");
|
||||
IDS.put("Food Cartridges", "foodcartridges");
|
||||
IDS.put("Fruit And Vegetables", "fruitandvegetables");
|
||||
IDS.put("Grain", "grain");
|
||||
IDS.put("Synthetic Meat", "syntheticmeat");
|
||||
IDS.put("Tea", "tea");
|
||||
IDS.put("Polymers", "polymers");
|
||||
IDS.put("Semiconductors", "semiconductors");
|
||||
IDS.put("Superconductors", "superconductors");
|
||||
IDS.put("Legal Drugs", "group.drugs");
|
||||
IDS.put("Beer", "beer");
|
||||
IDS.put("Liquor", "liquor");
|
||||
IDS.put("Narcotics", "basicnarcotics");
|
||||
IDS.put("Tobacco", "tobacco");
|
||||
IDS.put("Wine", "wine");
|
||||
IDS.put("Atmospheric Processors", "atmosphericprocessors");
|
||||
IDS.put("Crop Harvesters", "cropharvesters");
|
||||
IDS.put("Marine Equipment", "marinesupplies");
|
||||
IDS.put("Microbial Furnaces", "microbialfurnaces");
|
||||
IDS.put("Mineral Extractors", "mineralextractors");
|
||||
IDS.put("Power Generators", "powergenerators");
|
||||
IDS.put("Water Purifiers", "waterpurifiers");
|
||||
IDS.put("Agri-Medicines", "agriculturalmedicines");
|
||||
IDS.put("Basic Medicines", "basicmedicines");
|
||||
IDS.put("Combat Stabilisers", "combatstabilisers");
|
||||
IDS.put("Performance Enhancers", "performanceenhancers");
|
||||
IDS.put("Progenitor Cells", "progenitorcells");
|
||||
IDS.put("Aluminium", "aluminium");
|
||||
IDS.put("Beryllium", "beryllium");
|
||||
IDS.put("Copper", "copper");
|
||||
IDS.put("Cobalt", "cobalt");
|
||||
IDS.put("Gallium", "gallium");
|
||||
IDS.put("Gold", "gold");
|
||||
IDS.put("Indium", "indium");
|
||||
IDS.put("Lithium", "lithium");
|
||||
IDS.put("Palladium", "palladium");
|
||||
IDS.put("Platinum", "platinum");
|
||||
IDS.put("Tantalum", "tantalum");
|
||||
IDS.put("Titanium", "titanium");
|
||||
IDS.put("Silver", "silver");
|
||||
IDS.put("Uranium", "uranium");
|
||||
IDS.put("Minerals", "group.minerals");
|
||||
IDS.put("Bauxite", "bauxite");
|
||||
IDS.put("Bertrandite", "bertrandite");
|
||||
IDS.put("Coltan", "coltan");
|
||||
IDS.put("Gallite", "gallite");
|
||||
IDS.put("Indite", "indite");
|
||||
IDS.put("Lepidolite", "lepidolite");
|
||||
IDS.put("Rutile", "rutile");
|
||||
IDS.put("Uraninite", "uraninite");
|
||||
IDS.put("Imperial Slaves", "imperialslaves");
|
||||
IDS.put("Slaves", "slaves");
|
||||
IDS.put("Advanced Catalysers", "advancedcatalysers");
|
||||
IDS.put("Animal Monitors", "animalmonitors");
|
||||
IDS.put("Aquaponic Systems", "aquaponicsystems");
|
||||
IDS.put("Auto-Fabricators", "autofabricators");
|
||||
IDS.put("Bioreducing Lichen", "bioreducinglichen");
|
||||
IDS.put("Computer Components", "computercomponents");
|
||||
IDS.put("H.E. Suits", "hazardousenvironmentsuits");
|
||||
IDS.put("Resonating Separators", "resonatingseparators");
|
||||
IDS.put("Robotics", "robotics");
|
||||
IDS.put("Land Enrichment Systems", "landenrichmentsystems");
|
||||
IDS.put("Leather", "leather");
|
||||
IDS.put("Natural Fabrics", "naturalfabrics");
|
||||
IDS.put("Synthetic Fabrics", "syntheticfabrics");
|
||||
IDS.put("Biowaste", "biowaste");
|
||||
IDS.put("Chemical Waste", "chemicalwaste");
|
||||
IDS.put("Scrap", "scrap");
|
||||
IDS.put("Battle Weapons", "battleweapons");
|
||||
IDS.put("Non-Lethal Weapons", "nonlethalweapons");
|
||||
IDS.put("Personal Weapons", "personalweapons");
|
||||
IDS.put("Reactive Armour", "reactivearmour");
|
||||
IDS.put("explosives", "explosives");
|
||||
IDS.put("hydrogen fuel", "hydrogenfuel");
|
||||
IDS.put("mineral oil", "mineraloil");
|
||||
IDS.put("pesticides", "pesticides");
|
||||
IDS.put("clothing", "clothing");
|
||||
IDS.put("consumer technology", "consumertechnology");
|
||||
IDS.put("domestic appliances", "domesticappliances");
|
||||
IDS.put("algae", "algae");
|
||||
IDS.put("animal meat", "animalmeat");
|
||||
IDS.put("coffee", "coffee");
|
||||
IDS.put("energy drinks", "energydrinks");
|
||||
IDS.put("fish", "fish");
|
||||
IDS.put("food cartridges", "foodcartridges");
|
||||
IDS.put("fruit and vegetables", "fruitandvegetables");
|
||||
IDS.put("grain", "grain");
|
||||
IDS.put("synthetic meat", "syntheticmeat");
|
||||
IDS.put("tea", "tea");
|
||||
IDS.put("polymers", "polymers");
|
||||
IDS.put("semiconductors", "semiconductors");
|
||||
IDS.put("superconductors", "superconductors");
|
||||
IDS.put("beer", "beer");
|
||||
IDS.put("liquor", "liquor");
|
||||
IDS.put("narcotics", "basicnarcotics");
|
||||
IDS.put("tobacco", "tobacco");
|
||||
IDS.put("wine", "wine");
|
||||
IDS.put("atmospheric processors", "atmosphericprocessors");
|
||||
IDS.put("crop harvesters", "cropharvesters");
|
||||
IDS.put("marine equipment", "marinesupplies");
|
||||
IDS.put("microbial furnaces", "microbialfurnaces");
|
||||
IDS.put("mineral extractors", "mineralextractors");
|
||||
IDS.put("power generators", "powergenerators");
|
||||
IDS.put("water purifiers", "waterpurifiers");
|
||||
IDS.put("agri-medicines", "agriculturalmedicines");
|
||||
IDS.put("basic medicines", "basicmedicines");
|
||||
IDS.put("combat stabilisers", "combatstabilisers");
|
||||
IDS.put("performance enhancers", "performanceenhancers");
|
||||
IDS.put("progenitor cells", "progenitorcells");
|
||||
IDS.put("aluminium", "aluminium");
|
||||
IDS.put("beryllium", "beryllium");
|
||||
IDS.put("copper", "copper");
|
||||
IDS.put("cobalt", "cobalt");
|
||||
IDS.put("gallium", "gallium");
|
||||
IDS.put("gold", "gold");
|
||||
IDS.put("indium", "indium");
|
||||
IDS.put("lithium", "lithium");
|
||||
IDS.put("osmium", "osmium");
|
||||
IDS.put("palladium", "palladium");
|
||||
IDS.put("platinum", "platinum");
|
||||
IDS.put("tantalum", "tantalum");
|
||||
IDS.put("titanium", "titanium");
|
||||
IDS.put("silver", "silver");
|
||||
IDS.put("uranium", "uranium");
|
||||
IDS.put("minerals", "group.minerals");
|
||||
IDS.put("bauxite", "bauxite");
|
||||
IDS.put("bertrandite", "bertrandite");
|
||||
IDS.put("coltan", "coltan");
|
||||
IDS.put("gallite", "gallite");
|
||||
IDS.put("indite", "indite");
|
||||
IDS.put("lepidolite", "lepidolite");
|
||||
IDS.put("painite", "painite");
|
||||
IDS.put("rutile", "rutile");
|
||||
IDS.put("uraninite", "uraninite");
|
||||
IDS.put("imperial slaves", "imperialslaves");
|
||||
IDS.put("slaves", "slaves");
|
||||
IDS.put("sap 8 core container", "sap8corecontainer");
|
||||
IDS.put("advanced catalysers", "advancedcatalysers");
|
||||
IDS.put("animal monitors", "animalmonitors");
|
||||
IDS.put("aquaponic systems", "aquaponicsystems");
|
||||
IDS.put("auto-fabricators", "autofabricators");
|
||||
IDS.put("bioreducing lichen", "bioreducinglichen");
|
||||
IDS.put("computer components", "computercomponents");
|
||||
IDS.put("h.e. suits", "hazardousenvironmentsuits");
|
||||
IDS.put("resonating separators", "resonatingseparators");
|
||||
IDS.put("robotics", "robotics");
|
||||
IDS.put("land enrichment systems", "landenrichmentsystems");
|
||||
IDS.put("leather", "leather");
|
||||
IDS.put("natural fabrics", "naturalfabrics");
|
||||
IDS.put("synthetic fabrics", "syntheticfabrics");
|
||||
IDS.put("biowaste", "biowaste");
|
||||
IDS.put("chemical waste", "chemicalwaste");
|
||||
IDS.put("scrap", "scrap");
|
||||
IDS.put("battle weapons", "battleweapons");
|
||||
IDS.put("non-lethal weapons", "nonlethalweapons");
|
||||
IDS.put("personal weapons", "personalweapons");
|
||||
IDS.put("reactive armour", "reactivearmour");
|
||||
}
|
||||
|
||||
public static String getItemId(String name){
|
||||
name = name.toLowerCase();
|
||||
String id = IDS.get(name);
|
||||
return id != null ? id : name;
|
||||
return id != null ? id : name.replace(" ","_");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,11 +9,13 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class OffersHandler implements ParseHandler {
|
||||
private final static Logger LOG = LoggerFactory.getLogger(OffersHandler.class);
|
||||
|
||||
private final Market market;
|
||||
private final Map<String, Item> items;
|
||||
private final Map<String, Vendor> stations;
|
||||
private final boolean withRemove;
|
||||
private Vendor station;
|
||||
|
||||
@@ -22,8 +24,13 @@ public class OffersHandler implements ParseHandler {
|
||||
private final Map<Item, OfferData> buyUpdates = new HashMap<>(100, 0.9f);
|
||||
|
||||
protected OffersHandler(Market market, boolean withRemove) {
|
||||
this.market = market;
|
||||
this.withRemove = withRemove;
|
||||
items = market.getItems().stream().collect(Collectors.toMap(Item::getName, i -> i));
|
||||
stations = market.getVendors().stream().collect(Collectors.toMap(this::getStationId, s -> s));
|
||||
}
|
||||
|
||||
private String getStationId(Vendor vendor){
|
||||
return vendor.getPlace().getName()+"/"+vendor.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -106,15 +113,10 @@ public class OffersHandler implements ParseHandler {
|
||||
|
||||
name = sb.toString();
|
||||
LOG.trace("system: {}, station: {}", system, name);
|
||||
|
||||
Place sys = market.get(system);
|
||||
if (sys != null){
|
||||
station = sys.get(name);
|
||||
String id = system + "/" +name;
|
||||
station = stations.get(id);
|
||||
if (station == null){
|
||||
LOG.warn("Station {} not found", name);
|
||||
}
|
||||
} else {
|
||||
LOG.warn("System {} not found", system);
|
||||
LOG.warn("Station {} not found", id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,7 +135,7 @@ public class OffersHandler implements ParseHandler {
|
||||
Double sell = getDoubleValue(matcher.group(3));
|
||||
Long demand = getLongValue(matcher.group(4));
|
||||
Long supply = getLongValue(matcher.group(6));
|
||||
Item item = market.getItem(ItemConverter.getItemId(name));
|
||||
Item item = items.get(ItemConverter.getItemId(name));
|
||||
if (item != null){
|
||||
if (buy != null && buy > 0){
|
||||
buyUpdates.put(item, new OfferData(buy, demand));
|
||||
|
||||
Reference in New Issue
Block a user