Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dev merge to master, PR #3334

Merged
merged 76 commits into from
Aug 9, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
85f7607
Adding plugin support (#2679)
elicwhite Aug 7, 2016
f114be6
Moving the base task to the project root (#2702)
elicwhite Aug 7, 2016
0b319bc
Adding a heartbeat to the analytics (#2709)
elicwhite Aug 7, 2016
1c369a4
Don't double track clients
elicwhite Aug 7, 2016
e16b5ea
Fix 'local variable 'bot' referenced before assignment'
elicwhite Aug 7, 2016
e93431c
Providing an error if tasks don't work for the given api (#2732)
elicwhite Aug 7, 2016
d5bb09f
Fix for utf8 encoding when catching lured pokemon (#2720)
dkim1000 Aug 7, 2016
420c1be
Fix For catchable not being displayed on the web (#2719)
AcorpBG Aug 7, 2016
77200af
Added encrypt.so compilation process to Dockerfile (#2695)
Aug 7, 2016
e927195
OS Detection for encrypt lib (#2768)
brantje Aug 7, 2016
4f7888b
Fix Typo in unexpected_response_retry (#2531)
peter-bonanni Aug 7, 2016
e8f804a
Revert "changing license from MIT to GPLv3"
douglascamata Aug 7, 2016
27cf678
Merge branch 'dev' of github.com:PokemonGoF/PokemonGo-Bot into dev
douglascamata Aug 7, 2016
4eb7b38
When the google analytics domain is blocked the bot crashed. (#2764)
brantje Aug 7, 2016
6960f35
Fixes #2698 - Prevents "Possibly searching too often" error after re-…
geek-man Aug 7, 2016
eeecbc6
Support loading plugins from .zip files (#2766)
elicwhite Aug 7, 2016
2750255
Keep track of how many pokemon released (#2884)
bixuanzju Aug 7, 2016
823ba83
Setting Library path to work with encrypt.so (#2899)
bernardoVale Aug 7, 2016
fc4e802
:sparkles: Added login and username to available stats (#2494)
Aug 7, 2016
e5b7eda
[dev] small fixes (#2912)
mjmadsen Aug 7, 2016
dee28d9
Rename load_path to load_plugin (#2947)
elicwhite Aug 7, 2016
0855dac
Adding some logic for pulling plugins from github (#2967)
elicwhite Aug 8, 2016
a1733b9
flush after title update (#2977)
mhdasding Aug 8, 2016
e66c509
correctly re-raise exception to keep backtrace (#2944)
rbignon Aug 8, 2016
bdcf251
Update MoveToMapPokemon to use events instead of logger. (#2913)
chrisle Aug 8, 2016
95902d6
Config/encrypt.so (#2964)
DevScarabyte Aug 8, 2016
41ed10c
Fixed mispelling for "formatted" variable (#2984)
middleagedman Aug 8, 2016
563f898
Loading plugins from Github (#2992)
elicwhite Aug 8, 2016
229381c
Fixed #3000 (#3003)
raulgbcr Aug 8, 2016
1a18b9f
Added MaxPotion inventory count to summary. (#3015)
JaapMoolenaar Aug 8, 2016
4faf962
Added cleanup of download and files for encrypt.so after they are no …
Aug 8, 2016
7cc524e
Fix bot not returning back after telepoting (#3014)
bixuanzju Aug 8, 2016
283c17e
Fix Dockerfile installation (#3057)
nikofil Aug 8, 2016
351ea76
Fix for #3045 (#3055)
cmezh Aug 8, 2016
20aeb90
Added request to check configuration (#3089)
mjmadsen Aug 8, 2016
ff380cd
Fixed Dockerfile - missing \ on command lines (#3096)
middleagedman Aug 8, 2016
a5e9131
Fix for FileIO slowing bot performance.This puts the map writing into…
ajurna Aug 8, 2016
d8546d7
Change word usage: "fled" to "escaped" (#3118)
DeviousFusion Aug 8, 2016
0b3aa4f
Update the example config file (#3120)
hklcf Aug 8, 2016
d0f60a2
typo: logrmation -> information (#2601)
gokaygurcan Aug 8, 2016
f648be3
Change fled to escaped (#3129)
pmquan Aug 8, 2016
47ab81f
When JSON parsing fails, give a rough indication of why (#3137)
cwild Aug 8, 2016
c8a33bc
Handle Github Download Zip Format (#3108)
elicwhite Aug 8, 2016
625275c
Merge branch 'master' into dev
solderzzc Aug 8, 2016
5fb1f04
Merge branch 'dev' of https://github.com/PokemonGoF/PokemonGo-Bot int…
solderzzc Aug 8, 2016
4b16e9d
Refactor catch worker (#2527)
pokepal Aug 8, 2016
597196e
Added Run-Loop (#3143)
devn0ll Aug 9, 2016
ec3babc
fixing loop in spin fort task (#3165)
douglascamata Aug 9, 2016
a2b9fe9
Some love for the vim users (#3154)
gurupras Aug 9, 2016
8a2a52b
Updated README with link to desktop version (#3208)
JVenberg Aug 9, 2016
5e3179b
Fix for #3190 (#3197)
bigkraig Aug 9, 2016
e4c54dc
MoveToMap: Add minimum balls to run (#3166)
pmquan Aug 9, 2016
61b6854
added config to ignore item count for Spin and MoveToFort (#3160)
douglascamata Aug 9, 2016
03d7f92
[Inventory Management] Add a central class for caching/parsing invent…
aeckert Aug 9, 2016
f6d73af
Keeping a cache of gym information (#3236)
elicwhite Aug 9, 2016
ce9eb2b
New Option: "dont_nickname_favorite" (#2496)
aceradryd Aug 9, 2016
7e699dd
Restart the loop when catching pokemon and there are more to catch (#…
elicwhite Aug 9, 2016
e73d302
fixed NameError: global name 'pokemon_name' is not defined (#3244)
schubter Aug 9, 2016
8203f36
Stop fetching gym details (#3245)
elicwhite Aug 9, 2016
4c95259
Checking all forts for lured pokemon (#3163)
douglascamata Aug 9, 2016
d420823
Fix flooding of keep_best_release (#3223)
phphong Aug 9, 2016
0f9351e
[Feature] Recycle Threshold (#2465)
Aug 9, 2016
49f9177
Call heartbeat on step_walker even if speed is higher than distance (…
lucasfevi Aug 9, 2016
59f55fd
Return an empty list if no pokemon are available. (#3259)
poupas Aug 9, 2016
79266a0
Allow UpdateTitleStats to emit events instead of rewriting the consol…
Aug 9, 2016
b3d8d86
Updating our issue and PR templates to be more helpful (#3262)
elicwhite Aug 9, 2016
1060afa
Dev (#3277)
mvrska Aug 9, 2016
f4b4c28
Update pgoapi to a newer version (#3241)
eriweb Aug 9, 2016
3e1dc1b
Fix unexpected egg incubation retry (#3276)
eevee-github Aug 9, 2016
0f2bddd
has_next_evolution is a function not a property (#3284)
thebigjc Aug 9, 2016
2ded2ee
Powerful setup.sh (#3263)
simonsmh Aug 9, 2016
e03f834
Added +x to run.sh
solderzzc Aug 9, 2016
c8aaf4b
Added a configuration option "path_startmode" (conflict merge #2489) …
JaapMoolenaar Aug 9, 2016
80a307e
Adding documentation for how to use and write plugins (#3254)
elicwhite Aug 9, 2016
932fd2b
Updating link to the plugin docs in the readme
elicwhite Aug 9, 2016
6bcc631
Merge branch 'master' into dev
solderzzc Aug 9, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,23 @@
Please check configuration at http://jsonlint.com/ before posting an issue.
## Stop! Before you create this issue (you can delete this section when opening the issue):
1. Have you validated that your config.json is valid JSON? Use http://jsonlint.com/ to check.
2. Have you searched to see if there are other issues for the same issue? If so, comment on that issue instead.
3. Are you running `master`? We work on the `dev` branch and then add that functionality to `master`. Your issue may be fixed on `dev` and there is no need for this issue, just wait and it will eventually be merged to `master`.

### Expected Behavior


### Actual Behavior


### Your config.json (remove your credentials and any other private info)
```
your config here
```

### Steps to Reproduce


### Other Information
OS:
OS:
Git Commit: (run 'git log -n 1 --pretty=format:"%H"' and paste it here)
Python Version: (run 'python -V' and paste it here)
18 changes: 13 additions & 5 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
Short Description:
# Please Note (you may remove this section before opening your PR):
We receive lots of PRs and it is hard to give proper review to PRs. Please make it easy on us by following these guidelines:

Fixes:
-
-
-
1. We do not accept changes to `master`. Please make sure your pull request is aimed at `dev`.
2. If you changed a bunch of files (that aren't config files) or multiple workers to implement your feature, it probably won't get proper attention. Please split it up into multiple, smaller, more focused, and iterative PRs if you can.
3. If you are adding a config value to something, make sure you update the appropriate `config.json` example files.


## Short Description:

## Fixes (provide links to github issues if you can):
-
-
-

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -125,3 +125,6 @@ include/

# Pip check file
pip-selfcheck.json

# Some love for the vim users
.*.sw*
5 changes: 5 additions & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,11 @@
* matheussampaio
* Abraxas000
* lucasfevi
* pokepal
* Moonlight-Angel
* mjmadsen
* nikofil
* bigkraig
* nikhil-pandey
* thebigjc
* JaapMoolenaar
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
PokemonGo bot is a project created by the [PokemonGoF](https://github.com/PokemonGoF) team.
The project is currently setup in two main branches. `dev` and `master`.

## Help Needed on [Desktop Version](https://github.com/PokemonGoF/PokemonGo-Bot-Desktop)

## Please submit PR to [Dev branch](https://github.com/PokemonGoF/PokemonGo-Bot/tree/dev)

We use [Slack](https://slack.com) as a web chat. [Click here to join the chat!](https://pokemongo-bot.herokuapp.com)
Expand All @@ -12,8 +14,6 @@ You can count on the community in #help channel.
- [Features](#features)
- [Wiki](#wiki)
- [Credits](#credits)
- [Donation](#donation)


## Features
- [x] GPS Location configuration
Expand Down Expand Up @@ -54,6 +54,7 @@ All information on [Getting Started](https://github.com/PokemonGoF/PokemonGo-Bot
- [Mac] (https://github.com/PokemonGoF/PokemonGo-Bot/wiki/Installation#installation-mac)
- [Windows] (https://github.com/PokemonGoF/PokemonGo-Bot/wiki/Installation#installation-windows)
- [Develop PokemonGo-Bot](https://github.com/PokemonGoF/PokemonGo-Bot/wiki/Develop-PokemonGo-Bot)
- [Plugins](https://github.com/PokemonGoF/PokemonGo-Bot/blob/dev/docs/plugins.md)
- [Configuration-files](https://github.com/PokemonGoF/PokemonGo-Bot/wiki/Configuration-files)
- [Front end web module - Google Maps API] (https://github.com/PokemonGoF/PokemonGo-Bot/wiki/Google-Maps-API-(web-page))
- [Docker Usage](https://github.com/PokemonGoF/PokemonGo-Bot/wiki/FAQ#how-to-run-with-docker)
Expand Down
1 change: 1 addition & 0 deletions configs/config.json.cluster.example
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
{
"type": "RecycleItems",
"config": {
"min_empty_space": 15,
"item_filter": {
"Pokeball": { "keep" : 100 },
"Potion": { "keep" : 10 },
Expand Down
1 change: 1 addition & 0 deletions configs/config.json.example
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
{
"type": "RecycleItems",
"config": {
"min_empty_space": 15,
"item_filter": {
"Pokeball": { "keep" : 100 },
"Potion": { "keep" : 10 },
Expand Down
6 changes: 5 additions & 1 deletion configs/config.json.map.example
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
{
"type": "RecycleItems",
"config": {
"min_empty_space": 15,
"item_filter": {
"Pokeball": { "keep" : 100 },
"Potion": { "keep" : 10 },
Expand All @@ -58,8 +59,11 @@
"address": "http://localhost:5000",
"max_distance": 500,
"min_time": 60,
"min_ball": 50,
"prioritize_vips": true,
"snipe": false,
"snipe": true,
"snipe_high_prio_only": true,
"snipe_high_prio_threshold": 400,
"update_map": true,
"mode": "priority",
"catch": {
Expand Down
2 changes: 2 additions & 0 deletions configs/config.json.path.example
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
{
"type": "RecycleItems",
"config": {
"min_empty_space": 15,
"item_filter": {
"Pokeball": { "keep" : 100 },
"Potion": { "keep" : 10 },
Expand All @@ -59,6 +60,7 @@
"type": "FollowPath",
"config": {
"path_mode": "loop",
"path_start_mode": "first",
"path_file": "configs/path.example.json"
}
}
Expand Down
1 change: 1 addition & 0 deletions configs/config.json.pokemon.example
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
{
"type": "RecycleItems",
"config": {
"min_empty_space": 15,
"item_filter": {
"Pokeball": { "keep" : 100 },
"Potion": { "keep" : 10 },
Expand Down
66 changes: 66 additions & 0 deletions docs/plugins.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# PokemonGo-Bot Plugins
Plugins are collections of tasks distributed outside of the main repo. Using plugins lets you use community built tasks that haven't been accepted into the core bot. Some tasks are better suited to not live in the main bot. An example might be a task that reports seen pokemon to a central server.

## Using Plugins
Plugins are used by adding some new information to your `config.json`.

In your `config.json`, you can add a new array:

```
...
"plugins": [
],
...
```

In this array, you can put a Github URL that contains the revision you want to use. For example:

```
...
"plugins": [
"TheSavior/test-pgo-plugin#2d54eddde33061be9b329efae0cfb9bd58842655"
],
...
```

Once that is there, you can add to your `tasks` array the task you want to use from the plugin. Plugins can expose many tasks, check the plugin's documentation for what tasks can be used.

```
...
"tasks": [
{
"type": "test-pgo-plugin.PrintText"
}
]
..
```

Then start the bot. It will download the specified plugins and use them when requested in your `tasks` list.

## Developing Plugins
The plugins array can be given a full path to a folder containing a plugin as well as the github url format. When developing a plugin, use a directory outside the root of the bot and add it to your plugins array. Unlike the github url format, it won't be copied to the bot when it is started up, it will be loaded directly from the specified directory.

Plugins have access to any of the things that the tasks in the official repo have access to.

### Example
I recommend looking at this plugin for an example of how to write a plugin: https://github.com/TheSavior/test-pgo-plugin

### API Versioning
We may at some point need to make a backwards incompatible change to the plugin BaseTask. We will avoid this as much as possible, but in the event that occurs, this is how incompatibilities are detected:

The `BaseTask` class specifies:

```
class BaseTask(object):
TASK_API_VERSION = 1
```

When we need to make a backwards incompatible change, we will increment that number. Plugins have the following:

```
class PrintText(BaseTask):
SUPPORTED_TASK_API_VERSION = 1
```

If a user tries to use a plugin that has a `SUPPORTED_TASK_API_VERSION` that does not match the current bot's `TASK_API_VERSION`, an exception will be raised.

79 changes: 61 additions & 18 deletions install.sh
Original file line number Diff line number Diff line change
@@ -1,19 +1,62 @@
#!/usr/bin/env bash

# Setup Python virtualenv
echo "Setting up Python virtualenv..."
eval "virtualenv ."
eval "source bin/activate"
echo "Python virtualenv setup successfully."

# Install pip requirements
echo "Installing pip requirements..."
eval "pip install -r requirements.txt"
echo "Installed pip requirements."
echo "Installing and updating git submodules..."

# Install git submodules
eval "cd ./web && git submodule init && cd .."
eval "git submodule update"
echo "Done."
echo "Please create and setup configs/config.json. Then, run 'python pokecli.py --config ./configs/config.json' or './run.sh' on Mac/Linux"
pokebotpath=$(pwd)
cd $pokebotpath
if [ -f /etc/debian_version ]
then
echo "You are on Debian/Ubuntu"
sudo apt-get update
sudo apt-get -y install python python-pip python-dev build-essential git python-protobuf virtualenv
elif [ -f /etc/redhat-release ]
then
echo "You are on CentOS/RedHat"
sudo yum -y install epel-release
sudo yum -y install python-pip
elif [ "$(uname -s)" == "Darwin" ]
then
echo "You are on Mac os"
sudo brew update
sudo brew install --devel protobuf
else
echo "Nothing happend."
fi
pip install virtualenv
cd $pokebotpath
git pull
git submodule init
git submodule foreach git pull origin master
virtualenv .
source bin/activate
pip install -r requirements.txt
echo "Start to make encrypt.so"
wget http://pgoapi.com/pgoencrypt.tar.gz
tar -xf pgoencrypt.tar.gz
cd pgoencrypt/src/
make
mv libencrypt.so $pokebotpath/encrypt.so
cd ../..
rm -rf pgoencrypt.tar.gz
rm -rf pgoencrypt
echo "Install complete."
cd $pokebotpath
read -p "1.google 2.ptc
" auth
read -p "Input username
" username
read -p "Input password
" -s password
read -p "
Input location
" location
read -p "Input gmapkey
" gmapkey
cp configs/config.json.example configs/config.json
if [ "$auth" = "2" ]
then
sed -i "s/google/ptc/g" configs/config.json
fi
sed -i "s/YOUR_USERNAME/$username/g" configs/config.json
sed -i "s/YOUR_PASSWORD/$password/g" configs/config.json
sed -i "s/SOME_LOCATION/$location/g" configs/config.json
sed -i "s/GOOGLE_MAPS_API_KEY/$gmapkey/g" configs/config.json
echo "Edit configs/config.json to modify any other config. Use run.sh to run."
exit 0
Loading