Fix verify download link logic, remove the setting

This commit is contained in:
Ben Sarmiento
2024-02-17 15:01:46 +01:00
parent b2067dfb81
commit b4b4ebbc49
5 changed files with 7 additions and 28 deletions

View File

@@ -62,7 +62,9 @@ func MainApp(configPath string) {
log.Named("unrestrict_client"),
)
api := realdebrid.NewRealDebrid(apiClient, unrestrictClient, log.Named("realdebrid"))
downloadClient := http.NewHTTPClient(config.GetToken(), config.GetRetriesUntilFailed(), config.GetDownloadTimeoutSecs(), true, config, log.Named("download_client"))
api := realdebrid.NewRealDebrid(apiClient, unrestrictClient, downloadClient, log.Named("realdebrid"))
premium.MonitorPremiumStatus(api, zurglog)
@@ -76,7 +78,6 @@ func MainApp(configPath string) {
utils.EnsureDirExists("data") // Ensure the data directory exists
torrentMgr := torrent.NewTorrentManager(config, api, workerPool, log.Named("manager"))
downloadClient := http.NewHTTPClient(config.GetToken(), config.GetRetriesUntilFailed(), config.GetDownloadTimeoutSecs(), true, config, log.Named("download_client"))
downloader := universal.NewDownloader(downloadClient)
router := chi.NewRouter()

View File

@@ -21,7 +21,6 @@ type ConfigInterface interface {
EnableRetainRDTorrentName() bool
ShouldIgnoreRenames() bool
ShouldServeFromRclone() bool
ShouldVerifyDownloadLink() bool
ShouldForceIPv6() bool
GetApiTimeoutSecs() int
GetDownloadTimeoutSecs() int
@@ -157,10 +156,6 @@ func (z *ZurgConfig) ShouldServeFromRclone() bool {
return z.ServeFromRclone
}
func (z *ZurgConfig) ShouldVerifyDownloadLink() bool {
return z.VerifyDownloadLink
}
func (z *ZurgConfig) ShouldForceIPv6() bool {
return z.ForceIPv6
}

View File

@@ -234,10 +234,6 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
<td>Serve From Rclone</td>
<td>%t</td>
</tr>
<tr>
<td>Verify Download Link</td>
<td>%t</td>
</tr>
<tr>
<td>Force IPv6</td>
<td>%t</td>
@@ -318,7 +314,6 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
response.Config.GetRetriesUntilFailed(),
response.Config.GetNetworkBufferSize(),
response.Config.ShouldServeFromRclone(),
response.Config.ShouldVerifyDownloadLink(),
response.Config.ShouldForceIPv6(),
response.Config.GetOnLibraryUpdate(),
)

View File

@@ -80,13 +80,6 @@ func (dl *Downloader) DownloadFile(directory, torrentName, fileName string, resp
}
}
if cfg.ShouldServeFromRclone() {
if cfg.ShouldVerifyDownloadLink() {
if !dl.client.CanFetchFirstByte(unrestrict.Download) {
log.Warnf("File %s is not available", fileName)
http.Error(resp, "File is not available", http.StatusInternalServerError)
return
}
}
redirect(resp, req, unrestrict.Download, cfg)
} else {
dl.streamFileToResponse(torrent, file, unrestrict, resp, req, torMgr, cfg, log)
@@ -105,13 +98,6 @@ func (dl *Downloader) DownloadLink(fileName, link string, resp http.ResponseWrit
return
} else {
if cfg.ShouldServeFromRclone() {
if cfg.ShouldVerifyDownloadLink() {
if !dl.client.CanFetchFirstByte(unrestrict.Download) {
log.Warnf("File %s is not available", fileName)
http.Error(resp, "File is not available", http.StatusInternalServerError)
return
}
}
redirect(resp, req, unrestrict.Download, cfg)
} else {
dl.streamFileToResponse(nil, nil, unrestrict, resp, req, torMgr, cfg, log)

View File

@@ -15,13 +15,15 @@ import (
type RealDebrid struct {
client *zurghttp.HTTPClient
unrestrictClient *zurghttp.HTTPClient
downloadClient *zurghttp.HTTPClient
log *logutil.Logger
}
func NewRealDebrid(client, unrestrictClient *zurghttp.HTTPClient, log *logutil.Logger) *RealDebrid {
func NewRealDebrid(client, unrestrictClient, downloadClient *zurghttp.HTTPClient, log *logutil.Logger) *RealDebrid {
return &RealDebrid{
client: client,
unrestrictClient: unrestrictClient,
downloadClient: downloadClient,
log: log,
}
}
@@ -101,7 +103,7 @@ func (rd *RealDebrid) UnrestrictLink(link string, checkFirstByte bool) (*Downloa
return nil, fmt.Errorf("undecodable response: %v", err)
}
if checkFirstByte && !rd.client.CanFetchFirstByte(response.Download) {
if checkFirstByte && !rd.downloadClient.CanFetchFirstByte(response.Download) {
return nil, fmt.Errorf("can't fetch first byte")
}