node build fixed
This commit is contained in:
129
seanime-2.9.10/internal/library/scanner/hook_events.go
Normal file
129
seanime-2.9.10/internal/library/scanner/hook_events.go
Normal file
@@ -0,0 +1,129 @@
|
||||
package scanner
|
||||
|
||||
import (
|
||||
"seanime/internal/api/anilist"
|
||||
"seanime/internal/hook_resolver"
|
||||
"seanime/internal/library/anime"
|
||||
)
|
||||
|
||||
// ScanStartedEvent is triggered when the scanning process begins.
|
||||
// Prevent default to skip the rest of the scanning process and return the local files.
|
||||
type ScanStartedEvent struct {
|
||||
hook_resolver.Event
|
||||
// The main directory to scan
|
||||
LibraryPath string `json:"libraryPath"`
|
||||
// Other directories to scan
|
||||
OtherLibraryPaths []string `json:"otherLibraryPaths"`
|
||||
// Whether to use enhanced scanning,
|
||||
// Enhanced scanning will fetch media from AniList based on the local files' titles,
|
||||
// and use the metadata to match the local files.
|
||||
Enhanced bool `json:"enhanced"`
|
||||
// Whether to skip locked files
|
||||
SkipLocked bool `json:"skipLocked"`
|
||||
// Whether to skip ignored files
|
||||
SkipIgnored bool `json:"skipIgnored"`
|
||||
// All previously scanned local files
|
||||
LocalFiles []*anime.LocalFile `json:"localFiles"`
|
||||
}
|
||||
|
||||
// ScanFilePathsRetrievedEvent is triggered when the file paths to scan are retrieved.
|
||||
// The event includes file paths from all directories to scan.
|
||||
// The event includes file paths of local files that will be skipped.
|
||||
type ScanFilePathsRetrievedEvent struct {
|
||||
hook_resolver.Event
|
||||
FilePaths []string `json:"filePaths"`
|
||||
}
|
||||
|
||||
// ScanLocalFilesParsedEvent is triggered right after the file paths are parsed into local file objects.
|
||||
// The event does not include local files that are skipped.
|
||||
type ScanLocalFilesParsedEvent struct {
|
||||
hook_resolver.Event
|
||||
LocalFiles []*anime.LocalFile `json:"localFiles"`
|
||||
}
|
||||
|
||||
// ScanCompletedEvent is triggered when the scanning process finishes.
|
||||
// The event includes all the local files (skipped and scanned) to be inserted as a new entry.
|
||||
// Right after this event, the local files will be inserted as a new entry.
|
||||
type ScanCompletedEvent struct {
|
||||
hook_resolver.Event
|
||||
LocalFiles []*anime.LocalFile `json:"localFiles"`
|
||||
Duration int `json:"duration"` // in milliseconds
|
||||
}
|
||||
|
||||
// ScanMediaFetcherStartedEvent is triggered right before Seanime starts fetching media to be matched against the local files.
|
||||
type ScanMediaFetcherStartedEvent struct {
|
||||
hook_resolver.Event
|
||||
// Whether to use enhanced scanning.
|
||||
// Enhanced scanning will fetch media from AniList based on the local files' titles,
|
||||
// and use the metadata to match the local files.
|
||||
Enhanced bool `json:"enhanced"`
|
||||
}
|
||||
|
||||
// ScanMediaFetcherCompletedEvent is triggered when the media fetcher completes.
|
||||
// The event includes all the media fetched from AniList.
|
||||
// The event includes the media IDs that are not in the user's collection.
|
||||
type ScanMediaFetcherCompletedEvent struct {
|
||||
hook_resolver.Event
|
||||
// All media fetched from AniList, to be matched against the local files.
|
||||
AllMedia []*anilist.CompleteAnime `json:"allMedia"`
|
||||
// Media IDs that are not in the user's collection.
|
||||
UnknownMediaIds []int `json:"unknownMediaIds"`
|
||||
}
|
||||
|
||||
// ScanMatchingStartedEvent is triggered when the matching process begins.
|
||||
// Prevent default to skip the default matching, in which case modified local files will be used.
|
||||
type ScanMatchingStartedEvent struct {
|
||||
hook_resolver.Event
|
||||
// Local files to be matched.
|
||||
// If default is prevented, these local files will be used.
|
||||
LocalFiles []*anime.LocalFile `json:"localFiles"`
|
||||
// Media to be matched against the local files.
|
||||
NormalizedMedia []*anime.NormalizedMedia `json:"normalizedMedia"`
|
||||
// Matching algorithm.
|
||||
Algorithm string `json:"algorithm"`
|
||||
// Matching threshold.
|
||||
Threshold float64 `json:"threshold"`
|
||||
}
|
||||
|
||||
// ScanLocalFileMatchedEvent is triggered when a local file is matched with media and before the match is analyzed.
|
||||
// Prevent default to skip the default analysis and override the match.
|
||||
type ScanLocalFileMatchedEvent struct {
|
||||
hook_resolver.Event
|
||||
// Can be nil if there's no match
|
||||
Match *anime.NormalizedMedia `json:"match"`
|
||||
Found bool `json:"found"`
|
||||
LocalFile *anime.LocalFile `json:"localFile"`
|
||||
Score float64 `json:"score"`
|
||||
}
|
||||
|
||||
// ScanMatchingCompletedEvent is triggered when the matching process completes.
|
||||
type ScanMatchingCompletedEvent struct {
|
||||
hook_resolver.Event
|
||||
LocalFiles []*anime.LocalFile `json:"localFiles"`
|
||||
}
|
||||
|
||||
// ScanHydrationStartedEvent is triggered when the file hydration process begins.
|
||||
// Prevent default to skip the rest of the hydration process, in which case the event's local files will be used.
|
||||
type ScanHydrationStartedEvent struct {
|
||||
hook_resolver.Event
|
||||
// Local files to be hydrated.
|
||||
LocalFiles []*anime.LocalFile `json:"localFiles"`
|
||||
// Media to be hydrated.
|
||||
AllMedia []*anime.NormalizedMedia `json:"allMedia"`
|
||||
}
|
||||
|
||||
// ScanLocalFileHydrationStartedEvent is triggered when a local file's metadata is about to be hydrated.
|
||||
// Prevent default to skip the default hydration and override the hydration.
|
||||
type ScanLocalFileHydrationStartedEvent struct {
|
||||
hook_resolver.Event
|
||||
LocalFile *anime.LocalFile `json:"localFile"`
|
||||
Media *anime.NormalizedMedia `json:"media"`
|
||||
}
|
||||
|
||||
// ScanLocalFileHydratedEvent is triggered when a local file's metadata is hydrated
|
||||
type ScanLocalFileHydratedEvent struct {
|
||||
hook_resolver.Event
|
||||
LocalFile *anime.LocalFile `json:"localFile"`
|
||||
MediaId int `json:"mediaId"`
|
||||
Episode int `json:"episode"`
|
||||
}
|
||||
Reference in New Issue
Block a user