def parse(self, data): self.shares = {} self.user, data = self.unpack_string(data) dirs, data = self.unpack_uint(data) for i in range(dirs): dir, data = self.unpack_string(data) self.shares[dir] = {} files, data = self.unpack_uint(data) for j in range(files): fn, data = self.unpack_string(data) sz, data = self.unpack_off(data) ex, data = self.unpack_string(data) attrs, data = self.unpack_uint(data) at = [] for k in range(attrs): a, data = self.unpack_uint(data) at.append(a) self.shares[dir][fn] = [sz, ex, at] return self