51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
"use strict";
|
|
const common_vendor = require("../common/vendor.js");
|
|
const formatDateTime = (date, template = "YYYY-MM-DD HH:mm:ss") => {
|
|
return date ? common_vendor.dayjs(date).format(template) : "";
|
|
};
|
|
const isVideo = (url) => {
|
|
if (!url)
|
|
return false;
|
|
const videoTypes = ["mp4", "webm", "mov", "avi", "mkv", "flv"];
|
|
return videoTypes.some((type) => url.endsWith(type));
|
|
};
|
|
const generateRandomNumber = (length = 9) => {
|
|
const min = Math.pow(10, length - 1);
|
|
const max = Math.pow(10, length) - 1;
|
|
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
};
|
|
const randomId = (length = 8) => {
|
|
const lowerCaseLetters = "abcdefghijklmnopqrstuvwxyz";
|
|
const upperCaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
const digits = "0123456789";
|
|
const allChars = lowerCaseLetters + upperCaseLetters + digits;
|
|
let randomString = "";
|
|
for (let i = 0; i < length; i++) {
|
|
const randomIndex = Math.floor(Math.random() * allChars.length);
|
|
randomString += allChars[randomIndex];
|
|
}
|
|
return randomString;
|
|
};
|
|
const parseJSONToObject = (json) => {
|
|
let msgObj;
|
|
try {
|
|
let parsedString = JSON.parse(json);
|
|
if (typeof parsedString === "string") {
|
|
msgObj = JSON.parse(parsedString);
|
|
} else {
|
|
msgObj = parsedString;
|
|
}
|
|
} catch (err) {
|
|
throw new Error("not json");
|
|
}
|
|
if (!msgObj) {
|
|
throw new Error("not json");
|
|
}
|
|
return msgObj;
|
|
};
|
|
exports.formatDateTime = formatDateTime;
|
|
exports.generateRandomNumber = generateRandomNumber;
|
|
exports.isVideo = isVideo;
|
|
exports.parseJSONToObject = parseJSONToObject;
|
|
exports.randomId = randomId;
|