def make_WikiNames():
    for uid in users.keys():
        u = users[uid]
        if u.disabled: continue
        if not wikiutil.isStrictWikiname(u.name):
            newname = capwords(u.name).replace(" ","").replace("-","")
            if not wikiutil.isStrictWikiname(newname):
                print " %-20s %-25s - no WikiName, giving up" % (uid, u.name)
            else:
                print " %-20s %-25s - no WikiName -> %s" % (uid, u.name, newname)
                if save:
                    u.name = newname
                    u.save()
Exemple #2
0
 def make_WikiNames(self):
     for uid, u in self.users.items():
         if u.disabled:
             continue
         if not wikiutil.isStrictWikiname(u.name):
             newname = u.name.capwords().replace(" ", "").replace("-", "")
             if not wikiutil.isStrictWikiname(newname):
                 print " %-20s %-30r - no WikiName, giving up" % (uid, u.name)
             else:
                 print " %-20s %-30r - no WikiName -> %r" % (uid, u.name, newname)
                 if self.options.save:
                     u.name = newname
                     u.save()
Exemple #3
0
 def make_WikiNames(self):
     for uid, u in self.users.items():
         if u.disabled:
             continue
         if not wikiutil.isStrictWikiname(u.name):
             newname = u.name.capwords().replace(" ", "").replace("-", "")
             if not wikiutil.isStrictWikiname(newname):
                 print " %-20s %-30r - no WikiName, giving up" % (uid, u.name)
             else:
                 print " %-20s %-30r - no WikiName -> %r" % (uid, u.name, newname)
                 if self.options.save:
                     u.name = newname
                     u.save()
Exemple #4
0
 def _word_repl(self, word, text=None):
     """Handle WikiNames."""
     if not text:
         if wikiutil.isStrictWikiname(word):
             return word
         else:
             return '[[%s]]' % word
     else: # internal use:
         return '[[%s|%s]]' % (word, text)
Exemple #5
0
 def _word_repl(self, word, text=None):
     """Handle WikiNames."""
     if not text:
         if wikiutil.isStrictWikiname(word):
             return word
         else:
             return '[[%s]]' % word
     else:  # internal use:
         return '[[%s|%s]]' % (word, text)
Exemple #6
0
 def wikiHomeLink(self):
     """ Return wiki markup usable as a link to the user homepage,
         it doesn't matter whether it already exists or not.
     """
     wikiname, pagename = wikiutil.getInterwikiHomePage(self._request, self.name)
     if wikiname == 'Self':
         if wikiutil.isStrictWikiname(self.name):
             markup = pagename
         else:
             markup = '[[%s]]' % pagename
     else:
         markup = '[[%s:%s]]' % (wikiname, pagename)
     return markup
Exemple #7
0
 def wikiHomeLink(self):
     """ Return wiki markup usable as a link to the user homepage,
         it doesn't matter whether it already exists or not.
     """
     wikiname, pagename = wikiutil.getInterwikiHomePage(self._request, self.name)
     if wikiname == 'Self':
         if wikiutil.isStrictWikiname(self.name):
             markup = pagename
         else:
             markup = '[[%s]]' % pagename
     else:
         markup = '[[%s:%s]]' % (wikiname, pagename)
     return markup
Exemple #8
0
 def signature(self):
     """ Return user signature using markup
     
     Users sign with a link to their homepage, or with text if they
     don't have one. The text may be parsed as a link if its using
     CamelCase. Visitors return their host address.
     """
     if not self.name:
         return self.host()
     if (self._cfg.allow_extended_names and
         not wikiutil.isStrictWikiname(self.name)): 
         # TODO: use current markup, not hardcoded wiki markup
         return u'["%s"]' % self.name
     return self.name        
Exemple #9
0
    def interwiki(self, target_and_text, **kw):
        scheme, rest = target_and_text.split(':', 1)
        wikiname, pagename, text = wikiutil160a.split_wiki(rest)

        #if (pagename.startswith(wikiutil.CHILD_PREFIX) or # fancy link to subpage [wiki:/SubPage text]
        #    Page(self.request, pagename).exists()): # fancy link to local page [wiki:LocalPage text]
        #    # XXX OtherWiki:FooPage markup -> checks for local FooPage -sense???
        #    pagename = wikiutil.url_unquote(pagename)
        #    pagename = self._replace_target(pagename)
        #    return '[[%s%s]]' % (pagename, text)

        if wikiname in ('Self', self.request.cfg.interwikiname,
                        ''):  # [wiki:Self:LocalPage text] or [:LocalPage:text]
            orig_pagename = pagename
            pagename = wikiutil.url_unquote(pagename)
            pagename = self._replace_target(pagename)
            camelcase = wikiutil.isStrictWikiname(pagename)
            if camelcase and (not text or text == orig_pagename):
                return pagename  # optimize special case
            else:
                if text:
                    text = '|' + text
                return '[[%s%s]]' % (pagename, text)

        wikitag, wikiurl, wikitail, wikitag_bad = wikiutil.resolve_wiki(
            self.request, wikiname + ':')
        if wikitag_bad:  # likely we got some /InterWiki as wikitail, we don't want that!
            pagename = wikiutil.url_unquote(pagename)
            pagename = self._replace_target(pagename)
            wikitail = pagename
        else:  # good
            wikitail = wikiutil.url_unquote(pagename)

        # link to self?
        if wikiutil.isPicture(wikitail):
            return '{{%s:%s%s}}' % (wikitag, wikitail, text)
        else:
            if ' ' not in wikitail and not text:
                return '%s:%s' % (wikitag, wikitail)
            else:
                if text:
                    text = '|' + text
                return '[[%s:%s%s]]' % (wikitag, wikitail, text)
 def _interwiki_repl(self, word):
     """Handle InterWiki links."""
     wikitag, wikiurl, wikitail, wikitag_bad = wikiutil.resolve_wiki(self.request, word)
     if wikitag_bad:
         return word
     else:
         wikiname, pagename = word.split(':', 1)
         pagename = wikiutil.url_unquote(pagename) # maybe someone has used %20 for blanks in pagename
         camelcase = wikiutil.isStrictWikiname(pagename)
         if wikiname in ('Self', self.request.cfg.interwikiname):
             pagename = self._replace(('PAGE', pagename))
             if camelcase:
                 return '%s' % pagename # optimize special case
             else:
                 return '[[%s]]' % pagename # optimize special case
         else:
             if ' ' in pagename: # we could get a ' '  by urlunquoting
                 return '[[%s:%s]]' % (wikiname, pagename)
             else:
                 return '%s:%s' % (wikiname, pagename)
Exemple #11
0
    def interwiki(self, target_and_text, **kw):
        scheme, rest = target_and_text.split(':', 1)
        wikiname, pagename, text = wikiutil160a.split_wiki(rest)

        #if (pagename.startswith(wikiutil.CHILD_PREFIX) or # fancy link to subpage [wiki:/SubPage text]
        #    Page(self.request, pagename).exists()): # fancy link to local page [wiki:LocalPage text]
        #    # XXX OtherWiki:FooPage markup -> checks for local FooPage -sense???
        #    pagename = wikiutil.url_unquote(pagename)
        #    pagename = self._replace_target(pagename)
        #    return '[[%s%s]]' % (pagename, text)

        if wikiname in ('Self', self.request.cfg.interwikiname, ''): # [wiki:Self:LocalPage text] or [:LocalPage:text]
            orig_pagename = pagename
            pagename = wikiutil.url_unquote(pagename)
            pagename = self._replace_target(pagename)
            camelcase = wikiutil.isStrictWikiname(pagename)
            if camelcase and (not text or text == orig_pagename):
                return pagename # optimize special case
            else:
                if text:
                    text = '|' + text
                return '[[%s%s]]' % (pagename, text)

        wikitag, wikiurl, wikitail, wikitag_bad = wikiutil.resolve_wiki(self.request, wikiname+':')
        if wikitag_bad: # likely we got some /InterWiki as wikitail, we don't want that!
            pagename = wikiutil.url_unquote(pagename)
            pagename = self._replace_target(pagename)
            wikitail = pagename
        else: # good
            wikitail = wikiutil.url_unquote(pagename)

        # link to self?
        if wikiutil.isPicture(wikitail):
            return '{{%s:%s%s}}' % (wikitag, wikitail, text)
        else:
            if ' ' not in wikitail and not text:
                return '%s:%s' % (wikitag, wikitail)
            else:
                if text:
                    text = '|' + text
                return '[[%s:%s%s]]' % (wikitag, wikitail, text)
Exemple #12
0
 def _interwiki_repl(self, word):
     """Handle InterWiki links."""
     wikitag, wikiurl, wikitail, wikitag_bad = wikiutil.resolve_wiki(
         self.request, word)
     if wikitag_bad:
         return word
     else:
         wikiname, pagename = word.split(':', 1)
         pagename = wikiutil.url_unquote(
             pagename)  # maybe someone has used %20 for blanks in pagename
         camelcase = wikiutil.isStrictWikiname(pagename)
         if wikiname in ('Self', self.request.cfg.interwikiname):
             pagename = self._replace(('PAGE', pagename))
             if camelcase:
                 return '%s' % pagename  # optimize special case
             else:
                 return '[[%s]]' % pagename  # optimize special case
         else:
             if ' ' in pagename:  # we could get a ' '  by urlunquoting
                 return '[[%s:%s]]' % (wikiname, pagename)
             else:
                 return '%s:%s' % (wikiname, pagename)
Exemple #13
0
 def signature(self):
     """ Return user signature using markup
     
     Users sign with a link to their homepage, or with text if they
     don't have one. The text may be parsed as a link if it's using
     CamelCase. Visitors return their host address.
     
     TODO: The signature use wiki format only, for example, it will
     not create a link when using rst format. It will also break if
     we change wiki syntax.
     """
     if not self.name:
         return self.host()
     
     wikiname, pagename = wikiutil.getInterwikiHomePage(self._request,
                                                        self.name)
     if wikiname == 'Self':
         if not wikiutil.isStrictWikiname(self.name):
             markup = '["%s"]' % pagename
         else:
             markup = pagename
     else:
         markup = '%s:%s' % (wikiname, pagename.replace(" ","_")) 
     return markup