This commit is contained in:
5rahim
2026-04-15 15:39:40 +02:00
parent 2fdeb35912
commit 33156178d8
6 changed files with 43 additions and 14 deletions

View File

@@ -6,7 +6,7 @@ import (
)
const (
Version = "3.6.0-alpha.5"
Version = "3.6.0"
VersionName = "Kagero"
GcTime = time.Minute * 30
ConfigFileName = "config.toml"

View File

@@ -6,6 +6,7 @@ import (
"seanime/internal/extension"
hibiketorrent "seanime/internal/extension/hibike/torrent"
"seanime/internal/library/anime"
"seanime/internal/util"
"seanime/internal/util/limiter"
"sync"
"time"
@@ -93,6 +94,11 @@ func (ad *AutoDownloader) fetchTorrentsFromProviders(
wg.Add(1)
go func(pExt extension.AnimeTorrentProviderExtension) {
defer wg.Done()
defer util.HandlePanicInModuleThen("autodownloader/fetchTorrentsFromProviders/provider", func() {
ad.logger.Error().
Str("providerId", pExt.GetID()).
Msg("autodownloader: Recovered from torrent provider panic")
})
// Set up a rate limiter for a single provider
rateLimiter := limiter.NewLimiter(time.Second, 2) // 2 reqs per sec
@@ -171,6 +177,12 @@ func (ad *AutoDownloader) fetchTorrentsFromProviders(
for releaseGroup, resolutions := range releaseGroupToResolutions {
go func(rg string, res []string) {
defer pWg.Done()
defer util.HandlePanicInModuleThen("autodownloader/fetchTorrentsFromProviders/search", func() {
ad.logger.Error().
Str("providerId", pExt.GetID()).
Str("releaseGroup", rg).
Msg("autodownloader: Recovered from torrent provider search panic")
})
foundForGroup := false
// For each release group, search with a specific resolution

View File

@@ -18,6 +18,8 @@ type TestHarness struct {
SearchResults []*hibiketorrent.AnimeTorrent
GetLatestResults []*hibiketorrent.AnimeTorrent
Database *db.Database
Providers map[string]hibiketorrent.AnimeProvider
DefaultProvider string
}
type TestTorrentProvider struct {
@@ -68,15 +70,22 @@ func (f *TestHarness) New(t *testing.T) *AutoDownloader {
extensionBankRef := util.NewRef(extension.NewUnifiedBank())
// Test extension
provider := TestTorrentProvider{harness: f}
ext := extension.NewAnimeTorrentProviderExtension(&extension.Extension{
ID: "fake",
Type: extension.TypeAnimeTorrentProvider,
Name: "Test Provider",
}, provider)
providers := f.Providers
if len(providers) == 0 {
providers = map[string]hibiketorrent.AnimeProvider{
"fake": TestTorrentProvider{harness: f},
}
}
extensionBankRef.Get().Set("fake", ext)
for id, provider := range providers {
ext := extension.NewAnimeTorrentProviderExtension(&extension.Extension{
ID: id,
Type: extension.TypeAnimeTorrentProvider,
Name: id,
}, provider)
extensionBankRef.Get().Set(id, ext)
}
metadataProvider := metadata_provider.NewProvider(&metadata_provider.NewProviderImplOptions{
Logger: logger,
@@ -92,6 +101,14 @@ func (f *TestHarness) New(t *testing.T) *AutoDownloader {
})
metadataProviderRef := util.NewRef[metadata_provider.Provider](metadataProvider)
defaultProvider := f.DefaultProvider
if defaultProvider == "" {
defaultProvider = "fake"
for id := range providers {
defaultProvider = id
break
}
}
//torrentClientRepository := torrent_client.NewRepository(&torrent_client.NewRepositoryOptions{
// Logger: logger,
// QbittorrentClient: &qbittorrent.Client{},
@@ -112,7 +129,7 @@ func (f *TestHarness) New(t *testing.T) *AutoDownloader {
})
ad.SetSettings(&models.AutoDownloaderSettings{
Provider: "fake",
Provider: defaultProvider,
Interval: 15,
Enabled: true,
DownloadAutomatically: false,

View File

@@ -1,12 +1,12 @@
{
"name": "seanime-denshi",
"version": "3.6.0-alpha.4",
"version": "3.6.0-alpha.6",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "seanime-denshi",
"version": "3.6.0-alpha.4",
"version": "3.6.0-alpha.6",
"dependencies": {
"castv2": "^0.1.10",
"electron-log": "^5.4.3",

View File

@@ -1,6 +1,6 @@
{
"name": "seanime-denshi",
"version": "3.6.0-alpha.5",
"version": "3.6.0",
"description": "Electron-based Desktop client for Seanime",
"main": "src/main.js",
"author": "5rahim <talkwithrahim@gmail.com>",

View File

@@ -90,5 +90,5 @@ export function useMainTab(): boolean {
}
}, [socket])
return false
return isMainTab
}