clean Sonarr Queue after its treatment
This commit is contained in:
parent
395a5a8226
commit
600a2adb79
4
pom.xml
4
pom.xml
|
@ -24,11 +24,11 @@
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- most of logic -->
|
<!-- most common logic -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>tv.mangrana</groupId>
|
<groupId>tv.mangrana</groupId>
|
||||||
<artifactId>mangrana-commons</artifactId>
|
<artifactId>mangrana-commons</artifactId>
|
||||||
<version>7.0.0</version>
|
<version>7.1.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- needed for runtime -->
|
<!-- needed for runtime -->
|
||||||
|
|
|
@ -26,6 +26,7 @@ public class QueueFixer {
|
||||||
var distinctRecords = deduplicate(sonarQueue);
|
var distinctRecords = deduplicate(sonarQueue);
|
||||||
var recordsToFix = filterFailedImportsOfIdProblem(distinctRecords);
|
var recordsToFix = filterFailedImportsOfIdProblem(distinctRecords);
|
||||||
recordsToFix.forEach(this::try2FixFailedImport);
|
recordsToFix.forEach(this::try2FixFailedImport);
|
||||||
|
cleanWorkedElementsFromQueue(sonarQueue, recordsToFix);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Record> retrieveQueueRecordsFromSonarr() {
|
private List<Record> retrieveQueueRecordsFromSonarr() {
|
||||||
|
@ -60,10 +61,29 @@ public class QueueFixer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void cleanWorkedElementsFromQueue(List<Record> sonarQueue, List<Record> recordsToFix) {
|
||||||
|
List<String> workedTitles = mapRecord2Title(recordsToFix);
|
||||||
|
List<Integer> recordIds2Delete = filterPresentTitlesFromQueue(sonarQueue, workedTitles);
|
||||||
|
sonarrApiGateway.deleteQueueElements(recordIds2Delete);
|
||||||
|
}
|
||||||
|
|
||||||
private boolean recordsWithImportFailureBecauseIdMatching(Record record) {
|
private boolean recordsWithImportFailureBecauseIdMatching(Record record) {
|
||||||
return record.getStatusMessages().stream()
|
return record.getStatusMessages().stream()
|
||||||
.flatMap(status -> status.getMessages().stream())
|
.flatMap(status -> status.getMessages().stream())
|
||||||
.anyMatch(IMPORT_FAILURE_BECAUSE_MATCHED_BY_ID::equals);
|
.anyMatch(IMPORT_FAILURE_BECAUSE_MATCHED_BY_ID::equals);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<String> mapRecord2Title(List<Record> records) {
|
||||||
|
return records.stream()
|
||||||
|
.map(Record::getTitle)
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Integer> filterPresentTitlesFromQueue(List<Record> sonarQueue, List<String> workedTitles) {
|
||||||
|
return sonarQueue.stream()
|
||||||
|
.filter(r -> workedTitles.contains(r.getTitle()))
|
||||||
|
.map(Record::getId)
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue