python切换node的版本
This commit is contained in:
@@ -20,11 +20,17 @@ export const config = {
|
||||
rootDir,
|
||||
baseUrl: process.env.ALIYUN_APS_BASE_URL || 'https://aps.aliyun.com',
|
||||
headless: toBool(process.env.ALIYUN_APS_HEADLESS, false),
|
||||
browserChannel: (process.env.ALIYUN_APS_BROWSER_CHANNEL || '').trim(),
|
||||
browserExecutablePath: (process.env.ALIYUN_APS_BROWSER_EXECUTABLE_PATH || '').trim(),
|
||||
timezone: process.env.ALIYUN_APS_TIMEZONE || 'Asia/Shanghai',
|
||||
cron: process.env.ALIYUN_APS_CRON || '0 6 * * *',
|
||||
orderStartDate: process.env.ALIYUN_APS_ORDER_START_DATE || '2024-01-01',
|
||||
incrementalOrderStartDate: process.env.ALIYUN_APS_INCREMENTAL_ORDER_START_DATE || '',
|
||||
billStartMonth: process.env.ALIYUN_APS_BILL_START_MONTH || '2024-01',
|
||||
orderIncrementalOverlapDays: Math.max(0, Number.parseInt(process.env.ALIYUN_APS_ORDER_INCREMENTAL_OVERLAP_DAYS || '2', 10) || 2),
|
||||
billIncrementalOverlapDays: Math.max(0, Number.parseInt(process.env.ALIYUN_APS_BILL_INCREMENTAL_OVERLAP_DAYS || '7', 10) || 7),
|
||||
messageIncrementalOverlapDays: Math.max(0, Number.parseInt(process.env.ALIYUN_APS_MESSAGE_INCREMENTAL_OVERLAP_DAYS || '7', 10) || 7),
|
||||
scheduleMode: process.env.ALIYUN_APS_SCHEDULE_MODE || 'incremental',
|
||||
smtp: {
|
||||
host: process.env.ALIYUN_APS_SMTP_HOST || 'smtp.qq.com',
|
||||
port: parseInt(process.env.ALIYUN_APS_SMTP_PORT || '465', 10),
|
||||
@@ -37,11 +43,20 @@ export const config = {
|
||||
fullSync: toBool(process.env.ALIYUN_APS_FULL_SYNC, true),
|
||||
resumeBillMonth: process.env.ALIYUN_APS_RESUME_BILL_MONTH || '',
|
||||
resumeBillPage: Math.max(1, Number.parseInt(process.env.ALIYUN_APS_RESUME_BILL_PAGE || '1', 10) || 1),
|
||||
dbSyncScript: process.env.ALIYUN_APS_DB_SYNC_SCRIPT || '../aps-aliyun-sync/aps_db_sync.py',
|
||||
userDataDir: ensureDir(path.join(rootDir, '.browser')),
|
||||
storageStateFile: path.join(rootDir, '.browser', 'storage-state.json'),
|
||||
dataDir: ensureDir(path.join(rootDir, 'data')),
|
||||
downloadDir: ensureDir(path.join(rootDir, 'downloads')),
|
||||
errorDir: ensureDir(path.join(rootDir, 'data', 'errors')),
|
||||
db: {
|
||||
host: process.env.ALIYUN_APS_DB_HOST || '',
|
||||
port: parseInt(process.env.ALIYUN_APS_DB_PORT || '3306', 10),
|
||||
user: process.env.ALIYUN_APS_DB_USER || '',
|
||||
password: process.env.ALIYUN_APS_DB_PASSWORD || '',
|
||||
database: process.env.ALIYUN_APS_DB_NAME || '',
|
||||
charset: process.env.ALIYUN_APS_DB_CHARSET || 'utf8mb4',
|
||||
connectionLimit: Math.max(1, Number.parseInt(process.env.ALIYUN_APS_DB_CONNECTION_LIMIT || '5', 10) || 5),
|
||||
},
|
||||
};
|
||||
|
||||
export const datasets = {
|
||||
@@ -180,6 +195,34 @@ export const datasets = {
|
||||
serviceEndAt: record['服务结束时间'] || '',
|
||||
}),
|
||||
},
|
||||
messages: {
|
||||
name: 'messages',
|
||||
url: `${config.baseUrl}/#/message`,
|
||||
heading: '消息',
|
||||
pageSize: 20,
|
||||
uniqueKey: (record) => record.msgId || record.__hash,
|
||||
normalize: (record) => ({
|
||||
msgId: pickFirst(record, ['消息ID', 'msg_id', '消息id', 'ID', 'id']),
|
||||
title: pickFirst(record, ['消息标题', '标题', 'title']),
|
||||
content: pickFirst(record, ['消息内容', '内容', 'content']),
|
||||
msgType: pickFirst(record, ['消息类型', 'type', 'msg_type']),
|
||||
fromApp: pickFirst(record, ['来源应用', 'from_app', '应用']),
|
||||
bizCode: pickFirst(record, ['业务编码', 'biz_code']),
|
||||
msgChannel: pickFirst(record, ['消息通道', 'msg_channel']),
|
||||
categoryId: pickFirst(record, ['分类ID', 'category_id']),
|
||||
categoryName: pickFirst(record, ['分类名称', 'category_name']),
|
||||
lv1CategoryId: pickFirst(record, ['一级分类ID', 'lv1_category_id']),
|
||||
lv2CategoryId: pickFirst(record, ['二级分类ID', 'lv2_category_id']),
|
||||
lv3CategoryId: pickFirst(record, ['三级分类ID', 'lv3_category_id']),
|
||||
messageClassification: pickFirst(record, ['归类结果', 'message_classification']),
|
||||
customerName: pickFirst(record, ['客户名称', 'customer_name']),
|
||||
orderNo: pickFirst(record, ['订单号', 'order_no']),
|
||||
status: pickFirst(record, ['消息状态', '状态', 'status']),
|
||||
gmtCreated: pickFirst(record, ['消息创建时间', '创建时间', 'gmt_created']),
|
||||
gmtModified: pickFirst(record, ['消息修改时间', '修改时间', 'gmt_modified']),
|
||||
extraData: record,
|
||||
}),
|
||||
},
|
||||
};
|
||||
|
||||
function splitLines(value) {
|
||||
@@ -188,3 +231,13 @@ function splitLines(value) {
|
||||
.map((part) => part.trim())
|
||||
.filter(Boolean);
|
||||
}
|
||||
|
||||
function pickFirst(record, keys) {
|
||||
for (const key of keys) {
|
||||
const value = record[key];
|
||||
if (value != null && String(value).trim()) {
|
||||
return String(value).trim();
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user