mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-10 12:25:02 +00:00
28 lines
1,004 B
TypeScript
28 lines
1,004 B
TypeScript
import { PluginData } from "knub";
|
|
import { AutomodPluginType } from "../types";
|
|
import { SavedMessage } from "../../../data/entities/SavedMessage";
|
|
import moment from "moment-timezone";
|
|
import { getMatchingRecentActions } from "./getMatchingRecentActions";
|
|
import { RecentActionType } from "../constants";
|
|
|
|
export function getMatchingMessageRecentActions(
|
|
pluginData: PluginData<AutomodPluginType>,
|
|
message: SavedMessage,
|
|
type: RecentActionType,
|
|
count: number,
|
|
within: number,
|
|
perChannel: boolean,
|
|
) {
|
|
const since = moment.utc(message.posted_at).valueOf() - within;
|
|
const to = moment.utc(message.posted_at).valueOf();
|
|
const identifier = perChannel ? `${message.channel_id}-${message.user_id}` : message.user_id;
|
|
const recentActions = getMatchingRecentActions(pluginData, type, identifier, since, to);
|
|
const totalCount = recentActions.reduce((total, action) => total + action.count, 0);
|
|
|
|
if (totalCount >= count) {
|
|
return {
|
|
identifier,
|
|
recentActions,
|
|
};
|
|
}
|
|
}
|