Files
danmaku/utils/leancloud.js
2022-11-09 18:28:35 +08:00

68 lines
1.8 KiB
JavaScript

const AV = require('leancloud-storage');
const {Query, User} = AV;
// 引入环境变量
require('dotenv').config({path: '../.env'});
AV.init({
appId: process.env.LEANCLOUD_APP_ID,
appKey: process.env.LEANCLOUD_APP_KEY,
serverURL: "https://dbvunek8.lc-cn-e1-shared.com"
});
function danmakuAccessAdd(obj) {
const {ip, url, ua} = obj;
const DanmakuAccessObject = AV.Object.extend('DanmakuAccess');
const record = new DanmakuAccessObject();
record.set('remoteIP', ip);
record.set('url', url);
record.set('UA', ua);
record.save().then()
}
function currentDay() {
const date = new Date();
const start = new Date(date.setHours(0, 0, 0, 0))
const end = new Date(date.setHours(23, 59, 59, 999))
return [start, end]
}
function lastDay() {
const currentday = currentDay();
currentday[0].setDate(currentday[0].getDate() - 1);
currentday[1].setDate(currentday[1].getDate() - 1);
return currentday
}
function currentMonth() {
const date = new Date(), y = date.getFullYear(), m = date.getMonth();
const firstDay = new Date(y, m, 1);
const lastDay = new Date(y, m + 1, 0);
return [firstDay, lastDay]
}
async function danmakuQuery(date) {
const query = new AV.Query('DanmakuAccess');
query.greaterThanOrEqualTo('createdAt', date[0]);
query.lessThan('createdAt', date[1]);
query.exists('url');
return await query.count()
}
function danmakuErrorAdd(obj) {
const {ip, url, error} = obj;
const DanmakuErrorObject = AV.Object.extend('DanmakuError');
const record = new DanmakuErrorObject();
record.set('remoteIP', ip);
record.set('url', url);
//TODO: 转换成object
record.set('error', JSON.stringify(error));
record.save().then()
}
module.exports = {danmakuAccessAdd, danmakuQuery, currentDay, currentMonth, lastDay, danmakuErrorAdd};
if (!module.parent) {
}