Fix Repair checks. Handle false positives

This commit is contained in:
Mukhtar Akere
2025-01-23 01:35:28 +01:00
parent 74a55149fc
commit 0b1c1af8b8
5 changed files with 104 additions and 37 deletions

View File

@@ -76,7 +76,7 @@
function getStateColor(state) {
const stateColors = {
'downloading': 'bg-primary',
'pausedUP': 'bg-success',
'pausedup': 'bg-success',
'error': 'bg-danger',
};
return stateColors[state?.toLowerCase()] || 'bg-secondary';

View File

@@ -59,7 +59,7 @@
submitBtn.disabled = true;
submitBtn.innerHTML = '<span class="spinner-border spinner-border-sm me-2"></span>Repairing...';
let mediaIds = document.getElementById('mediaIds').value.split(',').map(id => id.trim());
try {
const response = await fetch('/internal/repair', {
method: 'POST',
@@ -68,7 +68,7 @@
},
body: JSON.stringify({
arr: document.getElementById('arrSelect').value,
mediaIds: document.getElementById('mediaIds').value.split(',').map(id => id.trim()),
mediaIds: mediaIds,
async: document.getElementById('isAsync').checked
})
});
@@ -77,7 +77,6 @@
const result = await response.json();
alert('Repair process initiated successfully!');
document.getElementById('mediaIds').value = '';
} catch (error) {
alert(`Error starting repair: ${error.message}`);
} finally {

View File

@@ -40,9 +40,9 @@ type ContentResponse struct {
}
type RepairRequest struct {
ArrName string `json:"arr"`
TVIds string `json:"tvIds"`
Async bool `json:"async"`
ArrName string `json:"arr"`
MediaIds []string `json:"mediaIds"`
Async bool `json:"async"`
}
//go:embed templates/*
@@ -174,10 +174,6 @@ func (u *uiHandler) handleRepairMedia(w http.ResponseWriter, r *http.Request) {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
tvids := []string{""}
if req.TVIds != "" {
tvids = strings.Split(req.TVIds, ",")
}
_arr := u.qbit.Arrs.Get(req.ArrName)
arrs := make([]*arr.Arr, 0)
@@ -192,9 +188,14 @@ func (u *uiHandler) handleRepairMedia(w http.ResponseWriter, r *http.Request) {
return
}
mediaIds := req.MediaIds
if len(mediaIds) == 0 {
mediaIds = []string{""}
}
if req.Async {
for _, a := range arrs {
for _, tvId := range tvids {
for _, tvId := range mediaIds {
go func() {
err := a.Repair(tvId)
if err != nil {
@@ -209,7 +210,7 @@ func (u *uiHandler) handleRepairMedia(w http.ResponseWriter, r *http.Request) {
var errs []error
for _, a := range arrs {
for _, tvId := range tvids {
for _, tvId := range mediaIds {
if err := a.Repair(tvId); err != nil {
errs = append(errs, err)
}