cleanup code

This commit is contained in:
stefanodvx 2025-04-15 10:46:54 +02:00
parent 26452d0f53
commit c06c7958e2
10 changed files with 64 additions and 14 deletions

View file

@ -3,6 +3,7 @@ package core
import (
"fmt"
"log"
"sync"
"github.com/google/uuid"
"github.com/pkg/errors"
@ -16,7 +17,23 @@ import (
"github.com/PaulSonOfLars/gotgbot/v2/ext"
)
var InlineTasks = make(map[string]*models.DownloadContext)
var InlineTasks sync.Map
func GetTask(id string) (*models.DownloadContext, bool) {
value, ok := InlineTasks.Load(id)
if !ok {
return nil, false
}
return value.(*models.DownloadContext), true
}
func SetTask(id string, task *models.DownloadContext) {
InlineTasks.Store(id, task)
}
func DeleteTask(id string) {
InlineTasks.Delete(id)
}
func HandleInline(
bot *gotgbot.Bot,
@ -183,7 +200,7 @@ func StartInlineTask(
log.Println("failed to answer inline query")
return nil
}
InlineTasks[taskID] = dlCtx
SetTask(taskID, dlCtx)
return nil
}

View file

@ -1,6 +1,7 @@
package core
import (
"context"
"fmt"
"os"
"slices"
@ -21,6 +22,11 @@ func HandleDownloadRequest(
ctx *ext.Context,
dlCtx *models.DownloadContext,
) error {
taskCtx, cancel := context.WithTimeout(context.Background(), 10*time.Minute)
defer cancel()
dlCtx.Context = taskCtx
chatID := ctx.EffectiveMessage.Chat.Id
if dlCtx.Extractor.Type == enums.ExtractorTypeSingle {
TypingEffect(bot, ctx, chatID)

View file

@ -198,6 +198,16 @@ func HandleErrorMessage(
err error,
) {
currentError := err
if errors.As(currentError, context.Canceled) ||
errors.As(currentError, context.DeadlineExceeded) {
SendErrorMessage(
bot, ctx,
"download request canceled or timed out",
)
return
}
for currentError != nil {
var botError *util.Error
if errors.As(currentError, &botError) {