From 1d2949c7bee740b292e5f2447a52343c74a269d8 Mon Sep 17 00:00:00 2001 From: Darko Date: Wed, 23 Sep 2015 10:46:14 +0200 Subject: [PATCH] Improve X-DNZB-Failure headers support. --- newznab/controllers/BasePage.php | 2 +- www/index.php | 1 + www/pages/failed.php | 14 ++++++++------ www/pages/getnzb.php | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/newznab/controllers/BasePage.php b/newznab/controllers/BasePage.php index 85553ae93..11c98dd4c 100644 --- a/newznab/controllers/BasePage.php +++ b/newznab/controllers/BasePage.php @@ -258,7 +258,7 @@ class BasePage

404 - File not found.

%s%s

-

We could not find the above page on our servers.

+

We could not find the above page or file on our servers.

", $this->serverurl, diff --git a/www/index.php b/www/index.php index 6d82e60e2..0a2718e5c 100644 --- a/www/index.php +++ b/www/index.php @@ -78,6 +78,7 @@ switch ($page->page) { break; } case 'api': + case 'failed': case 'getnzb': case 'login': case 'preinfo': diff --git a/www/pages/failed.php b/www/pages/failed.php index dd5e201d0..6717dc03c 100644 --- a/www/pages/failed.php +++ b/www/pages/failed.php @@ -1,22 +1,24 @@ $page->settings]); -$page->users = new Users(); -$page = new Page(); +if (isset($_GET['guid']) && isset($_GET['searchname']) && isset($_GET['userid']) && is_numeric($_GET['userid']) && isset($_GET['rsstoken'])) { + + $page = new Page(); + $releases = new Releases(['Settings' => $page->settings]); + $users = new Users(); -if (isset($_GET['userid']) && is_numeric($_GET['userid']) && isset($_GET['rsstoken']) && isset($_GET['guid'])) { - $rel = $releases->getByGuid($_GET["guid"]); $userid = $_GET['userid']; $rsstoken = $_GET['rsstoken']; + $rel = $releases->getByGuid($_GET['guid']); if (!$rel) { $page->show404(); } - $alt = $releases->getAlternate($rel['guid'], $rel['searchname'], $userid); + $alt = $releases->getAlternate($_GET['guid'], $_GET['searchname'], $userid); if (!$alt) { $page->show404(); } + $url = $page->serverurl . 'getnzb/' . $alt['guid'] . '.nzb' . '&i=' . $userid . '&r=' . $rsstoken; header('Location: ' . $url . ''); } \ No newline at end of file diff --git a/www/pages/getnzb.php b/www/pages/getnzb.php index fc33f682d..fdff57e69 100644 --- a/www/pages/getnzb.php +++ b/www/pages/getnzb.php @@ -123,7 +123,7 @@ header("Content-Length: " . ob_get_length()); header("Content-Type: application/x-nzb"); header("Expires: " . date('r', time() + 31536000)); // Set X-DNZB header data. -header("X-DNZB-Failure: " . $page->serverurl . 'failed/' . '?guid=' . $_GET['id'] . '&userid=' . $uid . '&rsstoken=' . $rssToken); +header("X-DNZB-Failure: " . $page->serverurl . 'failed/' . '?guid=' . $_GET['id'] . '&searchname=' . $relData["searchname"] . '&userid=' . $uid . '&rsstoken=' . $rssToken); header("X-DNZB-Category: " . $relData["category_name"]); header("X-DNZB-Details: " . $page->serverurl . 'details/' . $_GET["id"]); if (!empty($relData['imdbid']) && $relData['imdbid'] > 0) {