{"action":"closed","number":31,"pull_request":{"url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls/31","id":80332735,"html_url":"https://github.com/Arks-Layer/PSO2Tweaker/pull/31","diff_url":"https://github.com/Arks-Layer/PSO2Tweaker/pull/31.diff","patch_url":"https://github.com/Arks-Layer/PSO2Tweaker/pull/31.patch","issue_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/issues/31","number":31,"state":"closed","locked":false,"title":"UpdateEngine and Abstractions v0.3.2","user":{"login":"ryanelian","id":8892187,"avatar_url":"https://avatars.githubusercontent.com/u/8892187?v=3","gravatar_id":"","url":"https://api.github.com/users/ryanelian","html_url":"https://github.com/ryanelian","followers_url":"https://api.github.com/users/ryanelian/followers","following_url":"https://api.github.com/users/ryanelian/following{/other_user}","gists_url":"https://api.github.com/users/ryanelian/gists{/gist_id}","starred_url":"https://api.github.com/users/ryanelian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryanelian/subscriptions","organizations_url":"https://api.github.com/users/ryanelian/orgs","repos_url":"https://api.github.com/users/ryanelian/repos","events_url":"https://api.github.com/users/ryanelian/events{/privacy}","received_events_url":"https://api.github.com/users/ryanelian/received_events","type":"User","site_admin":false},"body":"- `SegaDownloader.MergePatchlist` now has an internal blacklist for certain files that are never to be downloaded. (Instead of merely ignoring stuffs that contains `data/win32/script/`  in the name)\r\n\r\n- Added `EnglishPatchVersion`, `EnglishLargePatchVersion`, `StoryPatchVersion` property signatures to the `ITweakerSettings`.\r\n\r\n- Implemented those new `ITweakerSettings` methods against existing Tweaker Windows Registry keys in `RegistryTweakerSettings`.\r\n\r\n- `UpdateManager.RestoreBackupFiles` now flags those three patch versions as \"Not Installed\" upon completion.\r\n\r\n----\r\n\r\n## TODOs:\r\n\r\n- Support prepatching. Phase 1: Add an offline patching repository for the downloaded prepatch, that will be used before patch downloads by comparing the repository file listing against the missing files list.\r\n\r\n**UNTIL THIS FEATURE IS IMPLEMENTED, PLEASE DO NOT SUPPORT PREPATCHES. \r\nTHE NEXT TIME SEGA DOES PREPATCHES, I WILL EXPERIMENT WITH THE FEATURE!**\r\n\r\n- Enable updating the game version `version.ver` in `%USERPROFILE%\\Documents\\SEGA\\PHANTASYSTARONLINE2`.\r\n\r\n- Remove `IRenderer.WriteLine`. [Apparently AIDA is displeased with how `UpdateEngine` directly writes into the UI](https://github.com/Arks-Layer/PSO2Tweaker/blob/unstable/PSO2%20Tweaker/frmMain.vb#L2947-L2968). Future version will fine-grain the `IRenderer` with more methods that will be emitted instead by the `UpdateEngine` for improved separation of concerns.\r\n\r\n- Remind AIDA that `done.log` should also be deleted [if update resume is cancelled](https://github.com/Arks-Layer/PSO2Tweaker/blob/unstable/PSO2%20Tweaker/frmMain.vb#L446) (if exists).\r\n\r\n- Refactor out `done.log` writing mechanism to new class as the basis for GrandLibrary updater module.","created_at":"2016-08-06T06:43:42Z","updated_at":"2016-08-06T11:37:17Z","closed_at":"2016-08-06T11:37:17Z","merged_at":"2016-08-06T11:37:17Z","merge_commit_sha":"ff412b089b6cc0c69b185bc7e36d80b580c34ed7","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls/31/commits","review_comments_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls/31/comments","review_comment_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/issues/31/comments","statuses_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/statuses/302786bb3a893a331d6658e386dc4e45b57559dd","head":{"label":"ryanelian:master","ref":"master","sha":"302786bb3a893a331d6658e386dc4e45b57559dd","user":{"login":"ryanelian","id":8892187,"avatar_url":"https://avatars.githubusercontent.com/u/8892187?v=3","gravatar_id":"","url":"https://api.github.com/users/ryanelian","html_url":"https://github.com/ryanelian","followers_url":"https://api.github.com/users/ryanelian/followers","following_url":"https://api.github.com/users/ryanelian/following{/other_user}","gists_url":"https://api.github.com/users/ryanelian/gists{/gist_id}","starred_url":"https://api.github.com/users/ryanelian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryanelian/subscriptions","organizations_url":"https://api.github.com/users/ryanelian/orgs","repos_url":"https://api.github.com/users/ryanelian/repos","events_url":"https://api.github.com/users/ryanelian/events{/privacy}","received_events_url":"https://api.github.com/users/ryanelian/received_events","type":"User","site_admin":false},"repo":{"id":63519229,"name":"PSO2Tweaker","full_name":"ryanelian/PSO2Tweaker","owner":{"login":"ryanelian","id":8892187,"avatar_url":"https://avatars.githubusercontent.com/u/8892187?v=3","gravatar_id":"","url":"https://api.github.com/users/ryanelian","html_url":"https://github.com/ryanelian","followers_url":"https://api.github.com/users/ryanelian/followers","following_url":"https://api.github.com/users/ryanelian/following{/other_user}","gists_url":"https://api.github.com/users/ryanelian/gists{/gist_id}","starred_url":"https://api.github.com/users/ryanelian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ryanelian/subscriptions","organizations_url":"https://api.github.com/users/ryanelian/orgs","repos_url":"https://api.github.com/users/ryanelian/repos","events_url":"https://api.github.com/users/ryanelian/events{/privacy}","received_events_url":"https://api.github.com/users/ryanelian/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ryanelian/PSO2Tweaker","description":"A replacement for the normal PSO2JP Launcher, used to update and launch the original Japanese version of the game with patches, modifications, troubleshooting, and much more.","fork":true,"url":"https://api.github.com/repos/ryanelian/PSO2Tweaker","forks_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/forks","keys_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/teams","hooks_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/hooks","issue_events_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/issues/events{/number}","events_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/events","assignees_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/assignees{/user}","branches_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/branches{/branch}","tags_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/tags","blobs_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/git/refs{/sha}","trees_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/statuses/{sha}","languages_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/languages","stargazers_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/stargazers","contributors_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/contributors","subscribers_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/subscribers","subscription_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/subscription","commits_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/commits{/sha}","git_commits_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/git/commits{/sha}","comments_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/comments{/number}","issue_comment_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/issues/comments{/number}","contents_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/contents/{+path}","compare_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/merges","archive_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/downloads","issues_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/issues{/number}","pulls_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/pulls{/number}","milestones_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/milestones{/number}","notifications_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/labels{/name}","releases_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/releases{/id}","deployments_url":"https://api.github.com/repos/ryanelian/PSO2Tweaker/deployments","created_at":"2016-07-17T07:07:08Z","updated_at":"2016-07-17T07:07:10Z","pushed_at":"2016-08-06T06:37:56Z","git_url":"git://github.com/ryanelian/PSO2Tweaker.git","ssh_url":"git@github.com:ryanelian/PSO2Tweaker.git","clone_url":"https://github.com/ryanelian/PSO2Tweaker.git","svn_url":"https://github.com/ryanelian/PSO2Tweaker","homepage":null,"size":5772,"stargazers_count":0,"watchers_count":0,"language":"Visual Basic","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"Arks-Layer:unstable","ref":"unstable","sha":"b8b6912c848050a4cfb4ebd16c1e8cdea4e63d94","user":{"login":"Arks-Layer","id":8642163,"avatar_url":"https://avatars.githubusercontent.com/u/8642163?v=3","gravatar_id":"","url":"https://api.github.com/users/Arks-Layer","html_url":"https://github.com/Arks-Layer","followers_url":"https://api.github.com/users/Arks-Layer/followers","following_url":"https://api.github.com/users/Arks-Layer/following{/other_user}","gists_url":"https://api.github.com/users/Arks-Layer/gists{/gist_id}","starred_url":"https://api.github.com/users/Arks-Layer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arks-Layer/subscriptions","organizations_url":"https://api.github.com/users/Arks-Layer/orgs","repos_url":"https://api.github.com/users/Arks-Layer/repos","events_url":"https://api.github.com/users/Arks-Layer/events{/privacy}","received_events_url":"https://api.github.com/users/Arks-Layer/received_events","type":"Organization","site_admin":false},"repo":{"id":23614660,"name":"PSO2Tweaker","full_name":"Arks-Layer/PSO2Tweaker","owner":{"login":"Arks-Layer","id":8642163,"avatar_url":"https://avatars.githubusercontent.com/u/8642163?v=3","gravatar_id":"","url":"https://api.github.com/users/Arks-Layer","html_url":"https://github.com/Arks-Layer","followers_url":"https://api.github.com/users/Arks-Layer/followers","following_url":"https://api.github.com/users/Arks-Layer/following{/other_user}","gists_url":"https://api.github.com/users/Arks-Layer/gists{/gist_id}","starred_url":"https://api.github.com/users/Arks-Layer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Arks-Layer/subscriptions","organizations_url":"https://api.github.com/users/Arks-Layer/orgs","repos_url":"https://api.github.com/users/Arks-Layer/repos","events_url":"https://api.github.com/users/Arks-Layer/events{/privacy}","received_events_url":"https://api.github.com/users/Arks-Layer/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Arks-Layer/PSO2Tweaker","description":"A replacement for the normal PSO2JP Launcher, used to update and launch the original Japanese version of the game with patches, modifications, troubleshooting, and much more.","fork":false,"url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker","forks_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/forks","keys_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/teams","hooks_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/hooks","issue_events_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/issues/events{/number}","events_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/events","assignees_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/assignees{/user}","branches_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/branches{/branch}","tags_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/tags","blobs_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/git/refs{/sha}","trees_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/statuses/{sha}","languages_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/languages","stargazers_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/stargazers","contributors_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/contributors","subscribers_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/subscribers","subscription_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/subscription","commits_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/commits{/sha}","git_commits_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/git/commits{/sha}","comments_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/comments{/number}","issue_comment_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/issues/comments{/number}","contents_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/contents/{+path}","compare_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/merges","archive_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/downloads","issues_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/issues{/number}","pulls_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls{/number}","milestones_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/milestones{/number}","notifications_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/labels{/name}","releases_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/releases{/id}","deployments_url":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/deployments","created_at":"2014-09-03T09:38:15Z","updated_at":"2016-07-01T07:07:04Z","pushed_at":"2016-08-06T11:37:17Z","git_url":"git://github.com/Arks-Layer/PSO2Tweaker.git","ssh_url":"git@github.com:Arks-Layer/PSO2Tweaker.git","clone_url":"https://github.com/Arks-Layer/PSO2Tweaker.git","svn_url":"https://github.com/Arks-Layer/PSO2Tweaker","homepage":null,"size":7276,"stargazers_count":21,"watchers_count":21,"language":"Visual Basic","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":10,"mirror_url":null,"open_issues_count":3,"forks":10,"open_issues":3,"watchers":21,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls/31"},"html":{"href":"https://github.com/Arks-Layer/PSO2Tweaker/pull/31"},"issue":{"href":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/issues/31"},"comments":{"href":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls/31/comments"},"review_comment":{"href":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/pulls/31/commits"},"statuses":{"href":"https://api.github.com/repos/Arks-Layer/PSO2Tweaker/statuses/302786bb3a893a331d6658e386dc4e45b57559dd"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"TheCrimsonDevil","id":5483362,"avatar_url":"https://avatars.githubusercontent.com/u/5483362?v=3","gravatar_id":"","url":"https://api.github.com/users/TheCrimsonDevil","html_url":"https://github.com/TheCrimsonDevil","followers_url":"https://api.github.com/users/TheCrimsonDevil/followers","following_url":"https://api.github.com/users/TheCrimsonDevil/following{/other_user}","gists_url":"https://api.github.com/users/TheCrimsonDevil/gists{/gist_id}","starred_url":"https://api.github.com/users/TheCrimsonDevil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TheCrimsonDevil/subscriptions","organizations_url":"https://api.github.com/users/TheCrimsonDevil/orgs","repos_url":"https://api.github.com/users/TheCrimsonDevil/repos","events_url":"https://api.github.com/users/TheCrimsonDevil/events{/privacy}","received_events_url":"https://api.github.com/users/TheCrimsonDevil/received_events","type":"User","site_admin":false},"comments":1,"review_comments":0,"commits":1,"additions":109,"deletions":19,"changed_files":14}}
{"actor":{"display_login":"TheCrimsonDevil"}}