mirror of https://github.com/calzoneman/sync.git
Add owner field to channel table
Make sure you run the update script to update existing databases: `node update.js`
This commit is contained in:
parent
e030a2bfa6
commit
d9fc17e0f3
|
@ -293,7 +293,7 @@ Channel.prototype.tryRegister = function(user) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(Database.registerChannel(this.name)) {
|
if(Database.registerChannel(this.name, user.name)) {
|
||||||
ActionLog.record(user.ip, user.name, "channel-register-success", [this.name]);
|
ActionLog.record(user.ip, user.name, "channel-register-success", [this.name]);
|
||||||
this.registered = true;
|
this.registered = true;
|
||||||
this.initialized = true;
|
this.initialized = true;
|
||||||
|
|
|
@ -105,6 +105,7 @@ function init() {
|
||||||
var query = ["CREATE TABLE IF NOT EXISTS `channels` (",
|
var query = ["CREATE TABLE IF NOT EXISTS `channels` (",
|
||||||
"`id` INT NOT NULL AUTO_INCREMENT,",
|
"`id` INT NOT NULL AUTO_INCREMENT,",
|
||||||
"`name` VARCHAR(255) NOT NULL,",
|
"`name` VARCHAR(255) NOT NULL,",
|
||||||
|
"`owner` VARCHAR(20) NOT NULL,",
|
||||||
"PRIMARY KEY(`id`))",
|
"PRIMARY KEY(`id`))",
|
||||||
"ENGINE = MyISAM;"].join("");
|
"ENGINE = MyISAM;"].join("");
|
||||||
var results = db.querySync(query);
|
var results = db.querySync(query);
|
||||||
|
@ -249,7 +250,7 @@ function globalUnbanIP(ip) {
|
||||||
|
|
||||||
/* REGION Channel Registration/Loading */
|
/* REGION Channel Registration/Loading */
|
||||||
|
|
||||||
function registerChannel(name) {
|
function registerChannel(name, owner) {
|
||||||
if(!name.match(/^[a-zA-Z0-9-_]+$/)) {
|
if(!name.match(/^[a-zA-Z0-9-_]+$/)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -305,8 +306,8 @@ function registerChannel(name) {
|
||||||
|
|
||||||
// Insert into channel table
|
// Insert into channel table
|
||||||
query = createQuery(
|
query = createQuery(
|
||||||
"INSERT INTO `channels` VALUES (NULL, ?)",
|
"INSERT INTO `channels` VALUES (NULL, ?, ?)",
|
||||||
[name]
|
[name, owner]
|
||||||
);
|
);
|
||||||
|
|
||||||
results = db.querySync(query);
|
results = db.querySync(query);
|
||||||
|
|
47
update.js
47
update.js
|
@ -1,21 +1,62 @@
|
||||||
var Config = require("./config.js");
|
var Config = require("./config.js");
|
||||||
var Database = require("./database.js");
|
var Database = require("./database.js");
|
||||||
|
|
||||||
Config.DEBUG = true;
|
//Config.DEBUG = true;
|
||||||
Database.setup(Config);
|
Database.setup(Config);
|
||||||
Database.init();
|
Database.init();
|
||||||
var query;
|
var query;
|
||||||
var db = Database.getConnection();
|
var db = Database.getConnection();
|
||||||
|
|
||||||
// Check for already existing
|
// Check for already existing
|
||||||
query = "SELECT email FROM registrations WHERE 1";
|
query = "SELECT owner FROM channels WHERE 1";
|
||||||
if(!db.querySync(query)) {
|
if(!db.querySync(query)) {
|
||||||
query = "ALTER TABLE registrations ADD email VARCHAR(255) NOT NULL";
|
query = "ALTER TABLE channels ADD owner VARCHAR(20) NOT NULL";
|
||||||
var res = db.querySync(query);
|
var res = db.querySync(query);
|
||||||
if(!res) {
|
if(!res) {
|
||||||
console.log(db);
|
console.log(db);
|
||||||
console.log("Update failed!");
|
console.log("Update failed!");
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
populateChannelOwners();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
db.closeSync();
|
db.closeSync();
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
|
||||||
|
function populateChannelOwners() {
|
||||||
|
query = "SELECT * FROM channels WHERE 1";
|
||||||
|
var res = db.querySync(query);
|
||||||
|
if(!res) {
|
||||||
|
console.log(db);
|
||||||
|
console.log("Update failed!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var channels = res.fetchAllSync();
|
||||||
|
channels.forEach(function(chan) {
|
||||||
|
chan = chan.name;
|
||||||
|
console.log("Fixing " + chan);
|
||||||
|
query = "SELECT name FROM `chan_"+chan+"_ranks` WHERE rank>=10 ORDER BY rank";
|
||||||
|
res = db.querySync(query);
|
||||||
|
if(!res) {
|
||||||
|
console.log(db);
|
||||||
|
console.log("Update failed!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var results = res.fetchAllSync();
|
||||||
|
if(results.length == 0) {
|
||||||
|
console.log("bad channel: " + chan);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var owner = results[0].name;
|
||||||
|
query = "UPDATE channels SET owner='"+owner+"' WHERE name='"+chan+"'";
|
||||||
|
console.log("setting owner=" + owner + " for /r/" + chan);
|
||||||
|
res = db.querySync(query);
|
||||||
|
if(!res) {
|
||||||
|
console.log(db);
|
||||||
|
console.log("Update failed!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue