diff --git a/package-lock.json b/package-lock.json index 813819b..d816fbc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "satyr", - "version": "0.10.1", + "version": "0.10.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1110,9 +1110,9 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "ipaddr.js": { "version": "1.9.0", diff --git a/package.json b/package.json index d33fe2c..a97c46d 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "setup": "sh install/setup.sh", "migrate": "ts-node src/migrate.ts", "invite": "ts-node src/cli.ts --invite", + "v3-manual": "ts-node src/v3manual.ts", "make-templates": "nunjucks-precompile -i [\"\\.html$\",\"\\.njk$\"] templates > site/templates.js" }, "repository": { diff --git a/src/db/3.ts b/src/db/3.ts index 7037fa7..1606c57 100644 --- a/src/db/3.ts +++ b/src/db/3.ts @@ -1,9 +1,21 @@ import * as db from "../database"; +import * as dirty from "dirty"; async function run () { await db.query('CREATE TABLE IF NOT EXISTS ch_bans(channel VARCHAR(25), target VARCHAR(45), time BIGINT, length INT DEFAULT 30)'); - await db.query('INSERT INTO ch_bans(channel) SELECT username FROM users'); - await db.query('INSERT INTO db_meta (version) VALUES (3)'); + console.log('!!! This migration has a race condition when run from the `npm run migrate` command. If thats how this was called, please re-run this migration manually.\n!!! Run `npm run v3-manual` to do so'); + var bansdb = new dirty('./config/bans.db') + bansdb.on('load', async () => { + bansdb.forEach(async (key, val) => { + let ips = Object.keys(val); + for(var i=0;i