feat: complete Ancestor quote bot with production-ready Docker support

This commit is contained in:
unfunny
2026-09-13 14:14:38 -04:00
parent f2016da05a
commit fe7351a7dc
1145 changed files with 30890 additions and 97684 deletions

View File

@@ -1,7 +1,6 @@
import { type Logger } from "./logger.ts";
import { type MatrixClient } from "./client.ts";
import { type MatrixEvent } from "./models/event.ts";
import { type IAnnotatedPushRule, type IPushRule, type IPushRules, type PushRuleAction, PushRuleKind, TweakName } from "./@types/PushRules.ts";
import { MatrixClient } from "./client";
import { MatrixEvent } from "./models/event";
import { IAnnotatedPushRule, IPushRule, IPushRules, PushRuleAction, PushRuleKind, TweakName } from "./@types/PushRules";
export interface IActionsObject {
/** Whether this event should notify the user or not. */
notify: boolean;
@@ -34,23 +33,11 @@ export declare class PushProcessor {
* Rewrites conditions on a client's push rules to match the defaults
* where applicable. Useful for upgrading push rules to more strict
* conditions when the server is falling behind on defaults.
*
* @param logger - A `Logger` to write log messages to.
* @param incomingRules - The client's existing push rules
* @param userId - The Matrix ID of the client.
* @returns The rewritten rules
*/
static rewriteDefaultRules(logger: Logger, incomingRules: IPushRules, userId?: string | undefined): IPushRules;
/**
* Create a RegExp object for the given glob pattern with a single capture group around the pattern itself, caching the result.
* No cache invalidation is present currently,
* as this will be inherently bounded to the size of the user's own push rules.
* @param pattern - the glob pattern to convert to a RegExp
* @param alignToWordBoundary - whether to align the pattern to word boundaries,
* as specified for `content.body` matches, will use lookaround assertions to ensure the match only includes the pattern
* @param flags - the flags to pass to the RegExp constructor, defaults to case-insensitive
*/
static getPushRuleGlobRegex(pattern: string, alignToWordBoundary?: boolean, flags?: string): RegExp;
static rewriteDefaultRules(incomingRules: IPushRules, userId?: string | undefined): IPushRules;
/**
* Pre-caches the parsed keys for push rules and cleans out any obsolete cache
* entries. Should be called after push rules are updated.
@@ -89,6 +76,7 @@ export declare class PushProcessor {
*/
private eventFulfillsEventPropertyContains;
private eventFulfillsCallStartedCondition;
private createCachedRegex;
/**
* Parse the key into the separate fields to search by splitting on
* unescaped ".", and then removing any escape characters.