{"action":"created","issue":{"url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/issues/787","repository_url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map","labels_url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/issues/787/labels{/name}","comments_url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/issues/787/comments","events_url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/issues/787/events","html_url":"https://github.com/PokemonGoMap/PokemonGo-Map/pull/787","id":171784336,"number":787,"title":"Preventing teleportation of accounts in Spawnpoint Scanning mode by pre-scheduling scans to be below a speed limit","user":{"login":"clvv","id":200888,"avatar_url":"https://avatars.githubusercontent.com/u/200888?v=3","gravatar_id":"","url":"https://api.github.com/users/clvv","html_url":"https://github.com/clvv","followers_url":"https://api.github.com/users/clvv/followers","following_url":"https://api.github.com/users/clvv/following{/other_user}","gists_url":"https://api.github.com/users/clvv/gists{/gist_id}","starred_url":"https://api.github.com/users/clvv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clvv/subscriptions","organizations_url":"https://api.github.com/users/clvv/orgs","repos_url":"https://api.github.com/users/clvv/repos","events_url":"https://api.github.com/users/clvv/events{/privacy}","received_events_url":"https://api.github.com/users/clvv/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/labels/awaiting%20review","name":"awaiting review","color":"006b75"},{"url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/labels/backend","name":"backend","color":"fbca04"},{"url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":83,"created_at":"2016-08-17T23:27:58Z","updated_at":"2016-08-30T06:45:02Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/pulls/787","html_url":"https://github.com/PokemonGoMap/PokemonGo-Map/pull/787","diff_url":"https://github.com/PokemonGoMap/PokemonGo-Map/pull/787.diff","patch_url":"https://github.com/PokemonGoMap/PokemonGo-Map/pull/787.patch"},"body":"## Description\r\nThis commit adds a method `assign_spawns' to assign a worker id to each\r\nspawn point. The goal is to keep each worker's scanning speed to be\r\nbelow a set limit (defaults to 30m/s). The algorithm greedily tries to\r\nassign each spawnpoint to the account that need to travel the slowest to\r\nscan that location. If this cannot be done, an additional delay will be\r\nadded. User will be prompted to increase the number of accounts used if\r\nsuch delay is larger than 60s.\r\n\r\n## Motivation and Context\r\nSpawnpoint scanning of a large area can create soft bans since account sometimes teleport (i.e. travel with very fast speed). This commit pre-schedules scans to each account so that all scans are done under the default speed limit of 30 m/s (~67mi/h, 108km/h). The speed limit is configurable via the new option \"-ms\", \"--max-speed\".\r\n\r\n## How Has This Been Tested?\r\nChanges:\r\n\r\n- Method `assign_spawns` is added. `assign_spawns` takes the list of spawnpoints, number of workers / accounts, the max speed, and returns the same list of spawns with an extra field \"worker\" that contains which worker the spawnpoint is assigned.\r\n- `search_items_queue` is changed to a list of queues instead. Each worker gets a queue that the overseer thread will fill based on the field \"worker\" of the spawnpoint.\r\n\r\nTested on update-to-date Arch linux setup. Experiments shows that under a number of spawnpoint distributions, 50 spawnpoints / account is the sweet spot of staying under the speed limit.\r\n\r\nThese changes only affect spawnpoint scanning mode. Changes are also made so that existing interfaces of Spawnpoint Scanning are changed as minimally as possible.\r\n\r\n## Screenshots (if appropriate):\r\n\r\n## Types of changes\r\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->\r\n- [ ] Bug fix (non-breaking change which fixes an issue)\r\n- [x] New feature (non-breaking change which adds functionality)\r\n- [x] Breaking change (fix or feature that would cause existing functionality to change)\r\n\r\n## Checklist:\r\n<!--- Go over all the following points, and put an `x` in all the boxes that apply. -->\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 style of this project.\r\n- [x] My change requires a change to the documentation.\r\n- [x] I have updated the documentation accordingly.\r\n"},"comment":{"url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/issues/comments/243347938","html_url":"https://github.com/PokemonGoMap/PokemonGo-Map/pull/787#issuecomment-243347938","issue_url":"https://api.github.com/repos/PokemonGoMap/PokemonGo-Map/issues/787","id":243347938,"user":{"login":"Forbes256","id":21028672,"avatar_url":"https://avatars.githubusercontent.com/u/21028672?v=3","gravatar_id":"","url":"https://api.github.com/users/Forbes256","html_url":"https://github.com/Forbes256","followers_url":"https://api.github.com/users/Forbes256/followers","following_url":"https://api.github.com/users/Forbes256/following{/other_user}","gists_url":"https://api.github.com/users/Forbes256/gists{/gist_id}","starred_url":"https://api.github.com/users/Forbes256/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Forbes256/subscriptions","organizations_url":"https://api.github.com/users/Forbes256/orgs","repos_url":"https://api.github.com/users/Forbes256/repos","events_url":"https://api.github.com/users/Forbes256/events{/privacy}","received_events_url":"https://api.github.com/users/Forbes256/received_events","type":"User","site_admin":false},"created_at":"2016-08-30T06:45:02Z","updated_at":"2016-08-30T06:45:02Z","body":"> Could be, but I'm definitely getting far fewer softbans than with the dev branch -ss using the same spawn points."}}
{"actor":{"display_login":"Forbes256"}}