{"action":"created","comment":{"url":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/comments/170443643","pull_request_review_id":99133660,"id":170443643,"diff_hunk":"@@ -0,0 +1,207 @@\n+/************************************\n+ * Room Shops for Pokemon Showdown\t*\n+ * Created by: Insist and Volco\t\t*\n+ ************************************/\n+\n+\"use strict\";\n+\n+const FS = require(\"../lib/fs.js\");\n+\n+exports.commands = {\n+\trs: \"roomshop\",\n+\trshop: \"roomshop\",\n+\troomshop: {\n+\t\ttoggle: function (target, room, user) {\n+\t\t\tif (!target) return this.parse(`/help roomshop toggle`);\n+\t\t\tif (!this.can(\"roomshop\")) return false;\n+\t\t\tif (this.meansYes(toId(target))) {\n+\t\t\t\tif (Db.roomshop.has(room.id)) return this.errorReply(`${room.title} already has a roomshop.`);\n+\t\t\t\tDb.roomshop.set(room.id);\n+\t\t\t\tthis.privateModAction(`${room.title}'s Room Shop has been enabled.`);\n+\t\t\t\tthis.parse(`/roomshop bank set ${room.founder}`);\n+\t\t\t} else if (this.meansNo(toId(target))) {\n+\t\t\t\tif (!Db.roomshop.has(room.id)) return this.errorReply(`${room.title} does not have a roomshop yet.`);\n+\t\t\t\tDb.roomshop.remove(room.id);\n+\t\t\t\tthis.privateModAction(`${room.title}'s Room Shop has been disabled.`);\n+\t\t\t} else {\n+\t\t\t\tthis.parse(`/help roomshop toggle`);\n+\t\t\t}\n+\t\t},\n+\t\ttogglehelp: [`/roomshop toggle (yes/enable/on/true or no/disable/off/false) - enables or disables a roomshop in the current room.`],\n+\n+\t\tbank: {\n+\t\t\tset: function (target, room, user) {\n+\t\t\t\ttarget = toId(target);\n+\t\t\t\tif (!target && !target.registered) return this.errorReply(`The bank must be a registered user.`);\n+\t\t\t\tlet roomshop = Db.roomshop.get(room.id, {items: {}});\n+\t\t\t\tif (!roomshop) return this.errorReply(`${room.title} does not have a roomshop yet.`);\n+\t\t\t\tif (roomshop.bank) return this.errorReply(`${room.title} already has a bank.`);\n+\t\t\t\troomshop.bank = target;\n+\t\t\t\tDb.roomshop.set(room.id, roomshop);\n+\t\t\t\tthis.privateModAction(`${room.title}'s Room Shop Bank has been set as \"${target}\" by ${user.name}.`);\n+\t\t\t},\n+\n+\t\t\tremove: function (target, room, user) {\n+\t\t\t\tlet roomshop = Db.roomshop.get(room.id, {items: {}});\n+\t\t\t\tif (!roomshop) return this.errorReply(`${room.title} does not have a roomshop yet.`);\n+\t\t\t\tif (!roomshop.bank) return this.errorReply(`${room.title} has no bank set yet.`);\n+\t\t\t\tdelete roomshop.bank;\n+\t\t\t\tDb.roomshop.set(room.id, roomshop);\n+\t\t\t\tthis.privateModAction(`${room.title}'s Room Shop Bank has been removed by ${user.name}.`);\n+\t\t\t},\n+\n+\t\t\taccount: \"holder\",\n+\t\t\tholder: function (target, room, user) {\n+\t\t\t\tif (!this.runBroadcast()) return;\n+\t\t\t\tlet roomshop = Db.roomshop.get(room.id, {items: {}});\n+\t\t\t\tif (!Db.roomshop.has(room.id)) return this.errorReply(`${room.title} does not have a roomshop.`);\n+\t\t\t\tif (!roomshop.bank) return this.errorReply(`${room.title} hasn't set a bank yet.`);\n+\t\t\t\treturn this.sendReplyBox(`<strong>${room.title}'s Bank:</strong> ${WL.nameColor(roomshop.bank, true)}`);\n+\t\t\t},\n+\n+\t\t\t\"\": \"atm\",\n+\t\t\tmoney: \"atm\",\n+\t\t\tatm: function (target, room, user) {\n+\t\t\t\tif (!this.runBroadcast()) return;\n+\t\t\t\tlet roomshop = Db.roomshop.get(room.id, {items: {}});\n+\t\t\t\tif (!roomshop.bank) return this.errorReply(`${room.title} hasn't set a bank yet.`);\n+\t\t\t\tif (this.broadcasting) {\n+\t\t\t\t\tthis.parse(`!atm ${roomshop.bank}`);\n+\t\t\t\t} else {\n+\t\t\t\t\tthis.parse(`/atm ${roomshop.bank}`);\n+\t\t\t\t}\n+\t\t\t},\n+\t\t},\n+\n+\t\tadditem: \"add\",\n+\t\tadd: function (target, room, user) {\n+\t\t\tif (!this.can(\"roommod\", null, room)) return false;\n+\t\t\ttarget = target.split(\",\").map(p => p.trim());\n+\t\t\tlet roomshop = Db.roomshop.get(room.id, {items: {}});\n+\t\t\tif (Object.keys(roomshop.items).length > 12) return this.errorReply(`${room.title} has already reached the maximum amount of items allowed.`);\n+\t\t\tlet item = target[0];\n+\t\t\tlet price = target[1];\n+\t\t\tlet desc = target[2];\n+\t\t\tif (!desc) return this.parse(`/help roomshop`);\n+\t\t\tif (item.length < 1 || item.length > 20) return this.errorReply(`The item name should be between 1-20 characters long.`);\n+\t\t\tif (isNaN(price)) return this.errorReply(`The price for the item must be an integer.`);\n+\t\t\tif (desc.length < 1 || desc.length > 50) return this.errorReply(`The description for an item must be between 1-50 characters long.`);\n+\t\t\troomshop.items[toId(item)] = {id: toId(item), name: item, price: price, desc: desc};\n+\t\t\tDb.roomshop.set(room.id, roomshop);\n+\t\t\troom.add(`${item} was added to the roomshop.`);\n+\t\t\tthis.privateModAction(`${user.name} has added \"${item}\" into the roomshop.`);\n+\t\t},\n+\n+\t\tdeleteitem: \"remove\",\n+\t\tdelete: \"remove\",\n+\t\tremoveitem: \"remove\",\n+\t\tremove: function (target, room, user) {\n+\t\t\tif (!this.can(\"roommod\", null, room)) return false;\n+\t\t\tif (!target) return this.parse(`/help roomshop`);\n+\t\t\tlet roomshop = Db.roomshop.get(room.id, {items: {}});\n+\t\t\tif (!roomshop.items[toId(target)]) return this.errorReply(`The item \"${target}\" does not exist.`);\n+\t\t\tdelete roomshop.items[toId(target)];\n+\t\t\tDb.roomshop.set(roomshop);\n+\t\t\troom.add(`${target} was removed from the roomshop.`);\n+\t\t\tthis.privateModAction(`${user.name} has removed \"${target}\" from the roomshop.`);\n+\t\t},\n+\n+\t\t\"\": \"display\",\n+\t\tshop: \"display\",\n+\t\tdisplay: function (target, room, user) {\n+\t\t\tif (!this.runBroadcast()) return;\n+\t\t\tlet roomshop = Db.roomshop.get(room.id, {items: {}});\n+\t\t\tif (!Db.roomshop.has(room.id)) return this.errorReply(`${room.title} does not have a roomshop.`);\n+\t\t\tlet display = `<div style=\"max-height: 200px; width: 100%; overflow: scroll;\"><table><tr><center><h1>${room.title}'s Shop!</h1></center></tr>`;\n+\t\t\tfor (let i in roomshop.items) {\n+\t\t\t\tdisplay += `<tr><td style=\"border: 2px solid #000000; width: 20%; text-align: center\"><button class=\"button\" name=\"send\" value=\"/roomshop buy ${roomshop.items[i].name}\">Buy Item: ${roomshop.items[i].name}</button></td><td style=\"border: 2px solid #000000; width: 20%; text-align: center\"> Price: ${roomshop.items[i].price} ${currencyName}${Chat.plural(roomshop.items[i].price)}</td></tr>`;\n+\t\t\t}\n+\t\t\tdisplay += `</table></div>`;\n+\t\t\treturn this.sendReplyBox(display);\n+\t\t},\n+\n+\t\tpurchase: \"buy\",\n+\t\tbuy: function (target, room, user) {\n+\t\t\tif (!Db.roomshop.has(room.id)) return this.errorReply(\"Roomshop is not enabled here.\");\n+\t\t\tlet roomshop = Db.roomshop.get(room.id, {items: {}});\n+\t\t\tif (!roomshop.bank) return this.errorReply(`${room.title} hasn't set a bank yet.`);\n+\t\t\tif (!roomshop.items[toId(target)]) return this.errorReply(`The item \"${target}\" does not exist.`);\n+\t\t\tif (roomshop.bank === user.userid) return this.errorReply(\"Bank cannot purchase from the roomshop.\");\n+\t\t\tlet bank = roomshop.bank;\n+\t\t\tlet cost = roomshop.items[toId(target)].price;\n+\t\t\t// Take payments and record payments from the user\n+\t\t\tEconomy.readMoney(user.userid, money => {\n+\t\t\t\tif (money < cost) {\n+\t\t\t\t\tthis.errorReply(`You do not have enough ${currencyName} to purchase ${target}.`);\n+\t\t\t\t\treturn;\n+\t\t\t\t}\n+\t\t\t\tEconomy.writeMoney(user.userid, -cost, () => {\n+\t\t\t\t\tEconomy.logTransaction(`${user.name} bought ${target} from ${room.title}'s roomshop for ${cost} ${currencyName}${Chat.plural(cost)}.`);\n+\t\t\t\t});\n+\t\t\t\tEconomy.writeMoney(bank, cost, () => {\n+\t\t\t\t\tEconomy.logTransaction(`${user.name} bought ${target} from ${room.title}'s roomshop for ${cost} ${currencyName}${Chat.plural(cost)}.`);\n+\t\t\t\t});\n+\t\t\t});\n+\t\t\tif (FS(\"logs/roomshops\").readdirSync()) FS(\"logs/roomshops\").mkdirpSync();\n+\t\t\tFS(`logs/roomshops/roomshop_${room.id}.txt`).append(`[${new Date().toUTCString()}] ${user.name} has bought ${target} from the roomshop.\\n`);\n+\n+\t\t\tlet msg = `${user.name} has purchased ${target}.`;\n+\n+\t\t\tUsers.users.forEach(function (user) {","path":"wavelength-plugins/roomshop.js","position":150,"original_position":150,"commit_id":"d2a422cce355c5f6a050ed3587c4c9faddf3f749","original_commit_id":"d2a422cce355c5f6a050ed3587c4c9faddf3f749","user":{"login":"Volco","id":13051425,"avatar_url":"https://avatars3.githubusercontent.com/u/13051425?v=4","gravatar_id":"","url":"https://api.github.com/users/Volco","html_url":"https://github.com/Volco","followers_url":"https://api.github.com/users/Volco/followers","following_url":"https://api.github.com/users/Volco/following{/other_user}","gists_url":"https://api.github.com/users/Volco/gists{/gist_id}","starred_url":"https://api.github.com/users/Volco/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Volco/subscriptions","organizations_url":"https://api.github.com/users/Volco/orgs","repos_url":"https://api.github.com/users/Volco/repos","events_url":"https://api.github.com/users/Volco/events{/privacy}","received_events_url":"https://api.github.com/users/Volco/received_events","type":"User","site_admin":false},"body":"``for (let u in room.users) {\r\nif (room.auth[u] === \"#\" || room.auth[u] === \"&\") {\r\nuser.send(`|pm|~${room.title}'s Shop Alert|${user.getIdentity()}|${msg}`);\r\n}\r\n}\r\nNo room leaders :p (and no tabbing for me on mobile)","created_at":"2018-02-25T06:50:46Z","updated_at":"2018-02-25T06:51:39Z","html_url":"https://github.com/HoeenCoder/Wavelength/pull/178#discussion_r170443643","pull_request_url":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/178","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/comments/170443643"},"html":{"href":"https://github.com/HoeenCoder/Wavelength/pull/178#discussion_r170443643"},"pull_request":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/178"}}},"pull_request":{"url":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/178","id":171206959,"html_url":"https://github.com/HoeenCoder/Wavelength/pull/178","diff_url":"https://github.com/HoeenCoder/Wavelength/pull/178.diff","patch_url":"https://github.com/HoeenCoder/Wavelength/pull/178.patch","issue_url":"https://api.github.com/repos/HoeenCoder/Wavelength/issues/178","number":178,"state":"open","locked":false,"title":"Implement Room Shop Plug-in","user":{"login":"DeathlyPlays","id":20971990,"avatar_url":"https://avatars1.githubusercontent.com/u/20971990?v=4","gravatar_id":"","url":"https://api.github.com/users/DeathlyPlays","html_url":"https://github.com/DeathlyPlays","followers_url":"https://api.github.com/users/DeathlyPlays/followers","following_url":"https://api.github.com/users/DeathlyPlays/following{/other_user}","gists_url":"https://api.github.com/users/DeathlyPlays/gists{/gist_id}","starred_url":"https://api.github.com/users/DeathlyPlays/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DeathlyPlays/subscriptions","organizations_url":"https://api.github.com/users/DeathlyPlays/orgs","repos_url":"https://api.github.com/users/DeathlyPlays/repos","events_url":"https://api.github.com/users/DeathlyPlays/events{/privacy}","received_events_url":"https://api.github.com/users/DeathlyPlays/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-02-25T01:28:51Z","updated_at":"2018-02-25T06:51:39Z","closed_at":null,"merged_at":null,"merge_commit_sha":"79faf8759ee51889d317bddaaca6e98e0f867fc5","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/178/commits","review_comments_url":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/178/comments","review_comment_url":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/comments{/number}","comments_url":"https://api.github.com/repos/HoeenCoder/Wavelength/issues/178/comments","statuses_url":"https://api.github.com/repos/HoeenCoder/Wavelength/statuses/d2a422cce355c5f6a050ed3587c4c9faddf3f749","head":{"label":"DeathlyPlays:patch-67","ref":"patch-67","sha":"d2a422cce355c5f6a050ed3587c4c9faddf3f749","user":{"login":"DeathlyPlays","id":20971990,"avatar_url":"https://avatars1.githubusercontent.com/u/20971990?v=4","gravatar_id":"","url":"https://api.github.com/users/DeathlyPlays","html_url":"https://github.com/DeathlyPlays","followers_url":"https://api.github.com/users/DeathlyPlays/followers","following_url":"https://api.github.com/users/DeathlyPlays/following{/other_user}","gists_url":"https://api.github.com/users/DeathlyPlays/gists{/gist_id}","starred_url":"https://api.github.com/users/DeathlyPlays/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DeathlyPlays/subscriptions","organizations_url":"https://api.github.com/users/DeathlyPlays/orgs","repos_url":"https://api.github.com/users/DeathlyPlays/repos","events_url":"https://api.github.com/users/DeathlyPlays/events{/privacy}","received_events_url":"https://api.github.com/users/DeathlyPlays/received_events","type":"User","site_admin":false},"repo":{"id":102762116,"name":"Wavelength","full_name":"DeathlyPlays/Wavelength","owner":{"login":"DeathlyPlays","id":20971990,"avatar_url":"https://avatars1.githubusercontent.com/u/20971990?v=4","gravatar_id":"","url":"https://api.github.com/users/DeathlyPlays","html_url":"https://github.com/DeathlyPlays","followers_url":"https://api.github.com/users/DeathlyPlays/followers","following_url":"https://api.github.com/users/DeathlyPlays/following{/other_user}","gists_url":"https://api.github.com/users/DeathlyPlays/gists{/gist_id}","starred_url":"https://api.github.com/users/DeathlyPlays/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DeathlyPlays/subscriptions","organizations_url":"https://api.github.com/users/DeathlyPlays/orgs","repos_url":"https://api.github.com/users/DeathlyPlays/repos","events_url":"https://api.github.com/users/DeathlyPlays/events{/privacy}","received_events_url":"https://api.github.com/users/DeathlyPlays/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/DeathlyPlays/Wavelength","description":null,"fork":true,"url":"https://api.github.com/repos/DeathlyPlays/Wavelength","forks_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/forks","keys_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/keys{/key_id}","collaborators_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/teams","hooks_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/hooks","issue_events_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/issues/events{/number}","events_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/events","assignees_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/assignees{/user}","branches_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/branches{/branch}","tags_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/tags","blobs_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/git/refs{/sha}","trees_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/git/trees{/sha}","statuses_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/statuses/{sha}","languages_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/languages","stargazers_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/stargazers","contributors_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/contributors","subscribers_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/subscribers","subscription_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/subscription","commits_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/commits{/sha}","git_commits_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/git/commits{/sha}","comments_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/comments{/number}","issue_comment_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/issues/comments{/number}","contents_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/contents/{+path}","compare_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/compare/{base}...{head}","merges_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/merges","archive_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/downloads","issues_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/issues{/number}","pulls_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/pulls{/number}","milestones_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/milestones{/number}","notifications_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/labels{/name}","releases_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/releases{/id}","deployments_url":"https://api.github.com/repos/DeathlyPlays/Wavelength/deployments","created_at":"2017-09-07T16:43:59Z","updated_at":"2017-09-07T16:44:02Z","pushed_at":"2018-02-25T01:34:32Z","git_url":"git://github.com/DeathlyPlays/Wavelength.git","ssh_url":"git@github.com:DeathlyPlays/Wavelength.git","clone_url":"https://github.com/DeathlyPlays/Wavelength.git","svn_url":"https://github.com/DeathlyPlays/Wavelength","homepage":null,"size":50806,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","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":null,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"HoeenCoder:master","ref":"master","sha":"2a3eb16c61ca9acbea59af4c82c1549e23e4936d","user":{"login":"HoeenCoder","id":11671268,"avatar_url":"https://avatars2.githubusercontent.com/u/11671268?v=4","gravatar_id":"","url":"https://api.github.com/users/HoeenCoder","html_url":"https://github.com/HoeenCoder","followers_url":"https://api.github.com/users/HoeenCoder/followers","following_url":"https://api.github.com/users/HoeenCoder/following{/other_user}","gists_url":"https://api.github.com/users/HoeenCoder/gists{/gist_id}","starred_url":"https://api.github.com/users/HoeenCoder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HoeenCoder/subscriptions","organizations_url":"https://api.github.com/users/HoeenCoder/orgs","repos_url":"https://api.github.com/users/HoeenCoder/repos","events_url":"https://api.github.com/users/HoeenCoder/events{/privacy}","received_events_url":"https://api.github.com/users/HoeenCoder/received_events","type":"User","site_admin":false},"repo":{"id":102530456,"name":"Wavelength","full_name":"HoeenCoder/Wavelength","owner":{"login":"HoeenCoder","id":11671268,"avatar_url":"https://avatars2.githubusercontent.com/u/11671268?v=4","gravatar_id":"","url":"https://api.github.com/users/HoeenCoder","html_url":"https://github.com/HoeenCoder","followers_url":"https://api.github.com/users/HoeenCoder/followers","following_url":"https://api.github.com/users/HoeenCoder/following{/other_user}","gists_url":"https://api.github.com/users/HoeenCoder/gists{/gist_id}","starred_url":"https://api.github.com/users/HoeenCoder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HoeenCoder/subscriptions","organizations_url":"https://api.github.com/users/HoeenCoder/orgs","repos_url":"https://api.github.com/users/HoeenCoder/repos","events_url":"https://api.github.com/users/HoeenCoder/events{/privacy}","received_events_url":"https://api.github.com/users/HoeenCoder/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/HoeenCoder/Wavelength","description":"The github repository for the Wavelength server on Pokemon Showdown.","fork":false,"url":"https://api.github.com/repos/HoeenCoder/Wavelength","forks_url":"https://api.github.com/repos/HoeenCoder/Wavelength/forks","keys_url":"https://api.github.com/repos/HoeenCoder/Wavelength/keys{/key_id}","collaborators_url":"https://api.github.com/repos/HoeenCoder/Wavelength/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/HoeenCoder/Wavelength/teams","hooks_url":"https://api.github.com/repos/HoeenCoder/Wavelength/hooks","issue_events_url":"https://api.github.com/repos/HoeenCoder/Wavelength/issues/events{/number}","events_url":"https://api.github.com/repos/HoeenCoder/Wavelength/events","assignees_url":"https://api.github.com/repos/HoeenCoder/Wavelength/assignees{/user}","branches_url":"https://api.github.com/repos/HoeenCoder/Wavelength/branches{/branch}","tags_url":"https://api.github.com/repos/HoeenCoder/Wavelength/tags","blobs_url":"https://api.github.com/repos/HoeenCoder/Wavelength/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/HoeenCoder/Wavelength/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/HoeenCoder/Wavelength/git/refs{/sha}","trees_url":"https://api.github.com/repos/HoeenCoder/Wavelength/git/trees{/sha}","statuses_url":"https://api.github.com/repos/HoeenCoder/Wavelength/statuses/{sha}","languages_url":"https://api.github.com/repos/HoeenCoder/Wavelength/languages","stargazers_url":"https://api.github.com/repos/HoeenCoder/Wavelength/stargazers","contributors_url":"https://api.github.com/repos/HoeenCoder/Wavelength/contributors","subscribers_url":"https://api.github.com/repos/HoeenCoder/Wavelength/subscribers","subscription_url":"https://api.github.com/repos/HoeenCoder/Wavelength/subscription","commits_url":"https://api.github.com/repos/HoeenCoder/Wavelength/commits{/sha}","git_commits_url":"https://api.github.com/repos/HoeenCoder/Wavelength/git/commits{/sha}","comments_url":"https://api.github.com/repos/HoeenCoder/Wavelength/comments{/number}","issue_comment_url":"https://api.github.com/repos/HoeenCoder/Wavelength/issues/comments{/number}","contents_url":"https://api.github.com/repos/HoeenCoder/Wavelength/contents/{+path}","compare_url":"https://api.github.com/repos/HoeenCoder/Wavelength/compare/{base}...{head}","merges_url":"https://api.github.com/repos/HoeenCoder/Wavelength/merges","archive_url":"https://api.github.com/repos/HoeenCoder/Wavelength/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/HoeenCoder/Wavelength/downloads","issues_url":"https://api.github.com/repos/HoeenCoder/Wavelength/issues{/number}","pulls_url":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls{/number}","milestones_url":"https://api.github.com/repos/HoeenCoder/Wavelength/milestones{/number}","notifications_url":"https://api.github.com/repos/HoeenCoder/Wavelength/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/HoeenCoder/Wavelength/labels{/name}","releases_url":"https://api.github.com/repos/HoeenCoder/Wavelength/releases{/id}","deployments_url":"https://api.github.com/repos/HoeenCoder/Wavelength/deployments","created_at":"2017-09-05T21:14:10Z","updated_at":"2018-02-07T16:52:07Z","pushed_at":"2018-02-25T06:42:45Z","git_url":"git://github.com/HoeenCoder/Wavelength.git","ssh_url":"git@github.com:HoeenCoder/Wavelength.git","clone_url":"https://github.com/HoeenCoder/Wavelength.git","svn_url":"https://github.com/HoeenCoder/Wavelength","homepage":"http://wavelength.psim.us/","size":50630,"stargazers_count":6,"watchers_count":6,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":21,"mirror_url":null,"archived":false,"open_issues_count":15,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":21,"open_issues":15,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/178"},"html":{"href":"https://github.com/HoeenCoder/Wavelength/pull/178"},"issue":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/issues/178"},"comments":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/issues/178/comments"},"review_comments":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/178/comments"},"review_comment":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/pulls/178/commits"},"statuses":{"href":"https://api.github.com/repos/HoeenCoder/Wavelength/statuses/d2a422cce355c5f6a050ed3587c4c9faddf3f749"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Volco"}}