def __parseIndex(fn): fin=gzip.GzipFile(fn, "r") class P(libphoto.AlbumParser): photos=[] def gotPhoto(self, p): if p.md5 is not None and p.md5 != '': self.photos.append( (p.id, p.md5, p.extension) ) p=P() libphoto.parseIndex(fin, p) fin.close() return p.photos
def run(self): while True: p, dbname, docid, rev = Q.get() self.save_attachments(p, dbname, docid, rev) Q.task_done() if __name__ == '__main__': base, u=sys.argv[1:] fn = 'index.xml' pw=os.getenv('PHOTO_PW') if pw is None: pw=getpass.getpass() url = 'http://localhost:5984/' c = couchdb.Server(url, full_commit=False) libphoto.authenticate(base, u, pw) libphoto.parseIndex(libphoto.fetchIndex(base), Parser(c, base)) threads = [ImageWorker(url, base) for w in range(N_THREADS)] Q.join() for db in c: print "Compacting", db c[db].compact()
def parseIndex(): global config album={} print "Beginning index parse" d=libphoto.parseIndex('index.xml', MyHandler(album)) return album