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)
Exemple #2
0
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 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
Exemple #6
0
def test_png_tiddler():
    tiddler = url_to_tiddler(SAMPLE_PNG)

    assert tiddler.title == 'peermore.png'
    assert tiddler.type == 'image/png'
Exemple #7
0
def test_css_tiddler():
    tiddler = url_to_tiddler(SAMPLE_CSS)

    assert tiddler.title == 'tiddlyweb.css'
    assert tiddler.type == 'text/css'
Exemple #8
0
def test_tiddler():
    tiddler = url_to_tiddler(SAMPLE_TIDDLER)

    assert tiddler.title == 'Greetings'
    assert 'Welcome to the real world' in tiddler.text
Exemple #9
0
def test_meta_notitle_plugin():
    tiddler = url_to_tiddler(SAMPLE_META_NOTITLE_PLUGIN)

    assert tiddler.title == 'bplugin'
    assert 'excludeLists' in tiddler.tags
Exemple #10
0
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
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
Exemple #16
0
		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):