{"action":"created","comment":{"url":"https://api.github.com/repos/nextcloud/server/pulls/comments/229636189","pull_request_review_id":170169587,"id":229636189,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyOTYzNjE4OQ==","diff_hunk":"@@ -0,0 +1,101 @@\n+<?php declare(strict_types=1);\n+/**\n+ * @copyright Copyright (c) 2018 Robin Appelman <robin@icewind.nl>\n+ *\n+ * @license GNU AGPL version 3 or any later version\n+ *\n+ * This program is free software: you can redistribute it and/or modify\n+ * it under the terms of the GNU Affero General Public License as\n+ * published by the Free Software Foundation, either version 3 of the\n+ * License, or (at your option) any later version.\n+ *\n+ * This program is distributed in the hope that it will be useful,\n+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ * GNU Affero General Public License for more details.\n+ *\n+ * You should have received a copy of the GNU Affero General Public License\n+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n+ *\n+ */\n+\n+namespace OCA\\Files_Versions\\Versions;\n+\n+use OC\\Files\\View;\n+use OCA\\Files_Versions\\Storage;\n+use OCP\\Files\\File;\n+use OCP\\Files\\FileInfo;\n+use OCP\\Files\\Folder;\n+use OCP\\Files\\IRootFolder;\n+use OCP\\Files\\NotFoundException;\n+use OCP\\IUser;\n+\n+class LegacyVersionsBackend implements IVersionBackend {\n+\t/** @var IRootFolder */\n+\tprivate $rootFolder;\n+\n+\tpublic function __construct(IRootFolder $rootFolder) {\n+\t\t$this->rootFolder = $rootFolder;\n+\t}\n+\n+\tpublic function getVersionsForFile(IUser $user, FileInfo $file): array {\n+\t\t$userFolder = $this->rootFolder->getUserFolder($user->getUID());\n+\t\t$versions = Storage::getVersions($user->getUID(), $userFolder->getRelativePath($file->getPath()));\n+\n+\t\treturn array_map(function (array $data) use ($file, $user) {\n+\t\t\treturn new Version(\n+\t\t\t\t(int)$data['version'],\n+\t\t\t\t(int)$data['version'],\n+\t\t\t\t$data['name'],\n+\t\t\t\t(int)$data['size'],\n+\t\t\t\t$data['mimetype'],\n+\t\t\t\t$data['path'],\n+\t\t\t\t$file,\n+\t\t\t\t$this,\n+\t\t\t\t$user\n+\t\t\t);\n+\t\t}, $versions);\n+\t}\n+\n+\tpublic function createVersion(IUser $user, FileInfo $file) {\n+\t\t$userFolder = $this->rootFolder->getUserFolder($user->getUID());\n+\t\t$relativePath = $userFolder->getRelativePath($file->getPath());\n+\t\t$userView = new View('/' . $user->getUID());\n+\t\t// create all parent folders\n+\t\tStorage::createMissingDirectories($relativePath, $userView);\n+\n+\t\tStorage::scheduleExpire($user->getUID(), $relativePath);\n+\n+\t\t// store a new version of a file\n+\t\t$userView->copy('files/' . $relativePath, 'files_versions/' . $relativePath . '.v' . $file->getMtime());\n+\t\t// ensure the file is scanned\n+\t\t$userView->getFileInfo('files_versions/' . $relativePath . '.v' . $file->getMtime());\n+\t}\n+\n+\tpublic function rollback(IVersion $version) {\n+\t\treturn Storage::rollback($version->getVersionPath(), $version->getRevisionId());\n+\t}\n+\n+\tprivate function getVersionFolder(IUser $user): Folder {\n+\t\t$userRoot = $this->rootFolder->getUserFolder($user->getUID())\n+\t\t\t->getParent();\n+\t\ttry {\n+\t\t\treturn $userRoot->get('files_versions');","path":"apps/files_versions/lib/Versions/LegacyVersionsBackend.php","position":83,"original_position":83,"commit_id":"62f6ed39c3360d8dba8980ca50a835ea1b3bf366","original_commit_id":"62f6ed39c3360d8dba8980ca50a835ea1b3bf366","user":{"login":"blizzz","id":2184312,"node_id":"MDQ6VXNlcjIxODQzMTI=","avatar_url":"https://avatars2.githubusercontent.com/u/2184312?v=4","gravatar_id":"","url":"https://api.github.com/users/blizzz","html_url":"https://github.com/blizzz","followers_url":"https://api.github.com/users/blizzz/followers","following_url":"https://api.github.com/users/blizzz/following{/other_user}","gists_url":"https://api.github.com/users/blizzz/gists{/gist_id}","starred_url":"https://api.github.com/users/blizzz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blizzz/subscriptions","organizations_url":"https://api.github.com/users/blizzz/orgs","repos_url":"https://api.github.com/users/blizzz/repos","events_url":"https://api.github.com/users/blizzz/events{/privacy}","received_events_url":"https://api.github.com/users/blizzz/received_events","type":"User","site_admin":false},"body":"I know this is correct, PhpStorm is a bit pedantic about Node being returned. The annoations of Folder could include Folder there, or this can be overriden by an annotation here. Or it can be ignored…","created_at":"2018-10-31T10:25:18Z","updated_at":"2018-10-31T10:30:07Z","html_url":"https://github.com/nextcloud/server/pull/12129#discussion_r229636189","pull_request_url":"https://api.github.com/repos/nextcloud/server/pulls/12129","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/nextcloud/server/pulls/comments/229636189"},"html":{"href":"https://github.com/nextcloud/server/pull/12129#discussion_r229636189"},"pull_request":{"href":"https://api.github.com/repos/nextcloud/server/pulls/12129"}}},"pull_request":{"url":"https://api.github.com/repos/nextcloud/server/pulls/12129","id":226715478,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI2NzE1NDc4","html_url":"https://github.com/nextcloud/server/pull/12129","diff_url":"https://github.com/nextcloud/server/pull/12129.diff","patch_url":"https://github.com/nextcloud/server/pull/12129.patch","issue_url":"https://api.github.com/repos/nextcloud/server/issues/12129","number":12129,"state":"open","locked":false,"title":"modular versions api","user":{"login":"icewind1991","id":1283854,"node_id":"MDQ6VXNlcjEyODM4NTQ=","avatar_url":"https://avatars1.githubusercontent.com/u/1283854?v=4","gravatar_id":"","url":"https://api.github.com/users/icewind1991","html_url":"https://github.com/icewind1991","followers_url":"https://api.github.com/users/icewind1991/followers","following_url":"https://api.github.com/users/icewind1991/following{/other_user}","gists_url":"https://api.github.com/users/icewind1991/gists{/gist_id}","starred_url":"https://api.github.com/users/icewind1991/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/icewind1991/subscriptions","organizations_url":"https://api.github.com/users/icewind1991/orgs","repos_url":"https://api.github.com/users/icewind1991/repos","events_url":"https://api.github.com/users/icewind1991/events{/privacy}","received_events_url":"https://api.github.com/users/icewind1991/received_events","type":"User","site_admin":false},"body":"Allows apps to register version backends for storage types\r\nThe existing versions backend is wrapped in a \"legacy\" backend.\r\n\r\nNote that backends are responsible for their own expire logic, I'll probably add some form of helper methods for them to use later","created_at":"2018-10-29T21:13:01Z","updated_at":"2018-10-31T10:30:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"94baeefede9256ec9e0bd43ced3cb55b5cefef12","assignee":null,"assignees":[],"requested_reviewers":[{"login":"MorrisJobke","id":245432,"node_id":"MDQ6VXNlcjI0NTQzMg==","avatar_url":"https://avatars3.githubusercontent.com/u/245432?v=4","gravatar_id":"","url":"https://api.github.com/users/MorrisJobke","html_url":"https://github.com/MorrisJobke","followers_url":"https://api.github.com/users/MorrisJobke/followers","following_url":"https://api.github.com/users/MorrisJobke/following{/other_user}","gists_url":"https://api.github.com/users/MorrisJobke/gists{/gist_id}","starred_url":"https://api.github.com/users/MorrisJobke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MorrisJobke/subscriptions","organizations_url":"https://api.github.com/users/MorrisJobke/orgs","repos_url":"https://api.github.com/users/MorrisJobke/repos","events_url":"https://api.github.com/users/MorrisJobke/events{/privacy}","received_events_url":"https://api.github.com/users/MorrisJobke/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":389003733,"node_id":"MDU6TGFiZWwzODkwMDM3MzM=","url":"https://api.github.com/repos/nextcloud/server/labels/3.%20to%20review","name":"3. to review","color":"0052cc","default":false},{"id":389004952,"node_id":"MDU6TGFiZWwzODkwMDQ5NTI=","url":"https://api.github.com/repos/nextcloud/server/labels/high","name":"high","color":"c5def5","default":false}],"milestone":{"url":"https://api.github.com/repos/nextcloud/server/milestones/48","html_url":"https://github.com/nextcloud/server/milestone/48","labels_url":"https://api.github.com/repos/nextcloud/server/milestones/48/labels","id":3436010,"node_id":"MDk6TWlsZXN0b25lMzQzNjAxMA==","number":48,"title":"Nextcloud 15","description":"","creator":{"login":"skjnldsv","id":14975046,"node_id":"MDQ6VXNlcjE0OTc1MDQ2","avatar_url":"https://avatars0.githubusercontent.com/u/14975046?v=4","gravatar_id":"","url":"https://api.github.com/users/skjnldsv","html_url":"https://github.com/skjnldsv","followers_url":"https://api.github.com/users/skjnldsv/followers","following_url":"https://api.github.com/users/skjnldsv/following{/other_user}","gists_url":"https://api.github.com/users/skjnldsv/gists{/gist_id}","starred_url":"https://api.github.com/users/skjnldsv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/skjnldsv/subscriptions","organizations_url":"https://api.github.com/users/skjnldsv/orgs","repos_url":"https://api.github.com/users/skjnldsv/repos","events_url":"https://api.github.com/users/skjnldsv/events{/privacy}","received_events_url":"https://api.github.com/users/skjnldsv/received_events","type":"User","site_admin":false},"open_issues":171,"closed_issues":407,"state":"open","created_at":"2018-06-19T13:57:28Z","updated_at":"2018-10-31T10:27:54Z","due_on":"2018-12-06T08:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/nextcloud/server/pulls/12129/commits","review_comments_url":"https://api.github.com/repos/nextcloud/server/pulls/12129/comments","review_comment_url":"https://api.github.com/repos/nextcloud/server/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nextcloud/server/issues/12129/comments","statuses_url":"https://api.github.com/repos/nextcloud/server/statuses/62f6ed39c3360d8dba8980ca50a835ea1b3bf366","head":{"label":"nextcloud:versions-modular-api","ref":"versions-modular-api","sha":"62f6ed39c3360d8dba8980ca50a835ea1b3bf366","user":{"login":"nextcloud","id":19211038,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MjExMDM4","avatar_url":"https://avatars1.githubusercontent.com/u/19211038?v=4","gravatar_id":"","url":"https://api.github.com/users/nextcloud","html_url":"https://github.com/nextcloud","followers_url":"https://api.github.com/users/nextcloud/followers","following_url":"https://api.github.com/users/nextcloud/following{/other_user}","gists_url":"https://api.github.com/users/nextcloud/gists{/gist_id}","starred_url":"https://api.github.com/users/nextcloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nextcloud/subscriptions","organizations_url":"https://api.github.com/users/nextcloud/orgs","repos_url":"https://api.github.com/users/nextcloud/repos","events_url":"https://api.github.com/users/nextcloud/events{/privacy}","received_events_url":"https://api.github.com/users/nextcloud/received_events","type":"Organization","site_admin":false},"repo":{"id":60243197,"node_id":"MDEwOlJlcG9zaXRvcnk2MDI0MzE5Nw==","name":"server","full_name":"nextcloud/server","private":false,"owner":{"login":"nextcloud","id":19211038,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MjExMDM4","avatar_url":"https://avatars1.githubusercontent.com/u/19211038?v=4","gravatar_id":"","url":"https://api.github.com/users/nextcloud","html_url":"https://github.com/nextcloud","followers_url":"https://api.github.com/users/nextcloud/followers","following_url":"https://api.github.com/users/nextcloud/following{/other_user}","gists_url":"https://api.github.com/users/nextcloud/gists{/gist_id}","starred_url":"https://api.github.com/users/nextcloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nextcloud/subscriptions","organizations_url":"https://api.github.com/users/nextcloud/orgs","repos_url":"https://api.github.com/users/nextcloud/repos","events_url":"https://api.github.com/users/nextcloud/events{/privacy}","received_events_url":"https://api.github.com/users/nextcloud/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nextcloud/server","description":"☁️ Nextcloud server, a safe home for all your data","fork":false,"url":"https://api.github.com/repos/nextcloud/server","forks_url":"https://api.github.com/repos/nextcloud/server/forks","keys_url":"https://api.github.com/repos/nextcloud/server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nextcloud/server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nextcloud/server/teams","hooks_url":"https://api.github.com/repos/nextcloud/server/hooks","issue_events_url":"https://api.github.com/repos/nextcloud/server/issues/events{/number}","events_url":"https://api.github.com/repos/nextcloud/server/events","assignees_url":"https://api.github.com/repos/nextcloud/server/assignees{/user}","branches_url":"https://api.github.com/repos/nextcloud/server/branches{/branch}","tags_url":"https://api.github.com/repos/nextcloud/server/tags","blobs_url":"https://api.github.com/repos/nextcloud/server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nextcloud/server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nextcloud/server/git/refs{/sha}","trees_url":"https://api.github.com/repos/nextcloud/server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nextcloud/server/statuses/{sha}","languages_url":"https://api.github.com/repos/nextcloud/server/languages","stargazers_url":"https://api.github.com/repos/nextcloud/server/stargazers","contributors_url":"https://api.github.com/repos/nextcloud/server/contributors","subscribers_url":"https://api.github.com/repos/nextcloud/server/subscribers","subscription_url":"https://api.github.com/repos/nextcloud/server/subscription","commits_url":"https://api.github.com/repos/nextcloud/server/commits{/sha}","git_commits_url":"https://api.github.com/repos/nextcloud/server/git/commits{/sha}","comments_url":"https://api.github.com/repos/nextcloud/server/comments{/number}","issue_comment_url":"https://api.github.com/repos/nextcloud/server/issues/comments{/number}","contents_url":"https://api.github.com/repos/nextcloud/server/contents/{+path}","compare_url":"https://api.github.com/repos/nextcloud/server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nextcloud/server/merges","archive_url":"https://api.github.com/repos/nextcloud/server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nextcloud/server/downloads","issues_url":"https://api.github.com/repos/nextcloud/server/issues{/number}","pulls_url":"https://api.github.com/repos/nextcloud/server/pulls{/number}","milestones_url":"https://api.github.com/repos/nextcloud/server/milestones{/number}","notifications_url":"https://api.github.com/repos/nextcloud/server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nextcloud/server/labels{/name}","releases_url":"https://api.github.com/repos/nextcloud/server/releases{/id}","deployments_url":"https://api.github.com/repos/nextcloud/server/deployments","created_at":"2016-06-02T07:44:14Z","updated_at":"2018-10-31T09:15:19Z","pushed_at":"2018-10-31T10:27:39Z","git_url":"git://github.com/nextcloud/server.git","ssh_url":"git@github.com:nextcloud/server.git","clone_url":"https://github.com/nextcloud/server.git","svn_url":"https://github.com/nextcloud/server","homepage":"https://nextcloud.com","size":329183,"stargazers_count":5604,"watchers_count":5604,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":991,"mirror_url":null,"archived":false,"open_issues_count":1563,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":991,"open_issues":1563,"watchers":5604,"default_branch":"master"}},"base":{"label":"nextcloud:master","ref":"master","sha":"963d968f062810e846f000f02f1be3f560c286f9","user":{"login":"nextcloud","id":19211038,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MjExMDM4","avatar_url":"https://avatars1.githubusercontent.com/u/19211038?v=4","gravatar_id":"","url":"https://api.github.com/users/nextcloud","html_url":"https://github.com/nextcloud","followers_url":"https://api.github.com/users/nextcloud/followers","following_url":"https://api.github.com/users/nextcloud/following{/other_user}","gists_url":"https://api.github.com/users/nextcloud/gists{/gist_id}","starred_url":"https://api.github.com/users/nextcloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nextcloud/subscriptions","organizations_url":"https://api.github.com/users/nextcloud/orgs","repos_url":"https://api.github.com/users/nextcloud/repos","events_url":"https://api.github.com/users/nextcloud/events{/privacy}","received_events_url":"https://api.github.com/users/nextcloud/received_events","type":"Organization","site_admin":false},"repo":{"id":60243197,"node_id":"MDEwOlJlcG9zaXRvcnk2MDI0MzE5Nw==","name":"server","full_name":"nextcloud/server","private":false,"owner":{"login":"nextcloud","id":19211038,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5MjExMDM4","avatar_url":"https://avatars1.githubusercontent.com/u/19211038?v=4","gravatar_id":"","url":"https://api.github.com/users/nextcloud","html_url":"https://github.com/nextcloud","followers_url":"https://api.github.com/users/nextcloud/followers","following_url":"https://api.github.com/users/nextcloud/following{/other_user}","gists_url":"https://api.github.com/users/nextcloud/gists{/gist_id}","starred_url":"https://api.github.com/users/nextcloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nextcloud/subscriptions","organizations_url":"https://api.github.com/users/nextcloud/orgs","repos_url":"https://api.github.com/users/nextcloud/repos","events_url":"https://api.github.com/users/nextcloud/events{/privacy}","received_events_url":"https://api.github.com/users/nextcloud/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/nextcloud/server","description":"☁️ Nextcloud server, a safe home for all your data","fork":false,"url":"https://api.github.com/repos/nextcloud/server","forks_url":"https://api.github.com/repos/nextcloud/server/forks","keys_url":"https://api.github.com/repos/nextcloud/server/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nextcloud/server/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nextcloud/server/teams","hooks_url":"https://api.github.com/repos/nextcloud/server/hooks","issue_events_url":"https://api.github.com/repos/nextcloud/server/issues/events{/number}","events_url":"https://api.github.com/repos/nextcloud/server/events","assignees_url":"https://api.github.com/repos/nextcloud/server/assignees{/user}","branches_url":"https://api.github.com/repos/nextcloud/server/branches{/branch}","tags_url":"https://api.github.com/repos/nextcloud/server/tags","blobs_url":"https://api.github.com/repos/nextcloud/server/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nextcloud/server/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nextcloud/server/git/refs{/sha}","trees_url":"https://api.github.com/repos/nextcloud/server/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nextcloud/server/statuses/{sha}","languages_url":"https://api.github.com/repos/nextcloud/server/languages","stargazers_url":"https://api.github.com/repos/nextcloud/server/stargazers","contributors_url":"https://api.github.com/repos/nextcloud/server/contributors","subscribers_url":"https://api.github.com/repos/nextcloud/server/subscribers","subscription_url":"https://api.github.com/repos/nextcloud/server/subscription","commits_url":"https://api.github.com/repos/nextcloud/server/commits{/sha}","git_commits_url":"https://api.github.com/repos/nextcloud/server/git/commits{/sha}","comments_url":"https://api.github.com/repos/nextcloud/server/comments{/number}","issue_comment_url":"https://api.github.com/repos/nextcloud/server/issues/comments{/number}","contents_url":"https://api.github.com/repos/nextcloud/server/contents/{+path}","compare_url":"https://api.github.com/repos/nextcloud/server/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nextcloud/server/merges","archive_url":"https://api.github.com/repos/nextcloud/server/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nextcloud/server/downloads","issues_url":"https://api.github.com/repos/nextcloud/server/issues{/number}","pulls_url":"https://api.github.com/repos/nextcloud/server/pulls{/number}","milestones_url":"https://api.github.com/repos/nextcloud/server/milestones{/number}","notifications_url":"https://api.github.com/repos/nextcloud/server/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nextcloud/server/labels{/name}","releases_url":"https://api.github.com/repos/nextcloud/server/releases{/id}","deployments_url":"https://api.github.com/repos/nextcloud/server/deployments","created_at":"2016-06-02T07:44:14Z","updated_at":"2018-10-31T09:15:19Z","pushed_at":"2018-10-31T10:27:39Z","git_url":"git://github.com/nextcloud/server.git","ssh_url":"git@github.com:nextcloud/server.git","clone_url":"https://github.com/nextcloud/server.git","svn_url":"https://github.com/nextcloud/server","homepage":"https://nextcloud.com","size":329183,"stargazers_count":5604,"watchers_count":5604,"language":"PHP","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":991,"mirror_url":null,"archived":false,"open_issues_count":1563,"license":{"key":"other","name":"Other","spdx_id":"NOASSERTION","url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":991,"open_issues":1563,"watchers":5604,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nextcloud/server/pulls/12129"},"html":{"href":"https://github.com/nextcloud/server/pull/12129"},"issue":{"href":"https://api.github.com/repos/nextcloud/server/issues/12129"},"comments":{"href":"https://api.github.com/repos/nextcloud/server/issues/12129/comments"},"review_comments":{"href":"https://api.github.com/repos/nextcloud/server/pulls/12129/comments"},"review_comment":{"href":"https://api.github.com/repos/nextcloud/server/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nextcloud/server/pulls/12129/commits"},"statuses":{"href":"https://api.github.com/repos/nextcloud/server/statuses/62f6ed39c3360d8dba8980ca50a835ea1b3bf366"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"blizzz"}}