Пример #1
0
    def get_cached_urls(self):
        """
        Create the cached urls set.

        Merges the assets, the urls, removes the network urls and the external urls

        See :meth:`BaseAppCache.get_urls`, :meth:`get_network_urls`
        """
        if not self._cached:
            self._cached = self.get_urls()
            for appcache in self.registry:
                self._cached.update(appcache.get_assets(self.request))
            self._cached.update(self._external_appcaches['cached'])
            self._cached.difference_update(self.get_network_urls())
            if get_setting('DISCARD_EXTERNAL'):
                self._cached = filter(
                    lambda url: not is_external_url(url, self.request),
                    self._cached)
            if get_setting('EXCLUDE_URL'):
                new = set()
                for url in self._cached:
                    if not any(
                            url.startswith(excluded)
                            for excluded in get_setting('EXCLUDE_URL')):
                        new.add(url)
                self._cached = new
        return self._cached
 def _fetch_url(self, client, url):
     """
     Scrape a single URL and fetches assets
     """
     if not is_external_url(url):
         response = client.get(url, data={"appcache_analyze":1}, LANGUAGE_CODE=self.language)
         if response.status_code == 200:
             self.add_appcache(response.appcache)
         elif response.status_code == 302:
             self._fetch_url(client, response['Location'])
         else:
             print("Unrecognized code %s for %s\n" % (
                 response.status_code, url))
Пример #3
0
 def _fetch_url(self, client, url):
     """
     Scrape a single URL and fetches assets
     """
     if not is_external_url(url):
         response = client.get(url,
                               data={"appcache_analyze": 1},
                               LANGUAGE_CODE=self.language)
         if response.status_code == 200:
             self.add_appcache(response.appcache)
         elif response.status_code == 302:
             self._fetch_url(client, response['Location'])
         else:
             print("Unrecognized code %s for %s\n" %
                   (response.status_code, url))
    def _add_language(self, request, urls):
        """ For django CMS 2.3 we need to manually add language code to the
        urls returned by the appcache classes

        :return: list of urls
        """
        if DJANGOCMS_2_3:
            new_urls = []
            for url in urls:
                if not is_external_url(url, request):
                    new_urls.append("/%s%s" % (request.LANGUAGE_CODE, url))
                else:
                    new_urls.append(url)
            return new_urls
        else:
            return urls
Пример #5
0
    def _add_language(self, request, urls):
        """ For django CMS 2.3 we need to manually add language code to the
        urls returned by the appcache classes

        :return: list of urls
        """
        if DJANGOCMS_2_3:
            new_urls = []
            for url in urls:
                if not is_external_url(url, request):
                    new_urls.append("/%s%s" % (request.LANGUAGE_CODE, url))
                else:
                    new_urls.append(url)
            return new_urls
        else:
            return urls
    def get_cached_urls(self):
        """
        Create the cached urls set.

        Merges the assets, the urls, removes the network urls and the external urls

        See :meth:`BaseAppCache.get_urls`, :meth:`get_network_urls`
        """
        if not self._cached:
            self._cached = self.get_urls()
            for appcache in self.registry:
                self._cached.update(appcache.get_assets(self.request))
            self._cached.update(self._external_appcaches['cached'])
            self._cached.difference_update(self.get_network_urls())
            if get_setting('DISCARD_EXTERNAL'):
                self._cached = filter(lambda url: not is_external_url(
                    url, self.request), self._cached)
            if get_setting('EXCLUDE_URL'):
                new = set()
                for url in self._cached:
                    if not any(url.startswith(excluded) for excluded in get_setting('EXCLUDE_URL')):
                        new.add(url)
                self._cached = new
        return self._cached