{"action":"created","issue":{"url":"https://api.github.com/repos/PokemonGoF/PokemonGo-Bot/issues/2491","repository_url":"https://api.github.com/repos/PokemonGoF/PokemonGo-Bot","labels_url":"https://api.github.com/repos/PokemonGoF/PokemonGo-Bot/issues/2491/labels{/name}","comments_url":"https://api.github.com/repos/PokemonGoF/PokemonGo-Bot/issues/2491/comments","events_url":"https://api.github.com/repos/PokemonGoF/PokemonGo-Bot/issues/2491/events","html_url":"https://github.com/PokemonGoF/PokemonGo-Bot/pull/2491","id":169155935,"number":2491,"title":"feat: optimizations to get more experience per hour ( 80+k per hour )","user":{"login":"matheussampaio","id":1020467,"avatar_url":"https://avatars.githubusercontent.com/u/1020467?v=3","gravatar_id":"","url":"https://api.github.com/users/matheussampaio","html_url":"https://github.com/matheussampaio","followers_url":"https://api.github.com/users/matheussampaio/followers","following_url":"https://api.github.com/users/matheussampaio/following{/other_user}","gists_url":"https://api.github.com/users/matheussampaio/gists{/gist_id}","starred_url":"https://api.github.com/users/matheussampaio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matheussampaio/subscriptions","organizations_url":"https://api.github.com/users/matheussampaio/orgs","repos_url":"https://api.github.com/users/matheussampaio/repos","events_url":"https://api.github.com/users/matheussampaio/events{/privacy}","received_events_url":"https://api.github.com/users/matheussampaio/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":25,"created_at":"2016-08-03T15:09:30Z","updated_at":"2016-08-03T20:36:41Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/PokemonGoF/PokemonGo-Bot/pulls/2491","html_url":"https://github.com/PokemonGoF/PokemonGo-Bot/pull/2491","diff_url":"https://github.com/PokemonGoF/PokemonGo-Bot/pull/2491.diff","patch_url":"https://github.com/PokemonGoF/PokemonGo-Bot/pull/2491.patch"},"body":"**THIS CODE ISN'T INTENDED TO BE MERGED.**\r\n\r\nIt's here because some people on Slack asked me to, so they can test and discuss.\r\n\r\n# Short Description:\r\nA bunch of optimizations to improve the experience per hour. \r\n\r\n# Main changes:\r\n- Add a loop to Spin Fort worker, now we spin every ready and in range fort per tick.\r\n- Add a loop in CatchLuredPokemon, same as above.\r\n- Add a loop in CatchVisiblePokemon, same as above.\r\n- Spin fort even with full inventory\r\n- Move to fort even with full inventory\r\n- Also filter forts with `cooldown_complete_timestamp_ms` (to spinning and moving to)\r\n- Remove a bunch of logs (it's hard to see what happens)\r\n- Change some logs (to make it easy to see the experience)\r\n- Add PR #2252 (thanks @Moonlight-Angel) and PR #2440 (thanks @lucasfevi)\r\n- Add minimum 5 seconds to each tick (avoid softbans)\r\n- Fixed logs with colors (that extra space freaked me out)\r\n\r\n# NOTE:\r\n- In this commit, EvolveAll worker, take 25+ seconds to complete. So DON'T use it.\r\n      Just evolve after catching pokemons.\r\n- I based this commit on e58bf3d57c1c74d7847fdfa55b08410f48917bd0, so won't merge with the latest dev.\r\n- Don't forget to execute `virtualenv .` and `pip install -r requirements.txt`\r\n\r\n# **BREAKING CHANGES:**\r\n- Add tick_count and delayed some workers (RecycleItem, TransferPokemon).\r\n```diff\r\n- def work(self):\r\n+ def work(self, *args, **kwargs):\r\n```\r\n- Could be more.\r\n\r\n## Recommended `config.json`:\r\n❗   **CHANGE RELEASE RULES AND RECYCLE ITEMS RULES** ❗ \r\n\r\n```\r\n{\r\n    \"auth_service\": \"google\",\r\n    \"username\": \"xxx\",\r\n    \"password\": \"xxx\",\r\n    \"location\": \"40.774626,-73.972706\",\r\n    \"gmapkey\": \"xxx\",\r\n    \"tasks\": [\r\n        {\r\n            \"type\": \"HandleSoftBan\"\r\n        },\r\n        {\r\n            \"type\": \"UpdateTitleStats\",\r\n            \"config\": {\r\n                \"min_interval\": 60,\r\n                \"stats\": [\"uptime\", \"km_walked\", \"level_stats\", \"xp_earned\", \"xp_per_minute\", \"stops_visited\", \"pokemon_caught\", \"pokemon_evolved\"]\r\n            }\r\n        },\r\n        {\r\n            \"type\": \"RecycleItems\",\r\n            \"config\": {\r\n                \"item_filter\": {\r\n                    \"Pokeball\": {\r\n                        \"keep\": 80\r\n                    },\r\n                    \"Greatball\": {\r\n                        \"keep\": 80\r\n                    },\r\n                    \"Ultraball\": {\r\n                        \"keep\": 80\r\n                    },\r\n                    \"Masterball\": {\r\n                        \"keep\": 80\r\n                    },\r\n                    \"Razz Berry\": {\r\n                        \"keep\": 50\r\n                    },\r\n                    \"Potion\": {\r\n                        \"keep\": 0\r\n                    },\r\n                    \"Super Potion\": {\r\n                        \"keep\": 0\r\n                    },\r\n                    \"Hyper Potion\": {\r\n                        \"keep\": 0\r\n                    },\r\n                    \"Max Potion\": {\r\n                        \"keep\": 0\r\n                    },\r\n                    \"Revive\": {\r\n                        \"keep\": 0\r\n                    },\r\n                    \"Max Revive\": {\r\n                        \"keep\": 0\r\n                    }\r\n                }\r\n            }\r\n        },\r\n        {\r\n            \"type\": \"CollectLevelUpReward\"\r\n        },\r\n        {\r\n            \"type\": \"IncubateEggs\",\r\n            \"config\": {\r\n                \"longer_eggs_first\": true\r\n            }\r\n        },\r\n        {\r\n            \"type\": \"CatchVisiblePokemon\"\r\n        },\r\n        {\r\n            \"type\": \"CatchLuredPokemon\"\r\n        },\r\n        {\r\n            \"type\": \"TransferPokemon\"\r\n        },\r\n        {\r\n            \"type\": \"SpinFort\"\r\n        },\r\n        {\r\n            \"type\": \"MoveToFort\",\r\n            \"config\": {\r\n                \"lure_attraction\": true,\r\n                \"lure_max_distance\": 2000\r\n            }\r\n        }\r\n    ],\r\n    \"map_object_cache_time\": 5,\r\n    \"max_steps\": 150,\r\n    \"forts\": {\r\n        \"avoid_circles\": true,\r\n        \"max_circle_size\": 100\r\n    },\r\n    \"websocket_server\": true,\r\n    \"walk\": 80,\r\n    \"action_wait_min\": 0,\r\n    \"action_wait_max\": 1,\r\n    \"debug\": false,\r\n    \"test\": false,\r\n    \"health_record\": false,\r\n    \"location_cache\": false,\r\n    \"distance_unit\": \"km\",\r\n    \"reconnecting_timeout\": 15,\r\n    \"evolve_captured\": \"Pidgey,Rattata,Zubat,Weedle,Drowzee,Spearow,Venonat,Caterpie,Krabby,Paras,Jigglypuff,Sandshrew,Vulpix,Meowth,Psyduck,Mankey,Tentacool,Ponyta,Slowpoke,Magnemite,Doduo,Seel,Voltorb,Horsea,Goldeen,Staryu,Ekans\",\r\n    \"catch_randomize_reticle_factor\": 1.0,\r\n    \"catch_randomize_spin_factor\": 1.0,\r\n    \"catch\": {\r\n        \"any\": {\r\n            \"catch_above_cp\": 0,\r\n            \"catch_above_iv\": 0,\r\n            \"logic\": \"or\"\r\n        }\r\n    },\r\n    \"release\": {\r\n        \r\n    },\r\n    \"vips\" : {\r\n        \"any\": {\r\n            \"catch_above_cp\": 1200,\r\n            \"catch_above_iv\": 0.9,\r\n            \"logic\": \"or\"\r\n        },\r\n        \"Lapras\": {},\r\n        \"Moltres\": {},\r\n        \"Zapdos\": {},\r\n        \"Articuno\": {},\r\n        \"Mewtwo\": {},\r\n        \"Dragonite\": {},\r\n        \"Snorlax\": {},\r\n        \"Mew\": {},\r\n        \"Arcanine\": {},\r\n        \"Vaporeon\": {},\r\n        \"Gyarados\": {},\r\n        \"Exeggutor\": {},\r\n        \"Muk\": {},\r\n        \"Weezing\": {},\r\n        \"Flareon\": {}\r\n    }\r\n}\r\n```\r\n\r\n## How to:\r\n\r\n**Install:**\r\n```shell\r\n$ git clone https://github.com/PokemonGoF/PokemonGo-Bot\r\n$ cd PokemonGo-Bot\r\n$ git fetch origin pull/2491/head:more-is-better\r\n$ git checkout more-is-better\r\n$ virtualenv .\r\n$ source bin/activate\r\n$ pip install -r requirements.txt\r\n````\r\n\r\n**Start:**\r\n```shell\r\n$ ./pokecli.py -cf configs/config.json\r\n```\r\n\r\n## Stats:\r\n\r\n@matheussampaio\r\n```\r\n[09:15:26] Ran for 6:25:14\r\n[09:15:26] Total XP Earned: 520285  Average: 81033.48/h\r\n[09:15:26] Travelled 19.71km\r\n[09:15:26] Visited 2051 stops\r\n[09:15:26] Encountered 1508 pokemon, 1431 caught, 0 released, 203 evolved, 1 never seen before\r\n[09:15:26] Threw 1875 pokeballs\r\n[09:15:26] Earned 156165 Stardust\r\n[09:15:26]\r\n[09:15:26] Highest CP Pokemon: Golduck [CP: 1696] [IV: 6/1/15] Potential: 0.49\r\n[09:15:26] Most Perfect Pokemon: Exeggcute [CP: 621] [IV: 14/15/14] Potential: 0.96\r\n```\r\n\r\n@lucasfevi:\r\n```\r\n[15:21:14] Ran for 7:27:34\r\n[15:21:14] Total XP Earned: 645165  Average: 86488.98/h\r\n[15:21:14] Travelled 15.90km\r\n[15:21:14] Visited 2721 stops\r\n[15:21:14] Encountered 1776 pokemon, 1704 caught, 0 released, 261 evolved, 8 never seen before\r\n[15:21:14] Threw 2157 pokeballs\r\n[15:21:14] Earned 174807 Stardust\r\n[15:21:14]\r\n[15:21:14] Highest CP Pokemon: Pinsir [CP: 1724] [IV: 14/12/13] Potential: 0.87\r\n[15:21:14] Most Perfect Pokemon: Poliwag [CP: 626] [IV: 13/15/15] Potential: 0.96\r\n```\r\n\r\n@w0rd3r (with lucky egg):\r\n```\r\nUptime : 0:58:58 | 3.29km walked | Level 26 (292,835 / 390,000, 75%) | +216,080 XP | 3,662 XP/m | Visited 4.36 /m | Caught 3.85 /m | Evolved 1.61 /m\r\n```\r\n\r\n@theVdude:\r\n```\r\nUptime : 0:31:21 | 2.36km walked | Level 29 (562,835 / 650,000, 86%) | +126,160 XP | 4,069 XP/m | Visited 4.68 /m | Caught 2.97 /m | Evolved 2.39 /m\r\n```"},"comment":{"url":"https://api.github.com/repos/PokemonGoF/PokemonGo-Bot/issues/comments/237364825","html_url":"https://github.com/PokemonGoF/PokemonGo-Bot/pull/2491#issuecomment-237364825","issue_url":"https://api.github.com/repos/PokemonGoF/PokemonGo-Bot/issues/2491","id":237364825,"user":{"login":"Erody","id":17033471,"avatar_url":"https://avatars.githubusercontent.com/u/17033471?v=3","gravatar_id":"","url":"https://api.github.com/users/Erody","html_url":"https://github.com/Erody","followers_url":"https://api.github.com/users/Erody/followers","following_url":"https://api.github.com/users/Erody/following{/other_user}","gists_url":"https://api.github.com/users/Erody/gists{/gist_id}","starred_url":"https://api.github.com/users/Erody/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Erody/subscriptions","organizations_url":"https://api.github.com/users/Erody/orgs","repos_url":"https://api.github.com/users/Erody/repos","events_url":"https://api.github.com/users/Erody/events{/privacy}","received_events_url":"https://api.github.com/users/Erody/received_events","type":"User","site_admin":false},"created_at":"2016-08-03T20:36:40Z","updated_at":"2016-08-03T20:36:40Z","body":"Getting the Waiting spam as well now. Was running just fine for a few hours before that. Even after restarting it just spams Waiting ..."}}
{"actor":{"display_login":"Erody"}}