Unified metadata
parent
60bea6b33b
commit
5be37f2e45
|
@ -396,32 +396,35 @@ module.exports.create = function (cfg) {
|
|||
// parsed[3] is the last known hash (optionnal)
|
||||
sendMsg(ctx, user, [seq, 'ACK']);
|
||||
channelName = parsed[1];
|
||||
var validateKey = parsed[2];
|
||||
var lastKnownHash = parsed[3];
|
||||
var owners;
|
||||
var expire;
|
||||
if (parsed[2] && typeof parsed[2] === "object") {
|
||||
validateKey = parsed[2].validateKey;
|
||||
lastKnownHash = parsed[2].lastKnownHash;
|
||||
owners = parsed[2].owners;
|
||||
if (parsed[2].expire) {
|
||||
expire = +parsed[2].expire * 1000 + (+new Date());
|
||||
var config = parsed[2];
|
||||
var metadata = {};
|
||||
var lastKnownHash;
|
||||
if (config && typeof config === "object") {
|
||||
lastKnownHash = config.lastKnownHash;
|
||||
metadata = config.metadata || {};
|
||||
if (metadata.expire) {
|
||||
metadata.expire = +metadata.expire * 1000 + (+new Date());
|
||||
}
|
||||
} else if (config) {
|
||||
// This is the old way: parsed[2] is the validateKey and parsed[3] is the last known hash
|
||||
lastKnownHash = parsed[3];
|
||||
metadata.validateKey = parsed[2];
|
||||
}
|
||||
metadata.channel = channelName;
|
||||
|
||||
nThen(function (waitFor) {
|
||||
if (!tasks) { return; } // tasks are not supported
|
||||
if (typeof(expire) !== 'number' || !expire) { return; }
|
||||
if (typeof(metadata.expire) !== 'number' || !metadata.expire) { return; }
|
||||
|
||||
// the fun part...
|
||||
// the user has said they want this pad to expire at some point
|
||||
tasks.write(expire, "EXPIRE", [ channelName ], waitFor(function (err) {
|
||||
tasks.write(metadata.expire, "EXPIRE", [ channelName ], waitFor(function (err) {
|
||||
if (err) {
|
||||
// if there is an error, we don't want to crash the whole server...
|
||||
// just log it, and if there's a problem you'll be able to fix it
|
||||
// at a later date with the provided information
|
||||
Log.error('HK_CREATE_EXPIRE_TASK', err);
|
||||
Log.info('HK_INVALID_EXPIRE_TASK', JSON.stringify([expire, 'EXPIRE', channelName]));
|
||||
Log.info('HK_INVALID_EXPIRE_TASK', JSON.stringify([metadata.expire, 'EXPIRE', channelName]));
|
||||
}
|
||||
}));
|
||||
}).nThen(function (waitFor) {
|
||||
|
@ -482,20 +485,9 @@ module.exports.create = function (cfg) {
|
|||
// the first message in the file
|
||||
const chan = ctx.channels[channelName];
|
||||
if (msgCount === 0 && !historyKeeperKeys[channelName] && chan && chan.indexOf(user) > -1) {
|
||||
var key = {};
|
||||
key.channel = channelName;
|
||||
if (validateKey) {
|
||||
key.validateKey = validateKey;
|
||||
}
|
||||
if (owners) {
|
||||
key.owners = owners;
|
||||
}
|
||||
if (expire) {
|
||||
key.expire = expire;
|
||||
}
|
||||
historyKeeperKeys[channelName] = key;
|
||||
storeMessage(ctx, chan, JSON.stringify(key), false, undefined);
|
||||
sendMsg(ctx, user, [0, HISTORY_KEEPER_ID, 'MSG', user.id, JSON.stringify(key)]);
|
||||
historyKeeperKeys[channelName] = metadata;
|
||||
storeMessage(ctx, chan, JSON.stringify(metadata), false, undefined);
|
||||
sendMsg(ctx, user, [0, HISTORY_KEEPER_ID, 'MSG', user.id, JSON.stringify(metadata)]);
|
||||
}
|
||||
|
||||
// End of history message:
|
||||
|
|
|
@ -422,8 +422,10 @@ define([
|
|||
|
||||
var friend = getFriendFromChannel(chan.id) || {};
|
||||
var cfg = {
|
||||
validateKey: keys ? keys.validateKey : undefined,
|
||||
owners: [proxy.edPublic, friend.edPublic],
|
||||
metadata: {
|
||||
validateKey: keys ? keys.validateKey : undefined,
|
||||
owners: [proxy.edPublic, friend.edPublic],
|
||||
},
|
||||
lastKnownHash: data.lastKnownHash
|
||||
};
|
||||
var msg = ['GET_HISTORY', chan.id, cfg];
|
||||
|
|
|
@ -1191,10 +1191,7 @@ define([
|
|||
},
|
||||
noChainPad: true,
|
||||
channel: data.channel,
|
||||
validateKey: data.validateKey,
|
||||
owners: data.owners,
|
||||
password: data.password,
|
||||
expire: data.expire,
|
||||
metadata: data.metadata,
|
||||
network: store.network,
|
||||
//readOnly: data.readOnly,
|
||||
onConnect: function (wc, sendMessage) {
|
||||
|
@ -1441,14 +1438,16 @@ define([
|
|||
websocketURL: NetConfig.getWebsocketURL(),
|
||||
channel: secret.channel,
|
||||
readOnly: false,
|
||||
validateKey: secret.keys.validateKey || undefined,
|
||||
crypto: Crypto.createEncryptor(secret.keys),
|
||||
userName: 'sharedFolder',
|
||||
logLevel: 1,
|
||||
ChainPad: ChainPad,
|
||||
classic: true,
|
||||
network: store.network,
|
||||
owners: owners
|
||||
metadata: {
|
||||
validateKey: secret.keys.validateKey || undefined,
|
||||
owners: owners
|
||||
}
|
||||
};
|
||||
var rt = Listmap.create(listmapConfig);
|
||||
store.sharedFolders[id] = rt;
|
||||
|
|
|
@ -92,9 +92,11 @@ define([
|
|||
var hk = network.historyKeeper;
|
||||
var cfg = {
|
||||
validateKey: obj.validateKey,
|
||||
lastKnownHash: chan.lastKnownHash || chan.lastCpHash,
|
||||
owners: obj.owners,
|
||||
expire: obj.expire
|
||||
metadata: {
|
||||
lastKnownHash: chan.lastKnownHash || chan.lastCpHash,
|
||||
owners: obj.owners,
|
||||
expire: obj.expire
|
||||
}
|
||||
};
|
||||
var msg = ['GET_HISTORY', wc.id, cfg];
|
||||
// Add the validateKey if we are the channel creator and we have a validateKey
|
||||
|
|
|
@ -23,14 +23,12 @@ define([], function () {
|
|||
var start = function (conf) {
|
||||
var channel = conf.channel;
|
||||
var Crypto = conf.crypto;
|
||||
var validateKey = conf.validateKey;
|
||||
var isNewHash = conf.isNewHash;
|
||||
var readOnly = conf.readOnly || false;
|
||||
var padRpc = conf.padRpc;
|
||||
var sframeChan = conf.sframeChan;
|
||||
var password = conf.password;
|
||||
var owners = conf.owners;
|
||||
var expire = conf.expire;
|
||||
var metadata= conf.metadata || {};
|
||||
var validateKey = metadata.validateKey;
|
||||
var onConnect = conf.onConnect || function () { };
|
||||
conf = undefined;
|
||||
|
||||
|
@ -127,11 +125,8 @@ define([], function () {
|
|||
// join the netflux network, promise to handle opening of the channel
|
||||
padRpc.joinPad({
|
||||
channel: channel || null,
|
||||
validateKey: validateKey,
|
||||
readOnly: readOnly,
|
||||
owners: owners,
|
||||
password: password,
|
||||
expire: expire
|
||||
metadata: metadata
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -1074,13 +1074,17 @@ define([
|
|||
readOnly = false;
|
||||
updateMeta();
|
||||
|
||||
var rtConfig = {};
|
||||
var rtConfig = {
|
||||
metadata: {}
|
||||
};
|
||||
if (data.owned) {
|
||||
rtConfig.owners = [edPublic];
|
||||
rtConfig.metadata.owners = [edPublic];
|
||||
}
|
||||
if (data.expire) {
|
||||
rtConfig.expire = data.expire;
|
||||
rtConfig.metadata.expire = data.expire;
|
||||
}
|
||||
rtConfig.metadata.validateKey = (secret.keys && secret.keys.validateKey) || undefined;
|
||||
|
||||
Utils.rtConfig = rtConfig;
|
||||
nThen(function(waitFor) {
|
||||
if (data.templateId) {
|
||||
|
|
Loading…
Reference in New Issue