Add repair all trigger

This commit is contained in:
Ben Adrian Sarmiento
2024-06-14 14:25:51 +02:00
parent 92aaab875c
commit b1427c2d63
6 changed files with 52 additions and 32 deletions

View File

@@ -206,21 +206,13 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
<td>Can Repair</td>
<td>%t</td>
</tr>
<tr>
<td>Repair Every...</td>
<td>%d mins</td>
</tr>
<tr>
<td>Action to take on RAR'ed torrents</td>
<td>%s</td>
</tr>
<tr>
<td>API Timeout</td>
<td>%d secs</td>
</tr>
<tr>
<td>Download Timeout</td>
<td>%d secs</td>
<td>Repair Every...</td>
<td>%d mins</td>
</tr>
<tr>
<td>Refresh Download Mount Every...</td>
@@ -230,6 +222,14 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
<td>Dump Torrents Every...</td>
<td>%d mins</td>
</tr>
<tr>
<td>API Timeout</td>
<td>%d secs</td>
</tr>
<tr>
<td>Download Timeout</td>
<td>%d secs</td>
</tr>
<tr>
<td>Rate Limit Sleep for...</td>
<td>%d secs</td>
@@ -286,6 +286,9 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
<form method="post" action="/torrents/analyze">
<input type="submit" value="Analyze torrents" />
</form>
<form method="post" action="/torrents/repair">
<input type="submit" value="Repair torrents" />
</form>
</td>
</tr>
</table>
@@ -331,12 +334,12 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
response.Config.EnableRetainRDTorrentName(),
response.Config.EnableRetainFolderNameExtension(),
response.Config.EnableRepair(),
response.Config.GetRepairEveryMins(),
response.Config.GetRarAction(),
response.Config.GetApiTimeoutSecs(),
response.Config.GetDownloadTimeoutSecs(),
response.Config.GetRepairEveryMins(),
response.Config.GetDownloadsEveryMins(),
response.Config.GetDumpTorrentsEveryMins(),
response.Config.GetApiTimeoutSecs(),
response.Config.GetDownloadTimeoutSecs(),
response.Config.GetRateLimitSleepSecs(),
response.Config.GetRetriesUntilFailed(),
response.Config.GetNetworkBufferSize(),
@@ -360,7 +363,7 @@ func (zr *Handlers) handleRebootWorkerPool(resp http.ResponseWriter, req *http.R
func (zr *Handlers) handleRebootRefreshWorker(resp http.ResponseWriter, req *http.Request) {
resp.Header().Set("Refresh", "2; url=/")
zr.torMgr.RefreshKillSwitch <- struct{}{}
zr.torMgr.RefreshWorkerKillSwitch <- struct{}{}
zr.torMgr.StartRefreshJob()
zr.log.Infof("Rebooted refresh worker")
fmt.Fprint(resp, "Rebooting refresh worker...")
@@ -368,7 +371,7 @@ func (zr *Handlers) handleRebootRefreshWorker(resp http.ResponseWriter, req *htt
func (zr *Handlers) handleRebootRepairWorker(resp http.ResponseWriter, req *http.Request) {
resp.Header().Set("Refresh", "2; url=/")
zr.torMgr.RepairKillSwitch <- struct{}{}
zr.torMgr.RepairWorkerKillSwitch <- struct{}{}
zr.torMgr.StartRepairJob()
zr.log.Infof("Rebooted repair worker")
fmt.Fprint(resp, "Rebooting repair worker...")
@@ -395,6 +398,13 @@ func (zr *Handlers) handleAnalyzeTorrents(resp http.ResponseWriter, req *http.Re
fmt.Fprint(resp, "Analyzing all torrents...")
}
func (zr *Handlers) handleTriggerRepairAll(resp http.ResponseWriter, req *http.Request) {
resp.Header().Set("Refresh", "2; url=/")
zr.torMgr.RepairAllTrigger <- struct{}{}
zr.log.Infof("Triggered repair of all torrents")
fmt.Fprint(resp, "Repairing all torrents...")
}
func bToMb(b uint64) uint64 {
return b / 1024 / 1024
}

View File

@@ -56,6 +56,7 @@ func AttachHandlers(router *chi.Mux, downloader *universal.Downloader, torMgr *t
router.Post("/downloads/remount", hs.handleRemountDownloads)
router.Post("/torrents/dump", hs.handleDumpTorrents)
router.Post("/torrents/analyze", hs.handleAnalyzeTorrents)
router.Post("/torrents/repair", hs.handleTriggerRepairAll)
// version
router.Get(fmt.Sprintf("/{mountType}/%s", version.FILE), hs.handleVersionFile)
router.Head(fmt.Sprintf("/{mountType}/%s", version.FILE), hs.handleCheckVersionFile)