Esempio n. 1
0
    def extract_more_info(self, environ, userinfo):
        """
        Get more information and attributes about the current
        user from a tiddler named after the user in the bag MAGICUSER.
        """
        store = environ['tiddlyweb.store']
        bag_name = environ['tiddlyweb.config'].get('magicuser.bag',
                'MAGICUSER')
        username = userinfo['name']
        tiddler = Tiddler(username, bag_name)
        try:
            tiddler = store.get(tiddler)
        except StoreError:
            pass  # tiddler is empty
        if 'roles' in tiddler.fields:
            userinfo['roles'].extend(string_to_tags_list(
                tiddler.fields['roles']))
            del tiddler.fields['roles']
        userinfo['fields'] = tiddler.fields
        userinfo['modifier'] = tiddler.modifier
        userinfo['modified'] = tiddler.modified
        userinfo['tags'] = tiddler.tags

        userinfo = self._check_expiration(environ, userinfo)

        return userinfo
Esempio n. 2
0
def test_tags_list_to_string():
    """
    Confirm that tags format as TiddlyWiki likes them.
    """
    tags = ['alpha', 'beta', 'Gamma Fire', 'troll']

    output = tags_list_to_string(tags)

    assert output == 'alpha beta [[Gamma Fire]] troll'

    assert sorted(string_to_tags_list(output)) == sorted(tags)
Esempio n. 3
0
def test_tags_list_to_string():
    """
    Confirm that tags format as TiddlyWiki likes them.
    """
    tags = ['alpha', 'beta', 'Gamma Fire', 'troll']

    output = tags_list_to_string(tags)

    assert output == 'alpha beta [[Gamma Fire]] troll'

    assert sorted(string_to_tags_list(output)) == sorted(tags)
Esempio n. 4
0
    def _extract_more_info(self, environ, userinfo):
        store = environ['tiddlyweb.store'] 
        bag_name = environ['tiddlyweb.config'].get('magicuser.bag', 'MAGICUSER')
        username = userinfo['name']
        tiddler = Tiddler(username, bag_name)
        try:
            tiddler = store.get(tiddler)
        except (NoTiddlerError, NoBagError):
            pass # tiddler is empty
        if 'roles' in tiddler.fields:
            userinfo['roles'].extend(string_to_tags_list(tiddler.fields['roles']))
            del tiddler.fields['roles']
        userinfo['fields'] = tiddler.fields
        userinfo['modifier'] = tiddler.modifier
        userinfo['modified'] = tiddler.modified
        userinfo['tags'] = tiddler.tags

        return userinfo
Esempio n. 5
0
    def _extract_more_info(self, environ, userinfo):
        store = environ['tiddlyweb.store']
        bag_name = environ['tiddlyweb.config'].get('magicuser.bag',
                                                   'MAGICUSER')
        username = userinfo['name']
        tiddler = Tiddler(username, bag_name)
        try:
            tiddler = store.get(tiddler)
        except (NoTiddlerError, NoBagError):
            pass  # tiddler is empty
        if 'roles' in tiddler.fields:
            userinfo['roles'].extend(
                string_to_tags_list(tiddler.fields['roles']))
            del tiddler.fields['roles']
        userinfo['fields'] = tiddler.fields
        userinfo['modifier'] = tiddler.modifier
        userinfo['modified'] = tiddler.modified
        userinfo['tags'] = tiddler.tags

        return userinfo
def _get_tiddler_from_div(node):
    """
    Create a Tiddler from an HTML div element.
    """
    tiddler = Tiddler(node.getAttribute('title'))
    tiddler.text = _html_decode(_get_text(node.getElementsByTagName('pre')))

    for attr, value in node.attributes.items():
        data = value
        if data and attr != 'tags':
            if attr in (['modifier', 'created', 'modified']):
                tiddler.__setattr__(attr, data)
            elif (attr not in ['title', 'changecount'] and
                    not attr.startswith('server.')):
                tiddler.fields[attr] = data
    if not node.attributes.get('modified', None) and tiddler.created:
        tiddler.modified = tiddler.created
    tiddler.tags = string_to_tags_list(str(node.getAttribute('tags')))

    return tiddler
Esempio n. 7
0
def _get_tiddler_from_div(node):
    """
    Create a Tiddler from an HTML div element.
    """
    tiddler = Tiddler(node.getAttribute('title'))
    tiddler.text = _html_decode(_get_text(node.getElementsByTagName('pre')))

    for attr, value in node.attributes.items():
        data = value
        if data and attr != 'tags':
            if attr in (['creator', 'modifier', 'created', 'modified']):
                tiddler.__setattr__(attr, data)
            elif (attr not in ['title', 'changecount']
                  and not attr.startswith('server.')):
                tiddler.fields[attr] = data
    if not node.attributes.get('modified', None) and tiddler.created:
        tiddler.modified = tiddler.created
    tiddler.tags = string_to_tags_list(node.getAttribute('tags'))

    return tiddler
Esempio n. 8
0
    def csvimport(args):
        """Import a csv file as tiddlers. <bagname>"""
        store = get_store(config)
        try:
            bag_name = args[0]
            store.get(Bag(bag_name))
        except IndexError:
            usage('you must include a bag name')
        except StoreError:
            usage('bag %s does not exist' % bag_name)
        tiddler_reader = DictReader(sys.stdin)
        for tiddler_data in tiddler_reader:
            try:
                title = tiddler_data['title']
                del tiddler_data['title']
            except KeyError:
                title = str(uuid4())
            tiddler = Tiddler(title, bag_name)

            for key, value in tiddler_data.iteritems():
                if key is None:
                    continue
                if key == 'tags':
                    value = string_to_tags_list(value)
                if key in CORE_TIDDLER_ATTRS:
                    setattr(tiddler, key, value)
                else:
                    tiddler.fields[key] = value
                if binary_tiddler(tiddler):
                    try:
                        tiddler.text = b64decode(tiddler.text)
                    except TypeError, exc:
                        raise TiddlerFormatError(
                                'unable to decode b64 tiddler: %s: %s'
                                % (tiddler.title, exc))
            store.put(tiddler)
    def extract_more_info(self, environ, userinfo):
        """
        Get more information and attributes about the current
        user from a tiddler named after the user in the bag MAGICUSER.
        """
        store = environ['tiddlyweb.store']
        bag_name = environ['tiddlyweb.config'].get('magicuser.bag',
                                                   'MAGICUSER')
        username = userinfo['name']
        tiddler = Tiddler(username, bag_name)
        try:
            tiddler = store.get(tiddler)
        except (NoTiddlerError, NoBagError):
            pass  # tiddler is empty
        if 'roles' in tiddler.fields:
            userinfo['roles'].extend(
                string_to_tags_list(tiddler.fields['roles']))
            del tiddler.fields['roles']
        userinfo['fields'] = tiddler.fields
        userinfo['modifier'] = tiddler.modifier
        userinfo['modified'] = tiddler.modified
        userinfo['tags'] = tiddler.tags

        return userinfo
Esempio n. 10
0
 def as_tags(self, string):
     """
     Not called directly, put made public for future
     use. Turn a string into a list of tags.
     """
     return string_to_tags_list(string)
Esempio n. 11
0
 def _load_tags(self, tags_string):
     return string_to_tags_list(tags_string)
Esempio n. 12
0
 def _load_tags(self, tags_string):
     return string_to_tags_list(tags_string)
Esempio n. 13
0
def _tag_string_to_list(string):
    """
    Turn a string of tags in TiddlyWiki format into a list.
    """
    return string_to_tags_list(string)
Esempio n. 14
0
 def _map_tags(self, tags_string):
     return string_to_tags_list(tags_string)
def _parse_fragment(fragment):
    """
    Turn a TiddlyWiki permaview into a list of tiddlers.
    """
    fragment = unquote(fragment)
    return string_to_tags_list(fragment)
Esempio n. 16
0
def _parse_fragment(fragment):
    """
    Turn a TiddlyWiki permaview into a list of tiddlers.
    """
    fragment = unquote(fragment)
    return string_to_tags_list(fragment)
Esempio n. 17
0
 def as_tags(self, string):
     """
     Not called directly, but made public for future
     use. Turn a string into a list of tags.
     """
     return string_to_tags_list(string)
Esempio n. 18
0
 def _map_tags(self, tags_string):
     return string_to_tags_list(tags_string)