Exemple #1
0
 def url(self, ns, target):
     """Return `(url, title)` for the given InterWiki `ns`.
     
     Expand the colon-separated `target` arguments.
     """
     ns, url, title = self[ns]
     maxargnum = max([0]+[int(a[1:]) for a in
                          re.findall(InterWikiMap._argspec_re, url)])
     target, query, fragment = split_url_into_path_query_fragment(target)
     if maxargnum > 0:
         args = target.split(':', (maxargnum - 1))
     else:
         args = [target]
     url = self._expand_or_append(url, args)
     ntarget, nquery, nfragment = split_url_into_path_query_fragment(url)
     if query and nquery:
         nquery = '%s&%s' % (nquery, query[1:]) 
     else:
         nquery = nquery or query
     nfragment = fragment or nfragment # user provided takes precedence
     expanded_url = ntarget + nquery + nfragment
     expanded_title = self._expand(title, args)
     if expanded_title == title:
         expanded_title = _("%(target)s in %(name)s",
                            target=target, name=title)
     return expanded_url, expanded_title
Exemple #2
0
    def url(self, ns, target):
        """Return `(url, title)` for the given InterWiki `ns`.

        Expand the colon-separated `target` arguments.
        """
        ns, url, title = self[ns]
        maxargnum = max(
            [0] +
            [int(a[1:]) for a in re.findall(InterWikiMap._argspec_re, url)])
        target, query, fragment = split_url_into_path_query_fragment(target)
        if maxargnum > 0:
            args = target.split(':', (maxargnum - 1))
        else:
            args = [target]
        url = self._expand_or_append(url, args)
        ntarget, nquery, nfragment = split_url_into_path_query_fragment(url)
        if query and nquery:
            nquery = '%s&%s' % (nquery, query[1:])
        else:
            nquery = nquery or query
        nfragment = fragment or nfragment  # user provided takes precedence
        expanded_url = ntarget + nquery + nfragment
        if not self._is_safe_url(expanded_url):
            expanded_url = ''
        expanded_title = self._expand(title, args)
        if expanded_title == title:
            expanded_title = _("%(target)s in %(name)s",
                               target=target,
                               name=title)
        return expanded_url, expanded_title
Exemple #3
0
 def link_resolver(formatter, ns, target, label):
     path, query, fragment = split_url_into_path_query_fragment(target)
     precision = None
     time = path.split("T", 1)
     if len(time) > 1:
         time = time[1].split("Z")[0]
         if len(time) >= 6:
             precision = 'seconds'
         elif len(time) >= 4:
             precision = 'minutes'
         elif len(time) >= 2:
             precision = 'hours'
     try:
         dt = parse_date(path, utc, locale='iso8601', hint='iso8601')
         return self.get_timeline_link(formatter.req, dt, label,
                                       precision, query, fragment)
     except TracError as e:
         return tag.a(label, title=to_unicode(e),
                      class_='timeline missing')
Exemple #4
0
 def link_resolver(formatter, ns, target, label):
     path, query, fragment = split_url_into_path_query_fragment(target)
     precision = None
     time = path.split("T", 1)
     if len(time) > 1:
         time = time[1].split("Z")[0]
         if len(time) >= 6:
             precision = 'seconds'
         elif len(time) >= 4:
             precision = 'minutes'
         elif len(time) >= 2:
             precision = 'hours'
     try:
         return self.get_timeline_link(formatter.req,
                                       parse_date(path, utc),
                                       label, precision, query, fragment)
     except TracError, e:
         return tag.a(label, title=to_unicode(e.message),
                      class_='timeline missing')