Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
    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
Esempio n. 4
0
    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
Esempio n. 5
0
    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)
Esempio n. 6
0
    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
Esempio n. 7
0
    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)
Esempio n. 8
0
	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(',', ''))
Esempio n. 10
0
    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)
Esempio n. 11
0
    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(',', ''))
Esempio n. 12
0
    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
Esempio n. 13
0
	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(',', ''))
Esempio n. 14
0
    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(',', ''))
Esempio n. 15
0
    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(',', ''))
Esempio n. 16
0
    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
Esempio n. 17
0
    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
Esempio n. 18
0
 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}
Esempio n. 19
0
 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}
Esempio n. 20
0
	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.")
Esempio n. 21
0
    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)
Esempio n. 22
0
    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
Esempio n. 23
0
    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
Esempio n. 24
0
    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(',', ''))
Esempio n. 25
0
    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.")
Esempio n. 26
0
    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
Esempio n. 28
0
    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)
Esempio n. 29
0
	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
Esempio n. 30
0
    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
Esempio n. 31
0
    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(',', ''))
Esempio n. 32
0
    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(',', ''))
Esempio n. 33
0
    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
Esempio n. 34
0
	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
Esempio n. 35
0
    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(',', ''))
Esempio n. 37
0
    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
Esempio n. 38
0
	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
Esempio n. 39
0
	def parseResponse(self):
		self.responseData["mp"] = ParseResponseUtils.parseMPGainedLost(self.responseText)
		self.responseData["hp"] = ParseResponseUtils.parseHPGainedLost(self.responseText)
Esempio n. 40
0
	def parseResponse(self):
		self.responseData["effects"] = ParseResponseUtils.parseEffectsGained(self.responseText)
Esempio n. 41
0
 def parseResponse(self):
     self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost(
         self.responseText)
Esempio n. 42
0
 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)
Esempio n. 43
0
    def parseResponse(self):
        response = {}
        response["meat"] = ParseResponseUtils.parseMeatGainedLost(self.responseText)

        self.responseData = response
Esempio n. 44
0
    def parseResponse(self):
        response = ParseResponseUtils.parseItemsReceived(self.responseText, self.session)

        self.responseData = response
Esempio n. 45
0
 def parseResponse(self):
     self.responseData["effects"] = ParseResponseUtils.parseEffectsGained(
         self.responseText)
Esempio n. 46
0
    def parseResponse(self):
        response = {}
        response["meat"] = ParseResponseUtils.parseMeatGainedLost(
            self.responseText)

        self.responseData = response
Esempio n. 47
0
	def parseResponse(self):
		self.responseData["meat"] = ParseResponseUtils.parseMeatGainedLost(self.responseText)
Esempio n. 48
0
 def parseResponse(self):
     self.responseData["mp"] = ParseResponseUtils.parseMPGainedLost(
         self.responseText)
     self.responseData["hp"] = ParseResponseUtils.parseHPGainedLost(
         self.responseText)
Esempio n. 49
0
 def parseResponse(self):
     self.responseData["items"] = ParseResponseUtils.parseItemsReceived(self.responseText, self.session)
Esempio n. 50
0
    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)
Esempio n. 51
0
    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)
Esempio n. 52
0
 def parseResponse(self):
     self.responseData["items"] = ParseResponseUtils.parseItemsReceived(
         self.responseText, self.session)
Esempio n. 53
0
    def parseResponse(self):
        response = ParseResponseUtils.parseItemsReceived(self.responseText, self.session)

        self.responseData = response