コード例 #1
0
class DiceaRoo:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def DiceaRoo(self, username):
        self.functions.createTaskData('DiceaRoo', username)
        if time.time() - float(self.functions.lastRun('DiceaRoo',
                                                      username)) >= 86400:
            resp = self.neo.get('games/dicearoo.phtml')
            gameHash = self.functions.getBetween(resp.text, 'ck\' value=\'',
                                                 '\'>')
            resp = self.neo.post('games/play_dicearoo.phtml', {
                'raah': 'init',
                '_ref_ck': gameHash
            }, resp.url)
            resp = self.neo.post('games/play_dicearoo.phtml', {
                'type': 'start',
                'raah': 'init',
                '_ref_ck': gameHash
            }, resp.url)
            while True:
                if self.functions.contains(resp.text, 'Im SO BORED of'):
                    self.functions.log('Dice-a-Roo AP: Pet is bored')
                    break
                if self.functions.contains(resp.text,
                                           'Oh dear, that means Game Over'):
                    resp = self.neo.post('games/dicearoo.phtml', None,
                                         resp.url)
                    resp = self.neo.post('games/play_dicearoo.phtml', {
                        'raah': 'init',
                        '_ref_ck': gameHash
                    }, resp.url)
                    resp = self.neo.post('games/play_dicearoo.phtml', {
                        'type': 'start',
                        'raah': 'init',
                        '_ref_ck': gameHash
                    }, resp.url)
                if not self.functions.contains(
                        resp.text, 'Oh dear, that means Game Over'):
                    resp = self.neo.post('games/play_dicearoo.phtml', {
                        'raah': 'continue',
                        '_ref_ck': gameHash
                    }, resp.url)
                if self.functions.contains(resp.text, 'Im SO BORED of'):
                    self.functions.log('Dice-a-Roo AP: Pet is bored')
                    break
                GameDice = self.functions.getBetween(resp.text, '<br><b>',
                                                     ' Dice-A-Roo</b>')
                gameResult = self.functions.getBetween(
                    resp.text, '</td></tr><tr><td align=center><i>',
                    '</i>').replace('<B>', '').replace('</B>', '').replace(
                        '<b>', '').replace('</b>', '').replace('  ',
                                                               ' ').strip()
                self.functions.log('Dice-a-Roo AP [%s Dice]: %s' %
                                   (GameDice, gameResult))
            self.functions.updateLastRun('DiceaRoo', username)
コード例 #2
0
ファイル: poogle.py プロジェクト: MajinClraik/Multi-Tool
class PoogleRace:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def PoogleRace(self, username):
        raceTimes = ['59', '14', '29', '44']
        betTimes = ['11', '26', '41', '56']
        now = datetime.now()
        current_time = now.strftime("%M")
        self.functions.createTaskData('PoogleRace', username)
        if time.time() - float(self.functions.lastRun('PoogleRace',
                                                      username)) >= 3600:
            for data in betTimes:
                if current_time == data:
                    resp = self.neo.get('faerieland/poogleracing/start.phtml')
                    winner = resp.text[-1]
                    resp = self.neo.post(
                        'faerieland/process_pooglebetting.phtml', {
                            'poogle': winner,
                            'bet': '300',
                            'obj_info_id': '0'
                        },
                        'http://www.neopets.com/faerieland/pooglebetting.phtml'
                    )
                    if self.functions.contains(resp.url, 'thanks'):
                        self.functions.log(
                            'Poogle Race: Placed a bet on poogle #%s' % winner)
                        self.functions.updateLastRun('PoogleRace', username)
        self.functions.createTaskData('PoogleRaceFinish', username)
        if time.time() - float(
                self.functions.lastRun('PoogleRaceFinish', username)) >= 3600:
            for data in raceTimes:
                if current_time == data:
                    resp = self.neo.get('faerieland/poogleracing.phtml')
                    if self.functions.contains(
                            resp.text,
                            'Please come back when the race starts!!!'):
                        time.sleep(60)
                        self.neo.post(
                            'faerieland/poogleracing.phtml?type=viewrace',
                            {'rand': random.randint(1, 999)},
                            'http://www.neopets.com/faerieland/poogleracing.phtml'
                        )
                        time.sleep(random.randint(5, 10))
                        resp = self.neo.post(
                            'faerieland/poogleracing.phtml',
                            {'type': 'collect'},
                            'http://www.neopets.com/faerieland/poogleracing.phtml?type=viewrace'
                        )
                        result = self.functions.getBetween(
                            resp.text, 'You win <b>', '</b> NP back')
                        self.functions.log('Poogle Race: You won %sNP!' %
                                           result)
                        self.functions.updateLastRun('PoogleRaceFinish',
                                                     username)
コード例 #3
0
ファイル: trudy.py プロジェクト: MajinClraik/Multi-Tool
class Trudy:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def Trudy(self, username):
        self.functions.createTaskData('Trudy', username)
        if time.time() - float(self.functions.lastRun('Trudy',
                                                      username)) >= 86400:
            resp = self.neo.get('trudys_surprise.phtml?delevent=yes',
                                'https://www.jellyneo.net/?go=dailies')
            if self.functions.contains(resp.text, '&slt=1'):
                result = self.functions.getBetween(resp.text, 'phtml?id=',
                                                   '" name="')
                resp = self.neo.get('trudydaily/slotgame.phtml?id=%s' % result,
                                    resp.url)
                results = self.functions.getBetween(resp.text, '\'key\': \'',
                                                    '\'};')
                resp = self.neo.post(
                    'trudydaily/ajax/claimprize.php', {
                        'action': 'getslotstate',
                        'key': results
                    },
                    'http://www.neopets.com/trudydaily/slotgame.phtml?id=%s' %
                    result)
                resp = self.neo.post('trudydaily/ajax/claimprize.php',
                                     {'action': 'beginroll'}, resp.url)
                self.neo.post('trudydaily/ajax/claimprize.php',
                              {'action': 'prizeclaimed'}, resp.url)
                self.functions.log('Trudy\'s Surprise: Done')
                self.functions.updateLastRun('Trudy', username)
            else:
                self.functions.log('Trudy\'s Surprise: Already done today')
コード例 #4
0
ファイル: lottery.py プロジェクト: MajinClraik/Multi-Tool
class Lottery:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def Lottery(self, username):
        self.functions.createTaskData('Lottery', username)
        if time.time() - float(self.functions.lastRun('Lottery',
                                                      username)) >= 86400:
            self.neo.get('games/lottery.phtml',
                         'https://thedailyneopets.com/dailies')
            for _ in range(20):
                nums = [x for x in range(1, 31)]
                random.shuffle(nums)
                resp = self.neo.post(
                    'games/process_lottery.phtml', {
                        'one': nums[0],
                        'two': nums[1],
                        'three': nums[2],
                        'four': nums[3],
                        'five': nums[4],
                        'six': nums[5]
                    }, 'http://www.neopets.com/games/lottery.phtml')
                if self.functions.contains(resp.text,
                                           'you cannot buy any more'):
                    self.functions.log(
                        'Lottery: You can\'t buy anymore tickets')
                    break
                self.functions.log(
                    'Lottery: Purchased ticket - %s, %s, %s, %s, %s, %s' %
                    (nums[0], nums[1], nums[2], nums[3], nums[4], nums[5]))
            self.functions.log('Lottery: Done')
            self.functions.updateLastRun('Lottery', username)
コード例 #5
0
class Shrine:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def Shrine(self, username):
        self.functions.createTaskData('Shrine', username)
        if time.time() - float(self.functions.lastRun('Shrine', username)) >= 46800:
            resp = self.neo.post('desert/shrine.phtml', {'type': 'approach'}, 'http://www.neopets.com/desert/shrine.phtml')
            if not self.functions.contains(resp.text, 'Maybe you should wait'):
                self.functions.log('Coltzans Shrine: Done')
            self.functions.updateLastRun('Shrine', username)
コード例 #6
0
class Jelly:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def Jelly(self, username):
        self.functions.createTaskData('Jelly', username)
        if time.time() - float(self.functions.lastRun('Jelly', username)) >= 86400:
            resp = self.neo.post('jelly/jelly.phtml', {'type': 'get_jelly'}, 'http://www.neopets.com/jelly/jelly.phtml')
            if self.functions.contains(resp.text, 'You take some <b>'):
                result = self.functions.getBetween(resp.text, 'some <b>', '</b>!!!')
                self.functions.log('Giant Jelly: Grabbed %s' % result)
            self.functions.updateLastRun('Jelly', username)
コード例 #7
0
ファイル: obsidian.py プロジェクト: MajinClraik/Multi-Tool
class Obsidian:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def Obsidian(self, username):
        self.functions.createTaskData('Obsidian', username)
        if time.time() - float(self.functions.lastRun('Obsidian',
                                                      username)) >= 86400:
            resp = self.neo.get('magma/quarry.phtml',
                                'https://thedailyneopets.com/dailies')
            if self.functions.contains(resp.text, 'Shiny Obsidian'):
                self.functions.log('Obsidian Quarry: Received Shiny Obsidian')
            self.functions.updateLastRun('Obsidian', username)
コード例 #8
0
ファイル: snowball.py プロジェクト: MajinClraik/Multi-Tool
class SnowballAB:
    def __init__(self, neo):
        self.neo = neo
        self.sdb = SDB(self.neo)
        self.functions = Functions()
        self.BuyDelay = None
        self.getSettings()

    def getSettings(self):
        self.BuyDelay = int(
            self.functions.getSettings('BuyDelay').split(':')[1].strip())

    def SnowballAB(self, username):
        self.functions.createTaskData('SnowballAB', username)
        if self.BuyDelay < 1800:
            self.BuyDelay = 1800
        if time.time() - float(self.functions.lastRun(
                'SnowballAB', username)) >= self.BuyDelay:
            resp = self.neo.get('faerieland/springs.phtml')
            currentNp = self.functions.getNp(resp.text)
            if currentNp >= 25:
                resp = self.neo.post(
                    'faerieland/springs.phtml', {'type': 'purchase'},
                    'http://www.neopets.com/faerieland/springs.phtml')
                if self.functions.contains(resp.text,
                                           'buy one item every 30 minutes'):
                    self.functions.log(
                        'Snowball AB: Can\'t Buy A Snowball Yet!')
                else:
                    self.neo.get(
                        'faerieland/process_springs.phtml?obj_info_id=8429',
                        'http://www.neopets.com/faerieland/springs.phtml')
                    self.functions.log(
                        'Snowball AB: Purchased x1 Sticky Snowball!')
                    self.sdb.deposit()
            else:
                self.functions.log(
                    'Snowball AB: You don\'t have enough neopoints to buy a snowball!'
                )
            self.functions.updateLastRun('SnowballAB', username)
コード例 #9
0
ファイル: cheat.py プロジェクト: MajinClraik/Multi-Tool
class Cheat:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def Cheat(self, username):
        self.functions.createTaskData('Cheat', username)
        if time.time() - float(self.functions.lastRun('Cheat',
                                                      username)) >= 86400:
            cardVal = 1
            resp = self.neo.get('games/cheat/index.phtml')
            resp = self.neo.post('games/cheat/cheat.phtml', None, resp.url)
            while True:
                if self.functions.contains(resp.text, ' of cheating!'):
                    currentPlayed = self.functions.getBetween(
                        resp.text, ' played ', ' ')
                    if currentPlayed == '4':
                        cheater = self.functions.getBetween(
                            resp.text, '"CheatYes" VALUE="', '"><BR>')
                        resp = self.neo.post('games/cheat/cheat.phtml',
                                             {'CheatYes': cheater}, resp.url)
                        if self.functions.contains(resp.text,
                                                   'NOT CHEATING!!!'):
                            cheater = self.functions.getBetween(
                                resp.text, '<BR>but ', ' was <b>NOT')
                            self.functions.log(
                                'Accused %s of cheating, %s was not cheating' %
                                (cheater, cheater))
                        resp = self.neo.post('games/cheat/cheat.phtml', None,
                                             resp.url)
                    else:
                        notCheating = self.functions.getBetween(
                            resp.text, '"CheatNo" VALUE="', '">')
                        resp = self.neo.post('games/cheat/cheat.phtml',
                                             {'CheatNo': notCheating},
                                             resp.url)
                        resp = self.neo.post('games/cheat/cheat.phtml', None,
                                             resp.url)
                if self.functions.contains(resp.text,
                                           'You have won this round'):
                    if self.functions.contains(
                            resp.text, 'You have beaten the hardest level'):
                        self.functions.log(
                            'Cheat AP: You won the hardest stage')
                        resp = self.neo.post('games/cheat/cheat.phtml',
                                             {'x_reset': '1'}, resp.url)
                        self.functions.updateLastRun('Cheat', username)
                        break
                    self.functions.log('Cheat AP: You won the round')
                    resp = self.neo.post('games/cheat/cheat.phtml',
                                         {'x_continue': '1'}, resp.url)
                    resp = self.neo.post('games/cheat/cheat.phtml', None,
                                         resp.url)
                elif self.functions.contains(resp.text,
                                             'You will have to defeat'):
                    resp = self.neo.post('games/cheat/cheat.phtml',
                                         {'x_continue': '1'}, resp.url)
                    resp = self.neo.post('games/cheat/cheat.phtml', None,
                                         resp.url)
                if self.functions.contains(resp.text, 'Select Card Value'):
                    ourCards = re.findall(r'games/cards/(.*?)_', resp.text)
                    mostCommon = max(set(ourCards), key=ourCards.count)
                    ourValues = re.findall(
                        rf'<img src=\'http://images.neopets.com/games/cards/{mostCommon}(.*?)\' height=90 width=70',
                        resp.text)
                    das = self.functions.getBetween(resp.text,
                                                    'das1.value = \'', '\';')
                    if int(mostCommon) == 14:
                        cardData = {
                            'jk_pc1': '',
                            'jk_pc2': '',
                            'jk_pc3': '',
                            'jk_pc4': '',
                            'das1': das,
                            'x_claim': '1'
                        }
                    else:
                        cardData = {
                            'jk_pc1': '',
                            'jk_pc2': '',
                            'jk_pc3': '',
                            'jk_pc4': '',
                            'das1': das,
                            'x_claim': mostCommon
                        }
                    for data in ourValues:
                        cardData['jk_pc%s' %
                                 cardVal] = self.functions.getBetween(
                                     data, 'name=\'', '"')
                        cardVal += 1
                    cardVal = 1
                    resp = self.neo.post('games/cheat/cheat.phtml', cardData,
                                         resp.url)
                    if int(mostCommon) > 10:
                        curCard = None
                        if mostCommon == '11':
                            curCard = 'Jack'
                        elif mostCommon == '12':
                            curCard = 'Queen'
                        elif mostCommon == '13':
                            curCard = 'King'
                        elif mostCommon == '14':
                            curCard = 'Ace'
                        self.functions.log(
                            'Cheat AP: Played %s x%s' %
                            (curCard, ourCards.count(mostCommon)))
                    else:
                        self.functions.log(
                            'Cheat AP: Played %s x%s' %
                            (mostCommon, ourCards.count(mostCommon)))
                    resp = self.neo.post('games/cheat/cheat.phtml', None,
                                         resp.url)
コード例 #10
0
ファイル: wheels.py プロジェクト: MajinClraik/Multi-Tool
class Wheels:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()
        
    def wheelOfExcitement(self, username):
        self.functions.createTaskData('wheelOfExcitement', username)
        if time.time() - float(self.functions.lastRun('wheelOfExcitement', username)) >= 7200:
            resp = self.neo.get('faerieland/wheel.phtml')
            if self.functions.contains(resp.text, 'already spun this wheel'):
                self.functions.log('Wheel of Excitement: Already spun this wheel')
            if not self.functions.contains(resp.text, 'already spun this wheel'):
                ref = self.functions.getBetween(resp.text, 'http://images.neopets.com/wheels', ', \'flash_')
                resp = self.neo.amf('http://www.neopets.com/amfphp/gateway.php', '\x00\x03\x00\x00\x00\x01\x00\x16WheelService.spinWheel\x00\x02/1\x00\x00\x00\t\n\x00\x00\x00\x01\x02\x00\x01%s' % '2', 'http://www.neopets.com/%s' % ref.strip())
                if self.functions.contains(resp.text, 'wheelofexcitement.gif'):
                    self.functions.log('Wheel of Excitement: Done, received the avatar')
                else:
                    self.functions.log('Wheel of Excitement: Done')
            self.functions.updateLastRun('wheelOfExcitement', username)
    
    def wheelOfMediocrity(self, username):
        self.functions.createTaskData('wheelOfMediocrity', username)
        if time.time() - float(self.functions.lastRun('wheelOfMediocrity', username)) >= 2400:
            resp = self.neo.get('prehistoric/mediocrity.phtml')
            if self.functions.contains(resp.text, 'Come back, uh, whenever'):
                self.functions.log('Wheel of Mediocrity: Already spun this wheel')
            if not self.functions.contains(resp.text, 'Come back, uh, whenever'):
                ref = self.functions.getBetween(resp.text, 'http://images.neopets.com/wheels', ', \'flash_')
                resp = self.neo.amf('http://www.neopets.com/amfphp/gateway.php', '\x00\x03\x00\x00\x00\x01\x00\x16WheelService.spinWheel\x00\x02/1\x00\x00\x00\t\n\x00\x00\x00\x01\x02\x00\x01%s' % '3', 'http://www.neopets.com/%s' % ref.strip())
                if self.functions.contains(resp.text, 'mediocrity.gif'):
                    self.functions.log('Wheel of Mediocrity: Done, received the avatar')
                else:
                    self.functions.log('Wheel of Mediocrity: Done')
            self.functions.updateLastRun('wheelOfMediocrity', username)

    def wheelOfMisfortune(self, username):
        self.functions.createTaskData('wheelOfMisfortune', username)
        if time.time() - float(self.functions.lastRun('wheelOfMisfortune', username)) >= 7200:
            resp = self.neo.get('halloween/wheel/index.phtml')
            if self.functions.contains(resp.text, 'Come back later'):
                self.functions.log('Wheel of Misfortune: Already spun this wheel')
            if not self.functions.contains(resp.text, 'Come back later'):
                ref = self.functions.getBetween(resp.text, 'http://images.neopets.com/wheels', ', \'flash_')
                resp = self.neo.amf('http://www.neopets.com/amfphp/gateway.php', '\x00\x03\x00\x00\x00\x01\x00\x16WheelService.spinWheel\x00\x02/1\x00\x00\x00\t\n\x00\x00\x00\x01\x02\x00\x01%s' % '4', 'http://www.neopets.com/%s' % ref.strip())
                self.functions.log('Wheel of Misfortune: Done')
            self.functions.updateLastRun('wheelOfMisfortune', username)

    def wheelOfKnowledge(self, username):
        self.functions.createTaskData('wheelOfKnowledge', username)
        if time.time() - float(self.functions.lastRun('wheelOfKnowledge', username)) >= 86400:
            resp = self.neo.get('medieval/knowledge.phtml')
            if self.functions.contains(resp.text, 'already spun this wheel'):
                self.functions.log('Wheel of Knowledge: Already spun this wheel')
            if not self.functions.contains(resp.text, 'already spun this wheel'):
                ref = self.functions.getBetween(resp.text, 'http://images.neopets.com/wheels', ', \'flash_')
                resp = self.neo.amf('http://www.neopets.com/amfphp/gateway.php', '\x00\x03\x00\x00\x00\x01\x00\x16WheelService.spinWheel\x00\x02/1\x00\x00\x00\t\n\x00\x00\x00\x01\x02\x00\x01%s' % '1', 'http://www.neopets.com/%s' % ref.strip())
                if self.functions.contains(resp.text, 'brightvale.gif'):
                    self.functions.log('Wheel of Knowledge: Done, received the avatar')
                else:
                    self.functions.log('Wheel of Knowledge: Done')
            self.functions.updateLastRun('wheelOfKnowledge', username)

    def wheelOfExtravagance(self, username):
        self.functions.createTaskData('wheelOfExtravagance', username)
        if time.time() - float(self.functions.lastRun('wheelOfExtravagance', username)) >= 86400:
            resp = self.neo.get('desert/extravagance.phtml')
            if self.functions.contains(resp.text, 'already spun the wheel today'):
                self.functions.log('Wheel of Extravagance: Already spun this wheel')
            if not self.functions.contains(resp.text, 'already spun the wheel today'):
                ref = self.functions.getBetween(resp.text, 'http://images.neopets.com/wheels', ', \'flash_')
                resp = self.neo.amf('http://www.neopets.com/amfphp/gateway.php', '\x00\x03\x00\x00\x00\x01\x00\x16WheelService.spinWheel\x00\x02/1\x00\x00\x00\t\n\x00\x00\x00\x01\x02\x00\x01%s' % '6', 'http://www.neopets.com/%s' % ref.strip())
                if self.functions.contains(resp.text, 'extravagance.gif'):
                    self.functions.log('Wheel of Extravagance: Done, received the avatar')
                else:
                    self.functions.log('Wheel of Extravagance: Done')
            self.functions.updateLastRun('wheelOfExtravagance', username)

    def wheelOfMonotony(self, username):
        self.functions.createTaskData('monotonystart', username)
        if time.time() - float(self.functions.lastRun('monotonystart', username)) >= 86400:
            self.functions.createTaskData('monotony1', username)
            if time.time() - float(self.functions.lastRun('monotony1', username)) >= 86400:
                resp = self.neo.get('prehistoric/monotony/monotony.phtml')
                if self.functions.contains(resp.text, 'already spun'):
                    self.functions.log('Wheel of Monotony: Already spun this wheel')
                if not self.functions.contains(resp.text, 'already spun'):
                    ref = self.functions.getBetween(resp.text, 'http://images.neopets.com/wheels', ', \'flash_')
                    resp = self.neo.amf('http://www.neopets.com/amfphp/gateway.php', '\x00\x03\x00\x00\x00\x01\x00\x1aWheelService.startMonotony\x00\x02/1\x00\x00\x00\x05\x0a\x00\x00\x00\x00', 'http://www.neopets.com/%s' % ref.strip())
                    self.functions.log('Wheel of Monotony: Started spinning the wheel, checking back in 2 hours')
                self.functions.updateLastRun('monotony1', username)
                self.functions.createTaskData('monotonycollect', username)
                self.functions.updateLastRun('monotonycollect', username)
            if time.time() - float(self.functions.lastRun('monotonycollect', username)) >= 7200:
                ref = self.functions.getBetween(resp.text, 'http://images.neopets.com/wheels', ', \'flash_')
                resp = self.neo.amf('http://www.neopets.com/amfphp/gateway.php', '\x00\x03\x00\x00\x00\x01\x00\x16WheelService.spinWheel\x00\x02/1\x00\x00\x00\t\n\x00\x00\x00\x01\x02\x00\x01%s' % '5', 'http://www.neopets.com/%s' % ref.strip())
                if self.functions.contains(resp.text, 'monotony.gif'):
                    self.functions.log('Wheel of Monotony: Done, received the avatar')
                else:
                    self.functions.log('Wheel of Monotony: Done')
                self.functions.updateLastRun('monotonystart', username)
                self.functions.updateLastRun('monotonycollect', username)
コード例 #11
0
class BankManager:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def createBank(self):
        resp = self.neo.get('bank.phtml')
        currentNp = self.functions.getNp(resp.text)
        accountType = {
            0: 0,
            1000: 1,
            2500: 2,
            5000: 3,
            10000: 4,
            25000: 5,
            50000: 6,
            75000: 7,
            100000: 8,
            250000: 9,
            500000: 10,
            1000000: 11,
            2000000: 12,
            5000000: 13,
            7500000: 14,
            10000000: 15
        }
        available = {}
        for key, value in accountType.items():
            if currentNp > key:
                available[key] = value
        bankType = list(available.keys())[-1]
        resp = self.neo.post(
            'process_bank.phtml', {
                'type': 'new_account',
                'name': 'x',
                'add1': 'n',
                'employment': 'Chia Custodian',
                'salary': '10,000 NP and below',
                'account_type': str(available[bankType]),
                'initial_deposit': str(bankType)
            }, resp.url)
        if self.functions.contains(resp.text, 'Activation Code'):
            self.functions.log(
                'Bank Manager: Your account isn\'t activated, unable to create a bank account'
            )
        else:
            self.functions.log('Bank Manager: Created a bank account')

    def depositNp(self, np):
        resp = self.neo.get('bank.phtml')
        if self.functions.contains(
                resp.text,
                'I see you don\'t currently have an account with us.'):
            self.createBank()
        self.neo.post('process_bank.phtml', {
            'type': 'deposit',
            'amount': str(np)
        }, 'http://www.neopets.com/bank.phtml')
        self.functions.log('Bank Manager: Deposited %s NP!' % np)

    def withdrawNp(self, np, pin):
        resp = self.neo.get('bank.phtml')
        if self.functions.contains(
                resp.text,
                'I see you don\'t currently have an account with us.'):
            self.createBank()
        if self.functions.contains(resp.text, 'Enter your'):
            self.neo.post('process_bank.phtml', {
                'type': 'withdraw',
                'amount': str(np),
                'pin': str(pin)
            }, 'http://www.neopets.com/bank.phtml')
        else:
            self.neo.post('process_bank.phtml', {
                'type': 'withdraw',
                'amount': str(np)
            }, 'http://www.neopets.com/bank.phtml')
        self.functions.log('Bank Manager: Withdrew %s NP!' % np)

    def BankManager(self, username):
        self.functions.createTaskData('BankManager', username)
        if time.time() - float(self.functions.lastRun('BankManager',
                                                      username)) >= 86400:
            resp = self.neo.get('bank.phtml')
            if self.functions.contains(
                    resp.text,
                    'I see you don\'t currently have an account with us.'):
                self.createBank()
            if self.functions.contains(
                    resp.text,
                    'You have already collected your interest today'):
                self.functions.log(
                    'Bank Manager: You already collected your interest today')
            elif self.functions.contains(resp.text, 'Collect Interest ('):
                interest = self.functions.getBetween(resp.text,
                                                     'allow you to gain <b>',
                                                     ' NP</b> per ')
                resp = self.neo.post('process_bank.phtml',
                                     {'type': 'interest'}, resp.url)
                self.functions.log('Bank Manager: Collected %s NP interest' %
                                   interest)
            self.functions.updateLastRun('BankManager', username)
コード例 #12
0
class ShapeShifter(threading.Thread):
    def __init__(self, neo):
        threading.Thread.__init__(self)
        self.neo = neo
        self.x = 0
        self.y = 0
        self.input = ''
        self.numberOfShapes = 0
        self.functions = Functions()

    def getBetween(self, data, first, last):
        start = data.find(first)
        end = data.find(last, start + len(first))
        if start == -1 or end == -1:
            return -1
        else:
            return data[start + len(first):end]

    def getBetweenAll(self, data, first, last):
        list = []
        while data.find(first) != -1 and data.find(
                last,
                data.find(first) + len(first)) != 1:
            start = data.find(first)
            end = data.find(last, start + len(first))
            list.append(data[start + len(first):end])
            data = data[end + len(last):]
        return list

    def restartGame(self):
        for _ in range(20):
            self.neo.get(
                'medieval/process_shapeshifter.phtml?type=action&posx=2&posy=3',
                'http://www.neopets.com/medieval/shapeshifter.phtml')

    def ShapeShifter(self, username):
        self.functions.createTaskData('ShapeShifter', username)
        if time.time() - float(self.functions.lastRun('ShapeShifter',
                                                      username)) >= 86400:
            play = True
            while play:
                resp = self.neo.post(
                    'medieval/process_shapeshifter.phtml', {'type': 'init'},
                    'http://www.neopets.com/medieval/shapeshifter_index.phtml')
                resp = self.neo.get('medieval/shapeshifter.phtml')
                level = self.getLevel(resp.text)
                self.functions.log('Shape Shifter: Working on level %s' %
                                   level)
                self.parseData(resp.text)
                solver = solvePuzzle(self.input)
                solver.run()
                if vars.output == None or vars.output[0] == '':
                    self.functions.log(
                        'Shape Shifter: Unable to solve the puzzle, getting a new puzzle..'
                    )
                    self.restartGame()
                    self.ShapeShifter(username)
                else:
                    self.functions.log('Shape Shifter: Found the solution!')
                    output = vars.output
                if output[1]:
                    movelist = [(0, 0)] * self.numberOfShapes
                else:
                    movelist = eval(output[0])
                for move in movelist:
                    resp = self.neo.get(
                        'medieval/process_shapeshifter.phtml?type=action&posx=%s&posy=%s'
                        % (move[0], move[1]), resp.url)
                    self.functions.log(
                        'Shape Shifter: Placing a piece at position %s, %s' %
                        (move[0], move[1]))
                    if self.functions.contains(resp.text, 'You Won!'):
                        self.functions.log('Shape Shifter: You won!')
                        self.numberOfShapes = 0
                        self.input = ''
                        self.y = 0
                        self.x = 0
                    if self.functions.contains(
                            resp.text,
                            'You\'ve reached your max neopoints on this game for today!'
                    ):
                        self.functions.log(
                            'Shape Shifter: You\'ve reached the daily limit')
                        play = False
                        break
            self.functions.updateLastRun('ShapeShifter', username)

    def getLevel(self, data):
        return int(
            self.getBetween(data, '<b><big>LEVEL ', '</big></b></center>'))

    def sendInput(self, data):
        self.input += str(data) + ' '

    def processData(self, data):
        n = 0
        l = -1
        shape = self.getBetweenAll(data, "<tr>", "</tr>")
        for i in range(len(shape)):
            shape[i] = self.getBetweenAll(shape[i], "<td", "/td>")
            for j in range(len(shape[i])):
                if "<img" in shape[i][j]:
                    shape[i][j] = 1
                    n += 1
                else:
                    shape[i][j] = 0
            if l == -1:
                l = len(shape[i])
            elif l != len(shape[i]):
                self.functions.log("Shape Shifter: Shape Error")
            elif len(shape[i]) > self.x:
                self.functions.log("Shape Shifter: Shape Error")
        if len(shape) > self.y:
            self.functions.log("Shape Shifter: Shape Error")
        self.sendInput(n)
        for y in range(len(shape)):
            for x in range(len(shape[y])):
                if shape[y][x]:
                    self.sendInput(x + (y * self.x))

    def parseData(self, data):
        self.x = int(self.getBetween(data, 'gX = ', ';'))
        self.sendInput(self.x)
        self.y = int(self.getBetween(data, 'gY = ', ';'))
        self.sendInput(self.y)
        l = {}
        t = self.getBetween(data, "<table border=1 bordercolor='gray'>",
                            "</table>")
        t = self.getBetweenAll(t, "<td valign=top>", "</td>")
        for i in range(len(t) - 1, 0, -1):
            if "arrow" in t[i]:
                del t[i]
        for i in range(len(t)):
            tt = self.getBetween(
                t[i], "http://images.neopets.com/medieval/shapeshifter/", "_")
            if "GOAL" in t[i]:
                goal = i
            if tt != -1 and tt not in l:
                l[tt] = i
        bt = self.getBetween(data, "function mouseAction", "}")
        bt = self.getBetweenAll(bt, '] = "', '"')
        for i in range(len(bt)):
            self.sendInput(l[bt[i]])
        self.sendInput(goal)
        shapeDataList = self.getBetween(data, "ACTIVE SHAPE",
                                        "<center><b><big>")
        shapeDataList = self.getBetween(shapeDataList, "<table", "/table><br>")
        shapeDataList = [self.getBetween(shapeDataList, "<table", "/table>")]
        if "LAST SHAPE" not in data:
            ts = self.getBetween(data, "NEXT SHAPE", "<p")
            if "NEXT SHAPES" in data:
                ts = ts[ts.find("<table") + 1:]
            ts = self.getBetweenAll(ts, "<table", "/table>")
            shapeDataList.extend(ts)
        self.numberOfShapes = len(shapeDataList)
        self.sendInput(len(shapeDataList))
        for data in shapeDataList:
            self.processData(data)
        pass
コード例 #13
0
ファイル: gormball.py プロジェクト: MajinClraik/Multi-Tool
class Gormball:
    def __init__(self, neo):
        self.neo = neo
        self.functions = Functions()

    def Gormball(self, username):
        self.functions.createTaskData('Gormball', username)
        if time.time() - float(self.functions.lastRun('Gormball',
                                                      username)) >= 86400:
            resp = self.neo.get('space/gormball.phtml')
            gameHash = self.functions.getBetween(resp.text, '\'xcn\' value=\'',
                                                 '\'>')
            resp = self.neo.post('space/gormball2.phtml', {
                'xcn': gameHash,
                'player_backed': random.randint(1, 8)
            }, resp.url)
            while True:
                if self.functions.contains(resp.text, 'Im SO BORED of'):
                    self.functions.log('Gormball AP: Pet is bored')
                    break
                lastCharacter = self.functions.getBetween(
                    resp.text, '_character\' value=\'', '\'>')
                pageCount = self.functions.getBetween(resp.text,
                                                      '_count\' value=', '><')
                if lastCharacter == 'You':
                    resp = self.neo.post(
                        'space/gormball2.phtml', {
                            'type': 'moveon',
                            'page_count': pageCount,
                            'xcn': gameHash,
                            'turns_waited': '1',
                            'last_character': lastCharacter
                        }, resp.url)
                    if self.functions.contains(
                            resp.text,
                            '<b>You are the last remaining character!!! You have won!!!</b>'
                    ):
                        self.functions.log('Gormball AP: You Won!')
                        resp = self.neo.get('space/gormball.phtml', resp.url)
                        resp = self.neo.post(
                            'space/gormball2.phtml', {
                                'xcn': gameHash,
                                'player_backed': random.randint(1, 8)
                            }, resp.url)
                elif lastCharacter != 'You':
                    resp = self.neo.post(
                        'space/gormball2.phtml', {
                            'type': 'moveon',
                            'page_count': pageCount,
                            'xcn': gameHash,
                            'last_character': lastCharacter
                        }, resp.url)
                    if self.functions.contains(
                            resp.text,
                            '<b>You are the last remaining character!!! You have won!!!</b>'
                    ):
                        self.functions.log('Gormball AP: You Won!')
                        resp = self.neo.get('space/gormball.phtml', resp.url)
                        resp = self.neo.post(
                            'space/gormball2.phtml', {
                                'xcn': gameHash,
                                'player_backed': random.randint(1, 8)
                            }, resp.url)
                if self.functions.contains(resp.text,
                                           'Oh dear, you are out of the game'):
                    scoredPoints = self.functions.getBetween(
                        resp.text, 'You scored <b>', '</b> points!')
                    self.functions.log(
                        'Gormball AP: Game Over - You scored %s points' %
                        scoredPoints)
                    resp = self.neo.get('space/gormball.phtml', resp.url)
                    resp = self.neo.post('space/gormball2.phtml', {
                        'xcn': gameHash,
                        'player_backed': random.randint(1, 8)
                    }, resp.url)
                if self.functions.contains(resp.text,
                                           'The Gormball explodes on '):
                    gormballExplodes = self.functions.getBetween(
                        resp.text, 'The Gormball explodes on ', '!!!</b>')
                    self.functions.log(
                        'Gormball AP: The Gormball explodes on %s' %
                        gormballExplodes)
                    pageCount = self.functions.getBetween(
                        resp.text, '_count\' value=', '><')
                    resp = self.neo.post('space/gormball2.phtml', {
                        'xcn': gameHash,
                        'type': 'moveon',
                        'page_count': pageCount
                    }, resp.url)
                if self.functions.contains(resp.text, 'Im SO BORED of'):
                    self.functions.log('Gormball AP: Pet is bored')
                    break
            self.functions.updateLastRun('Gormball', username)