feat: implement watch for monitoring chat messages

- Added a new command handler for /watch that allows users to listen to messages from a specified chat and save them according to storage rules.
- Introduced filtering options for messages using regular expressions.
- Implemented functionality to start and stop watching chats, including error handling for invalid inputs and user settings.
- Created a new utility package for message element handling related to the watch feature.
- Updated the user model to manage watched chats, including methods to add, remove, and check if a chat is being watched.
This commit is contained in:
krau
2025-08-03 16:55:56 +08:00
parent 8f9ef07d1c
commit 133453b5d4
14 changed files with 377 additions and 69 deletions

View File

@@ -32,7 +32,9 @@ func executeStream(ctx context.Context, task *Task) error {
})
var err error
defer func() {
task.Progress.OnDone(ctx, task, err)
if task.Progress != nil {
task.Progress.OnDone(ctx, task, err)
}
}()
if err = errg.Wait(); err != nil {
return err