Files
seanime-docker/seanime-2.9.10/internal/library/autodownloader/hook_events.go
2025-09-20 14:08:38 +01:00

61 lines
2.3 KiB
Go

package autodownloader
import (
"seanime/internal/api/anilist"
"seanime/internal/database/models"
"seanime/internal/hook_resolver"
"seanime/internal/library/anime"
)
// AutoDownloaderRunStartedEvent is triggered when the autodownloader starts checking for new episodes.
// Prevent default to abort the run.
type AutoDownloaderRunStartedEvent struct {
hook_resolver.Event
Rules []*anime.AutoDownloaderRule `json:"rules"`
}
// AutoDownloaderTorrentsFetchedEvent is triggered at the beginning of a run, when the autodownloader fetches torrents from the provider.
type AutoDownloaderTorrentsFetchedEvent struct {
hook_resolver.Event
Torrents []*NormalizedTorrent `json:"torrents"`
}
// AutoDownloaderMatchVerifiedEvent is triggered when a torrent is verified to follow a rule.
// Prevent default to abort the download if the match is found.
type AutoDownloaderMatchVerifiedEvent struct {
hook_resolver.Event
// Fetched torrent
Torrent *NormalizedTorrent `json:"torrent"`
Rule *anime.AutoDownloaderRule `json:"rule"`
ListEntry *anilist.AnimeListEntry `json:"listEntry"`
LocalEntry *anime.LocalFileWrapperEntry `json:"localEntry"`
// The episode number found for the match
// If the match failed, this will be 0
Episode int `json:"episode"`
// Whether the torrent matches the rule
// Changing this value to true will trigger a download even if the match failed;
MatchFound bool `json:"matchFound"`
}
// AutoDownloaderSettingsUpdatedEvent is triggered when the autodownloader settings are updated
type AutoDownloaderSettingsUpdatedEvent struct {
hook_resolver.Event
Settings *models.AutoDownloaderSettings `json:"settings"`
}
// AutoDownloaderBeforeDownloadTorrentEvent is triggered when the autodownloader is about to download a torrent.
// Prevent default to abort the download.
type AutoDownloaderBeforeDownloadTorrentEvent struct {
hook_resolver.Event
Torrent *NormalizedTorrent `json:"torrent"`
Rule *anime.AutoDownloaderRule `json:"rule"`
Items []*models.AutoDownloaderItem `json:"items"`
}
// AutoDownloaderAfterDownloadTorrentEvent is triggered when the autodownloader has downloaded a torrent.
type AutoDownloaderAfterDownloadTorrentEvent struct {
hook_resolver.Event
Torrent *NormalizedTorrent `json:"torrent"`
Rule *anime.AutoDownloaderRule `json:"rule"`
}