예제 #1
0
    def to_postgres(self, query_list):
        achieve_args = []
        neutrals = []
        achieve_keys = None
        neutral_keys = None

        for query in query_list:
            self.result = json.loads(query.decode('UTF-8'))
            portal = IITCModel(self.result).iitc_achive
            query = IITCModel(self.result).update
            if portal.get('team') == 3:
                neutral_keys = tuple(sorted(portal))
                nvalue = tuple(
                    map(lambda key: portal[key], sorted(portal.keys())))
                if nvalue not in neutrals:
                    neutrals.append(nvalue)
            else:
                achieve_keys = tuple(sorted(query))
                value = tuple(map(lambda key: query[key],
                                  sorted(query.keys())))
                if value not in achieve_args:
                    achieve_args.append(value)
            AchieveLog().insert_iitc_guid(
                str(achieve_keys).replace('\'', ''), achieve_args)
            AchieveLog().insert_iitc_achive(
                str(neutral_keys).replace('\'', ''), neutrals)
예제 #2
0
 def __init__(self, data, current):
     hm = PortalModel(data, current)
     if hm.latlng():
         self.render = hm.to_render_json(AchieveLog().get_portal_by_latlng(
             hm.latlng()))
     else:
         raise HTTPError(405, 'Bad arguments in request')
예제 #3
0
 def __init__(self, data, current):
     portaldata = data.get('portaldata')
     if portaldata:
         query = portaldata
         AchieveLog().insert_iitc_achieve_check(query)
         self.render = {'status': 'ok'}
     else:
         self.render = {'status': 'error'}
예제 #4
0
    def __init__(self, data, current):
        hm = HunterModel(data, current)
        self.player = hm.player()

        if self.player:
            self.render = hm.to_render_json(AchieveLog().get_achieve_by_player(
                hm.result))
        else:
            raise HTTPError(405, 'Bad arguments in request')
예제 #5
0
    def from_redis_to_psql(self, values):
        if not values:
            return

        portals = []

        for i in values:
            portals.append(json.loads(i.decode('UTF-8')))
        AchieveLog().tile_update_portals(portals)
예제 #6
0
 def update_achive(self):
     upd = []
     result = IntelPortalModel(self.guid, self.portal['result']).achieve
     if result['team'] == 3:
         result.update({'timestamp': int(round(time.time() * 1000))})
         update_arg = tuple(sorted(result))
         upd.append(
             tuple(map(lambda key: result[key], sorted(result.keys()))))
         AchieveLog().insert_achive(str(update_arg).replace('\'', ''), upd)
예제 #7
0
    def achive_parser(self):
        achive_args = []
        achive_keys = None
        latlng_list = []
        for query in reversed(self.query):
            result = json.loads(query.decode('UTF-8'))
            result.update({'showed': False})
            latlng = (result['late6'], result['lnge6'])
            if latlng not in latlng_list:
                latlng_list.append(latlng)
                achive_keys = tuple(sorted(result))
                achive_args.append(
                    tuple(map(lambda key: result[key], sorted(result.keys()))))

        try:
            AchieveLog().insert_achive(
                str(achive_keys).replace('\'', ''), achive_args)
        except Exception as e:
            for i in achive_args:
                AchieveLog().insert_achive(
                    str(achive_keys).replace('\'', ''), (i, ))
예제 #8
0
    def add_portal_to_monitor(self):
        if self.url and 'ingress.com/intel' in self.url:
            latlng = re.search(r'pll=(\d+\.\d+),(\d+\.\d+)', self.url).groups()
            self.late6 = int(float(latlng[0]) * 1E6)
            self.lnge6 = int(float(latlng[1]) * 1E6)
            try:
                portal = AchieveLog().get_portal_by_latlng(
                    self.late6, self.lnge6)[0]
                PortalDetail().add_pd_portal(portal)
                return portal
            except:
                return {'error': 'not found in base, can`t add'}

        if not self.late6 or not self.lnge6:
            return {'error': 'invalid url or coordinates'}
예제 #9
0
 def __init__(self, data, current):
     hm = IITCModel(data, current)
     self.render = hm.to_render_json(AchieveLog().get_achieve_by_latlng(
         hm.arguments))