def parseResponse(self): self.responseData[ "substats"] = ParseResponseUtils.parseSubstatsGainedLost( self.responseText, checkMysticality=False, checkMoxie=False) self.responseData["stats"] = ParseResponseUtils.parseStatsGainedLost( self.responseText, checkMysticality=False, checkMoxie=False) self.responseData["level"] = ParseResponseUtils.parseLevelsGained( self.responseText)
def parseResponse(self): self.responseData["substats"] = ParseResponseUtils.parseSubstatsGainedLost( self.responseText, checkMuscle=False, checkMysticality=False ) self.responseData["stats"] = ParseResponseUtils.parseStatsGainedLost( self.responseText, checkMuscle=False, checkMysticality=False ) self.responseData["level"] = ParseResponseUtils.parseLevelsGained(self.responseText)
def parseResponse(self): response = {} effectResponse = ParseResponseUtils.parseEffectsGained(self.responseText) if len(effectResponse) > 0: response["effects"] = effectResponse hpResponse = ParseResponseUtils.parseHPGainedLost(self.responseText) if hpResponse != 0: reponse["hp"] = hpResponse self.responseData = response
def parseResponse(self): response = {} effectResponse = ParseResponseUtils.parseEffectsGained( self.responseText) if len(effectResponse) > 0: response["effects"] = effectResponse hpResponse = ParseResponseUtils.parseHPGainedLost(self.responseText) if hpResponse != 0: response["hp"] = hpResponse self.responseData = response
def parseResponse(self): if len(self.responseText) == 0: raise Error.Error("You cannot use the Mind Control Device yet.", Error.INVALID_LOCATION) noAdventuresPattern = PatternManager.getOrCompilePattern('noAdvInstitue') invalidTurnsPattern = PatternManager.getOrCompilePattern('invalidAdvInstitute') if noAdventuresPattern.search(self.responseText): raise Error.Error("You don't have enough adventures to study at the institute.", Error.NOT_ENOUGH_ADVENTURES) if invalidTurnsPattern.search(self.responseText): raise Error.Error("That is an invalid number of turns for studying." Error.REQUEST_GENERIC) self.responseData["substats"] = ParseResponseUtils.parseSubstatsGainedLost(self.responseText, checkMuscle=False, checkMoxie=False) self.responseData["stats"] = ParseResponseUtils.ParseResponseUtils.parseStatsGainedLost(self.responseText, checkMuscle=False, checkMoxie=False) self.responseData["level"] = ParseResponseUtils.parseLevelsGained(self.responseText)
def parseResponse(self): notBarrelPattern = PatternManager.getOrCompilePattern('usedBarrel') noAdventuresPattern = PatternManager.getOrCompilePattern( 'noAdventures') if notBarrelPattern.match(self.responseText): raise Error.Error( "Barrel already opened or doesn't exist. (#%s)" % self.requestData['smash'], Error.INVALID_ACTION) if noAdventuresPattern.match(self.responseText): raise Error.Error("You don't have enough adventures to smash that", Error.NOT_ENOUGH_ADVENTURES) url = self.response.geturl() if url.find("/fight.php") >= 0: # Get the monster's name. self.responseData["adventureType"] = "combat" monsterNamePattern = PatternManager.getOrCompilePattern( 'monsterName') monsterNameMatch = monsterNamePattern.search(self.responseText) self.responseData["monsterName"] = monsterNameMatch.group(1) # Check to see if the fight was won or lost. fightWonPattern = PatternManager.getOrCompilePattern('fightWon') if fightWonPattern.search(self.responseText): self.responseData["fightWon"] = True else: fightLostPattern = PatternManager.getOrCompilePattern( 'fightLost') if fightLostPattern.search(self.responseText): self.responseData["fightLost"] = True # Get items, meat, and substats gained. We always need to check these since they can # happen at any point during the fight. self.responseData["items"] = ParseResponseUtils.parseItemsReceived( self.responseText, self.session) self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost( self.responseText) self.responseData[ "substats"] = ParseResponseUtils.parseSubstatsGainedLost( self.responseText) item = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(item) > 0: self.responseData["items"] = item hp = ParseResponseUtils.parseHPGainedLost(self.responseText) if hp != 0: self.responseData["hp"] = hp
def parseResponse(self): if len(self.responseText) == 0: raise UserShouldNotBeHereError("You cannot use the Mind Control Device yet.") NoAdventuresPattern = PatternManager.getOrCompilePattern('noAdvInstitue') InvalidTurnsPattern = PatternManager.getOrCompilePattern('invalidAdvInstitute') if NoAdventuresPattern.search(self.responseText): raise NotEnoughAdventuresLeftError("You don't have enough adventures to study at the institute.") if InvalidTurnsPattern.search(self.responseText): raise RequestError("That is an invalid number of turns for studying") self.responseData["substats"] = ParseResponseUtils.parseSubstatsGainedLost(self.responseText, checkMuscle=False, checkMoxie=False) self.responseData["stats"] = ParseResponseUtils.ParseResponseUtils.parseStatsGainedLost(self.responseText, checkMuscle=False, checkMoxie=False) self.responseData["level"] = ParseResponseUtils.parseLevelsGained(self.responseText)
def parseResponse(self): cantAffordItemPattern = PatternManager.getOrCompilePattern( 'cantAffordItem') if cantAffordItemPattern.search(self.responseText): raise NotEnoughMeatError("You can not afford to buy this item.") noItemAtThatPricePattern = PatternManager.getOrCompilePattern( 'mallNoItemAtThatPrice') if noItemAtThatPricePattern.search(self.responseText): raise NotSoldHereError("That item is not sold here at that price.") ignoreListPattern = PatternManager.getOrCompilePattern( 'cantBuyItemIgnoreList') if ignoreListPattern.search(self.responseText): raise UserIsIgnoringError( "The owner of that store has balleeted you.") mallHitLimitPattern = PatternManager.getOrCompilePattern( 'mallHitLimit') if mallHitLimitPattern.search(self.responseText): raise MallLimitError( "You have hit the limit for this item at this store.") items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise RequestError("Unknown error: %s" % self.responseText) self.responseData["items"] = items spentMeatPattern = PatternManager.getOrCompilePattern('meatSpent') match = spentMeatPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
def parseResponse(self): # Check for errors. dontHaveMeatpastePattern = PatternManager.getOrCompilePattern( 'noMeatpaste') itemsDontMeatpastePattern = PatternManager.getOrCompilePattern( 'itemsDontMeatpaste') dontHaveItemsPattern = PatternManager.getOrCompilePattern( 'dontHaveItemsMeatpaste') if dontHaveMeatpastePattern.search(self.responseText): e = Error.Error( "Unable to combine items. You don't have any meatpaste.", Error.ITEM_NOT_FOUND) e.itemId = 25 raise e elif itemsDontMeatpastePattern.search(self.responseText): raise Error.Error( "Unable to combine items. The submitted ingredients do not meatpaste together.", Error.RECIPE_NOT_FOUND) elif dontHaveItemsPattern.search(self.responseText): raise Error.Error( "Unable to combine items. You don't have all of the items you are trying to meatpaste.", Error.ITEM_NOT_FOUND) # Find the items attached to the message. items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: self.responseData["items"] = items else: raise Error.Error( "Unknown error meatpasting items: %s" % self.responseText, Error.REQUEST_FATAL)
def parseResponse(self): # Check for errors. notEnoughMeatPattern = PatternManager.getOrCompilePattern( 'noMeatForStore') invalidStorePattern = PatternManager.getOrCompilePattern( 'invalidStore') notSoldPattern = PatternManager.getOrCompilePattern('notSoldHere') if len(self.responseText) == 0: raise UserShouldNotBeHereError("You cannot visit that store yet.") if invalidStorePattern.search(self.responseText): raise NotAStoreError("The store you tried to visit doesn't exist.") if notSoldPattern.search(self.responseText): raise NotSoldHereError("This store doesn't carry that item.") if notEnoughMeatPattern.search(self.responseText): raise NotEnoughMeatError( "You do not have enough meat to purchase the item(s).") items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise RequestError("Unknown error. No items received.") self.responseData["items"] = items meatSpentPattern = PatternManager.getOrCompilePattern('meatSpent') match = spentMeatPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
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): cantAffordItemPattern = PatternManager.getOrCompilePattern('cantAffordItem') if cantAffordItemPattern.search(self.responseText): raise NotEnoughMeatError("You can not afford to buy this item.") noItemAtThatPricePattern = PatternManager.getOrCompilePattern('mallNoItemAtThatPrice') if noItemAtThatPricePattern.search(self.responseText): raise NotSoldHereError("That item is not sold here at that price.") ignoreListPattern = PatternManager.getOrCompilePattern('cantBuyItemIgnoreList') if ignoreListPattern.search(self.responseText): raise UserIsIgnoringError("The owner of that store has balleeted you.") mallHitLimitPattern = PatternManager.getOrCompilePattern('mallHitLimit') if mallHitLimitPattern.search(self.responseText): raise MallLimitError("You have hit the limit for this item at this store.") items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise RequestError("Unknown error: %s" % self.responseText) self.responseData["items"] = items spentMeatPattern = PatternManager.getOrCompilePattern('meatSpent') match = spentMeatPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
def parseResponse(self): cantAffordItemPattern = PatternManager.getOrCompilePattern('cantAffordItem') if cantAffordItemPattern.search(self.responseText): raise Error.Error("You can not afford to buy this item.", Error.NOT_ENOUGH_MEAT) noItemAtThatPricePattern = PatternManager.getOrCompilePattern('mallNoItemAtThatPrice') if noItemAtThatPricePattern.search(self.responseText): raise Error.Error("That item is not sold here at that price.", Error.ITEM_NOT_FOUND) ignoreListPattern = PatternManager.getOrCompilePattern('cantBuyItemIgnoreList') if ignoreListPattern.search(self.responseText): raise Error.Error("The owner of that store has balleeted you.", Error.USER_IS_IGNORING) mallHitLimitPattern = PatternManager.getOrCompilePattern('mallHitLimit') if mallHitLimitPattern.search(self.responseText): raise Error.Error("You have hit the limit for this item at this store.", Error.LIMIT_REACHED) items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise Error.Error("Unknown error: %s" % self.responseText, Error.REQUEST_GENERIC) self.responseData["items"] = items spentMeatPattern = PatternManager.getOrCompilePattern('meatSpent') match = spentMeatPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
def parseResponse(self): # Check for errors. notEnoughMeatPattern = PatternManager.getOrCompilePattern( 'noMeatForStore') invalidStorePattern = PatternManager.getOrCompilePattern( 'invalidStore') notSoldPattern = PatternManager.getOrCompilePattern('notSoldHere') if len(self.responseText) == 0: raise Error.Error("You cannot visit that store yet.", Error.INVALID_LOCATION) if invalidStorePattern.search(self.responseText): raise Error.Error("The store you tried to visit doesn't exist.", Error.INVALID_LOCATION) if notSoldPattern.search(self.responseText): raise Error.Error("This store doesn't carry that item.", Error.ITEM_NOT_FOUND) if notEnoughMeatPattern.search(self.responseText): raise Error.Error( "You do not have enough meat to purchase the item(s).", Error.NOT_ENOUGH_MEAT) items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise Error.Error("Unknown error. No items received.", Error.REQUEST_FATAL) self.responseData["items"] = items meatSpentPattern = PatternManager.getOrCompilePattern('meatSpent') match = meatSpentPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
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): e = Error.Error("The Hermit doesn't have enough clovers for that.", Error.ITEM_NOT_FOUND) e.itemId = 24 raise e if noTrinketsPattern.search(self.responseText): e = Error.Error("You don't have enough worthless items for that.", Error.ITEM_NOT_FOUND) e.itemId = 43 raise e if noHermitPermitPattern.search(self.responseText): e = Error.Error("You don't have enough hermit permits for that.", Error.ITEM_NOT_FOUND) e.itemId = 42 raise e if notHermitItemPattern.search(self.responseText): e = Error.Error("The Hermit doesn't have any of those.", Error.ITEM_NOT_FOUND) e.itemId = self.requestData['whichitem'] raise e response = {} items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: response["items"] = items self.responseData = response
def parseResponse(self): notEnoughMeatPattern = PatternManager.getOrCompilePattern( 'noMeatForStore') cannotGoPattern = PatternManager.getOrCompilePattern( 'userShouldNotBeHere') notSoldPattern = PatternManager.getOrCompilePattern('notSoldHere') if cannotGoPattern.search(self.responseText): raise Error.Error("You cannot reach that cafe.", Error.INVALID_LOCATION) if notSoldPattern.search(self.responseText): raise Error.Error("This cafe doesn't carry that item.", Error.ITEM_NOT_FOUND) if notEnoughMeatPattern.search(self.responseText): raise Error.Error( "You do not have enough meat to purchase the item(s).", Error.NOT_ENOUGH_MEAT) response = {} advResponse = ParseResponseUtils.parseAdventuresGained( self.responseText) if advResponse > 0: response["adventures"] = advResponse drunkResponse = ParseResponseUtils.parseDrunkGained(self.responseText) if drunkResponse > 0: response["drunkeness"] = drunkResponse subResponse = ParseResponseUtils.parseSubstatsGainedLost( self.responseText) if len(subResponse) > 0: response["substats"] = subResponse statResponse = ParseResponseUtils.parseStatsGainedLost( self.responseText) if len(statResponse) > 0: response["statPoints"] = statResponse levelResponse = ParseResponseUtils.parseLevelsGained(self.responseText) if levelResponse > 0: response["level"] = levelResponse effectResponse = ParseResponseUtils.parseEffectsGained( self.responseText) if len(effectResponse) > 0: response["effects"] = effectResponse hpResponse = ParseResponseUtils.parseHPGainedLost(self.responseText) if hpResponse != 0: response["hp"] = hpResponse mpResponse = ParseResponseUtils.parseMPGainedLost(self.responseText) if mpResponse != 0: response["mp"] = mpResponse self.responseData = response
def parseResponse(self): # Check for errors. if self._buy: items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise Error.Error("Unknown error. No items received.", Error.REQUEST_FATAL) self.responseData["items"] = items found = self._itemsRegex.findall(self.responseText) self.responseData["available"] = {name: row for name,row in found}
def parseResponse(self): # Check for errors. if self._buy: items = ParseResponseUtils.parseItemsReceived( self.responseText, self.session) if len(items) == 0: raise Error.Error("Unknown error. No items received.", Error.REQUEST_FATAL) self.responseData["items"] = items found = self._itemsRegex.findall(self.responseText) self.responseData["available"] = {name: row for name, row in found}
def parseResponse(self): # Check for errors. noMeatForPastePattern = PatternManager.getOrCompilePattern('noMeatForMeatpasting') if noMeatForPastePattern.search(self.responseText): raise NotEnoughMeatError("Unable to make the requested item. You don't have enough meat") # Get the item(s) we received. items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: self.responseData["items"] = item else: raise RequestError("Unknown error. No items received.")
def parseResponse(self): # Check for errors. noMeatForPastePattern = PatternManager.getOrCompilePattern('noMeatForMeatpasting') if noMeatForPastePattern.search(self.responseText): raise Error.Error("Unable to make the requested item. You don't have enough meat.", Error.NOT_ENOUGH_MEAT) # Get the item(s) we received. items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: self.responseData["items"] = items else: raise Error.Error("Unknown error. No items received.", Error.REQUEST_GENERIC)
def parseResponse(self): notBarrelPattern = PatternManager.getOrCompilePattern('usedBarrel') noAdventuresPattern = PatternManager.getOrCompilePattern('noAdventures') if notBarrelPattern.match(self.responseText): raise InvalidActionError("Barrel already opened or doesn't exist. (#%s)" % self.requestData['smash']) if noAdventuresPattern.match(self.responseText): raise NotEnoughAdventuresLeftError("You don't have enough adventures to smash that") url = self.response.geturl() if url.find("/fight.php") >= 0: # Get the monster's name. self.responseData["adventureType"] = "combat" monsterNamePattern = PatternManager.getOrCompilePattern('monsterName') monsterNameMatch = monsterNamePattern.search(self.responseText) self.responseData["monsterName"] = monsterNameMatch.group(1) # Check to see if the fight was won or lost. fightWonPattern = PatternManager.getOrCompilePattern('fightWon') if fightWonPattern.search(self.responseText): self.responseData["fightWon"] = True else: fightLostPattern = PatternManager.getOrCompilePattern('fightLost') if fightLostPattern.search(self.responseText): self.responseData["fightLost"] = True # Get items, meat, and substats gained. We always need to check these since they can # happen at any point during the fight. self.responseData["items"] = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost(self.responseText) self.responseData["substats"] = ParseResponseUtils.parseSubstatsGainedLost(self.responseText) item = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(item) > 0: self.responseData["items"] = item hp = ParseResponseUtils.parseHPGainedLost(self.responseText) if hp != 0: self.responseData["hp"] = hp
def parseResponse(self): # Check for errors. notEnoughMeatPattern = PatternManager.getOrCompilePattern('noMeatForStore') cannotGoPattern = PatternManager.getOrCompilePattern('userShouldNotBeHere') notSoldPattern = PatternManager.getOrCompilePattern('notSoldHere') if cannotGoPattern.search(self.responseText): raise UserShouldNotBeHereError("You cannot reach that cafe") if notSoldPattern.search(self.responseText): raise NotSoldHereError("This cafe doesn't carry that item.") if notEnoughMeatPattern.search(self.responseText): raise NotEnoughMeatError("You do not have enough meat to purchase the item(s).") response = {} advResponse = ParseResponseUtils.parseAdventuresGained(self.responseText) if advResponse > 0: response["adventures"] = advResponse drunkResponse = ParseResponseUtils.parseDrunkGained(self.responseText) if drunkResponse > 0: response["drunkeness"] = drunkResponse subResponse = ParseResponseUtils.parseSubstatsGainedLost(self.responseText) if len(subResponse) > 0: response["substats"] = subResponse statResponse = ParseResponseUtils.parseStatsGainedLost(self.responseText) if len(statResponse) > 0: response["statPoints"] = statResponse levelResponse = ParseResponseUtils.parseLevelsGained(self.responseText) if levelResponse > 0: response["level"] = levelResponse effectResponse = ParseResponseUtils.parseEffectsGained(self.responseText) if len(effectResponse) > 0: response["effects"] = effectResponse hpResponse = ParseResponseUtils.parseHPGainedLost(self.responseText) if hpResponse != 0: reponse["hp"] = hpResponse mpResponse = ParseResponseUtils.parseMPGainedLost(self.responseText) if mpResponse != 0: reponse["mp"] = mpResponse self.responseData = response
def parseResponse(self): if self.notSold.search(self.responseText): raise Error.Error("This store doesn't carry that item.", Error.ITEM_NOT_FOUND) if self.notEnoughMeat.search(self.responseText): raise Error.Error("You do not have enough meat to purchase the item(s).", Error.NOT_ENOUGH_MEAT) items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise Error.Error("Unknown error. No items received.", Error.REQUEST_FATAL) self.responseData["items"] = items meatSpentPattern = PatternManager.getOrCompilePattern('meatSpent') match = meatSpentPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
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): # 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): # Look for known errors. We override the NOT_ENOUGH_MEAT error here because it basically matches the error condition # of not having enough currency to buy the particular product. It is not worth creating a one-off error for this # particular situation, especially since the trader doesn't deal in meat. p = PatternManager.getOrCompilePattern('traderNotTradingForThatItem') if p.search(self.responseText): raise Error.Error("The trader isn't trading for that item.", Error.ITEM_NOT_FOUND) p = PatternManager.getOrCompilePattern('traderCantTradeForThatMany') if p.search(self.responseText): raise Error.Error("You are unable to trade for that many items.", Error.NOT_ENOUGH_MEAT) p = PatternManager.getOrCompilePattern('traderNotEnoughWads') if p.search(self.responseText): raise Error.Error("You are unable to trade for that many items.", Error.NOT_ENOUGH_MEAT) items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise Error.Error("Unknown error. No items received.", Error.REQUEST_FATAL) self.responseData["items"] = items
def parseResponse(self): # Check for errors. dontHaveMeatpastePattern = PatternManager.getOrCompilePattern('noMeatpaste') itemsDontMeatpastePattern = PatternManager.getOrCompilePattern('itemsDontMeatpaste') dontHaveItemsPattern = PatternManager.getOrCompilePattern('dontHaveItemsMeatpaste') if dontHaveMeatpastePattern.search(self.responseText): e = Error.Error("Unable to combine items. You don't have any meatpaste.", Error.ITEM_NOT_FOUND) e.itemId = 25 raise e elif itemsDontMeatpastePattern.search(self.responseText): raise Error.Error("Unable to combine items. The submitted ingredients do not meatpaste together.", Error.RECIPE_NOT_FOUND) elif dontHaveItemsPattern.search(self.responseText): raise Error.Error("Unable to combine items. You don't have all of the items you are trying to meatpaste.", Error.ITEM_NOT_FOUND) # Find the items attached to the message. items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: self.responseData["items"] = items else: raise Error.Error("Unknown error meatpasting items: %s" % self.responseText, Error.REQUEST_FATAL)
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): # First parse for errors notEnoughPattern = PatternManager.getOrCompilePattern("notEnoughToUse") if notEnoughPattern.search(self.responseText): raise Error.Error("You don't have that many of that item.", Error.ITEM_NOT_FOUND) notMultiPattern = PatternManager.getOrCompilePattern("notMultiUse") if notMultiPattern.search(self.responseText): raise Error.Error("You cannot multi-use that item.", Error.WRONG_KIND_OF_ITEM) # Find out what happened items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: self.responseData["items"] = items meat = ParseResponseUtils.parseMeatGainedLost(self.responseText) if meat != 0: self.responseData["meat"] = meat hp = ParseResponseUtils.parseHPGainedLost(self.responseText) if hp != 0: self.responseData["hp"] = hp mp = ParseResponseUtils.parseMPGainedLost(self.responseText) if mp != 0: self.responseData["mp"] = mp drunk = ParseResponseUtils.parseDrunkGained(self.responseText) if drunk != 0: self.responseData["drunk"] = drunk adventures = ParseResponseUtils.parseAdventuresGained( self.responseText) if adventures != 0: self.responseData["adventures"] = adventures effects = ParseResponseUtils.parseEffectsGained(self.responseText) if len(effects) > 0: self.responseData["effects"] = effects
def parseResponse(self): # Check for errors. notEnoughMeatPattern = PatternManager.getOrCompilePattern('noMeatForStore') invalidStorePattern = PatternManager.getOrCompilePattern('invalidStore') notSoldPattern = PatternManager.getOrCompilePattern('notSoldHere') if len(self.responseText) == 0: raise Error.Error("You cannot visit that store yet.", Error.INVALID_LOCATION) if invalidStorePattern.search(self.responseText): raise Error.Error("The store you tried to visit doesn't exist.", Error.INVALID_LOCATION) if notSoldPattern.search(self.responseText): raise Error.Error("This store doesn't carry that item.", Error.ITEM_NOT_FOUND) if notEnoughMeatPattern.search(self.responseText): raise Error.Error("You do not have enough meat to purchase the item(s).", Error.NOT_ENOUGH_MEAT) items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise Error.Error("Unknown error. No items received.", Error.REQUEST_FATAL) self.responseData["items"] = items meatSpentPattern = PatternManager.getOrCompilePattern('meatSpent') match = meatSpentPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
def parseResponse(self): # Check for errors. notEnoughMeatPattern = PatternManager.getOrCompilePattern('noMeatForStore') invalidStorePattern = PatternManager.getOrCompilePattern('invalidStore') notSoldPattern = PatternManager.getOrCompilePattern('notSoldHere') if len(self.responseText) == 0: raise UserShouldNotBeHereError("You cannot visit that store yet.") if invalidStorePattern.search(self.responseText): raise NotAStoreError("The store you tried to visit doesn't exist.") if notSoldPattern.search(self.responseText): raise NotSoldHereError("This store doesn't carry that item.") if notEnoughMeatPattern.search(self.responseText): raise NotEnoughMeatError("You do not have enough meat to purchase the item(s).") items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise RequestError("Unknown error. No items received.") self.responseData["items"] = items meatSpentPattern = PatternManager.getOrCompilePattern('meatSpent') match = spentMeatPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
def parseResponse(self): # Check for errors tooFullPattern = PatternManager.getOrCompilePattern('tooFull') if tooFullPattern.search(self.responseText): raise Error.Error("You are too full to eat that.", Error.USER_IS_FULL) notFoodPattern = PatternManager.getOrCompilePattern('notFood') if notFoodPattern.search(self.responseText): raise Error.Error("That item is not food.", Error.WRONG_KIND_OF_ITEM) foodMissingPattern = PatternManager.getOrCompilePattern( 'notEnoughItems') if foodMissingPattern.search(self.responseText): raise Error.Error("Item not in inventory.", Error.ITEM_NOT_FOUND) # 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): 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): notEnoughCloversPattern = PatternManager.getOrCompilePattern( 'notEnoughClovers') noTrinketsPattern = PatternManager.getOrCompilePattern('noTrinkets') noHermitPermitPattern = PatternManager.getOrCompilePattern( 'noHermitPermits') notHermitItemPattern = PatternManager.getOrCompilePattern( 'notHermitItem') # Check for errors. if notEnoughCloversPattern.search(self.responseText): e = Error.Error("The Hermit doesn't have enough clovers for that.", Error.ITEM_NOT_FOUND) e.itemId = 24 raise e if noTrinketsPattern.search(self.responseText): e = Error.Error("You don't have enough worthless items for that.", Error.ITEM_NOT_FOUND) e.itemId = 43 raise e if noHermitPermitPattern.search(self.responseText): e = Error.Error("You don't have enough hermit permits for that.", Error.ITEM_NOT_FOUND) e.itemId = 42 raise e if notHermitItemPattern.search(self.responseText): e = Error.Error("The Hermit doesn't have any of those.", Error.ITEM_NOT_FOUND) e.itemId = self.requestData['whichitem'] raise e response = {} items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: response["items"] = items self.responseData = response
def parseResponse(self): cantAffordItemPattern = PatternManager.getOrCompilePattern( 'cantAffordItem') if cantAffordItemPattern.search(self.responseText): raise Error.Error("You can not afford to buy this item.", Error.NOT_ENOUGH_MEAT) noItemAtThatPricePattern = PatternManager.getOrCompilePattern( 'mallNoItemAtThatPrice') if noItemAtThatPricePattern.search(self.responseText): raise Error.Error("That item is not sold here at that price.", Error.ITEM_NOT_FOUND) ignoreListPattern = PatternManager.getOrCompilePattern( 'cantBuyItemIgnoreList') if ignoreListPattern.search(self.responseText): raise Error.Error("The owner of that store has balleeted you.", Error.USER_IS_IGNORING) mallHitLimitPattern = PatternManager.getOrCompilePattern( 'mallHitLimit') if mallHitLimitPattern.search(self.responseText): raise Error.Error( "You have hit the limit for this item at this store.", Error.LIMIT_REACHED) items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) == 0: raise Error.Error("Unknown error: %s" % self.responseText, Error.REQUEST_GENERIC) self.responseData["items"] = items spentMeatPattern = PatternManager.getOrCompilePattern('meatSpent') match = spentMeatPattern.search(self.responseText) self.responseData['meatSpent'] = int(match.group(1).replace(',', ''))
def parseResponse(self): # First parse for errors notEnoughPattern = PatternManager.getOrCompilePattern("notEnoughToUse") if notEnoughPattern.search(self.responseText): raise NotEnoughItemsError("You don't have that many of that item") notMultiPattern = PatternManager.getOrCompilePattern("notMultiUse") if notMultiPattern.search(self.responseText): raise InvalidActionError("You cannot multi-use that item") # Find out what happened items = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) if len(items) > 0: self.responseData["items"] = items meat = ParseResponseUtils.parseMeatGainedLost(self.responseText) if meat != 0: self.responseData["meat"] = meat hp = ParseResponseUtils.parseHPGainedLost(self.responseText) if hp != 0: self.responseData["hp"] = hp mp = ParseResponseUtils.parseMPGainedLost(self.responseText) if mp != 0: self.responseData["mp"] = mp drunk = ParseResponseUtils.parseDrunkGained(self.responseText) if drunk != 0: self.responseData["drunk"] = drunk adventures = ParseResponseUtils.parseAdventuresGained(self.responseText) if adventures != 0: self.responseData["adventures"] = adventures effects = ParseResponseUtils.parseEffectsGained(self.responseText) if len(effects) > 0: self.responseData["effects"] = effects
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): self.responseData["mp"] = ParseResponseUtils.parseMPGainedLost(self.responseText) self.responseData["hp"] = ParseResponseUtils.parseHPGainedLost(self.responseText)
def parseResponse(self): self.responseData["effects"] = ParseResponseUtils.parseEffectsGained(self.responseText)
def parseResponse(self): self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost( self.responseText)
def parseResponse(self): if len(self.responseText) == 0: raise Error.Error('You cannot visit that store yet.', Error.INVALID_LOCATION) self.responseData['meat'] = ParseResponseUtils.parseMeatGainedLost(self.responseText)
def parseResponse(self): response = {} response["meat"] = ParseResponseUtils.parseMeatGainedLost(self.responseText) self.responseData = response
def parseResponse(self): response = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) self.responseData = response
def parseResponse(self): self.responseData["effects"] = ParseResponseUtils.parseEffectsGained( self.responseText)
def parseResponse(self): response = {} response["meat"] = ParseResponseUtils.parseMeatGainedLost( self.responseText) self.responseData = response
def parseResponse(self): self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost(self.responseText)
def parseResponse(self): self.responseData["mp"] = ParseResponseUtils.parseMPGainedLost( self.responseText) self.responseData["hp"] = ParseResponseUtils.parseHPGainedLost( self.responseText)
def parseResponse(self): self.responseData["items"] = ParseResponseUtils.parseItemsReceived(self.responseText, self.session)
def parseResponse(self): """ Default response method for adventuring. """ shouldNotBeHerePattern = PatternManager.getOrCompilePattern('userShouldNotBeHere') if shouldNotBeHerePattern.search(self.responseText): raise Error.Error("Unable to adventure. You should not be here.", Error.INVALID_LOCATION) url = self.response.geturl() if url.find("/fight.php") >= 0: # See if the user tried to perform an invalid action. twiddlingThumbsPattern = PatternManager.getOrCompilePattern('twiddlingThumbs') if twiddlingThumbsPattern.search(self.responseText): raise Error.Error("Could not perform action. Thumbs were twiddled.", Error.INVALID_ACTION) # Get the monster's name. self.responseData["adventureType"] = "combat" monsterNamePattern = PatternManager.getOrCompilePattern('monsterName') monsterNameMatch = monsterNamePattern.search(self.responseText) self.responseData["monsterName"] = monsterNameMatch.group(1) # Check to see if the fight was won or lost. fightWonPattern = PatternManager.getOrCompilePattern('fightWon') if fightWonPattern.search(self.responseText): self.responseData["fightWon"] = True else: fightLostPattern = PatternManager.getOrCompilePattern('fightLost') if fightLostPattern.search(self.responseText): self.responseData["fightLost"] = True # Get items, meat, and substats gained. We always need to check these since they can # happen at any point during the fight. self.responseData["items"] = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost(self.responseText) self.responseData["substats"] = ParseResponseUtils.parseSubstatsGainedLost(self.responseText) # The same goes for HP and MP self.responseData["hp"] = ParseResponseUtils.parseHPGainedLost(self.responseText) self.responseData["mp"] = ParseResponseUtils.parseMPGainedLost(self.responseText) elif url.find("/choice.php") >= 0: self.responseData["adventureType"] = "choice" choiceIdentifierPattern = PatternManager.getOrCompilePattern('choiceIdentifier') choiceIdentifierMatch = choiceIdentifierPattern.search(self.responseText) if choiceIdentifierMatch: choiceNamePattern = PatternManager.getOrCompilePattern('choiceName') self.responseData["choiceId"] = choiceIdentifierMatch.group(1) self.responseData["choiceName"] = choiceNamePattern.search(self.responseText).group(1) else: self.responseData["items"] = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost(self.responseText) self.responseData["substats"] = ParseResponseUtils.parseSubstatsGainedLost(self.responseText) elif url.find("/adventure.php") >= 0: self.responseData["adventureType"] = "noncombat" noncombatNamePattern = PatternManager.getOrCompilePattern('noncombatName') noncombatNameMatch = noncombatNamePattern.search(self.responseText) if noncombatNameMatch: self.responseData["noncombatName"] = noncombatNameMatch.group(1) self.responseData["items"] = ParseResponseUtils.parseItemsReceived(self.responseText, self.session) self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost(self.responseText) self.responseData["substats"] = ParseResponseUtils.parseSubstatsGainedLost(self.responseText) else: raise Error.Error("Adventure URL not recognized: %s" % url, Error.REQUEST_GENERIC)
def parseResponse(self): """ Default response method for adventuring. """ shouldNotBeHerePattern = PatternManager.getOrCompilePattern( 'userShouldNotBeHere') if shouldNotBeHerePattern.search(self.responseText): raise Error.Error("Unable to adventure. You should not be here.", Error.INVALID_LOCATION) url = self.response.geturl() if url.find("/fight.php") >= 0: # See if the user tried to perform an invalid action. twiddlingThumbsPattern = PatternManager.getOrCompilePattern( 'twiddlingThumbs') if twiddlingThumbsPattern.search(self.responseText): raise Error.Error( "Could not perform action. Thumbs were twiddled.", Error.INVALID_ACTION) # Get the monster's name. self.responseData["adventureType"] = "combat" monsterNamePattern = PatternManager.getOrCompilePattern( 'monsterName') monsterNameMatch = monsterNamePattern.search(self.responseText) self.responseData["monsterName"] = monsterNameMatch.group(1) # Check to see if the fight was won or lost. fightWonPattern = PatternManager.getOrCompilePattern('fightWon') if fightWonPattern.search(self.responseText): self.responseData["fightWon"] = True else: fightLostPattern = PatternManager.getOrCompilePattern( 'fightLost') if fightLostPattern.search(self.responseText): self.responseData["fightLost"] = True # Get items, meat, and substats gained. We always need to check these since they can # happen at any point during the fight. self.responseData["items"] = ParseResponseUtils.parseItemsReceived( self.responseText, self.session) self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost( self.responseText) self.responseData[ "substats"] = ParseResponseUtils.parseSubstatsGainedLost( self.responseText) # The same goes for HP and MP self.responseData["hp"] = ParseResponseUtils.parseHPGainedLost( self.responseText) self.responseData["mp"] = ParseResponseUtils.parseMPGainedLost( self.responseText) elif url.find("/choice.php") >= 0: self.responseData["adventureType"] = "choice" choiceIdentifierPattern = PatternManager.getOrCompilePattern( 'choiceIdentifier') choiceIdentifierMatch = choiceIdentifierPattern.search( self.responseText) if choiceIdentifierMatch: choiceNamePattern = PatternManager.getOrCompilePattern( 'choiceName') self.responseData["choiceId"] = choiceIdentifierMatch.group(1) self.responseData["choiceName"] = choiceNamePattern.search( self.responseText).group(1) else: self.responseData[ "items"] = ParseResponseUtils.parseItemsReceived( self.responseText, self.session) self.responseData[ "meat"] = ParseResponseUtils.parseMeatGainedLost( self.responseText) self.responseData[ "substats"] = ParseResponseUtils.parseSubstatsGainedLost( self.responseText) elif url.find("/adventure.php") >= 0: self.responseData["adventureType"] = "noncombat" noncombatNamePattern = PatternManager.getOrCompilePattern( 'noncombatName') noncombatNameMatch = noncombatNamePattern.search(self.responseText) if noncombatNameMatch: self.responseData["noncombatName"] = noncombatNameMatch.group( 1) self.responseData["items"] = ParseResponseUtils.parseItemsReceived( self.responseText, self.session) self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost( self.responseText) self.responseData[ "substats"] = ParseResponseUtils.parseSubstatsGainedLost( self.responseText) else: raise Error.Error("Adventure URL not recognized: %s" % url, Error.REQUEST_GENERIC)
def parseResponse(self): self.responseData["items"] = ParseResponseUtils.parseItemsReceived( self.responseText, self.session)