示例#1
0
    def getDocuments(cls, database, category=None, type=None):
        helper = DocumentHelper(SyncDocument, database)

        if type:
            assert category

            for key, doc in helper.by_type(key=[category, type]):
                yield doc

        else:
            if category:
                start = [category]
            else:
                start = []

            end = start + [{}]
            dirpath = "/" + "/".join(start)
            for key, doc in helper.by_type(startkey=start, endkey=end, group_level=len(start) + 1, reduce=True):

                yield cls(
                    filename=key[len(start)], dirpath=dirpath, mode=0555 | stat.S_IFDIR, type="application/x-directory"
                )