diff options
author | 2024-06-12 23:02:17 -0400 | |
---|---|---|
committer | 2024-06-13 05:02:17 +0200 | |
commit | e1b74aeb1bd120ac0c337fae9f55943cf7d00a0d (patch) | |
tree | 9e46faac2db988b8a1e2e6fcae775d47a460e8c3 | |
parent | d3d33c72bda0cb6f222b415da075b32f2a60a61d (diff) | |
download | rss-bridge-e1b74aeb1bd120ac0c337fae9f55943cf7d00a0d.tar.gz rss-bridge-e1b74aeb1bd120ac0c337fae9f55943cf7d00a0d.tar.zst rss-bridge-e1b74aeb1bd120ac0c337fae9f55943cf7d00a0d.zip |
[GameBananaBridge] Add categories and more detailed updates (#4129)
* [GameBananaBridge] Add mod categorie(s)
* [GameBananaBridge] Include full update changelog details
-rw-r--r-- | bridges/GameBananaBridge.php | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/bridges/GameBananaBridge.php b/bridges/GameBananaBridge.php index 9a0a0686..88b19ef0 100644 --- a/bridges/GameBananaBridge.php +++ b/bridges/GameBananaBridge.php @@ -40,7 +40,7 @@ class GameBananaBridge extends BridgeAbstract $json_list = json_decode($api_response, true); // Get first page mod list $url = 'https://api.gamebanana.com/Core/Item/Data?itemtype[]=Game&fields[]=name&itemid[]=' . $this->getInput('gid'); - $fields = 'name,Owner().name,text,screenshots,Files().aFiles(),date,Url().sProfileUrl(),udate,Updates().aLatestUpdates()'; + $fields = 'name,Owner().name,text,screenshots,Files().aFiles(),date,Url().sProfileUrl(),udate,Updates().aLatestUpdates(),Category().name,RootCategory().name'; foreach ($json_list as $element) { // Build api request to minimize API calls $mid = $element[1]; $url .= '&itemtype[]=Mod&fields[]=' . $fields . '&itemid[]=' . $mid; @@ -52,11 +52,18 @@ class GameBananaBridge extends BridgeAbstract array_shift($json_list); // Take title from API request and remove from json foreach ($json_list as $element) { + // Trashed mod IDs are still picked up and return null; skip + if ($element[0] == null) { + continue; + } + $item = []; $item['uri'] = $element[6]; $item['comments'] = $item['uri'] . '#PostsListModule'; $item['title'] = $element[0]; $item['author'] = $element[1]; + $item['categories'][] = $element[9]; + $item['categories'][] = $element[10]; $item['timestamp'] = $element[5]; if ($this->getInput('updates')) { @@ -74,9 +81,21 @@ class GameBananaBridge extends BridgeAbstract foreach ($img_list as $img_element) { $item['content'] .= '<img src="https://images.gamebanana.com/img/ss/mods/' . $img_element['_sFile'] . '"/>'; } + + // Get updates from element[8], if applicable if ($this->getInput('updates') && sizeof($element[8]) > 0) { - $item['content'] .= '<br><strong>Update: ' . $element[8][0]['_sTitle']; - $item['content'] .= '</strong><br>' . $element[8][0]['_sText'] . '<hr>'; + $update = $element[8][0]; + $item['content'] .= '<br><strong>Update:</strong> ' . $update['_sTitle']; + if ($update['_sText'] != '') { + $item['content'] .= '<br>' . $update['_sText']; + } + foreach ($update['_aChangeLog'] as $change) { + if ($change['cat'] == '') { + $change['cat'] = 'Change'; + } + $item['content'] .= '<br><em>' . $change['cat'] . '</em>: ' . $change['text']; + } + $item['content'] .= '<br><hr>'; } $item['content'] .= '<br>' . $element[2]; |