Пример #1
0
    def _profile0(self, finished):
        debug('Requesting profile from server...')
        body = b07.utils.StringProducer(json.dumps({'params' : [self.player_nickname]}))
        d = self.agent.request('POST',
                               self.URLS.GAME_API + self.PATHS.API.PROFILE,
                               Headers({'User-Agent' : ['Nemesis (gzip)'],
                                        'Content-Type': ['application/json;charset=UTF-8'],
                                        'X-XsrfToken': [self.xsrf_token]}),
                               body)

        d.addCallback(self._profile1, finished)
        d.addErrback(self.err)
Пример #2
0
 def _inventory0(self, finished):
     debug('Requesting inventory from server...')
     body = b07.utils.StringProducer(json.dumps({'params' : {'lastQueryTimestamp': self.inventory.last_query_timestamp}}))
     d = self.agent.request('POST',
                            self.URLS.GAME_API + self.PATHS.API.INVENTORY,
                            Headers({'User-Agent' : ['Nemesis (gzip)'],
                                     'Content-Type': ['application/json;charset=UTF-8'],
                                     'X-XsrfToken': [self.xsrf_token]}),
                            body)
                                 
     d.addCallback(self._inventory1, finished)
     d.addErrback(self.err)
Пример #3
0
    def _inventory1(self, response, finished):
        if response.code == 500:
            error('Got a 500 SERVER ERROR trying to get the inventory!')

        elif response.code == 200:
            debug('Got 200 OK response to inventory request')
            d = defer.Deferred()
            d.addCallback(self._inventory2, finished)
            jp = b07.utils.JsonProtocol(d)
            response.deliverBody(jp)

        else:
            error('Don\'t know what to do with {} code in response to inventory request!'.format(response.code))
Пример #4
0
    def _profile0(self, finished):
        debug('Requesting profile from server...')
        body = b07.utils.StringProducer(
            json.dumps({'params': [self.player_nickname]}))
        d = self.agent.request(
            'POST', self.URLS.GAME_API + self.PATHS.API.PROFILE,
            Headers({
                'User-Agent': ['Nemesis (gzip)'],
                'Content-Type': ['application/json;charset=UTF-8'],
                'X-XsrfToken': [self.xsrf_token]
            }), body)

        d.addCallback(self._profile1, finished)
        d.addErrback(self.err)
Пример #5
0
    def _inventory1(self, response, finished):
        if response.code == 500:
            error('Got a 500 SERVER ERROR trying to get the inventory!')

        elif response.code == 200:
            debug('Got 200 OK response to inventory request')
            d = defer.Deferred()
            d.addCallback(self._inventory2, finished)
            jp = b07.utils.JsonProtocol(d)
            response.deliverBody(jp)

        else:
            error(
                'Don\'t know what to do with {} code in response to inventory request!'
                .format(response.code))
Пример #6
0
    def _inventory0(self, finished):
        debug('Requesting inventory from server...')
        body = b07.utils.StringProducer(
            json.dumps({
                'params': {
                    'lastQueryTimestamp': self.inventory.last_query_timestamp
                }
            }))
        d = self.agent.request(
            'POST', self.URLS.GAME_API + self.PATHS.API.INVENTORY,
            Headers({
                'User-Agent': ['Nemesis (gzip)'],
                'Content-Type': ['application/json;charset=UTF-8'],
                'X-XsrfToken': [self.xsrf_token]
            }), body)

        d.addCallback(self._inventory1, finished)
        d.addErrback(self.err)
Пример #7
0
    def _authenticate5(self, result):
        result = result['result']

        if result['versionMatch'] != 'CURRENT':
            critical('Software version not up-to-date')

        if 'xsrfToken' not in result:
            critical('Authentication with Ingress severs failed for unknown reason')

        self.xsrf_token = str(result['xsrfToken'])
        self.player_nickname = result['nickname']
        self.player_guid = result['playerEntity'][0]
        self.team = result['playerEntity'][2]['controllingTeam']['team']
        self.ap = result['playerEntity'][2]['playerPersonal']['ap']
        self.level = result['playerEntity'][2]['playerPersonal']['clientLevel']

        debug('XSRF Token:      {}'.format(self.xsrf_token))
        debug('Player GUID:     {}'.format(self.player_guid))
        info('Player nickname: {}'.format(self.player_nickname))
        info('Faction: {}'.format(self.team))
        info('AP: {}'.format(self.ap))
        info('Level: {}'.format(self.level))
        debug('Player info: {}'.format(result))

        self._process_deferred_api_requests()
Пример #8
0
    def _authenticate5(self, result):
        trace('_authenticate5 {}'.format(result))

        result = result['result']

        if 'xsrfToken' not in result:
            critical('Authentication with Ingress severs failed for unknown reason')

        self.xsrf_token = str(result['xsrfToken'])
        self.player_nickname = result['nickname']
        self.player_guid = result['playerEntity'][0]
        self.team = result['playerEntity'][2]['controllingTeam']['team']
        self.ap = result['playerEntity'][2]['playerPersonal']['ap']
        self.level = result['playerEntity'][2]['playerPersonal']['clientLevel']
        start_date = result['storage']['mission_complete_0']
        self.start_date = datetime.datetime.fromtimestamp(int(start_date.split(':delim:')[1])/1000)

        debug('XSRF Token:      {}'.format(self.xsrf_token))
        debug('Player GUID:     {}'.format(self.player_guid))
        info('Player nickname: {}'.format(self.player_nickname))
        info('Faction:         {}'.format(self.team))
        info('AP:              {}'.format(self.ap))
        info('Level:           {}'.format(self.level))
        info('Start Date:      {}'.format(self.start_date))
        debug('Player info:     {}'.format(result))
        
        with open(os.path.expanduser("~/{}_config.cfg".format(self.player_nickname)),"w") as file:
            json.dump(result, file, indent=1)
        self.new_version = versionCheck(result['serverVersion'], self.player_nickname)
        
        self._process_deferred_api_requests()
Пример #9
0
    def _authenticate5(self, result):
        trace('_authenticate5 {}'.format(result))

        result = result['result']

        if 'xsrfToken' not in result:
            critical(
                'Authentication with Ingress severs failed for unknown reason')

        self.xsrf_token = str(result['xsrfToken'])
        self.player_nickname = result['nickname']
        self.player_guid = result['playerEntity'][0]
        self.team = result['playerEntity'][2]['controllingTeam']['team']
        self.ap = result['playerEntity'][2]['playerPersonal']['ap']
        self.level = result['playerEntity'][2]['playerPersonal']['clientLevel']
        start_date = result['storage']['mission_complete_0']
        self.start_date = datetime.datetime.fromtimestamp(
            int(start_date.split(':delim:')[1]) / 1000)

        debug('XSRF Token:      {}'.format(self.xsrf_token))
        debug('Player GUID:     {}'.format(self.player_guid))
        info('Player nickname: {}'.format(self.player_nickname))
        info('Faction:         {}'.format(self.team))
        info('AP:              {}'.format(self.ap))
        info('Level:           {}'.format(self.level))
        info('Start Date:      {}'.format(self.start_date))
        debug('Player info:     {}'.format(result))

        with open(
                os.path.expanduser("~/{}_config.cfg".format(
                    self.player_nickname)), "w") as file:
            json.dump(result, file, indent=1)
        self.new_version = versionCheck(result['serverVersion'],
                                        self.player_nickname)

        self._process_deferred_api_requests()
Пример #10
0
 def sendPortalList(self):
     debug('getting list of portals')
     portals = b07.portals.jsonlist()
     data = json.dumps(portals)
     debug('sending list of portals')
     self.transport.write(data)