stuff
This commit is contained in:
parent
22112b691c
commit
f8f3fe5067
|
@ -2,7 +2,7 @@
|
||||||
* @name BDFDB
|
* @name BDFDB
|
||||||
* @author DevilBro
|
* @author DevilBro
|
||||||
* @authorId 278543574059057154
|
* @authorId 278543574059057154
|
||||||
* @version 1.4.6
|
* @version 1.4.7
|
||||||
* @description Required Library for DevilBro's Plugins
|
* @description Required Library for DevilBro's Plugins
|
||||||
* @invite Jx3TjNS
|
* @invite Jx3TjNS
|
||||||
* @donate https://www.paypal.me/MircoWittrien
|
* @donate https://www.paypal.me/MircoWittrien
|
||||||
|
@ -22,7 +22,7 @@ module.exports = (_ => {
|
||||||
"info": {
|
"info": {
|
||||||
"name": "BDFDB",
|
"name": "BDFDB",
|
||||||
"author": "DevilBro",
|
"author": "DevilBro",
|
||||||
"version": "1.4.6",
|
"version": "1.4.7",
|
||||||
"description": "Required Library for DevilBro's Plugins"
|
"description": "Required Library for DevilBro's Plugins"
|
||||||
},
|
},
|
||||||
"rawUrl": `https://mwittrien.github.io/BetterDiscordAddons/Library/0BDFDB.plugin.js`,
|
"rawUrl": `https://mwittrien.github.io/BetterDiscordAddons/Library/0BDFDB.plugin.js`,
|
||||||
|
@ -3919,67 +3919,6 @@ module.exports = (_ => {
|
||||||
}
|
}
|
||||||
else return original;
|
else return original;
|
||||||
};
|
};
|
||||||
BDFDB.StringUtils.formatTime = function (time, config = {}) {
|
|
||||||
let timeObj = time || new Date();
|
|
||||||
if (typeof time == "string" || typeof time == "number") timeObj = new Date(time);
|
|
||||||
if (timeObj.toString() == "Invalid Date") timeObj = new Date(parseInt(time));
|
|
||||||
if (timeObj.toString() == "Invalid Date" || typeof timeObj.toLocaleDateString != "function") return "";
|
|
||||||
|
|
||||||
let languageId = config.language && BDFDB.LanguageUtils.languages[config.language] ? config.language : BDFDB.LanguageUtils.getLanguage().id, timeString = "";
|
|
||||||
if (!config.formatString || typeof config.formatString != "string") {
|
|
||||||
const cutOffSeconds = string => {
|
|
||||||
return string.replace(/(.{1,2}:.{1,2}):.{1,2}(.*)/, "$1$2").replace(/(.{1,2}\..{1,2})\..{1,2}(.*)/, "$1$2").replace(/(.{1,2} h .{1,2} min) .{1,2} s(.*)/, "$1$2");
|
|
||||||
};
|
|
||||||
const addLeadingZeros = string => {
|
|
||||||
let charArray = string.split("");
|
|
||||||
let numReg = /[0-9]/;
|
|
||||||
for (let i = 0; i < charArray.length; i++) if (!numReg.test(charArray[i-1]) && numReg.test(charArray[i]) && !numReg.test(charArray[i+1])) charArray[i] = "0" + charArray[i];
|
|
||||||
return charArray.join("");
|
|
||||||
};
|
|
||||||
let timestamp = [];
|
|
||||||
if (config.displayDate) timestamp.push(timeObj.toLocaleDateString(languageId));
|
|
||||||
if (config.displayTime) timestamp.push(config.cutSeconds ? cutOffSeconds(timeObj.toLocaleTimeString(languageId)) : timeObj.toLocaleTimeString(languageId));
|
|
||||||
if (config.otherOrder) timestamp.reverse();
|
|
||||||
timeString = timestamp.length > 1 ? timestamp.join(", ") : (timestamp.length > 0 ? timestamp[0] : "");
|
|
||||||
if (timeString && config.forceZeros) timeString = addLeadingZeros(timeString);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
let hours = timeObj.getHours();
|
|
||||||
let minutes = timeObj.getMinutes();
|
|
||||||
let seconds = timeObj.getSeconds();
|
|
||||||
let milliSeconds = timeObj.getMilliseconds();
|
|
||||||
|
|
||||||
let day = timeObj.getDate();
|
|
||||||
let month = timeObj.getMonth()+1;
|
|
||||||
|
|
||||||
let timeMode = "";
|
|
||||||
let now = new Date();
|
|
||||||
let daysAgo = Math.round((Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()) - Date.UTC(timeObj.getFullYear(), timeObj.getMonth(), timeObj.getDate()))/(1000*60*60*24));
|
|
||||||
|
|
||||||
if (config.formatString.indexOf("$timemode") > -1) {
|
|
||||||
timeMode = hours >= 12 ? "PM" : "AM";
|
|
||||||
hours = hours % 12;
|
|
||||||
hours = hours ? hours : 12;
|
|
||||||
}
|
|
||||||
timeString = BDFDB.LibraryModules.StringUtils.upperCaseFirstChar(config.formatString
|
|
||||||
.replace(/\$hour/g, config.forceZeros && hours < 10 ? "0" + hours : hours)
|
|
||||||
.replace(/\$minute/g, minutes < 10 ? "0" + minutes : minutes)
|
|
||||||
.replace(/\$second/g, seconds < 10 ? "0" + seconds : seconds)
|
|
||||||
.replace(/\$msecond/g, config.forceZeros ? (milliSeconds < 10 ? "00" + milliSeconds : (milliSeconds < 100 ? "0" + milliSeconds : milliSeconds)) : milliSeconds)
|
|
||||||
.replace(/\$timemode/g, timeMode)
|
|
||||||
.replace(/\$weekdayL/g, timeObj.toLocaleDateString(languageId, {weekday: "long"}))
|
|
||||||
.replace(/\$weekdayS/g, timeObj.toLocaleDateString(languageId, {weekday: "short"}))
|
|
||||||
.replace(/\$monthnameL/g, timeObj.toLocaleDateString(languageId, {month: "long"}))
|
|
||||||
.replace(/\$monthnameS/g, timeObj.toLocaleDateString(languageId, {month: "short"}))
|
|
||||||
.replace(/\$daysago/g, config.maxDaysAgo == 0 || config.maxDaysAgo >= daysAgo ? (daysAgo > 1 ? (config.useDateInDaysAgo ? timeObj.toLocaleDateString(languageId) : BDFDB.LanguageUtils.LanguageStringsFormat("ACTIVITY_FEED_USER_PLAYED_DAYS_AGO", daysAgo)) : BDFDB.LanguageUtils.LanguageStrings[`SEARCH_SHORTCUT_${daysAgo == 1 ? "YESTERDAY" : "TODAY"}`]) : "")
|
|
||||||
.replace(/\$day/g, config.forceZeros && day < 10 ? "0" + day : day)
|
|
||||||
.replace(/\$month/g, config.forceZeros && month < 10 ? "0" + month : month)
|
|
||||||
.replace(/\$yearS/g, parseInt(timeObj.getFullYear().toString().slice(-2)))
|
|
||||||
.replace(/\$year/g, timeObj.getFullYear())
|
|
||||||
.trim().split(" ").filter(n => n).join(" "));
|
|
||||||
}
|
|
||||||
return timeString;
|
|
||||||
};
|
|
||||||
|
|
||||||
BDFDB.SlateUtils = {};
|
BDFDB.SlateUtils = {};
|
||||||
BDFDB.SlateUtils.isRichValue = function (richValue) {
|
BDFDB.SlateUtils.isRichValue = function (richValue) {
|
||||||
|
@ -5669,7 +5608,7 @@ module.exports = (_ => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
handleChange() {
|
handleChange() {
|
||||||
if (typeof this.props.onChange == "function") this.props.onChange(BDFDB.ObjectUtils.extract(this.props, "customString", "dateString", "timeString"));
|
if (typeof this.props.onChange == "function") this.props.onChange(BDFDB.ObjectUtils.extract(this.props, "formatString", "dateString", "timeString"));
|
||||||
}
|
}
|
||||||
render() {
|
render() {
|
||||||
let input = this, preview;
|
let input = this, preview;
|
||||||
|
@ -5688,9 +5627,9 @@ module.exports = (_ => {
|
||||||
BDFDB.ReactUtils.createElement(InternalComponents.LibraryComponents.TextInput, {
|
BDFDB.ReactUtils.createElement(InternalComponents.LibraryComponents.TextInput, {
|
||||||
className: BDFDB.disCN.dateinputfield,
|
className: BDFDB.disCN.dateinputfield,
|
||||||
placeholder: InternalComponents.LibraryComponents.DateInput.getDefaultString(),
|
placeholder: InternalComponents.LibraryComponents.DateInput.getDefaultString(),
|
||||||
value: this.props.customString,
|
value: this.props.formatString,
|
||||||
onChange: value => {
|
onChange: value => {
|
||||||
this.props.customString = value;
|
this.props.formatString = value;
|
||||||
this.handleChange.apply(this, []);
|
this.handleChange.apply(this, []);
|
||||||
BDFDB.ReactUtils.forceUpdate(preview);
|
BDFDB.ReactUtils.forceUpdate(preview);
|
||||||
}
|
}
|
||||||
|
@ -5749,7 +5688,7 @@ module.exports = (_ => {
|
||||||
BDFDB.ReactUtils.createElement(class DateInputPreview extends LibraryModules.React.Component {
|
BDFDB.ReactUtils.createElement(class DateInputPreview extends LibraryModules.React.Component {
|
||||||
componentDidMount() {preview = this;}
|
componentDidMount() {preview = this;}
|
||||||
render() {
|
render() {
|
||||||
return BDFDB.ReactUtils.createElement("div", {
|
return !input.props.noPreview && BDFDB.ReactUtils.createElement("div", {
|
||||||
className: BDFDB.disCN.dateinputpreview,
|
className: BDFDB.disCN.dateinputpreview,
|
||||||
children: [
|
children: [
|
||||||
input.props.prefix && BDFDB.ReactUtils.createElement("div", {
|
input.props.prefix && BDFDB.ReactUtils.createElement("div", {
|
||||||
|
@ -5758,7 +5697,7 @@ module.exports = (_ => {
|
||||||
}),
|
}),
|
||||||
BDFDB.ReactUtils.createElement(InternalComponents.LibraryComponents.TextScroller, {
|
BDFDB.ReactUtils.createElement(InternalComponents.LibraryComponents.TextScroller, {
|
||||||
children: InternalComponents.LibraryComponents.DateInput.format({
|
children: InternalComponents.LibraryComponents.DateInput.format({
|
||||||
formatString: input.props.customString,
|
formatString: input.props.formatString,
|
||||||
dateString: input.props.dateString,
|
dateString: input.props.dateString,
|
||||||
timeString: input.props.timeString
|
timeString: input.props.timeString
|
||||||
}, new Date((new Date()) - (1000*60*60*24*2)))
|
}, new Date((new Date()) - (1000*60*60*24*2)))
|
||||||
|
@ -5770,7 +5709,7 @@ module.exports = (_ => {
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
]
|
]
|
||||||
}), "onChange", "label", "customString", "dateString", "timeString", "prefix"));
|
}), "onChange", "label", "formatString", "dateString", "timeString", "noPreview", "prefix"));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
InternalComponents.LibraryComponents.DateInput.getDefaultString = function () {
|
InternalComponents.LibraryComponents.DateInput.getDefaultString = function () {
|
||||||
|
@ -5786,6 +5725,7 @@ module.exports = (_ => {
|
||||||
};
|
};
|
||||||
InternalComponents.LibraryComponents.DateInput.format = function (strings, time) {
|
InternalComponents.LibraryComponents.DateInput.format = function (strings, time) {
|
||||||
if (typeof strings == "string") strings = {formatString: strings};
|
if (typeof strings == "string") strings = {formatString: strings};
|
||||||
|
if (strings && typeof strings.formatString != "string") strings.formatString = "";
|
||||||
if (!strings || typeof strings.formatString != "string" || !time) return "";
|
if (!strings || typeof strings.formatString != "string" || !time) return "";
|
||||||
const timeObj = InternalComponents.LibraryComponents.DateInput.parseDate(time);
|
const timeObj = InternalComponents.LibraryComponents.DateInput.parseDate(time);
|
||||||
const language = BDFDB.LanguageUtils.getLanguage().id;
|
const language = BDFDB.LanguageUtils.getLanguage().id;
|
||||||
|
|
|
@ -660,12 +660,12 @@ img:not([src]), img[src=""], img[src="null"] {
|
||||||
[REPLACE_CLASS_dateinputcontrols] {
|
[REPLACE_CLASS_dateinputcontrols] {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 8px;
|
|
||||||
}
|
}
|
||||||
[REPLACE_CLASS_dateinputpreview] {
|
[REPLACE_CLASS_dateinputpreview] {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
color: var(--header-primary);
|
color: var(--header-primary);
|
||||||
|
margin-top: 8px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
[REPLACE_CLASS_dateinputpreviewprefix] {
|
[REPLACE_CLASS_dateinputpreviewprefix] {
|
||||||
|
|
Loading…
Reference in New Issue