Sonarr Cleanup

Ab und an kann Sonarr einen Download nicht selbstständig beenden und markiert ihn zum manuellen Post-Processing, d.h. der Nutzer wird aufgefordert, selbst zu entscheiden, was mit dem Download passieren soll.

I.d.R. löscht der Nutzer den Download und setzt die Quelle auf die Blacklist. Bis dahin wartet Sonarr allerdings auf eine Aktion des Nutzers, sodass die erwartete Serienfolge nie in der Filmdatenbank ankommt.

Mit der Automatisierung, die Sonarr seinen Nutzern verspricht, hat das nichts zu tun. Deshalb habe ich dieses kleine PHP-Script erstellt, das alle Downloads mit Warnung abbricht und auf die Blacklist setzt. Sonarr sucht dann selbstständig nach einem Ersatz-Download.

#!/usr/bin/php
<?php

$API = '9aa2fba5dbeb4795b601d3950c61f192'; // add your api key here
$HOST= 'http://127.0.0.1:8989'; // add your sonarr host here

// DO NOT CHANGE BELOW HERE

print_r("Getting queue from Sonarr");
if ($queue = json_decode(file_get_contents($HOST.'/api/queue/?apikey='.$API))) {
print_r("\nFound ".count($queue)." downloads in queue");
if (count($queue)) {
$done = array();
foreach ($queue as $entry) {
if (isset($entry->status) && ($entry->status == 'Completed') && isset($entry->trackedDownloadStatus) && ($entry->trackedDownloadStatus == 'Warning')) {
if (isset($entry->title) && strlen($entry->title)) {
if (!in_array($entry->title,$done)) {
$done[] = $entry->title;
print_r("\nProcessing ".$entry->title);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $HOST.'/api/queue/'.$entry->id.'?blacklist=true&apikey='.$API);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_exec($curl);
curl_close($curl);
}
}
}
}
print_r("\n");
}
} else
echo "Error connection to API.\n";

?>

Das PHP-Script kann entweder lokal oder über eine Web-Schnittstelle per Cronjob ausgeführt werden. Natürlich muss vorher der zur eigenen Installation passende API-Key eingetragen werden. Wer das Script remote ausführen will (nicht empfohlen), muss auch die IP-Adresse anpassen.

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.