Changeset 6447

Show
Ignore:
Timestamp:
08/21/08 14:00:58 (5 months ago)
Author:
FND
Message:

Plugin Library: retrieving metadata from .meta files

Location:
Trunk/association/services/pluginLibrary
Files:
12 added
9 removed
3 modified
1 copied
1 moved

Legend:

Unmodified
Added
Removed
  • Trunk/association/services/pluginLibrary/TODO

    r6431 r6447  
    11== Aggregator == 
    22 
    3 * dirScraper: support for .meta files 
    43* dirScraper: wildcards support for black-/whitelisting 
    54* logging 
     
    5049== Misc. == 
    5150 
     51* review TODO, XXX and DEBUG markers in the code  
    5252* code sanitizing 
    5353* refactoring 
  • Trunk/association/services/pluginLibrary/aggregator.py

    r6427 r6447  
    1717from dirScraper import dirScraper 
    1818 
    19 def main(args): 
     19def main(args = []): 
    2020        store = Store("text") 
    2121        repos = getRepositories("repos.lst") 
  • Trunk/association/services/pluginLibrary/dirScraper.py

    r6430 r6447  
    7373                                plugin.tags = "systemConfig" # XXX: should be list; cf. aggregator.getPlugins() 
    7474                                plugin.text = self._get(self.host + dir + uri) 
     75                                if uri + ".meta" in uris: # retrieve metadata 
     76                                        retrieveMetadata(plugin, self.host + dir + uri + ".meta") 
    7577                                plugins.append(plugin) 
    7678                        elif uri.endswith("/") and recursive: # directory -- XXX: potential for infinite loop? 
     
    7880                return plugins 
    7981 
     82        def retrieveMetadata(plugin, uri): # TODO: rename!? 
     83                """ 
     84                retrieve plugin's metadata from accompanying meta file 
     85 
     86                meta file is named after plugin file, using .js.meta extension 
     87                meta file contains one field per line 
     88                field format is "key: value" 
     89 
     90                @param plugin: TiddlyWeb tiddler 
     91                @type  plugin: Tiddler 
     92                @param uri: path to meta file 
     93                @type  uri: str 
     94                @return: None 
     95                """ 
     96                fields = self._get(uri).split("\n") 
     97                for field in fields: 
     98                        if ":" in field: 
     99                                k, v = [c.strip() for c in field.split(":", 1)] 
     100                                if k in ["title", "created", "modified", "modifier"]: 
     101                                        setattr(plugin, k, v) 
     102                                elif k == "tags": 
     103                                        for tag in v.split(" "): # TODO: resolve bracketed list 
     104                                                if tag not in plugin.tags: 
     105                                                        plugin.tags.push(tag) 
     106                                else: 
     107                                        #plugin.fields[k] = v # DEBUG'd -- TODO: not yet implemented in Tiddler class 
     108                                        pass # DEBUG 
     109 
  • Trunk/association/services/pluginLibrary/test/bar/adipisicing.js

    r6427 r6447  
    1 consectetur 
     1/*** 
    22adipisicing 
     3***/ 
  • Trunk/association/services/pluginLibrary/test/bar/consectetur.js

    r6427 r6447  
     1/*** 
    12consectetur 
    2 adipisicing 
     3***/