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
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)
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 _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
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
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
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)
def _load_tags(self, tags_string): return string_to_tags_list(tags_string)
def _tag_string_to_list(string): """ Turn a string of tags in TiddlyWiki format into a list. """ return string_to_tags_list(string)
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)
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)