From 71a445b38aba084aebd733cb951c54a58a19e85b Mon Sep 17 00:00:00 2001 From: DariusIII Date: Fri, 2 Nov 2018 15:31:29 +0100 Subject: [PATCH] Update Releases class queries to include tags, update ApiTransformer to use them --- Blacklight/Releases.php | 29 ++++++++++++++++++++++------- Changelog | 1 + app/Transformers/ApiTransformer.php | 3 +++ 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/Blacklight/Releases.php b/Blacklight/Releases.php index 1093b8d00..5434134a0 100755 --- a/Blacklight/Releases.php +++ b/Blacklight/Releases.php @@ -71,7 +71,7 @@ class Releases { $orderBy = $this->getBrowseOrder($orderBy); $qry = sprintf( - "SELECT r.*, cp.title AS parent_category, c.title AS sub_category, + "SELECT r.*, cp.title AS parent_category, c.title AS sub_category, GROUP_CONCAT(tt.tag_name SEPARATOR ',') AS tags, CONCAT(cp.title, ' > ', c.title) AS category_name, CONCAT(cp.id, ',', c.id) AS category_ids, df.failed AS failed, @@ -91,6 +91,7 @@ class Releases ) r LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN categories cp ON cp.id = c.parentid + LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id LEFT OUTER JOIN videos v ON r.videos_id = v.id LEFT OUTER JOIN tv_episodes tve ON r.tv_episodes_id = tve.id LEFT OUTER JOIN video_data re ON re.releases_id = r.id @@ -387,6 +388,7 @@ class Releases groups.name AS group_name, rn.releases_id AS nfoid, re.releases_id AS reid, tve.firstaired, + GROUP_CONCAT(tt.tag_name SEPARATOR ',') AS tags, df.failed AS failed FROM releases r LEFT OUTER JOIN video_data re ON re.releases_id = r.id @@ -396,6 +398,7 @@ class Releases LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN categories cp ON cp.id = c.parentid LEFT OUTER JOIN dnzb_failures df ON df.release_id = r.id + LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id WHERE %s %s AND r.nzbstatus = %d AND r.categories_id BETWEEN %d AND %d @@ -652,7 +655,8 @@ class Releases re.releases_id AS reid, cp.id AS categoryparentid, v.tvdb, v.trakt, v.tvrage, v.tvmaze, v.imdb, v.tmdb, - tve.firstaired + tve.firstaired, + GROUP_CONCAT(tt.tag_name SEPARATOR ',') AS tags FROM releases r LEFT OUTER JOIN video_data re ON re.releases_id = r.id LEFT OUTER JOIN videos v ON r.videos_id = v.id @@ -662,6 +666,7 @@ class Releases LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN categories cp ON cp.id = c.parentid LEFT OUTER JOIN dnzb_failures df ON df.release_id = r.id + LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id %s", $this->getConcatenatedCategoryIDs(), $whereSql @@ -735,7 +740,8 @@ class Releases g.name AS group_name, cp.id AS categoryparentid, v.tvdb, v.trakt, v.tvrage, v.tvmaze, v.imdb, v.tmdb, - tve.firstaired, tve.title, tve.series, tve.episode + tve.firstaired, tve.title, tve.series, tve.episode, + GROUP_CONCAT(tt.tag_name SEPARATOR ',') AS tags FROM releases r LEFT OUTER JOIN videos v ON r.videos_id = v.id LEFT OUTER JOIN tv_episodes tve ON r.tv_episodes_id = tve.id @@ -743,6 +749,7 @@ class Releases LEFT JOIN groups g ON g.id = r.groups_id LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN categories cp ON cp.id = c.parentid + LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id %s", $this->getConcatenatedCategoryIDs(), $whereSql @@ -871,7 +878,8 @@ class Releases %s AS category_ids, g.name AS group_name, rn.releases_id AS nfoid, - re.releases_id AS reid + re.releases_id AS reid, + GROUP_CONCAT(tt.tag_name SEPARATOR ',') AS tags FROM releases r LEFT OUTER JOIN videos v ON r.videos_id = v.id AND v.type = 0 LEFT OUTER JOIN tv_info tvi ON v.id = tvi.videos_id @@ -881,6 +889,7 @@ class Releases LEFT JOIN groups g ON g.id = r.groups_id LEFT OUTER JOIN video_data re ON re.releases_id = r.id LEFT OUTER JOIN release_nfos rn ON rn.releases_id = r.id + LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id %s", $this->getConcatenatedCategoryIDs(), $whereSql @@ -1005,7 +1014,8 @@ class Releases tve.series, tve.episode, tve.se_complete, tve.title, tve.firstaired, cp.title AS parent_category, c.title AS sub_category, CONCAT(cp.title, ' > ', c.title) AS category_name, %s AS category_ids, - g.name AS group_name + g.name AS group_name, + GROUP_CONCAT(tt.tag_name SEPARATOR ',') AS tags FROM releases r LEFT OUTER JOIN videos v ON r.videos_id = v.id AND v.type = 0 LEFT OUTER JOIN tv_info tvi ON v.id = tvi.videos_id @@ -1013,6 +1023,7 @@ class Releases LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN categories cp ON cp.id = c.parentid LEFT JOIN groups g ON g.id = r.groups_id + LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id %s", $this->getConcatenatedCategoryIDs(), $whereSql @@ -1074,13 +1085,15 @@ class Releases %s AS category_ids, g.name AS group_name, rn.releases_id AS nfoid, - re.releases_id AS reid + re.releases_id AS reid, + GROUP_CONCAT(tt.tag_name SEPARATOR ',') AS tags FROM releases r LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN categories cp ON cp.id = c.parentid LEFT JOIN groups g ON g.id = r.groups_id LEFT OUTER JOIN release_nfos rn ON rn.releases_id = r.id LEFT OUTER JOIN releaseextrafull re ON re.releases_id = r.id + LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id %s", $this->getConcatenatedCategoryIDs(), $whereSql @@ -1147,13 +1160,15 @@ class Releases concat(cp.title, ' > ', c.title) AS category_name, %s AS category_ids, g.name AS group_name, - rn.releases_id AS nfoid + rn.releases_id AS nfoid, + GROUP_CONCAT(tt.tag_name SEPARATOR ',') AS tags FROM releases r LEFT JOIN movieinfo m ON m.id = r.movieinfo_id LEFT JOIN groups g ON g.id = r.groups_id LEFT JOIN categories c ON c.id = r.categories_id LEFT JOIN categories cp ON cp.id = c.parentid LEFT OUTER JOIN release_nfos rn ON rn.releases_id = r.id + LEFT JOIN tagging_tagged tt ON tt.taggable_id = r.id %s", $this->getConcatenatedCategoryIDs(), $whereSql diff --git a/Changelog b/Changelog index 1e3636577..505fa9525 100755 --- a/Changelog +++ b/Changelog @@ -1,4 +1,5 @@ 2018-11-02 DariusIII + * Chg: Update Releases class queries to include tags, update ApiTransformer to use them * Chg: Add category tag constants and use them in categorization * Chg: Update ouput messages formatting for TV processing * Chg: Update ReleaseRemover messages output diff --git a/app/Transformers/ApiTransformer.php b/app/Transformers/ApiTransformer.php index b3443dbf5..f4c8e77b5 100644 --- a/app/Transformers/ApiTransformer.php +++ b/app/Transformers/ApiTransformer.php @@ -34,6 +34,7 @@ class ApiTransformer extends TransformerAbstract 'url' => url('/').'/getnzb?id='.$releases->guid.'.nzb'.'&i='.$this->user->id.'&r='.$this->user->api_token, 'category' => $releases->categories_id, 'category_name' => $releases->category_name, + 'tags' => $releases->tags ?? $this->null(), 'added' => Carbon::parse($releases->adddate)->toRssString(), 'size' => $releases->size, 'files' => $releases->totalpart, @@ -56,6 +57,7 @@ class ApiTransformer extends TransformerAbstract 'url' => url('/').'/getnzb?id='.$releases->guid.'.nzb'.'&i='.$this->user->id.'&r='.$this->user->api_token, 'category' => $releases->categories_id, 'category_name' => $releases->category_name, + 'tags' => $releases->tags ?? $this->null(), 'added' => Carbon::parse($releases->adddate)->toRssString(), 'size' => $releases->size, 'files' => $releases->totalpart, @@ -84,6 +86,7 @@ class ApiTransformer extends TransformerAbstract 'url' => url('/').'/getnzb?id='.$releases->guid.'.nzb'.'&i='.$this->user->id.'&r='.$this->user->api_token, 'category' => $releases->categories_id, 'category_name' => $releases->category_name, + 'tags' => $releases->tags ?? $this->null(), 'added' => Carbon::parse($releases->adddate)->toRssString(), 'size' => $releases->size, 'files' => $releases->totalpart,