def run(self): # Load the index pg = self._get_page('index') # Check if it's already been done if 'already done your share' in pg.content: self._logger.warning('Anchor Management already completed') raise DailyAlreadyCompleted('Anchor Management already completed') # Submit the daily form = pg.form(id='form-fire-cannon')[0] pg = form.submit(self._usr) # Setup new result r = DailyResult(self._usr) r.daily_name = 'Anchor Management' # Check the result f = open('test.html', 'w') f.write(pg.content) f.close() # Check the result prize = str(self._xpath('prize', pg)[0]) r.items.append(prize) print('Found prize: ' + prize) return r
def run(self): # Load the index pg = self._get_page('index') # Check if it's already been done if 'already let you have a go' in pg.content: self._logger.warning('Apple Bobbing already completed') raise DailyAlreadyCompleted('Apple Bobbing already completed') # Submit the daily pg = self._get_page('submit') # Setup new result r = DailyResult(self._usr) r.daily_name = 'Apple Bobbing' # Check the result f = open('test.html', 'w') f.write(pg.content) f.close() # Sometimes we just fail for msg in self._fails: if msg in pg.content: print('Failed..') return r # Get the result prize = str(self._xpath('prize', pg)[0]) r.items.append(prize) print('Found item: ' + prize)
def run(self): # Load the index pg = self._get_page('index') # Store the neopoints before submitting for tracking increase last_nps = self._usr.neopoints # Submit the form form = pg.form(action='shrine.phtml')[0] pg = form.submit(self._usr) # Check if it's already been done if 'should wait a while before visiting' in pg.content: self._logger.warning('Coltzan Shrine already completed') raise DailyAlreadyCompleted('Coltzan Shrine already completed') # Check the result f = open('test.html', 'w') f.write(pg.content) f.close() # Setup new result r = DailyResult(self._usr) r.daily_name = 'Coltzan Shrine' # Sometimes they trick you.. if 'nothing happened' in pg.content: print('Found that nothing happened..') return r # Check for a status reward if len(self._xpath('status', pg)) > 0: r.status = str(self._xpath('status', pg)[0]) print('Found status reward: ' + r.status) # Sometimes it gives out items too if len(self._xpath('item', pg)) > 0: item = str(self._xpath('item', pg)[0].xpath('./b/text()')[0]) r.items.append(item) print('Found item reward: ' + item) # And neopoints too if 'feel slightly richer' in pg.content: # Force an update to current neopoints pg = self._usr.get_page(self._base_url) r.neopoints = self._usr.neopoints - last_nps print('Got neopoints: ' + str(r.neopoints)) # Return the result return r
def run(self): # Load the index pg = self._get_page('index') # Check if it's active if 'Collect My Prize!!!' not in pg.content: self._logger.warning('Advent Calendar is not currently active') raise DailyNotActive('Advent Calendar is not currently active') # Submit the daily form = pg.form(action='process_adventcalendar.phtml')[0] pg = form.submit(self._usr) # Setup new result r = DailyResult(self._usr) r.daily_name = 'Advent Calendar' # Check the result f = open('test.html', 'w') f.write(pg.content) f.close() # We can get quite a few results results = self._path_to_html('result', pg).split('<br/><br/>') for result in results: # All results are in bold except the last line talking about items # that are available if '<b>' in result and 'items are available' not in result: obj = str(self._to_element(result).xpath('.//b/text()')[0]) # It's either going to be neopoints or an item if 'Neopoints' in obj: r.neopoints = int(obj.split(' Neopoints')[0]) print('Found neopoints: ' + str(r.neopoints)) else: r.items.append(obj) print('Found item: ' + obj)