优化自动刷新邮件请求次数
This commit is contained in:
@@ -26,15 +26,27 @@ const init = {
|
||||
await this.v2_4DB(c);
|
||||
await this.v2_5DB(c);
|
||||
await this.v2_6DB(c);
|
||||
await this.v2_7DB(c);
|
||||
await settingService.refresh(c);
|
||||
return c.text(t('initSuccess'));
|
||||
},
|
||||
|
||||
async v2_7DB(c) {
|
||||
try {
|
||||
await c.env.db.batch([
|
||||
c.env.db.prepare(`ALTER TABLE setting RENAME COLUMN auto_refresh_time TO auto_refresh;`),
|
||||
c.env.db.prepare(`UPDATE setting SET auto_refresh = 1 WHERE auto_refresh != 0;`)
|
||||
]);
|
||||
} catch (e) {
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
},
|
||||
|
||||
async v2_6DB(c) {
|
||||
try {
|
||||
await c.env.db.prepare(`ALTER TABLE account ADD COLUMN all_receive INTEGER NOT NULL DEFAULT 0;`).run();
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -43,16 +55,16 @@ const init = {
|
||||
try {
|
||||
await c.env.db.prepare(`ALTER TABLE setting ADD COLUMN email_prefix_filter text NOT NULL DEFAULT '';`).run();
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
|
||||
try {
|
||||
await c.env.db.batch([
|
||||
c.env.db.prepare(`ALTER TABLE email ADD COLUMN unread INTEGER NOT NULL DEFAULT 0;`).run(),
|
||||
c.env.db.prepare(`UPDATE email SET unread = 1;`).run()
|
||||
c.env.db.prepare(`ALTER TABLE email ADD COLUMN unread INTEGER NOT NULL DEFAULT 0;`),
|
||||
c.env.db.prepare(`UPDATE email SET unread = 1;`)
|
||||
]);
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
|
||||
},
|
||||
@@ -75,13 +87,13 @@ const init = {
|
||||
)
|
||||
`).run();
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
|
||||
try {
|
||||
await c.env.db.prepare(`ALTER TABLE setting ADD COLUMN min_email_prefix INTEGER NOT NULL DEFAULT 1;`).run();
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
|
||||
},
|
||||
@@ -95,13 +107,13 @@ const init = {
|
||||
c.env.db.prepare(`ALTER TABLE setting ADD COLUMN tg_msg_from TEXT NOT NULL DEFAULT 'only-name';`)
|
||||
]);
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
|
||||
try {
|
||||
await c.env.db.prepare(`ALTER TABLE setting ADD COLUMN tg_msg_text TEXT NOT NULL DEFAULT 'show';`).run();
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
|
||||
},
|
||||
@@ -117,7 +129,7 @@ const init = {
|
||||
c.env.db.prepare(`DELETE FROM perm WHERE perm_key = 'setting:clean'`)
|
||||
]);
|
||||
} catch (e) {
|
||||
console.error(e.message)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -125,7 +137,7 @@ const init = {
|
||||
try {
|
||||
await c.env.db.prepare(`ALTER TABLE setting ADD COLUMN login_domain INTEGER NOT NULL DEFAULT 0;`).run();
|
||||
} catch (e) {
|
||||
console.error(e.message)
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -162,7 +174,7 @@ const init = {
|
||||
try {
|
||||
await c.env.db.prepare(sql).run();
|
||||
} catch (e) {
|
||||
console.warn(`通过字段,原因:${e.message}`);
|
||||
console.warn(`跳过字段:${e.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -176,7 +188,7 @@ const init = {
|
||||
c.env.db.prepare(`CREATE UNIQUE INDEX IF NOT EXISTS idx_user_email_nocase ON user (email COLLATE NOCASE)`)
|
||||
]);
|
||||
} catch (e) {
|
||||
console.error(e.message)
|
||||
console.warn(e.message)
|
||||
}
|
||||
|
||||
},
|
||||
@@ -187,7 +199,7 @@ const init = {
|
||||
try {
|
||||
await c.env.db.prepare(`ALTER TABLE role ADD COLUMN avail_domain TEXT NOT NULL DEFAULT ''`).run();
|
||||
} catch (e) {
|
||||
console.warn(`跳过字段添加,原因:${e.message}`);
|
||||
console.warn(`跳过字段添加:${e.message}`);
|
||||
}
|
||||
},
|
||||
|
||||
@@ -210,7 +222,7 @@ const init = {
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS idx_setting_code ON reg_key(code COLLATE NOCASE)
|
||||
`).run();
|
||||
} catch (e) {
|
||||
console.warn(`跳过创建索引,原因:${e.message}`);
|
||||
console.warn(`跳过创建索引:${e.message}`);
|
||||
}
|
||||
|
||||
|
||||
@@ -222,7 +234,7 @@ const init = {
|
||||
(35,'密钥添加', 'reg-key:add', 33, 2, 1),
|
||||
(36,'密钥删除', 'reg-key:delete', 33, 2, 2)`).run();
|
||||
} catch (e) {
|
||||
console.warn(`跳过数据,原因:${e.message}`);
|
||||
console.warn(`跳过数据:${e.message}`);
|
||||
}
|
||||
|
||||
const ADD_COLUMN_SQL_LIST = [
|
||||
@@ -236,7 +248,7 @@ const init = {
|
||||
try {
|
||||
await c.env.db.prepare(sql).run();
|
||||
} catch (e) {
|
||||
console.warn(`跳过字段添加,原因:${e.message}`);
|
||||
console.warn(`跳过字段添加:${e.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -264,7 +276,7 @@ const init = {
|
||||
try {
|
||||
await c.env.db.prepare(sql).run();
|
||||
} catch (e) {
|
||||
console.warn(`跳过字段添加,原因:${e.message}`);
|
||||
console.warn(`跳过字段添加:${e.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -301,7 +313,7 @@ const init = {
|
||||
try {
|
||||
await c.env.db.prepare(sql).run();
|
||||
} catch (e) {
|
||||
console.warn(`跳过字段添加,原因:${e.message}`);
|
||||
console.warn(`跳过字段添加:${e.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -316,7 +328,7 @@ const init = {
|
||||
(31,'分析页', NULL, 0, 1, 2.1),
|
||||
(32,'数据查看', 'analysis:query', 31, 2, 1)`).run();
|
||||
} catch (e) {
|
||||
console.warn(`跳过数据,原因:${e.message}`);
|
||||
console.warn(`跳过数据:${e.message}`);
|
||||
}
|
||||
|
||||
},
|
||||
@@ -335,7 +347,7 @@ const init = {
|
||||
`ALTER TABLE setting ADD COLUMN site_key TEXT;`,
|
||||
`ALTER TABLE setting ADD COLUMN secret_key TEXT;`,
|
||||
`ALTER TABLE setting ADD COLUMN background TEXT;`,
|
||||
`ALTER TABLE setting ADD COLUMN login_opacity INTEGER NOT NULL DEFAULT 0.88;`,
|
||||
`ALTER TABLE setting ADD COLUMN login_opacity INTEGER NOT NULL DEFAULT 0.90;`,
|
||||
|
||||
`ALTER TABLE user ADD COLUMN create_ip TEXT;`,
|
||||
`ALTER TABLE user ADD COLUMN active_ip TEXT;`,
|
||||
@@ -353,7 +365,7 @@ const init = {
|
||||
try {
|
||||
await c.env.db.prepare(sql).run();
|
||||
} catch (e) {
|
||||
console.warn(`跳过字段添加,原因:${e.message}`);
|
||||
console.warn(`跳过字段添加:${e.message}`);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -467,93 +479,98 @@ const init = {
|
||||
async intDB(c) {
|
||||
// 初始化数据库表结构
|
||||
await c.env.db.prepare(`
|
||||
CREATE TABLE IF NOT EXISTS email (
|
||||
email_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
send_email TEXT,
|
||||
name TEXT,
|
||||
account_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
subject TEXT,
|
||||
content TEXT,
|
||||
text TEXT,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
is_del INTEGER DEFAULT 0 NOT NULL
|
||||
)
|
||||
`).run();
|
||||
CREATE TABLE IF NOT EXISTS email (
|
||||
email_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
|
||||
send_email TEXT,
|
||||
name TEXT,
|
||||
account_id INTEGER NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
subject TEXT,
|
||||
content TEXT,
|
||||
text TEXT,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
||||
is_del INTEGER DEFAULT 0 NOT NULL
|
||||
)
|
||||
`).run();
|
||||
|
||||
await c.env.db.prepare(`
|
||||
CREATE TABLE IF NOT EXISTS star (
|
||||
star_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
email_id INTEGER NOT NULL,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||
)
|
||||
`).run();
|
||||
CREATE TABLE IF NOT EXISTS star (
|
||||
star_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
email_id INTEGER NOT NULL,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||
)
|
||||
`).run();
|
||||
|
||||
await c.env.db.prepare(`
|
||||
CREATE TABLE IF NOT EXISTS attachments (
|
||||
att_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
email_id INTEGER NOT NULL,
|
||||
account_id INTEGER NOT NULL,
|
||||
key TEXT NOT NULL,
|
||||
filename TEXT,
|
||||
mime_type TEXT,
|
||||
size INTEGER,
|
||||
disposition TEXT,
|
||||
related TEXT,
|
||||
content_id TEXT,
|
||||
encoding TEXT,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||
)
|
||||
`).run();
|
||||
CREATE TABLE IF NOT EXISTS attachments (
|
||||
att_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
user_id INTEGER NOT NULL,
|
||||
email_id INTEGER NOT NULL,
|
||||
account_id INTEGER NOT NULL,
|
||||
key TEXT NOT NULL,
|
||||
filename TEXT,
|
||||
mime_type TEXT,
|
||||
size INTEGER,
|
||||
disposition TEXT,
|
||||
related TEXT,
|
||||
content_id TEXT,
|
||||
encoding TEXT,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL
|
||||
)
|
||||
`).run();
|
||||
|
||||
await c.env.db.prepare(`
|
||||
CREATE TABLE IF NOT EXISTS user (
|
||||
user_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
email TEXT NOT NULL,
|
||||
type INTEGER DEFAULT 1 NOT NULL,
|
||||
password TEXT NOT NULL,
|
||||
salt TEXT NOT NULL,
|
||||
status INTEGER DEFAULT 0 NOT NULL,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
active_time DATETIME,
|
||||
is_del INTEGER DEFAULT 0 NOT NULL
|
||||
)
|
||||
`).run();
|
||||
CREATE TABLE IF NOT EXISTS user (
|
||||
user_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
email TEXT NOT NULL,
|
||||
type INTEGER DEFAULT 1 NOT NULL,
|
||||
password TEXT NOT NULL,
|
||||
salt TEXT NOT NULL,
|
||||
status INTEGER DEFAULT 0 NOT NULL,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
active_time DATETIME,
|
||||
is_del INTEGER DEFAULT 0 NOT NULL
|
||||
)
|
||||
`).run();
|
||||
|
||||
await c.env.db.prepare(`
|
||||
CREATE TABLE IF NOT EXISTS account (
|
||||
account_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
email TEXT NOT NULL,
|
||||
status INTEGER DEFAULT 0 NOT NULL,
|
||||
latest_email_time DATETIME,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
user_id INTEGER NOT NULL,
|
||||
is_del INTEGER DEFAULT 0 NOT NULL
|
||||
)
|
||||
`).run();
|
||||
CREATE TABLE IF NOT EXISTS account (
|
||||
account_id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
email TEXT NOT NULL,
|
||||
status INTEGER DEFAULT 0 NOT NULL,
|
||||
latest_email_time DATETIME,
|
||||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||||
user_id INTEGER NOT NULL,
|
||||
is_del INTEGER DEFAULT 0 NOT NULL
|
||||
)
|
||||
`).run();
|
||||
|
||||
await c.env.db.prepare(`
|
||||
CREATE TABLE IF NOT EXISTS setting (
|
||||
register INTEGER NOT NULL,
|
||||
receive INTEGER NOT NULL,
|
||||
add_email INTEGER NOT NULL,
|
||||
many_email INTEGER NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
auto_refresh_time INTEGER NOT NULL,
|
||||
register_verify INTEGER NOT NULL,
|
||||
add_email_verify INTEGER NOT NULL
|
||||
)
|
||||
`).run();
|
||||
CREATE TABLE IF NOT EXISTS setting (
|
||||
register INTEGER NOT NULL,
|
||||
receive INTEGER NOT NULL,
|
||||
add_email INTEGER NOT NULL,
|
||||
many_email INTEGER NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
auto_refresh INTEGER NOT NULL,
|
||||
register_verify INTEGER NOT NULL,
|
||||
add_email_verify INTEGER NOT NULL
|
||||
)
|
||||
`).run();
|
||||
|
||||
try {
|
||||
await c.env.db.prepare(`
|
||||
INSERT INTO setting (
|
||||
register, receive, add_email, many_email, title, auto_refresh, register_verify, add_email_verify
|
||||
)
|
||||
SELECT 0, 0, 0, 0, 'Cloud Mail', 1, 1, 1
|
||||
WHERE NOT EXISTS (SELECT 1 FROM setting)
|
||||
`).run();
|
||||
} catch (e) {
|
||||
console.warn(e)
|
||||
}
|
||||
|
||||
await c.env.db.prepare(`
|
||||
INSERT INTO setting (
|
||||
register, receive, add_email, many_email, title, auto_refresh_time, register_verify, add_email_verify
|
||||
)
|
||||
SELECT 0, 0, 0, 0, 'Cloud Mail', 0, 1, 1
|
||||
WHERE NOT EXISTS (SELECT 1 FROM setting)
|
||||
`).run();
|
||||
},
|
||||
|
||||
async receiveEmailToRecipient(c) {
|
||||
|
||||
Reference in New Issue
Block a user