Archived
0

improve maddavo parser

This commit is contained in:
iMoHax
2015-08-18 11:50:32 +03:00
parent 3b9bbd3fbe
commit aba19c6e59
2 changed files with 101 additions and 96 deletions

View File

@@ -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(" ","_");
}
}

View File

@@ -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));