예제 #1
0
 def render(self, context):
     rdf = ''
     try:
         site_uri = get_site_absolute_uri()
         if not site_uri:
             request_obj = template.Variable('request').resolve(context)
             try:
                 site_uri = get_site_absolute_uri(request_obj)
             except AttributeError:
                 return ''
         object_url = self.object_url.resolve(context)
         if not object_url.lower().startswith('http'):
             path = object_url
             object_url = urlparse.urljoin(site_uri, object_url)
         object_title = self.object_title.resolve(context)
         trackback_url = self.trackback_url.resolve(context)
         if not trackback_url.lower().startswith('http'):
             scheme, netloc, path, query, fragment = urlparse.urlsplit(object_url, 'http')
             path = trackback_url
             trackback_url = urlparse.urlunsplit((scheme, netloc, path, None, None))
         t = get_template('backlinks/trackback/rdf.xml')
         c = template.Context({'url': object_url, 'title': object_title, 'trackback_url': trackback_url})
         rdf = t.render(c)
         if self.with_comments:
             rdf = u'<!-- %s -->' % rdf
     except template.VariableDoesNotExist:
         pass
     return rdf
예제 #2
0
    def get_absolute_uri(self, request=None):
        """
        Determine the server's absolute URI.

        """
        if self._absolute_uri:
            return urlparse.urljoin(self._absolute_uri, self.get_path())
        site_uri = get_site_absolute_uri(request)
        return urlparse.urljoin(site_uri, self.get_path())
예제 #3
0
    def get_absolute_uri(self, request=None):
        """
        Determine the server's absolute URI.

        """
        if self._absolute_uri:
            return urlparse.urljoin(self._absolute_uri, self.get_path())
        site_uri = get_site_absolute_uri(request)
        return urlparse.urljoin(site_uri, self.get_path())
예제 #4
0
 def render(self, context):
     try:
         pingback_path = self.pingback_path.resolve(context)
         site_uri = get_site_absolute_uri()
         if not site_uri:
             request_obj = template.Variable('request').resolve(context)
             if hasattr(request_obj, 'get_host'):
                 site_uri = get_site_absolute_uri(request_obj)
             else:
                 return ''
         pingback_absolute_uri = urljoin(site_uri, pingback_path)
         tag_start = PINGBACK_LINK_TAG % pingback_absolute_uri
         if not self.xhtml:
             return tag_start + '>'
         else:
             return tag_start + ' />'
     except template.VariableDoesNotExist:
         return ''
예제 #5
0
    def get_url(self, model_instance):
        """
        Automatically determines the absolute URI for the given model_instance.

        """
        try:
            site_uri = get_site_absolute_uri()
            return urljoin(site_uri, model_instance.get_absolute_url())
        except AttributeError:
            raise ValueError('get_url must receive a model instance with a get_absolute_url method defined')
예제 #6
0
    def get_target_uri(self, target_object):
        """
        Return an absolute URI for a given target Django model instance.

        """
        site_uri = get_site_absolute_uri()
        try:
            path = target_object.get_absolute_url()
        except AttributeError:
            return ''
        return urljoin(site_uri, path)
예제 #7
0
    def get_target_uri(self, target_object):
        """
        Return an absolute URI for a given target Django model instance.

        """
        site_uri = get_site_absolute_uri()
        try:
            path = target_object.get_absolute_url()
        except AttributeError:
            return ''
        return urljoin(site_uri, path)
예제 #8
0
    def get_url(self, model_instance):
        """
        Automatically determines the absolute URI for the given model_instance.

        """
        try:
            site_uri = get_site_absolute_uri()
            return urljoin(site_uri, model_instance.get_absolute_url())
        except AttributeError:
            raise ValueError(
                'get_url must receive a model instance with a get_absolute_url method defined'
            )
예제 #9
0
    def validate_target_uri(self, target_uri):
        """
        Validate that the given target URI is well-formed and appears to
        point to a resource we know about.

        """
        try:
            self.validate_uri(target_uri)
        except BacklinkServerError:
            raise BacklinkTargetDoesNotExist

        if not target_uri.startswith(get_site_absolute_uri()):
            raise BacklinkServerTargetDoesNotExist
예제 #10
0
    def validate_target_uri(self, target_uri):
        """
        Validate that the given target URI is well-formed and appears to
        point to a resource we know about.

        """
        try:
            self.validate_uri(target_uri)
        except BacklinkServerError:
            raise BacklinkTargetDoesNotExist

        if not target_uri.startswith(get_site_absolute_uri()):
            raise BacklinkServerTargetDoesNotExist