{"action":"created","comment":{"url":"https://api.github.com/repos/xbmc/xbmc/pulls/comments/224954605","pull_request_review_id":164457137,"id":224954605,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNDk1NDYwNQ==","diff_hunk":"@@ -0,0 +1,150 @@\n+/*\n+ *  Copyright (C) 2018 Tyler Szabo\n+ *\n+ *  SPDX-License-Identifier: GPL-2.0-or-later\n+ *  See LICENSES/README.md for more information.\n+ */\n+\n+#include \"PlayListXSPF.h\"\n+\n+#include \"utils/log.h\"\n+#include \"utils/URIUtils.h\"\n+#include \"utils/XBMCTinyXML.h\"\n+#include \"URL.h\"\n+\n+using namespace PLAYLIST;\n+\n+/*\n+\n+Specification: http://www.xspf.org/specs/\n+\n+Example:\n+\n+<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n+<playlist xmlns=\"http://xspf.org/ns/0/\" version=\"1\">\n+  <title>KEXP</title>\n+  <trackList>\n+    <track>\n+      <location>http://live-aacplus-64.kexp.org/kexp64.aac</location>\n+      <title>KEXP.ORG 90.3FM - where the music matters</title>\n+      <info>https://kexp.org/</info>\n+      <image>https://www.kexp.org/static/assets/img/logo-white.svg</image>\n+    </track>\n+    <track><location>Relative/Path/To.mp3</location></track>\n+    <track><location>file:///music/song_1.ogg</location></track>\n+    <track><location>file:///music/song_2.flac</location></track>\n+    <track><location>file:///music/song_3.mp3</location></track>\n+  </trackList>\n+</playlist>\n+*/\n+\n+static constexpr char const * LOCATION_TAGNAME = \"location\";\n+static constexpr char const * PLAYLIST_TAGNAME = \"playlist\";\n+static constexpr char const * TITLE_TAGNAME = \"title\";\n+static constexpr char const * TRACK_TAGNAME = \"track\";\n+static constexpr char const * TRACKLIST_TAGNAME = \"trackList\";\n+\n+\n+CPlayListXSPF::CPlayListXSPF(void) = default;\n+\n+CPlayListXSPF::~CPlayListXSPF(void) = default;\n+\n+\n+bool CPlayListXSPF::Load(const std::string& strFileName)\n+{\n+  CXBMCTinyXML xmlDoc;\n+\n+  if (!xmlDoc.LoadFile(strFileName))\n+  {\n+    CLog::Log(LOGERROR, \"Error parsing XML file %s (%d, %d): %s\", strFileName.c_str(), xmlDoc.ErrorRow(), xmlDoc.ErrorCol(), xmlDoc.ErrorDesc());\n+    return false;\n+  }\n+\n+  TiXmlElement* pPlaylist = xmlDoc.FirstChildElement(PLAYLIST_TAGNAME);\n+  if (!pPlaylist)\n+  {\n+    CLog::Log(LOGERROR, \"Error parsing XML file %s: missing root element %s\", strFileName.c_str(), PLAYLIST_TAGNAME);\n+    return false;\n+  }\n+\n+  TiXmlElement* pTracklist = pPlaylist->FirstChildElement(TRACKLIST_TAGNAME);\n+  if (!pTracklist)\n+  {\n+    CLog::Log(LOGERROR, \"Error parsing XML file %s (%d, %d): missing element %s\", strFileName.c_str(), pPlaylist->Row(), pPlaylist->Column(), TRACKLIST_TAGNAME);","path":"xbmc/playlists/PlayListXSPF.cpp","position":73,"original_position":73,"commit_id":"8dceafefda089a884c81fe6e6f903f14e787d150","original_commit_id":"8dceafefda089a884c81fe6e6f903f14e787d150","user":{"login":"Rechi","id":5367567,"node_id":"MDQ6VXNlcjUzNjc1Njc=","avatar_url":"https://avatars3.githubusercontent.com/u/5367567?v=4","gravatar_id":"","url":"https://api.github.com/users/Rechi","html_url":"https://github.com/Rechi","followers_url":"https://api.github.com/users/Rechi/followers","following_url":"https://api.github.com/users/Rechi/following{/other_user}","gists_url":"https://api.github.com/users/Rechi/gists{/gist_id}","starred_url":"https://api.github.com/users/Rechi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rechi/subscriptions","organizations_url":"https://api.github.com/users/Rechi/orgs","repos_url":"https://api.github.com/users/Rechi/repos","events_url":"https://api.github.com/users/Rechi/events{/privacy}","received_events_url":"https://api.github.com/users/Rechi/received_events","type":"User","site_admin":false},"body":"For me a missing element isn't related to any line or column. Does this even give useful locations?","created_at":"2018-10-13T09:15:13Z","updated_at":"2018-10-13T09:32:32Z","html_url":"https://github.com/xbmc/xbmc/pull/14585#discussion_r224954605","pull_request_url":"https://api.github.com/repos/xbmc/xbmc/pulls/14585","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/xbmc/xbmc/pulls/comments/224954605"},"html":{"href":"https://github.com/xbmc/xbmc/pull/14585#discussion_r224954605"},"pull_request":{"href":"https://api.github.com/repos/xbmc/xbmc/pulls/14585"}}},"pull_request":{"url":"https://api.github.com/repos/xbmc/xbmc/pulls/14585","id":222401962,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIyNDAxOTYy","html_url":"https://github.com/xbmc/xbmc/pull/14585","diff_url":"https://github.com/xbmc/xbmc/pull/14585.diff","patch_url":"https://github.com/xbmc/xbmc/pull/14585.patch","issue_url":"https://api.github.com/repos/xbmc/xbmc/issues/14585","number":14585,"state":"open","locked":false,"title":"[playlist] Add support for reading XSPF Playlists","user":{"login":"tylerszabo","id":315343,"node_id":"MDQ6VXNlcjMxNTM0Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/315343?v=4","gravatar_id":"","url":"https://api.github.com/users/tylerszabo","html_url":"https://github.com/tylerszabo","followers_url":"https://api.github.com/users/tylerszabo/followers","following_url":"https://api.github.com/users/tylerszabo/following{/other_user}","gists_url":"https://api.github.com/users/tylerszabo/gists{/gist_id}","starred_url":"https://api.github.com/users/tylerszabo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tylerszabo/subscriptions","organizations_url":"https://api.github.com/users/tylerszabo/orgs","repos_url":"https://api.github.com/users/tylerszabo/repos","events_url":"https://api.github.com/users/tylerszabo/events{/privacy}","received_events_url":"https://api.github.com/users/tylerszabo/received_events","type":"User","site_admin":false},"body":"## Description\r\n<!--- Provide a general summary of your change in the Pull Request title above -->\r\n<!--- Describe your change in detail here -->\r\nAllows for .xspf files to be read as playlists similar to\r\n\r\n## Motivation and Context\r\n<!--- Why is this change required? What problem does it solve? -->\r\n<!--- If it fixes an open issue, please link to the issue here -->\r\nI wanted to get Kodi to read playlists I had made using VLC. I searched to see if the functionality existed and I came upon this thread https://forum.kodi.tv/showthread.php?tid=209910. While I can convert, I thought it'd be handy to have Kodi also support this format (powerful and extensible format).\r\n\r\n## How Has This Been Tested?\r\n<!--- Please describe in detail how you tested your change -->\r\n<!--- Include details of your testing environment, and the tests you ran to -->\r\n<!--- see how your change affects other areas of the code, etc -->\r\nUnit tests were created and run on Windows 10 & Linux.\r\nManual testing was done one Windows 10 64-bit and Ubuntu 18.04.1 64-bit VM.\r\n1. Create a music directory source that contains audio files in subdirectories and playlists that specify paths to those files based on a Windows system's file structure and some from a Linux system's file structure.\r\n2. Add a music directory as a music source\r\n3. Open the file \"Files\" browser for the music source and locate the playlist files\r\n4. Open the various playlist files and observe how they are populated when the file exists in the given filesystem and are playable. (Note that a playlist that includes location paths but no file exists at that location (on that system) are still loaded, but the respective entries are skipped, this is the behavior specified XSPF.)\r\n\r\n## Screenshots (if appropriate):\r\n\r\n## Types of change\r\n<!--- What type of change does your code introduce? Put an `x` in all the boxes that apply like this: [X] -->\r\n- [ ] **Bug fix** (non-breaking change which fixes an issue)\r\n- [ ] **Clean up** (non-breaking change which removes non-working, unmaintained functionality)\r\n- [ ] **Improvement** (non-breaking change which improves existing functionality)\r\n- [x] **New feature** (non-breaking change which adds functionality)\r\n- [ ] **Breaking change** (fix or feature that will cause existing functionality to change)\r\n- [ ] **Cosmetic change** (non-breaking change that doesn't touch code)\r\n- [ ] **None of the above** (please explain below)\r\n\r\n## Checklist:\r\n<!--- Go over all the following points, and put an `X` in all the boxes that apply like this: [X] -->\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n- [x] My code follows the **[Code Guidelines](https://github.com/xbmc/xbmc/blob/master/docs/CODE_GUIDELINES.md)** of this project \r\n- [x] My change requires a change to the documentation, either Doxygen or wiki\r\n- [ ] I have updated the documentation accordingly\r\n- [x] I have read the **[Contributing](https://github.com/xbmc/xbmc/blob/master/docs/CONTRIBUTING.md)** document\r\n- [x] I have added tests to cover my change\r\n- [x] All new and existing tests passed\r\n","created_at":"2018-10-12T09:19:49Z","updated_at":"2018-10-13T09:32:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6c5720d6ffb9096bcea9ee7468c6f7c357db63ec","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1659142,"node_id":"MDU6TGFiZWwxNjU5MTQy","url":"https://api.github.com/repos/xbmc/xbmc/labels/Feature","name":"Feature","color":"0b02e1","default":false},{"id":276934948,"node_id":"MDU6TGFiZWwyNzY5MzQ5NDg=","url":"https://api.github.com/repos/xbmc/xbmc/labels/Music","name":"Music","color":"009800","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/xbmc/xbmc/pulls/14585/commits","review_comments_url":"https://api.github.com/repos/xbmc/xbmc/pulls/14585/comments","review_comment_url":"https://api.github.com/repos/xbmc/xbmc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/xbmc/xbmc/issues/14585/comments","statuses_url":"https://api.github.com/repos/xbmc/xbmc/statuses/8dceafefda089a884c81fe6e6f903f14e787d150","head":{"label":"tylerszabo:xspf_playlist","ref":"xspf_playlist","sha":"8dceafefda089a884c81fe6e6f903f14e787d150","user":{"login":"tylerszabo","id":315343,"node_id":"MDQ6VXNlcjMxNTM0Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/315343?v=4","gravatar_id":"","url":"https://api.github.com/users/tylerszabo","html_url":"https://github.com/tylerszabo","followers_url":"https://api.github.com/users/tylerszabo/followers","following_url":"https://api.github.com/users/tylerszabo/following{/other_user}","gists_url":"https://api.github.com/users/tylerszabo/gists{/gist_id}","starred_url":"https://api.github.com/users/tylerszabo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tylerszabo/subscriptions","organizations_url":"https://api.github.com/users/tylerszabo/orgs","repos_url":"https://api.github.com/users/tylerszabo/repos","events_url":"https://api.github.com/users/tylerszabo/events{/privacy}","received_events_url":"https://api.github.com/users/tylerszabo/received_events","type":"User","site_admin":false},"repo":{"id":152336961,"node_id":"MDEwOlJlcG9zaXRvcnkxNTIzMzY5NjE=","name":"xbmc","full_name":"tylerszabo/xbmc","private":false,"owner":{"login":"tylerszabo","id":315343,"node_id":"MDQ6VXNlcjMxNTM0Mw==","avatar_url":"https://avatars0.githubusercontent.com/u/315343?v=4","gravatar_id":"","url":"https://api.github.com/users/tylerszabo","html_url":"https://github.com/tylerszabo","followers_url":"https://api.github.com/users/tylerszabo/followers","following_url":"https://api.github.com/users/tylerszabo/following{/other_user}","gists_url":"https://api.github.com/users/tylerszabo/gists{/gist_id}","starred_url":"https://api.github.com/users/tylerszabo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tylerszabo/subscriptions","organizations_url":"https://api.github.com/users/tylerszabo/orgs","repos_url":"https://api.github.com/users/tylerszabo/repos","events_url":"https://api.github.com/users/tylerszabo/events{/privacy}","received_events_url":"https://api.github.com/users/tylerszabo/received_events","type":"User","site_admin":false},"html_url":"https://github.com/tylerszabo/xbmc","description":"Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS and Windows.","fork":true,"url":"https://api.github.com/repos/tylerszabo/xbmc","forks_url":"https://api.github.com/repos/tylerszabo/xbmc/forks","keys_url":"https://api.github.com/repos/tylerszabo/xbmc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tylerszabo/xbmc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tylerszabo/xbmc/teams","hooks_url":"https://api.github.com/repos/tylerszabo/xbmc/hooks","issue_events_url":"https://api.github.com/repos/tylerszabo/xbmc/issues/events{/number}","events_url":"https://api.github.com/repos/tylerszabo/xbmc/events","assignees_url":"https://api.github.com/repos/tylerszabo/xbmc/assignees{/user}","branches_url":"https://api.github.com/repos/tylerszabo/xbmc/branches{/branch}","tags_url":"https://api.github.com/repos/tylerszabo/xbmc/tags","blobs_url":"https://api.github.com/repos/tylerszabo/xbmc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tylerszabo/xbmc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tylerszabo/xbmc/git/refs{/sha}","trees_url":"https://api.github.com/repos/tylerszabo/xbmc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tylerszabo/xbmc/statuses/{sha}","languages_url":"https://api.github.com/repos/tylerszabo/xbmc/languages","stargazers_url":"https://api.github.com/repos/tylerszabo/xbmc/stargazers","contributors_url":"https://api.github.com/repos/tylerszabo/xbmc/contributors","subscribers_url":"https://api.github.com/repos/tylerszabo/xbmc/subscribers","subscription_url":"https://api.github.com/repos/tylerszabo/xbmc/subscription","commits_url":"https://api.github.com/repos/tylerszabo/xbmc/commits{/sha}","git_commits_url":"https://api.github.com/repos/tylerszabo/xbmc/git/commits{/sha}","comments_url":"https://api.github.com/repos/tylerszabo/xbmc/comments{/number}","issue_comment_url":"https://api.github.com/repos/tylerszabo/xbmc/issues/comments{/number}","contents_url":"https://api.github.com/repos/tylerszabo/xbmc/contents/{+path}","compare_url":"https://api.github.com/repos/tylerszabo/xbmc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tylerszabo/xbmc/merges","archive_url":"https://api.github.com/repos/tylerszabo/xbmc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tylerszabo/xbmc/downloads","issues_url":"https://api.github.com/repos/tylerszabo/xbmc/issues{/number}","pulls_url":"https://api.github.com/repos/tylerszabo/xbmc/pulls{/number}","milestones_url":"https://api.github.com/repos/tylerszabo/xbmc/milestones{/number}","notifications_url":"https://api.github.com/repos/tylerszabo/xbmc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tylerszabo/xbmc/labels{/name}","releases_url":"https://api.github.com/repos/tylerszabo/xbmc/releases{/id}","deployments_url":"https://api.github.com/repos/tylerszabo/xbmc/deployments","created_at":"2018-10-09T23:59:19Z","updated_at":"2018-10-11T23:07:36Z","pushed_at":"2018-10-13T09:06:02Z","git_url":"git://github.com/tylerszabo/xbmc.git","ssh_url":"git@github.com:tylerszabo/xbmc.git","clone_url":"https://github.com/tylerszabo/xbmc.git","svn_url":"https://github.com/tylerszabo/xbmc","homepage":"https://kodi.tv/","size":657544,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"xbmc:master","ref":"master","sha":"a213712cab44a4599fd66d1c95c3a252be8cd596","user":{"login":"xbmc","id":199122,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5OTEyMg==","avatar_url":"https://avatars2.githubusercontent.com/u/199122?v=4","gravatar_id":"","url":"https://api.github.com/users/xbmc","html_url":"https://github.com/xbmc","followers_url":"https://api.github.com/users/xbmc/followers","following_url":"https://api.github.com/users/xbmc/following{/other_user}","gists_url":"https://api.github.com/users/xbmc/gists{/gist_id}","starred_url":"https://api.github.com/users/xbmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xbmc/subscriptions","organizations_url":"https://api.github.com/users/xbmc/orgs","repos_url":"https://api.github.com/users/xbmc/repos","events_url":"https://api.github.com/users/xbmc/events{/privacy}","received_events_url":"https://api.github.com/users/xbmc/received_events","type":"Organization","site_admin":false},"repo":{"id":1217614,"node_id":"MDEwOlJlcG9zaXRvcnkxMjE3NjE0","name":"xbmc","full_name":"xbmc/xbmc","private":false,"owner":{"login":"xbmc","id":199122,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5OTEyMg==","avatar_url":"https://avatars2.githubusercontent.com/u/199122?v=4","gravatar_id":"","url":"https://api.github.com/users/xbmc","html_url":"https://github.com/xbmc","followers_url":"https://api.github.com/users/xbmc/followers","following_url":"https://api.github.com/users/xbmc/following{/other_user}","gists_url":"https://api.github.com/users/xbmc/gists{/gist_id}","starred_url":"https://api.github.com/users/xbmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xbmc/subscriptions","organizations_url":"https://api.github.com/users/xbmc/orgs","repos_url":"https://api.github.com/users/xbmc/repos","events_url":"https://api.github.com/users/xbmc/events{/privacy}","received_events_url":"https://api.github.com/users/xbmc/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/xbmc/xbmc","description":"Kodi is an award-winning free and open source home theater/media center software and entertainment hub for digital media. With its beautiful interface and powerful skinning engine, it's available for Android, BSD, Linux, macOS, iOS and Windows.","fork":false,"url":"https://api.github.com/repos/xbmc/xbmc","forks_url":"https://api.github.com/repos/xbmc/xbmc/forks","keys_url":"https://api.github.com/repos/xbmc/xbmc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xbmc/xbmc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xbmc/xbmc/teams","hooks_url":"https://api.github.com/repos/xbmc/xbmc/hooks","issue_events_url":"https://api.github.com/repos/xbmc/xbmc/issues/events{/number}","events_url":"https://api.github.com/repos/xbmc/xbmc/events","assignees_url":"https://api.github.com/repos/xbmc/xbmc/assignees{/user}","branches_url":"https://api.github.com/repos/xbmc/xbmc/branches{/branch}","tags_url":"https://api.github.com/repos/xbmc/xbmc/tags","blobs_url":"https://api.github.com/repos/xbmc/xbmc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xbmc/xbmc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xbmc/xbmc/git/refs{/sha}","trees_url":"https://api.github.com/repos/xbmc/xbmc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xbmc/xbmc/statuses/{sha}","languages_url":"https://api.github.com/repos/xbmc/xbmc/languages","stargazers_url":"https://api.github.com/repos/xbmc/xbmc/stargazers","contributors_url":"https://api.github.com/repos/xbmc/xbmc/contributors","subscribers_url":"https://api.github.com/repos/xbmc/xbmc/subscribers","subscription_url":"https://api.github.com/repos/xbmc/xbmc/subscription","commits_url":"https://api.github.com/repos/xbmc/xbmc/commits{/sha}","git_commits_url":"https://api.github.com/repos/xbmc/xbmc/git/commits{/sha}","comments_url":"https://api.github.com/repos/xbmc/xbmc/comments{/number}","issue_comment_url":"https://api.github.com/repos/xbmc/xbmc/issues/comments{/number}","contents_url":"https://api.github.com/repos/xbmc/xbmc/contents/{+path}","compare_url":"https://api.github.com/repos/xbmc/xbmc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xbmc/xbmc/merges","archive_url":"https://api.github.com/repos/xbmc/xbmc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xbmc/xbmc/downloads","issues_url":"https://api.github.com/repos/xbmc/xbmc/issues{/number}","pulls_url":"https://api.github.com/repos/xbmc/xbmc/pulls{/number}","milestones_url":"https://api.github.com/repos/xbmc/xbmc/milestones{/number}","notifications_url":"https://api.github.com/repos/xbmc/xbmc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xbmc/xbmc/labels{/name}","releases_url":"https://api.github.com/repos/xbmc/xbmc/releases{/id}","deployments_url":"https://api.github.com/repos/xbmc/xbmc/deployments","created_at":"2011-01-03T21:18:51Z","updated_at":"2018-10-13T09:28:24Z","pushed_at":"2018-10-13T09:27:59Z","git_url":"git://github.com/xbmc/xbmc.git","ssh_url":"git@github.com:xbmc/xbmc.git","clone_url":"https://github.com/xbmc/xbmc.git","svn_url":"https://github.com/xbmc/xbmc","homepage":"https://kodi.tv/","size":1468614,"stargazers_count":7451,"watchers_count":7451,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":4733,"mirror_url":null,"archived":false,"open_issues_count":126,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":4733,"open_issues":126,"watchers":7451,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/xbmc/xbmc/pulls/14585"},"html":{"href":"https://github.com/xbmc/xbmc/pull/14585"},"issue":{"href":"https://api.github.com/repos/xbmc/xbmc/issues/14585"},"comments":{"href":"https://api.github.com/repos/xbmc/xbmc/issues/14585/comments"},"review_comments":{"href":"https://api.github.com/repos/xbmc/xbmc/pulls/14585/comments"},"review_comment":{"href":"https://api.github.com/repos/xbmc/xbmc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/xbmc/xbmc/pulls/14585/commits"},"statuses":{"href":"https://api.github.com/repos/xbmc/xbmc/statuses/8dceafefda089a884c81fe6e6f903f14e787d150"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Rechi"}}