示例#1
0
def main():
    print 'Are you sure you want to run this?'
    return
    db.command('dropDatabase')
    print 'Creating indices'
    print ' leden'
    Es.ensure_indices()
    print ' moderation'
    Es_mod.ensure_indices()
    print ' planning'
    Es_plan.ensure_indices()
    print ' poll'
    Es_poll.ensure_indices()
    print ' regl'
    Es_regl.ensure_indices()
    print ' subscriptions'
    Es_subscr.ensure_indices()
    print
    print 'Restoring data'
    print ' entities'
    for e in bson.decode_all(open('entities.bsons').read()):
        db['entities'].save(e)
    print ' relations'
    for e in bson.decode_all(open('relations.bsons').read()):
        db['relations'].save(e)
    print ' events'
    for e in bson.decode_all(open('events.bsons').read()):
        db['events'].save(e)
示例#2
0
文件: restore.py 项目: Jille/kninfra
def main():
    print 'Are you sure you want to run this?'
    return
    db.command('dropDatabase')
    print 'Creating indices'
    print ' leden'
    Es.ensure_indices()
    print ' moderation'
    Es_mod.ensure_indices()
    print ' planning'
    Es_plan.ensure_indices()
    print ' poll'
    Es_poll.ensure_indices()
    print ' regl'
    Es_regl.ensure_indices()
    print ' subscriptions'
    Es_subscr.ensure_indices()
    print
    print 'Restoring data'
    print ' entities'
    for e in bson.decode_all(open('entities.bsons').read()):
        db['entities'].save(e)
    print ' relations'
    for e in bson.decode_all(open('relations.bsons').read()):
        db['relations'].save(e)
    print ' events'
    for e in bson.decode_all(open('events.bsons').read()):
        db['events'].save(e)
示例#3
0
    def search(self, q, user):
        required_visibility = self.required_visibility(user)
        query_filter = {"path": self.mongo_path_prefix, "effectiveVisibility": {"$in": tuple(required_visibility)}}
        if q.startswith("album:"):
            album = q[len("album:") :]
            query_filter["type"] = "album"
            query_filter = {
                "$and": [
                    query_filter,
                    {
                        "$or": [
                            {"name": {"$regex": re.compile(re.escape(album), re.IGNORECASE)}},
                            {"title": {"$regex": re.compile(re.escape(album), re.IGNORECASE)}},
                        ]
                    },
                ]
            }
        elif q.startswith("tag:"):
            _id = Es.id_by_name(q[len("tag:") :])
            if _id is None:
                return
            query_filter["type"] = {"$ne": "album"}
            query_filter["tags"] = _id
        else:
            # do a full-text search
            for result in db.command(
                "text", "fotos", search=q, filter=query_filter, limit=96  # dividable by 2, 3 and 4
            )["results"]:
                yield entity(result["obj"])
            return

        # search for album or tag
        for o in fcol.find(query_filter).sort("date", -1):
            yield entity(o)
示例#4
0
    def search(self, q, user):
        required_visibility = self.required_visibility(user)
        query_filter = {'path': self.mongo_path_prefix,
                        'effectiveVisibility': {'$in': tuple(required_visibility)}}
        if q.startswith('album:'):
            album = q[len('album:'):]
            query_filter['type'] = 'album'
            query_filter = {'$and': [
                query_filter,
                {'$or': [
                    {'name': {'$regex': re.compile(re.escape(album),
                                                   re.IGNORECASE)}},
                    {'title': {'$regex': re.compile(re.escape(album),
                                                    re.IGNORECASE)}}
                ]}]}
        elif q.startswith('tag:'):
            _id = Es.id_by_name(q[len('tag:'):])
            if _id is None:
                return
            query_filter['type'] = {'$ne': 'album'}
            query_filter['tags'] = _id
        else:
            # do a full-text search
            for result in db.command('text', 'fotos',
                        search=q,
                        filter=query_filter,
                        limit=96, # dividable by 2, 3 and 4
                      )['results']:
                yield entity(result['obj'])
            return

        # search for album or tag
        for o in fcol.find(query_filter).sort('date', -1):
            yield entity(o)