def parseResponse(self): # Check for errors. effectRemovedPattern = PatternManager.getOrCompilePattern( 'effectRemoved') if effectRemovedPattern.search(self.responseText): return youDontHaveThatEffectPattern = PatternManager.getOrCompilePattern( 'youDontHaveThatEffect') if youDontHaveThatEffectPattern.search(self.responseText): raise DontHaveEffectError( "Unable to remove effect. The user does not have that effect.") youDontHaveSGEEAPattern = PatternManager.getOrCompilePattern( 'youDontHaveSGEEA') if youDontHaveSGEEAPattern.search(self.responseText): raise NotEnoughItemsError( "Unable to remove effect. You do not have a soft green echo eyedrop antidote." ) Report.error("request", "Unknown error occurred when trying to remove an effect") Report.error("request", self.responseText) raise RequestError( "Unknown error occurred when trying to remove an effect.")
def parseResponse(self): notEnoughCloversPattern = PatternManager.getOrCompilePattern( 'notEnoughClovers') noTrinketsPattern = PatternManager.getOrCompilePattern('noTrinkets') noHermitPermitPattern = PatternManager.getOrCompilePattern( 'noHermitPermits') notHermitItemPattern = PatternManager.getOrCompilePattern( 'notHermitItem') # Check for errors. if notEnoughCloversPattern.search(self.responseText): raise RequestError( "The Hermit doesn't have enough clovers for that") if noTrinketsPattern.search(self.responseText): raise NotEnoughItemsError( "You don't have enough worthless items for that") if noHermitPermitPattern.search(self.responseText): raise NotEnoughHermitPermitsError( "You don't have enough hermit permits for that") if notHermitItemPattern.search(self.responseText): raise NotSoldHereError("The Hermit doesn't have any of those") response = {} items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: response["items"] = items self.responseData = response
def parseResponse(self): cantPulverizePattern = PatternManager.getOrCompilePattern('cantPulverizeItem') if cantPulverizePattern.search(self.responseText) != None: item = ItemDatabase.getItemFromId(self.itemId, self.session) raise UnableToPulverizeItemError("'%s' is not an item that can be pulverized." % item["name"]) notEnoughItemsPattern = PatternManager.getOrCompilePattern('notEnoughItems') if notEnoughItemsPattern.search(self.responseText) != None: item = ItemDatabase.getItemFromId(self.itemId, self.session) if self.quantity == 1: itemStr = item["name"] else: itemStr = item["plural"] raise NotEnoughItemsError("You do not have %s %s" % (self.quantity, itemStr)) items = [] singleItemPattern = PatternManager.getOrCompilePattern('acquireSingleItem') for match in singleItemPattern.finditer(self.responseText): descId = int(match.group(1)) item = ItemDatabase.getItemFromDescId(descId, self.session) item["quantity"] = 1 items.append(item) multiItemPattern = PatternManager.getOrCompilePattern('acquireMultipleItems') for match in multiItemPattern.finditer(self.responseText): descId = int(match.group(1)) quantity = int(match.group(2).replace(',', '')) item = ItemDatabase.getItemFromDescId(descId, self.session) item["quantity"] = quantity items.append(item) self.responseData["results"] = items
def parseResponse(self): # Check for errors. dontHaveMeatpastePattern = PatternManager.getOrCompilePattern('noMeatpaste') itemsDontMeatpastePattern = PatternManager.getOrCompilePattern('itemsDontMeatpaste') dontHaveItemsPattern = PatternManager.getOrCompilePattern('dontHaveItemsMeatpaste') if dontHaveMeatpastePattern.search(self.responseText): raise NotEnoughItemsError("Unable to combine items. You don't have any meatpaste.") elif itemsDontMeatpastePattern.search(self.responseText): raise InvalidRecipeError("Unable to combine items. The submitted ingredients do not meatpaste together.") elif dontHaveItemsPattern.search(self.responseText): raise NotEnoughItemsError("Unable to combine items. You don't have all of the items you are trying to meatpaste.") # Find the items attached to the message. items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: self.responseData["items"] = item else: raise RequestError("Unknown error.")
def parseResponse(self): "Checks for errors due to equipping items you don't have, or equipping items that aren't equippable." noItemPattern = PatternManager.getOrCompilePattern("notEnoughItems") match = noItemPattern.search(self.responseText) if match: raise NotEnoughItemsError("That item is not in your inventory.") notEquipmentPattern = PatternManager.getOrCompilePattern("notEquip") match = notEquipmentPattern.search(self.responseText) if match: raise InvalidActionError("That is not an equippable item.")
def parseResponse(self): itemsDontMakeCocktailPattern = PatternManager.getOrCompilePattern( 'itemsDontMakeCocktail') dontHaveSkillPattern = PatternManager.getOrCompilePattern( 'dontHaveSkillToMixCocktail') dontHaveItemsPattern = PatternManager.getOrCompilePattern( 'dontHaveItemsForThatCocktail') dontHaveAdventuresPattern = PatternManager.getOrCompilePattern( 'dontHaveAdventuresToMixCocktail') # Check for errors. if itemsDontMakeCocktailPattern.search(self.responseText): raise InvalidRecipeError( "Unable to make cocktail. The submitted ingredients do not mix together." ) elif dontHaveSkillPattern.search(self.responseText): raise SkillMissingError( "Unable to make cocktail. We are not skilled enough.") elif dontHaveItemsPattern.search(self.responseText): raise NotEnoughItemsError( "Unable to make cocktail. You don't have all of the items you are trying to mix." ) elif dontHaveAdventuresPattern.search(self.responseText): raise NotEnoughAdventuresLeftError( "Unable to mix drink(s). We don't have enough adventures.") # Find the items attached to the message. singleItemPattern = PatternManager.getOrCompilePattern( 'acquireSingleItem') match = singleItemPattern.search(self.responseText) if match: descId = int(match.group(1)) item = ItemDatabase.getItemFromDescId(descId, self.session) item["quantity"] = 1 else: multiItemPattern = PatternManager.getOrCompilePattern( 'acquireMultipleItems') match = multiItemPattern.search(self.responseText) if match: descId = int(match.group(1)) item = ItemDatabase.getItemFromDescId(descId, self.session) quantity = int(match.group(2).replace(',', '')) item["quantity"] = quantity else: raise RequestError("Unknown error.") self.responseData["booze"] = item
def parseResponse(self): # Check for errors tooDrunkPattern = PatternManager.getOrCompilePattern('tooDrunk') if tooDrunkPattern.search(self.responseText): raise TooDrunkError("You are too drunk to drink more booze") notBoozePattern = PatternManager.getOrCompilePattern('notBooze') if notBoozePattern.search(self.responseText): raise InvalidActionError("That item is not booze") boozeMissingPattern = PatternManager.getOrCompilePattern( 'notEnoughItems') if boozeMissingPattern.search(self.responseText): raise NotEnoughItemsError("Item not in inventory") # Check the results results = {} results["drunkenness"] = ParseResponseUtils.parseDrunkGained( self.responseText) results["adventures"] = ParseResponseUtils.parseAdventuresGained( self.responseText) substats = ParseResponseUtils.parseSubstatsGainedLost( self.responseText) if len(substats) > 0: results["substats"] = substats stats = ParseResponseUtils.parseStatsGainedLost(self.responseText) if len(stats) > 0: results["stats"] = stats level = ParseResponseUtils.parseLevelsGained(self.responseText) if level != 0: results["level"] = level hp = ParseResponseUtils.parseHPGainedLost(self.responseText) if hp != 0: results["hp"] = hp mp = ParseResponseUtils.parseMPGainedLost(self.responseText) if mp != 0: results["mp"] = mp effects = ParseResponseUtils.parseEffectsGained(self.responseText) if len(effects) > 0: results["effects"] = effects self.responseData = results
def parseResponse(self): # Check for errors tooFullPattern = PatternManager.getOrCompilePattern('tooFull') if tooFullPattern.search(self.responseText): raise TooFullError("You are too full to eat that.") notFoodPattern = PatternManager.getOrCompilePattern('notFood') if notFoodPattern.search(self.responseText): raise InvalidActionError("That item is not food") foodMissingPattern = PatternManager.getOrCompilePattern( 'notEnoughItems') if foodMissingPattern.search(self.responseText): raise NotEnoughItemsError("Item not in inventory") # Check the results results = {} results["adventures"] = ParseResponseUtils.parseAdventuresGained( self.responseText) substats = ParseResponseUtils.parseSubstatsGainedLost( self.responseText) if len(substats) > 0: results["substats"] = substats stats = ParseResponseUtils.parseStatsGainedLost(self.responseText) if len(stats) > 0: results["stats"] = stats level = ParseResponseUtils.parseLevelsGained(self.responseText) if level != 0: results["level"] = level hp = ParseResponseUtils.parseHPGainedLost(self.responseText) if hp != 0: results["hp"] = hp mp = ParseResponseUtils.parseMPGainedLost(self.responseText) if mp != 0: results["mp"] = mp effects = ParseResponseUtils.parseEffectsGained(self.responseText) if len(effects) > 0: results["effects"] = effects self.responseData = results
def parseResponse(self): hardcoreRoninPattern = PatternManager.getOrCompilePattern( 'userInHardcoreRonin') ignoringPattern = PatternManager.getOrCompilePattern('userIgnoringUs') notEnoughItemsPattern = PatternManager.getOrCompilePattern( 'notEnoughItemsToSend') sentMessagePattern = PatternManager.getOrCompilePattern('messageSent') if hardcoreRoninPattern.search(self.responseText): raise UserInHardcoreRoninError( "Unable to send items or meat. User is in hardcore or ronin.") elif ignoringPattern.search(self.responseText): raise UserIsIgnoringError( "Unable to send message. User is ignoring us.") elif notEnoughItemsPattern.search(self.responseText): raise NotEnoughItemsError( "You don't have enough of one of the items you're trying to send." ) elif sentMessagePattern.search(self.responseText) == None: Report.alert( "system", "Received unknown response when attempting to send a message.") Report.alert("system", self.responseText) raise RequestError("Unknown error")