mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-05-10 17:22:00 -04:00
remove trailing whitespace
This commit is contained in:
parent
e1edc8079f
commit
0b6709392b
104 changed files with 1479 additions and 1479 deletions
146
bin/convert.js
146
bin/convert.js
|
@ -27,21 +27,21 @@ log("open output file...");
|
|||
var sqlOutput = fs.openSync(sqlOutputFile, "w");
|
||||
var sql = "SET CHARACTER SET UTF8;\n" +
|
||||
"CREATE TABLE IF NOT EXISTS `store` ( \n" +
|
||||
"`key` VARCHAR( 100 ) NOT NULL , \n" +
|
||||
"`value` LONGTEXT NOT NULL , \n" +
|
||||
"`key` VARCHAR( 100 ) NOT NULL , \n" +
|
||||
"`value` LONGTEXT NOT NULL , \n" +
|
||||
"PRIMARY KEY ( `key` ) \n" +
|
||||
") ENGINE = INNODB;\n" +
|
||||
") ENGINE = INNODB;\n" +
|
||||
"START TRANSACTION;\n\n";
|
||||
fs.writeSync(sqlOutput, sql);
|
||||
log("done");
|
||||
|
||||
//set setings for ep db
|
||||
var etherpadDB= new mysql.Client();
|
||||
etherpadDB.host = settings.etherpadDB.host;
|
||||
etherpadDB.host = settings.etherpadDB.host;
|
||||
etherpadDB.port = settings.etherpadDB.port;
|
||||
etherpadDB.database = settings.etherpadDB.database;
|
||||
etherpadDB.user = settings.etherpadDB.user;
|
||||
etherpadDB.password = settings.etherpadDB.password;
|
||||
etherpadDB.database = settings.etherpadDB.database;
|
||||
etherpadDB.user = settings.etherpadDB.user;
|
||||
etherpadDB.password = settings.etherpadDB.password;
|
||||
|
||||
//get the timestamp once
|
||||
var timestamp = new Date().getTime();
|
||||
|
@ -53,7 +53,7 @@ async.series([
|
|||
function(callback)
|
||||
{
|
||||
log("get all padIds out of the database...");
|
||||
|
||||
|
||||
etherpadDB.query("SELECT ID FROM PAD_META", [], function(err, _padIDs)
|
||||
{
|
||||
padIDs = _padIDs;
|
||||
|
@ -63,9 +63,9 @@ async.series([
|
|||
function(callback)
|
||||
{
|
||||
log("done");
|
||||
|
||||
|
||||
//create a queue with a concurrency 100
|
||||
var queue = async.queue(function (padId, callback)
|
||||
var queue = async.queue(function (padId, callback)
|
||||
{
|
||||
convertPad(padId, function(err)
|
||||
{
|
||||
|
@ -73,10 +73,10 @@ async.series([
|
|||
callback(err);
|
||||
});
|
||||
}, 100);
|
||||
|
||||
|
||||
//set the step callback as the queue callback
|
||||
queue.drain = callback;
|
||||
|
||||
|
||||
//add the padids to the worker queue
|
||||
for(var i=0,length=padIDs.length;i<length;i++)
|
||||
{
|
||||
|
@ -86,25 +86,25 @@ async.series([
|
|||
], function(err)
|
||||
{
|
||||
if(err) throw err;
|
||||
|
||||
|
||||
//write the groups
|
||||
var sql = "";
|
||||
for(var proID in proID2groupID)
|
||||
{
|
||||
var groupID = proID2groupID[proID];
|
||||
var subdomain = proID2subdomain[proID];
|
||||
|
||||
|
||||
sql+="REPLACE INTO store VALUES (" + etherpadDB.escape("group:" + groupID) + ", " + etherpadDB.escape(JSON.stringify(groups[groupID]))+ ");\n";
|
||||
sql+="REPLACE INTO store VALUES (" + etherpadDB.escape("mapper2group:subdomain:" + subdomain) + ", " + etherpadDB.escape(groupID)+ ");\n";
|
||||
}
|
||||
|
||||
|
||||
//close transaction
|
||||
sql+="COMMIT;";
|
||||
|
||||
|
||||
//end the sql file
|
||||
fs.writeSync(sqlOutput, sql, undefined, "utf-8");
|
||||
fs.closeSync(sqlOutput);
|
||||
|
||||
|
||||
log("finished.");
|
||||
process.exit(0);
|
||||
});
|
||||
|
@ -119,7 +119,7 @@ var padsDone = 0;
|
|||
function incrementPadStats()
|
||||
{
|
||||
padsDone++;
|
||||
|
||||
|
||||
if(padsDone%100 == 0)
|
||||
{
|
||||
var averageTime = Math.round(padsDone/((new Date().getTime() - startTime)/1000));
|
||||
|
@ -150,10 +150,10 @@ function convertPad(padId, callback)
|
|||
function(callback)
|
||||
{
|
||||
var sql = "SELECT * FROM `PAD_CHAT_TEXT` WHERE NUMID = (SELECT `NUMID` FROM `PAD_CHAT_META` WHERE ID=?)";
|
||||
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -164,7 +164,7 @@ function convertPad(padId, callback)
|
|||
}
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
|
@ -172,10 +172,10 @@ function convertPad(padId, callback)
|
|||
function(callback)
|
||||
{
|
||||
var sql = "SELECT * FROM `PAD_REVS_TEXT` WHERE NUMID = (SELECT `NUMID` FROM `PAD_REVS_META` WHERE ID=?)";
|
||||
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -186,7 +186,7 @@ function convertPad(padId, callback)
|
|||
}
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
|
@ -194,10 +194,10 @@ function convertPad(padId, callback)
|
|||
function(callback)
|
||||
{
|
||||
var sql = "SELECT * FROM `PAD_REVMETA_TEXT` WHERE NUMID = (SELECT `NUMID` FROM `PAD_REVMETA_META` WHERE ID=?)";
|
||||
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -208,7 +208,7 @@ function convertPad(padId, callback)
|
|||
}
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
|
@ -216,7 +216,7 @@ function convertPad(padId, callback)
|
|||
function(callback)
|
||||
{
|
||||
var sql = "SELECT `JSON` FROM `PAD_APOOL` WHERE `ID` = ?";
|
||||
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
|
@ -226,7 +226,7 @@ function convertPad(padId, callback)
|
|||
apool=JSON.parse(results[0].JSON).x;
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
|
@ -234,10 +234,10 @@ function convertPad(padId, callback)
|
|||
function(callback)
|
||||
{
|
||||
var sql = "SELECT * FROM `PAD_AUTHORS_TEXT` WHERE NUMID = (SELECT `NUMID` FROM `PAD_AUTHORS_META` WHERE ID=?)";
|
||||
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -248,7 +248,7 @@ function convertPad(padId, callback)
|
|||
}
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
|
@ -256,17 +256,17 @@ function convertPad(padId, callback)
|
|||
function(callback)
|
||||
{
|
||||
var sql = "SELECT JSON FROM `PAD_META` WHERE ID=?";
|
||||
|
||||
|
||||
etherpadDB.query(sql, [padId], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
if(!err)
|
||||
{
|
||||
try
|
||||
{
|
||||
padmeta = JSON.parse(results[0].JSON).x;
|
||||
}catch(e) {err = e}
|
||||
}
|
||||
|
||||
|
||||
callback(err);
|
||||
});
|
||||
},
|
||||
|
@ -279,19 +279,19 @@ function convertPad(padId, callback)
|
|||
callback();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//get the proID out of this padID
|
||||
var proID = padId.split("$")[0];
|
||||
|
||||
|
||||
var sql = "SELECT subDomain FROM pro_domains WHERE ID = ?";
|
||||
|
||||
|
||||
etherpadDB.query(sql, [proID], function(err, results)
|
||||
{
|
||||
if(!err)
|
||||
{
|
||||
subdomain = results[0].subDomain;
|
||||
}
|
||||
|
||||
|
||||
callback(err);
|
||||
});
|
||||
}
|
||||
|
@ -301,105 +301,105 @@ function convertPad(padId, callback)
|
|||
{
|
||||
//saves all values that should be written to the database
|
||||
var values = {};
|
||||
|
||||
|
||||
//this is a pro pad, let's convert it to a group pad
|
||||
if(padId.indexOf("$") != -1)
|
||||
{
|
||||
var padIdParts = padId.split("$");
|
||||
var proID = padIdParts[0];
|
||||
var padName = padIdParts[1];
|
||||
|
||||
|
||||
var groupID
|
||||
|
||||
|
||||
//this proID is not converted so far, do it
|
||||
if(proID2groupID[proID] == null)
|
||||
{
|
||||
groupID = "g." + randomString(16);
|
||||
|
||||
|
||||
//create the mappers for this new group
|
||||
proID2groupID[proID] = groupID;
|
||||
proID2subdomain[proID] = subdomain;
|
||||
groups[groupID] = {pads: {}};
|
||||
}
|
||||
|
||||
|
||||
//use the generated groupID;
|
||||
groupID = proID2groupID[proID];
|
||||
|
||||
|
||||
//rename the pad
|
||||
padId = groupID + "$" + padName;
|
||||
|
||||
|
||||
//set the value for this pad in the group
|
||||
groups[groupID].pads[padId] = 1;
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
var newAuthorIDs = {};
|
||||
var oldName2newName = {};
|
||||
|
||||
|
||||
//replace the authors with generated authors
|
||||
// we need to do that cause etherpad saves pad local authors, etherpad lite uses them global
|
||||
for(var i in apool.numToAttrib)
|
||||
{
|
||||
var key = apool.numToAttrib[i][0];
|
||||
var value = apool.numToAttrib[i][1];
|
||||
|
||||
|
||||
//skip non authors and anonymous authors
|
||||
if(key != "author" || value == "")
|
||||
continue;
|
||||
|
||||
|
||||
//generate new author values
|
||||
var authorID = "a." + randomString(16);
|
||||
var authorColorID = authors[i].colorId || Math.floor(Math.random()*32);
|
||||
var authorName = authors[i].name || null;
|
||||
|
||||
|
||||
//overwrite the authorID of the attribute pool
|
||||
apool.numToAttrib[i][1] = authorID;
|
||||
|
||||
|
||||
//write the author to the database
|
||||
values["globalAuthor:" + authorID] = {"colorId" : authorColorID, "name": authorName, "timestamp": timestamp};
|
||||
|
||||
|
||||
//save in mappers
|
||||
newAuthorIDs[i] = authorID;
|
||||
oldName2newName[value] = authorID;
|
||||
}
|
||||
|
||||
|
||||
//save all revisions
|
||||
for(var i=0;i<changesets.length;i++)
|
||||
{
|
||||
values["pad:" + padId + ":revs:" + i] = {changeset: changesets[i],
|
||||
values["pad:" + padId + ":revs:" + i] = {changeset: changesets[i],
|
||||
meta : {
|
||||
author: newAuthorIDs[changesetsMeta[i].a],
|
||||
timestamp: changesetsMeta[i].t,
|
||||
atext: changesetsMeta[i].atext || undefined
|
||||
}};
|
||||
}
|
||||
|
||||
|
||||
//save all chat messages
|
||||
for(var i=0;i<chatMessages.length;i++)
|
||||
{
|
||||
values["pad:" + padId + ":chat:" + i] = {"text": chatMessages[i].lineText,
|
||||
"userId": oldName2newName[chatMessages[i].userId],
|
||||
values["pad:" + padId + ":chat:" + i] = {"text": chatMessages[i].lineText,
|
||||
"userId": oldName2newName[chatMessages[i].userId],
|
||||
"time": chatMessages[i].time}
|
||||
}
|
||||
|
||||
|
||||
//generate the latest atext
|
||||
var fullAPool = (new AttributePool()).fromJsonable(apool);
|
||||
var keyRev = Math.floor(padmeta.head / padmeta.keyRevInterval) * padmeta.keyRevInterval;
|
||||
var atext = changesetsMeta[keyRev].atext;
|
||||
var curRev = keyRev;
|
||||
while (curRev < padmeta.head)
|
||||
while (curRev < padmeta.head)
|
||||
{
|
||||
curRev++;
|
||||
var changeset = changesets[curRev];
|
||||
atext = Changeset.applyToAText(changeset, atext, fullAPool);
|
||||
}
|
||||
|
||||
values["pad:" + padId] = {atext: atext,
|
||||
pool: apool,
|
||||
head: padmeta.head,
|
||||
|
||||
values["pad:" + padId] = {atext: atext,
|
||||
pool: apool,
|
||||
head: padmeta.head,
|
||||
chatHead: padmeta.numChatMessages }
|
||||
|
||||
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
|
@ -408,13 +408,13 @@ function convertPad(padId, callback)
|
|||
callback();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var sql = "";
|
||||
for(var key in values)
|
||||
{
|
||||
sql+="REPLACE INTO store VALUES (" + etherpadDB.escape(key) + ", " + etherpadDB.escape(JSON.stringify(values[key]))+ ");\n";
|
||||
}
|
||||
|
||||
|
||||
fs.writeSync(sqlOutput, sql, undefined, "utf-8");
|
||||
callback();
|
||||
}
|
||||
|
@ -430,24 +430,24 @@ function parsePage(array, pageStart, offsets, data, json)
|
|||
{
|
||||
var start = 0;
|
||||
var lengths = offsets.split(",");
|
||||
|
||||
|
||||
for(var i=0;i<lengths.length;i++)
|
||||
{
|
||||
var unitLength = lengths[i];
|
||||
|
||||
|
||||
//skip empty units
|
||||
if(unitLength == "")
|
||||
continue;
|
||||
|
||||
|
||||
//parse the number
|
||||
unitLength = Number(unitLength);
|
||||
|
||||
|
||||
//cut the unit out of data
|
||||
var unit = data.substr(start, unitLength);
|
||||
|
||||
|
||||
//put it into the array
|
||||
array[pageStart + i] = json ? JSON.parse(unit) : unit;
|
||||
|
||||
|
||||
//update start
|
||||
start+=unitLength;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue