Fix issue on downloads

This commit is contained in:
Ben Sarmiento
2024-01-31 22:39:42 +01:00
parent cdb04fcf52
commit 0810e8203f
5 changed files with 240 additions and 192 deletions

View File

@@ -68,185 +68,204 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
}
out := `<table border="1px">
<tr>
<th colspan="3">zurg</th>
</tr>
<tr>
<td>Version</td>
<td colspan="2">%s</td>
</tr>
<tr>
<td>Built At</td>
<td colspan="2">%s</td>
</tr>
<tr>
<td>Git Commit</td>
<td colspan="2">%s</td>
</tr>
<tr>
<td>HTML</td>
<td colspan="2"><a href="%s">%s</a></td>
</tr>
<tr>
<td>DAV</td>
<td colspan="2"><a href="%s">%s</a></td>
</tr>
<tr>
<td>Infuse</td>
<td colspan="2"><a href="%s">%s</a></td>
</tr>
<tr>
<td>Logs</td>
<td colspan="2"><a href="%s">%s</a></td>
</tr>
<tr>
<td>Memory Allocation</td>
<td colspan="2">%d MB</td>
</tr>
<tr>
<td>Total Memory Allocated</td>
<td colspan="2">%d MB</td>
</tr>
<tr>
<td>System Memory</td>
<td colspan="2">%d MB</td>
</tr>
<tr>
<td>Number of GC Cycles</td>
<td colspan="2">%d</td>
</tr>
<tr>
<td>Process ID</td>
<td colspan="2">%d</td>
</tr>
<tr>
<td rowspan="3">Sponsor Zurg</td>
<td>Patreon</td>
<tr>
<th colspan="3">zurg</th>
</tr>
<tr>
<td>Version</td>
<td colspan="2">%s</td>
</tr>
<tr>
<td>Built At</td>
<td colspan="2">%s</td>
</tr>
<tr>
<td>Git Commit</td>
<td colspan="2">%s</td>
</tr>
<tr>
<td>HTML</td>
<td colspan="2"><a href="%s">%s</a></td>
</tr>
<tr>
<td>DAV</td>
<td colspan="2"><a href="%s">%s</a></td>
</tr>
<tr>
<td>Infuse</td>
<td colspan="2"><a href="%s">%s</a></td>
</tr>
<tr>
<td>Logs</td>
<td colspan="2"><a href="%s">%s</a></td>
</tr>
<tr>
<td>Memory Allocation</td>
<td colspan="2">%d MB</td>
</tr>
<tr>
<td>Total Memory Allocated</td>
<td colspan="2">%d MB</td>
</tr>
<tr>
<td>System Memory</td>
<td colspan="2">%d MB</td>
</tr>
<tr>
<td>Number of GC Cycles</td>
<td colspan="2">%d</td>
</tr>
<tr>
<td>Process ID</td>
<td colspan="2">%d</td>
</tr>
<tr>
<td rowspan="3">Sponsor Zurg</td>
<td>Patreon</td>
<td><a href="%s">%s</a></td>
</tr>
<tr>
<td>Github</td>
</tr>
<tr>
<td>Github</td>
<td><a href="%s">%s</a></td>
</tr>
<tr>
<td>Paypal</td>
</tr>
<tr>
<td>Paypal</td>
<td><a href="%s">%s</a></td>
</tr>
<tr>
<td rowspan="6">User Info</td>
<td>Username</td>
</tr>
<tr>
<td rowspan="6">User Info</td>
<td>Username</td>
<td>%s</td>
</tr>
<tr>
<td>Points</td>
</tr>
<tr>
<td>Points</td>
<td>%d</td>
</tr>
<tr>
<td>Locale</td>
</tr>
<tr>
<td>Locale</td>
<td>%s</td>
</tr>
<tr>
<td>Type</td>
</tr>
<tr>
<td>Type</td>
<td>%s</td>
</tr>
<tr>
<td>Premium</td>
</tr>
<tr>
<td>Premium</td>
<td>%d days</td>
</tr>
<tr>
<td>Expiration</td>
</tr>
<tr>
<td>Expiration</td>
<td>%s</td>
</tr>
<tr>
<td rowspan="20">Config</td>
<td>Version</td>
<td>%s</td>
</tr>
<tr>
<td>Token</td>
</tr>
<tr>
<td rowspan="22">Config</td>
<td>Version</td>
<td>%s</td>
</tr>
<tr>
<td>Host</td>
</tr>
<tr>
<td>Token</td>
<td>%s</td>
</tr>
<tr>
<td>Port</td>
</tr>
<tr>
<td>Host</td>
<td>%s</td>
</tr>
<tr>
<td>Workers</td>
</tr>
<tr>
<td>Port</td>
<td>%s</td>
</tr>
<tr>
<td>Workers</td>
<td>%d running / %d free / %d total</td>
</tr>
<tr>
<td>Refresh Every...</td>
</tr>
<tr>
<td>Refresh Every...</td>
<td>%d secs</td>
</tr>
<tr>
<td>Retain RD Torrent Name</td>
</tr>
<tr>
<td>Retain RD Torrent Name</td>
<td>%t</td>
</tr>
<tr>
<td>Retain Folder Name Extension</td>
</tr>
<tr>
<td>Retain Folder Name Extension</td>
<td>%t</td>
</tr>
<tr>
<td>Can Repair</td>
</tr>
<tr>
<td>Can Repair</td>
<td>%t</td>
</tr>
<tr>
<td>Delete Rar Files</td>
</tr>
<tr>
<td>Repair Every...</td>
<td>%d mins</td>
</tr>
<tr>
<td>Delete Rar Files</td>
<td>%t</td>
</tr>
<tr>
<td>API Timeout</td>
</tr>
<tr>
<td>API Timeout</td>
<td>%d secs</td>
</tr>
<tr>
<td>Download Timeout</td>
</tr>
<tr>
<td>Download Timeout</td>
<td>%d secs</td>
</tr>
<tr>
<td>Use Download Mount</td>
</tr>
<tr>
<td>Use Download Mount</td>
<td>%t</td>
</tr>
<tr>
<td>Rate Limit Sleep for...</td>
</tr>
<tr>
<td>Refresh Download Mount Every...</td>
<td>%d mins</td>
</tr>
<tr>
<td>Rate Limit Sleep for...</td>
<td>%d secs</td>
</tr>
<tr>
<td>Retries Until Failed</td>
</tr>
<tr>
<td>Retries Until Failed</td>
<td>%d</td>
</tr>
<tr>
<td>Network Buffer Size</td>
</tr>
<tr>
<td>Network Buffer Size</td>
<td>%d bytes</td>
</tr>
<tr>
<td>Serve From Rclone</td>
</tr>
<tr>
<td>Serve From Rclone</td>
<td>%t</td>
</tr>
<tr>
<td>Verify Download Link</td>
</tr>
<tr>
<td>Verify Download Link</td>
<td>%t</td>
</tr>
<tr>
<td>Force IPv6</td>
</tr>
<tr>
<td>Force IPv6</td>
<td>%t</td>
</tr>
<tr>
<td>On Library Update</td>
</tr>
<tr>
<td>On Library Update</td>
<td>%s</td>
</tr>
<tr>
<td>Utilities</td>
</tr>
<tr>
<td>Utilities</td>
<td colspan="2">
<button type="button" onclick="window.open('/logs/upload')">Upload logs</button>
<button type="button" onclick="window.open('/reboot/worker')">Reboot worker pool</button>
<button type="button" onclick="window.open('/reboot/refresh')">Reboot refresh worker</button>
<button type="button" onclick="window.open('/reboot/repair')">Reboot repair worker</button>
</td>
</tr>
<form method="get" action="/logs/upload">
<input type="submit" value="Upload logs" />
</form>
<form method="post" action="/reboot/worker">
<input type="submit" value="Reboot worker pool" />
</form>
<form method="post" action="/reboot/refresh">
<input type="submit" value="Reboot refresh worker" />
</form>
<form method="post" action="/reboot/repair">
<input type="submit" value="Reboot repair worker" />
</form>
<form method="post" action="/remount/downloads">
<input type="submit" value="Remount downloads" />
</form>
</td>
</tr>
</table>
`
out = fmt.Sprintf(out,
@@ -289,10 +308,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.ShouldDeleteRarFiles(),
response.Config.GetApiTimeoutSecs(),
response.Config.GetDownloadTimeoutSecs(),
response.Config.EnableDownloadMount(),
response.Config.GetDownloadsEveryMins(),
response.Config.GetRateLimitSleepSecs(),
response.Config.GetRetriesUntilFailed(),
response.Config.GetNetworkBufferSize(),
@@ -306,24 +327,34 @@ func (zr *Handlers) handleHome(resp http.ResponseWriter, req *http.Request) {
}
func (zr *Handlers) handleRebootWorkerPool(resp http.ResponseWriter, req *http.Request) {
// zr.workerPool.Release()
resp.Header().Set("Refresh", "2; url=/")
zr.workerPool.Release()
zr.workerPool.Reboot()
zr.log.Infof("Rebooted worker pool")
fmt.Fprint(resp, "Rebooted worker pool, please close this window")
fmt.Fprint(resp, "Rebooting worker pool...")
}
func (zr *Handlers) handleRebootRefreshPool(resp http.ResponseWriter, req *http.Request) {
func (zr *Handlers) handleRebootRefreshWorker(resp http.ResponseWriter, req *http.Request) {
resp.Header().Set("Refresh", "2; url=/")
zr.torMgr.RefreshKillSwitch <- struct{}{}
zr.torMgr.StartRefreshJob()
zr.log.Infof("Rebooted refresh worker")
fmt.Fprint(resp, "Rebooted refresh worker, please close this window")
fmt.Fprint(resp, "Rebooting refresh worker...")
}
func (zr *Handlers) handleRebootRepairPool(resp http.ResponseWriter, req *http.Request) {
func (zr *Handlers) handleRebootRepairWorker(resp http.ResponseWriter, req *http.Request) {
resp.Header().Set("Refresh", "2; url=/")
zr.torMgr.RepairKillSwitch <- struct{}{}
zr.torMgr.StartRepairJob()
zr.log.Infof("Rebooted repair worker")
fmt.Fprint(resp, "Rebooted repair worker, please close this window")
fmt.Fprint(resp, "Rebooting repair worker...")
}
func (zr *Handlers) handleRemountDownloads(resp http.ResponseWriter, req *http.Request) {
resp.Header().Set("Refresh", "2; url=/")
zr.torMgr.RemountTrigger <- struct{}{}
zr.log.Infof("Triggered remount of downloads")
fmt.Fprint(resp, "Remounting downloads...")
}
func bToMb(b uint64) uint64 {