Exemple #1
0
    def getFSVenues(self, detailedItems):
        parsedtime = date.today().strftime('%Y%m%d')

        params = dict(client_id=config.FOURSQUARE_CLIENT_ID,
                      client_secret=config.FOURSQUARE_CLIENT_SECRET,
                      v=parsedtime)

        for key in detailedItems.keys():
            if check_cache('venue_' + key + '.json', False):
                cache = retrieve_cache('venue_' + key + '.json', False)
                parsed = json.loads(cache)
                fsvenueobj = mp.f_location(parsed)
                detailedItems[key].set_fslocation(fsvenueobj)
            else:
                pass
                url = 'https://api.foursquare.com/v2/venues/' + key
                response = requests.get(url=url, params=params)
                if response.status_code != 200:
                    if response.status_code == 429:
                        print("quota exceeded on " + key)
                        break
                    continue
                content = response.text
                parsed = json.loads(content)
                store_cache(content, 'venue_' + key + '.json')
                fsvenueobj = mp.f_location(parsed)
                detailedItems[key].set_fslocation(fsvenueobj)
        return detailedItems
Exemple #2
0
    def getVenue(self, venueId):
        dictres = None

        if check_cache('venue_' + venueId + '.json', False):
            cache = retrieve_cache('venue_' + venueId + '.json', False)
            dictres = json.loads(cache)
        else:
            session = FuturesSession(executor=ThreadPoolExecutor(
                max_workers=1))
            rawtime = date.today() - timedelta(days=1)
            parsedtime = rawtime.strftime('%Y%m%d')

            params = dict(client_id=config.FOURSQUARE_CLIENT_ID,
                          client_secret=config.FOURSQUARE_CLIENT_SECRET,
                          v=parsedtime)
            futures.append(
                session.get('https://api.foursquare.com/v2/venues/' + venueId,
                            params=params))
            response = future.result()

            if response.status_code != 200:
                return None

            content = response.text
            dictres = json.loads(content)
            vid = dictres['response']['venue']['id']
            store_cache(content, 'venue_' + vid + '.json')

        if dictres is None:
            return None

        return mp.f_location(dictres)
Exemple #3
0
 def procfsvenue(self, parsed):
     return mp.f_location(parsed)