def cache_tiddlers(package_name): """ Stores instance tiddlers in the package. reads store_contents from <package>.instance tiddler files are stored in <package>/resources/store """ instance_module = __import__('%s.instance' % package_name, None, None, ['instance']) store_contents = instance_module.store_contents target_store = Store('tiddlywebplugins.pkgstore', {'package': package_name, 'read_only': False}, {}) sources = {} for bag, uris in store_contents.items(): sources[bag] = [] for uri in uris: if uri.endswith('.recipe'): urls = recipe_to_urls(uri) sources[bag].extend(urls) else: sources[bag].append(uri) for bag_name, uris in sources.items(): bag = Bag(bag_name) target_store.put(bag) for uri in uris: std_error_message('retrieving %s' % uri) tiddler = url_to_tiddler(uri) tiddler.bag = bag.name target_store.put(tiddler)
def test_tid(): tiddler = url_to_tiddler(SAMPLE_TID) assert tiddler.title == 'Welcome' assert 'hello' in tiddler.tags assert 'goodbye' in tiddler.tags assert tiddler.modifier == 'cdent' assert '\nNever' in tiddler.text
def from_list(uris): """ generates collection of TiddlerS from a list of URIs supports .tiddler, .tid, .js and .recipe files """ sources = [] for uri in uris: if uri.endswith(".recipe"): urls = recipe_to_urls(uri) sources.extend(urls) else: sources.append(uri) return [url_to_tiddler(uri) for uri in sources]
def _get_tiddler(self, tiddler): bag = tiddler.bag filepath = os.path.join(self._base, encode_name(tiddler.bag), encode_name(tiddler.title)) found = False index = 0 while not found: try: extension = KNOWN_EXTENSIONS[index] except IndexError: return None try: tiddler = url_to_tiddler(filepath + extension) found = True except URLError: index += 1 tiddler.bag = bag return tiddler
def test_png_tiddler(): tiddler = url_to_tiddler(SAMPLE_PNG) assert tiddler.title == 'peermore.png' assert tiddler.type == 'image/png'
def test_css_tiddler(): tiddler = url_to_tiddler(SAMPLE_CSS) assert tiddler.title == 'tiddlyweb.css' assert tiddler.type == 'text/css'
def test_tiddler(): tiddler = url_to_tiddler(SAMPLE_TIDDLER) assert tiddler.title == 'Greetings' assert 'Welcome to the real world' in tiddler.text
def test_meta_notitle_plugin(): tiddler = url_to_tiddler(SAMPLE_META_NOTITLE_PLUGIN) assert tiddler.title == 'bplugin' assert 'excludeLists' in tiddler.tags
def test_simple_plugin(): tiddler = url_to_tiddler(SAMPLE_PLUGIN) assert tiddler.title == 'hole' assert 'systemConfig' in tiddler.tags assert 'alert("i\'m in a hole!");' in tiddler.text
tiddler_path = self._tiddler_path(tiddler) contents = _read_file(tiddler_path) self.serializer.object = tiddler return self.serializer.from_string(contents) def _get_remote_tiddler(self, tiddler): uris = self._index[tiddler.bag] candidates = [uri for uri in _resolve_references(uris) if _extract_title(uri) == tiddler.title] try: uri = candidates[-1] # XXX: best guess!? except IndexError, exc: raise NoTiddlerError(exc) bag = tiddler.bag # XXX: caching bag attribute hacky/insufficient? tiddler = url_to_tiddler(uri) tiddler.bag = bag return tiddler def _recipe_path(self, recipe): return "%s.recipe" % os.path.join(self._root, encode(recipe.name)) def _bag_path(self, bag): return os.path.join(self._root, encode(bag.name)) def _tiddler_path(self, tiddler): return "%s.tid" % os.path.join(self._root, encode(tiddler.bag), encode(tiddler.title)) def _user_path(self, user):