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
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())
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 ''
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')
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)
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' )
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