├── PokeVisionFinder.py ├── README.md ├── RunPVF.bat ├── RunPVFcatchfile.bat ├── Sniper └── HereGoesPokeSniper2Files ├── catch.txt ├── coords.txt ├── errors.log ├── pokemons.log ├── pokemons.py └── wincolors.py /PokeVisionFinder.py: -------------------------------------------------------------------------------- 1 | import os 2 | import urllib2 3 | import traceback 4 | import argparse 5 | from time import time 6 | import json 7 | from pokemons import pokemonlist 8 | import httplib 9 | import re 10 | import requests 11 | import subprocess 12 | import wincolors 13 | 14 | __author__ = 'encode' 15 | __version__ = '0.1.5' 16 | 17 | _nt = False 18 | if os.name is "nt": 19 | _nt = True 20 | 21 | _cities = [] 22 | 23 | _pokemons = [] 24 | 25 | _pokemonslisted = [] 26 | 27 | _session =requests.Session() 28 | _sessionid = "" 29 | 30 | _scriptpath = os.path.abspath(os.path.dirname(__file__)) 31 | ps_dir = os.path.join(_scriptpath,"Sniper") 32 | ps_path = os.path.join(ps_dir,"PokeSniper2.exe") 33 | 34 | #ErrorLogger 35 | def _logError(error): 36 | os.chdir(_scriptpath) 37 | with open("errors.log", "a+") as f: 38 | f.write(error + "\n") 39 | f.close() 40 | 41 | #JsonData 42 | def _jsondata(url): 43 | if _nt and _colors: 44 | wincolors.paint(wincolors.colors.ERROR) 45 | try: 46 | _rawdata = urllib2.urlopen(url) 47 | return json.load(_rawdata) 48 | except urllib2.HTTPError, e: 49 | if _verbose == 1: 50 | print '[ERROR] HTTPError' 51 | elif _verbose == 2: 52 | print '[ERROR] HTTPError = ' + str(e) 53 | _logError(str(e)) 54 | return url 55 | except urllib2.URLError, e: 56 | if _verbose == 1: 57 | print '[ERROR] URLError' 58 | elif _verbose == 2: 59 | print '[ERROR] URLError = ' + str(e) 60 | _logError(str(e)) 61 | return url 62 | except httplib.HTTPException, e: 63 | if _verbose == 1: 64 | print '[ERROR] HTTPException' 65 | elif _verbose == 2: 66 | print '[ERROR] HTTPException = ' + str(e) 67 | _logError(str(e)) 68 | return url 69 | except ValueError, e: 70 | if _verbose == 1: 71 | print '[ERROR] ValueError' 72 | elif _verbose == 2: 73 | print '[ERROR] ValueError = ' + str(e) 74 | _logError(str(e)) 75 | return url 76 | except Exception: 77 | if _verbose == 1: 78 | print '[ERROR] generic exception: ' 79 | elif _verbose == 2: 80 | print '[ERROR] generic exception: ' + traceback.format_exc() 81 | _logError(traceback.format_exc()) 82 | return url 83 | 84 | #JsonData Custom Headers 85 | def _jsondatach(url): 86 | if _nt and _colors: 87 | wincolors.paint(wincolors.colors.ERROR) 88 | try: 89 | _headers = { 'User-Agent' : 'Mozilla/5.0' } 90 | _req = urllib2.Request(url, None,_headers) 91 | _rawdata = urllib2.urlopen(_req) 92 | return json.load(_rawdata) 93 | except urllib2.HTTPError, e: 94 | if _verbose == 1: 95 | print '[ERROR] HTTPError' 96 | elif _verbose == 2: 97 | print '[ERROR] HTTPError = ' + str(e) 98 | _logError(str(e)) 99 | return url 100 | except urllib2.URLError, e: 101 | if _verbose == 1: 102 | print '[ERROR] URLError' 103 | elif _verbose == 2: 104 | print '[ERROR] URLError = ' + str(e) 105 | _logError(str(e)) 106 | return url 107 | except httplib.HTTPException, e: 108 | if _verbose == 1: 109 | print '[ERROR] HTTPException' 110 | elif _verbose == 2: 111 | print '[ERROR] HTTPException = ' + str(e) 112 | _logError(str(e)) 113 | return url 114 | except ValueError, e: 115 | if _verbose == 1: 116 | print '[ERROR] ValueError' 117 | elif _verbose == 2: 118 | print '[ERROR] ValueError = ' + str(e) 119 | _logError(str(e)) 120 | return url 121 | except Exception: 122 | if _verbose == 1: 123 | print '[ERROR] generic exception: ' 124 | elif _verbose == 2: 125 | print '[ERROR] generic exception: ' + traceback.format_exc() 126 | _logError(traceback.format_exc()) 127 | return url 128 | 129 | def _jsondatachTrack(url): 130 | if _nt and _colors: 131 | wincolors.paint(wincolors.colors.ERROR) 132 | try: 133 | global sessionid 134 | if sessionid == "": 135 | return _jsondatachTrack(url) 136 | else: 137 | _rawdata = _session.get(url+sessionid, stream=True) 138 | return _rawdata.json() 139 | except urllib2.HTTPError, e: 140 | if _verbose == 1: 141 | print '[ERROR] HTTPError' 142 | elif _verbose == 2: 143 | print '[ERROR] HTTPError = ' + str(e) 144 | _logError(str(e)) 145 | return url 146 | except urllib2.URLError, e: 147 | if _verbose == 1: 148 | print '[ERROR] URLError' 149 | elif _verbose == 2: 150 | print '[ERROR] URLError = ' + str(e) 151 | _logError(str(e)) 152 | return url 153 | except httplib.HTTPException, e: 154 | if _verbose == 1: 155 | print '[ERROR] HTTPException' 156 | elif _verbose == 2: 157 | print '[ERROR] HTTPException = ' + str(e) 158 | _logError(str(e)) 159 | return url 160 | except ValueError, e: 161 | if _verbose == 1: 162 | print '[ERROR] ValueError' 163 | elif _verbose == 2: 164 | print '[ERROR] ValueError = ' + str(e) 165 | _logError(str(e)) 166 | return url 167 | except Exception: 168 | if _verbose == 1: 169 | print '[ERROR] generic exception: ' 170 | elif _verbose == 2: 171 | print '[ERROR] generic exception: ' + traceback.format_exc() 172 | _logError(traceback.format_exc()) 173 | return url 174 | 175 | #Find TrackMon Session 176 | def _findSessionIdTrack(): 177 | global sessionid 178 | if _nt and _colors: 179 | wincolors.paint(wincolors.colors.INFO) 180 | print "[INFO] Finding SessionId for TrackMon" 181 | rw = re.compile('var sessionId \= \'(.*?)\'\;') 182 | r = _session.get("http://www.trackemon.com/") 183 | for line in r.iter_lines(): 184 | if "sessionId" in line: 185 | suc = rw.search(line) 186 | if suc: 187 | sessionid = suc.group(1) 188 | if _nt and _colors: 189 | wincolors.paint(wincolors.colors.SUCCESS) 190 | print "[INFO] SessionId for TrackMon Found" 191 | else: 192 | _findSessionIdTrack() 193 | 194 | #Pokemon Name 195 | def _pokename(id): 196 | return pokemonlist[int(id)-1] 197 | 198 | #PokeSplit 199 | def _pokesplit(pokemons): 200 | global _pokemons 201 | _pokemons = pokemons.split(",") 202 | 203 | #POkePrinter 204 | def _printer(name,lat,lng,exp): 205 | _remain = float(exp)-time() 206 | _minutes = int(_remain / 60) 207 | _seconds = int(_remain % 60) 208 | _expire = str(_minutes) + " Minutes, " + str(_seconds) + " Seconds" 209 | if _nt and _colors: 210 | wincolors.paint(wincolors.colors.SUCCESS) 211 | print "-------------------------------------------------" 212 | print "Pokemon: " + name 213 | print "Coordinates: " + str(lat) + "," + str(lng) 214 | print "Expires in: " + _expire 215 | print "-------------------------------------------------" 216 | if _logging: 217 | _logPokemon(name, str(lat), str(lng), _expire) 218 | 219 | #Logger 220 | def _logPokemon(name, lat, lng, expire): 221 | os.chdir(_scriptpath) 222 | with open("pokemons.log", "a+") as f: 223 | f.write("[" + name + "] [" + lat + "," + lng + "] [" + expire + "]\n") 224 | f.close() 225 | 226 | #CoordsLoader 227 | def _populateCities(): 228 | os.chdir(_scriptpath) 229 | with open("coords.txt", "a+") as f: 230 | _data = f.readlines() 231 | for line in _data: 232 | _citydata = line.split(":") 233 | _cities.append([_citydata[0],_citydata[1],_citydata[2]]) 234 | f.close() 235 | 236 | #Finder 237 | def _finderTrackemon(city): 238 | if _nt and _colors: 239 | wincolors.paint(wincolors.colors.INFO) 240 | print "[INFO] Looking pokemons in: " + city[0] 241 | _latitudesw = float(city[1]) - (0.05 * _zoomFactor) 242 | _longitudesw = float(city[2]) - (0.05 * _zoomFactor) 243 | _latitudene = float(city[1]) + (0.05 * _zoomFactor) 244 | _longitudene = float(city[2]) + (0.05 * _zoomFactor) 245 | 246 | _scanurl = "http://www.trackemon.com/fetch?location="+str(city[1])+","+str(city[2])+"&sessionId=" 247 | _scanurljsondata = _jsondatachTrack(_scanurl) 248 | 249 | for pokename in _pokemons: 250 | try: 251 | for pokemon in _scanurljsondata['pokemon']: 252 | _id = pokemon['pokedexTypeId'] 253 | _name = _pokename(_id) 254 | if _name.lower() in pokename.lower(): 255 | _lat = pokemon['latitude'] 256 | _lng = pokemon['longitude'] 257 | _exp = pokemon['expirationTime'] 258 | _id = pokemon['id'] 259 | if _id not in _pokemonslisted: 260 | _pokemonslisted.append(_id) 261 | _printer(_name, _lat, _lng, _exp) 262 | if ps_use: _pokeSniper(_name, str(_lat), str(_lng)) 263 | else: 264 | print "[INFO] Pokemon already listed found." 265 | except KeyError, e: 266 | if _nt and _colors: 267 | wincolors.paint(wincolors.colors.ERROR) 268 | if _verbose == 1: 269 | print '[ERROR] KeyError' 270 | elif _verbose == 2: 271 | import traceback 272 | print '[ERROR] KeyError = ' + str(e) 273 | _logError(str(e)) 274 | except IndexError, e: 275 | if _nt and _colors: 276 | wincolors.paint(wincolors.colors.ERROR) 277 | if _verbose == 1: 278 | print '[ERROR] IndexError' 279 | elif _verbose == 2: 280 | print '[ERROR] IndexError = ' + str(e) 281 | _logError(str(e)) 282 | except TypeError, e: 283 | if _verbose == 1: 284 | print '[ERROR] TypeError' 285 | elif _verbose == 2: 286 | print '[ERROR] TypeError= ' + str(e) 287 | _logError(str(e)) 288 | 289 | #Finder 290 | def _finderSkipLagged(city): 291 | if _nt and _colors: 292 | wincolors.paint(wincolors.colors.INFO) 293 | print "[INFO] Looking pokemons in: " + city[0] 294 | _latitudesw = float(city[1]) - (0.05 * _zoomFactor) 295 | _longitudesw = float(city[2]) - (0.05 * _zoomFactor) 296 | _latitudene = float(city[1]) + (0.05 * _zoomFactor) 297 | _longitudene = float(city[2]) + (0.05 * _zoomFactor) 298 | 299 | _scanurl = "http://skiplagged.com/api/pokemon.php?bounds="+str(_latitudesw)+","+str(_longitudesw)+\ 300 | ","+str(_latitudene)+","+str(_longitudene) 301 | _scanurljsondata = _jsondatach(_scanurl) 302 | 303 | for pokename in _pokemons: 304 | try: 305 | for pokemon in _scanurljsondata['pokemons']: 306 | _id = pokemon['pokemon_id'] 307 | _name = _pokename(_id) 308 | if _name.lower() in pokename.lower(): 309 | _lat = pokemon['latitude'] 310 | _lng = pokemon['longitude'] 311 | _exp = pokemon['expires'] 312 | _combo = _name+str(_lat)+str(_lng) 313 | if _combo not in _pokemonslisted: 314 | _pokemonslisted.append(_combo) 315 | _printer(_name, _lat, _lng, _exp) 316 | if ps_use: _pokeSniper(_name, str(_lat), str(_lng)) 317 | else: 318 | print "[INFO] Pokemon already listed found." 319 | except KeyError, e: 320 | if _nt and _colors: 321 | wincolors.paint(wincolors.colors.ERROR) 322 | if _verbose == 1: 323 | print '[ERROR] KeyError' 324 | elif _verbose == 2: 325 | import traceback 326 | print '[ERROR] KeyError = ' + str(e) 327 | _logError(str(e)) 328 | except IndexError, e: 329 | if _nt and _colors: 330 | wincolors.paint(wincolors.colors.ERROR) 331 | if _verbose == 1: 332 | print '[ERROR] IndexError' 333 | elif _verbose == 2: 334 | print '[ERROR] IndexError = ' + str(e) 335 | _logError(str(e)) 336 | except TypeError, e: 337 | if _verbose == 1: 338 | print '[ERROR] TypeError' 339 | elif _verbose == 2: 340 | print '[ERROR] TypeError= ' + str(e) 341 | _logError(str(e)) 342 | 343 | #Sniper 344 | def _pokeSniper(name, lat, lng): 345 | if _nt and _colors: 346 | wincolors.paint(wincolors.colors.WARNING) 347 | try: 348 | if _terminal: 349 | subp = subprocess.Popen([ps_path, name, lat, lng], cwd=ps_dir, creationflags = subprocess.CREATE_NEW_CONSOLE) 350 | subp.wait() 351 | else: 352 | subp = subprocess.Popen([ps_path, name, lat, lng], cwd=ps_dir) 353 | subp.wait() 354 | except OSError, e: 355 | error = "[WARNING] - PokeSniper2 Not found on Sniper folder" 356 | if _nt and _colors: 357 | wincolors.paint(wincolors.colors.ERROR) 358 | if _verbose == 0: 359 | print error 360 | elif _verbose == 1: 361 | print '[ERROR] OSError' 362 | print error 363 | elif _verbose == 2: 364 | print '[ERROR] OSError = ' + str(e) 365 | print error 366 | _logError(str(e)) 367 | _logError(error) 368 | 369 | #Loop 370 | def _loop(): 371 | for city in _cities: 372 | if "Skip" in _useMode or "All" in _useMode: 373 | _finderSkipLagged(city) 374 | elif "Track" in _useMode or "All" in _useMode: 375 | _finderTrackemon(city) 376 | 377 | #Init 378 | _parser = argparse.ArgumentParser(description='PokeVisionFinder v'+__version__+' - encode') 379 | _parser.add_argument('-m','--mode', help='Mode of work', choices=["Skip", "Track","All"], default="All") 380 | _parser.add_argument('-s', '--sniper', help='No use sniper', action='store_false', default=True) 381 | _parser.add_argument('-S', '--sniperterminal', help='Sniper on a different terminal', action='store_true', default=False) 382 | _parser.add_argument('-l', '--loop', help='Run infinite', action='store_true', default=False) 383 | _parser.add_argument('-L','--logging', help='Log pokemons found', action='store_true', default=False) 384 | _parser.add_argument('-c','--catchfile', help='Use catch file', action='store_true', default=False) 385 | _parser.add_argument('-C','--colors', help='No use colors', action='store_false', default=True) 386 | _parser.add_argument('-p','--pokemons', help='List of pokemons', default="Pikachu") 387 | _parser.add_argument('-f','--factor', help='ZoomFactor', type=int, required=True, default=1) 388 | _parser.add_argument('-v','--verbose', help='Verbose mode', type=int, choices=[0, 1, 2], default=0) 389 | _args = _parser.parse_args() 390 | 391 | _useMode = _args.mode 392 | 393 | ps_use = _args.sniper 394 | 395 | _terminal = True if ps_use and _args.sniperterminal else False 396 | 397 | _logging = _args.logging 398 | 399 | _zoomFactor = _args.factor 400 | 401 | _catchfile = _args.catchfile 402 | 403 | _colors = _args.colors 404 | 405 | _nonstop = _args.loop 406 | 407 | _verbose = _args.verbose 408 | 409 | _inputpoke = "" 410 | 411 | if _catchfile: 412 | _inputpoke = [line.strip() for line in open("catch.txt", 'r')] 413 | _pokemons = _inputpoke 414 | else: 415 | _inputpoke = _args.pokemons 416 | _pokesplit(_inputpoke) 417 | 418 | if "Track" in _useMode or "All" in _useMode: 419 | _findSessionIdTrack() 420 | _populateCities() 421 | if _nt and _colors: 422 | wincolors.paint(wincolors.colors.INFO) 423 | print """ 424 | ===================================================================== 425 | Welcome to PokeVisionFinder """ + __version__ + """ 426 | Author: """ + __author__ + """ 427 | Check out our Github at: https://github.com/encode32/PokeVisionFinder 428 | ===================================================================== 429 | """ 430 | if _nonstop: 431 | while 1: 432 | _loop() 433 | else: 434 | _loop() 435 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PokeVisionFinder 2 | 3 | Supports which pokemons to catch in a .txt file. 4 | ![catch.txt illu](http://puu.sh/qlvFQ/1e072d06d4.png) 5 | ![catch.txt illu](http://puu.sh/qlvJy/d21350db3f.png) 6 | 7 | 8 | 9 | Require: http://docs.python-requests.org/en/master/ 10 | 11 | Command Line Usage: 12 | 13 | ```ruby 14 | usage: PokeVisionFinder.py [-h] [-m {Skip,Track,All}] [-s] [-l] [-L] [-c] [-C] 15 | [-p POKEMONS] -f FACTOR [-v {0,1,2}] 16 | 17 | PokeVisionFinder v0.1.4 - encode 18 | 19 | optional arguments: 20 | -h, --help show this help message and exit 21 | -m {Skip,Track,All}, --mode {Skip,Track,All} 22 | Mode of work 23 | -s, --sniper No use sniper 24 | -l, --loop Run infinite 25 | -L, --logging Log pokemons found 26 | -c, --catchfile Use catch file 27 | -C, --colors No use colors 28 | -p POKEMONS, --pokemons POKEMONS 29 | List of pokemons 30 | -f FACTOR, --factor FACTOR 31 | ZoomFactor 32 | -v {0,1,2}, --verbose {0,1,2} 33 | Verbose mode 34 | ``` 35 | 36 | 37 | # PokeSniper2 Setting (v1.7) 38 | 39 | Put PokeSniper2 Files on Sniper Folder 40 | 41 | # Thanks 42 | 43 | To all contributors on github, ownedcore and discord. 44 | 45 | # Donation 46 | 47 | If you want to contribute with a beer here you can, thanks! 48 | 49 | [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=JSE6WU28B8XFW) 50 | 51 | # Discord 52 | Join Discord. 53 | [![Discord](http://i.imgur.com/NhrW4Mx.png)](http://discord.gg/kdNuCh7) 54 | -------------------------------------------------------------------------------- /RunPVF.bat: -------------------------------------------------------------------------------- 1 | PokeVisionFinder.py -p charizard,snorlax,venusaur,blastoise,dragonite,dragonair,dratini -m All -l -L -f 5 -------------------------------------------------------------------------------- /RunPVFcatchfile.bat: -------------------------------------------------------------------------------- 1 | PokeVisionFinder.py -m All -c -l -L -f 5 -------------------------------------------------------------------------------- /Sniper/HereGoesPokeSniper2Files: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/encode32/PokeVisionFinder/c2933441782b768631f6d0cd273d4ce603b36aa5/Sniper/HereGoesPokeSniper2Files -------------------------------------------------------------------------------- /catch.txt: -------------------------------------------------------------------------------- 1 | charmander 2 | gyarados 3 | squirtle 4 | dratini 5 | dragonite 6 | snorlax 7 | ditto 8 | lapras 9 | gyarados 10 | farfetchd 11 | alakzam 12 | growlithe 13 | arcanine 14 | charizard 15 | mewto 16 | mew 17 | -------------------------------------------------------------------------------- /coords.txt: -------------------------------------------------------------------------------- 1 | New York, Central Park:40.764871:-73.9734972 2 | Myrtle Beach:33.714451:-78.877194 3 | San Francisco:37.779669:-122.411384 4 | Santa Monica:34.012257:-118.494415 5 | Tokyo, Shinjuku Chuo Park:35.689456:139.690797 6 | Tokyo, Disneyland:35.633511:139.879925 7 | Hong Kong:22.285661:114.150202 8 | Sydney Hyde Park:-33.8688197:151.20929550000005 9 | NewDelhi:28.6139391:77.20902120000005 10 | WashingtonDC:38.9071923:-77.03687070000001 11 | Beijing:39.904211:116.40739499999995 12 | Berlin:52.52000659999999:13.404953999999975 13 | Paris:48.85661400000001:2.3522219000000177 14 | Moscow:55.755826:37.6173 15 | Mumbai:19.0759837:72.87765590000004 16 | Seoul:37.566535:126.97796919999996 17 | Toronto:43.653226:-79.38318429999998 18 | Manchester:53.4807593:-2.2426305000000184 19 | Kolkata:22.572646:88.36389499999996 20 | Shanghai:31.230416:121.473701 21 | Kiev:50.4501:30.523400000000038 22 | Manila:14.5995124:120.9842195 23 | Istanbul:41.0082376:28.97835889999999 24 | Madrid:40.4167754:-3.7037901999999576 25 | Montgomery:32.3754:-86.299675 26 | Juneau:58.3637:-134.5721 27 | Phoenix:33.4483:-112.0738 28 | Little Rock:34.7244:-92.2789 29 | Sacramento:38.5737:-121.4871 30 | Denver:39.7551:-104.9881 31 | Hartford:41.7665:-72.6732 32 | Dover:39.1615:-75.5136 33 | Tallahassee:30.4382:-84.2806 34 | Atlanta:33.7545:-84.3897 35 | Honolulu (on Oahu):21.2920:-157.8219 36 | Boise:43.6021:-116.2125 37 | Springfield:39.8018:-89.6533 38 | Indianapolis:39.7670:-86.1563 39 | Des Moines:41.5888:-93.6203 40 | Topeka:39.0474:-95.6815 41 | Frankfort:38.1894:-84.8715 42 | Baton Rouge:30.4493:-91.1882 43 | Augusta:44.3294:-69.7323 44 | Annapolis:38.9693:-76.5197 45 | Boston:42.3589:-71.0568 46 | Lansing:42.7336:-84.5466 47 | Saint Paul:44.9446:-93.1027 48 | Jackson:32.3122:-90.1780 49 | Jefferson City:38.5698:-92.1941 50 | Helena:46.5911:-112.0205 51 | Lincoln:40.8136:-96.7026 52 | Carson City:39.1501:-119.7519 53 | Concord:43.2314:-71.5597 54 | Trenton:40.2202:-74.7642 55 | Santa Fe:35.6816:-105.9381 56 | Albany:42.6517:-73.7551 57 | Raleigh:35.7797:-78.6434 58 | Bismarck:46.8084:-100.7694 59 | Columbus:39.9622:-83.0007 60 | Oklahoma City:35.4931:-97.4591 61 | Salem:44.9370:-123.0272 62 | Harrisburg:40.2740:-76.8849 63 | Providence:41.8270:-71.4087 64 | Columbia:34.0007:-81.0353 65 | Pierre:44.3776:-100.3177 66 | Nashville:36.1589:-86.7821 67 | Austin:30.2687:-97.7452 68 | Salt Lake City:40.7716:-111.8882 69 | Montpelier:44.2627:-72.5716 70 | Richmond:37.5408:-77.4339 71 | Olympia:47.0449:-122.9016 72 | Charleston:38.3533:-81.6354 73 | Madison:43.0632:-89.4007 74 | Cheyenne:41.1389:-104.8165 75 | Vancouver:49.2827291:-123.12073750000002 76 | Montreal:45.5016889:-73.56725599999999 77 | -------------------------------------------------------------------------------- /errors.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/encode32/PokeVisionFinder/c2933441782b768631f6d0cd273d4ce603b36aa5/errors.log -------------------------------------------------------------------------------- /pokemons.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/encode32/PokeVisionFinder/c2933441782b768631f6d0cd273d4ce603b36aa5/pokemons.log -------------------------------------------------------------------------------- /pokemons.py: -------------------------------------------------------------------------------- 1 | __author__ = 'encode' 2 | 3 | pokemonlist = ['Bulbasaur', 4 | 'Ivysaur', 5 | 'Venusaur', 6 | 'Charmander', 7 | 'Charmeleon', 8 | 'Charizard', 9 | 'Squirtle', 10 | 'Wartortle', 11 | 'Blastoise', 12 | 'Caterpie', 13 | 'Metapod', 14 | 'Butterfree', 15 | 'Weedle', 16 | 'Kakuna', 17 | 'Beedrill', 18 | 'Pidgey', 19 | 'Pidgeotto', 20 | 'Pidgeot', 21 | 'Rattata', 22 | 'Raticate', 23 | 'Spearow', 24 | 'Fearow', 25 | 'Ekans', 26 | 'Arbok', 27 | 'Pikachu', 28 | 'Raichu', 29 | 'Sandshrew', 30 | 'Sandslash', 31 | 'NidoranFemale', 32 | 'Nidorina', 33 | 'Nidoqueen', 34 | 'NidoranMale', 35 | 'Nidorino', 36 | 'Nidoking', 37 | 'Clefairy', 38 | 'Clefable', 39 | 'Vulpix', 40 | 'Ninetales', 41 | 'Jigglypuff', 42 | 'Wigglytuff', 43 | 'Zubat', 44 | 'Golbat', 45 | 'Oddish', 46 | 'Gloom', 47 | 'Vileplume', 48 | 'Paras', 49 | 'Parasect', 50 | 'Venonat', 51 | 'Venomoth', 52 | 'Diglett', 53 | 'Dugtrio', 54 | 'Meowth', 55 | 'Persian', 56 | 'Psyduck', 57 | 'Golduck', 58 | 'Mankey', 59 | 'Primeape', 60 | 'Growlithe', 61 | 'Arcanine', 62 | 'Poliwag', 63 | 'Poliwhirl', 64 | 'Poliwrath', 65 | 'Abra', 66 | 'Kadabra', 67 | 'Alakazam', 68 | 'Machop', 69 | 'Machoke', 70 | 'Machamp', 71 | 'Bellsprout', 72 | 'Weepinbell', 73 | 'Victreebel', 74 | 'Tentacool', 75 | 'Tentacruel', 76 | 'Geodude', 77 | 'Graveler', 78 | 'Golem', 79 | 'Ponyta', 80 | 'Rapidash', 81 | 'Slowpoke', 82 | 'Slowbro', 83 | 'Magnemite', 84 | 'Magneton', 85 | 'Farfetchd', 86 | 'Doduo', 87 | 'Dodrio', 88 | 'Seel', 89 | 'Dewgong', 90 | 'Grimer', 91 | 'Muk', 92 | 'Shellder', 93 | 'Cloyster', 94 | 'Gastly', 95 | 'Haunter', 96 | 'Gengar', 97 | 'Onix', 98 | 'Drowzee', 99 | 'Hypno', 100 | 'Krabby', 101 | 'Kingler', 102 | 'Voltorb', 103 | 'Electrode', 104 | 'Exeggcute', 105 | 'Exeggutor', 106 | 'Cubone', 107 | 'Marowak', 108 | 'Hitmonlee', 109 | 'Hitmonchan', 110 | 'Lickitung', 111 | 'Koffing', 112 | 'Weezing', 113 | 'Rhyhorn', 114 | 'Rhydon', 115 | 'Chansey', 116 | 'Tangela', 117 | 'Kangaskhan', 118 | 'Horsea', 119 | 'Seadra', 120 | 'Goldeen', 121 | 'Seaking', 122 | 'Staryu', 123 | 'Starmie', 124 | 'MrMime', 125 | 'Scyther', 126 | 'Jynx', 127 | 'Electabuzz', 128 | 'Magmar', 129 | 'Pinsir', 130 | 'Tauros', 131 | 'Magikarp', 132 | 'Gyarados', 133 | 'Lapras', 134 | 'Ditto', 135 | 'Eevee', 136 | 'Vaporeon', 137 | 'Jolteon', 138 | 'Flareon', 139 | 'Porygon', 140 | 'Omanyte', 141 | 'Omastar', 142 | 'Kabuto', 143 | 'Kabutops', 144 | 'Aerodactyl', 145 | 'Snorlax', 146 | 'Articuno', 147 | 'Zapdos', 148 | 'Moltres', 149 | 'Dratini', 150 | 'Dragonair', 151 | 'Dragonite', 152 | 'Mewtwo', 153 | 'Mew', 154 | 'Chikorita', 155 | 'Bayleef', 156 | 'Meganium', 157 | 'Cyndaquil', 158 | 'Quilava', 159 | 'Typhlosion', 160 | 'Totodile', 161 | 'Croconaw', 162 | 'Feraligatr', 163 | 'Sentret', 164 | 'Furret', 165 | 'Hoothoot', 166 | 'Noctowl', 167 | 'Ledyba', 168 | 'Ledian', 169 | 'Spinarak', 170 | 'Ariados', 171 | 'Crobat', 172 | 'Chinchou', 173 | 'Lanturn', 174 | 'Pichu', 175 | 'Cleffa', 176 | 'Igglybuff', 177 | 'Togepi', 178 | 'Togetic', 179 | 'Natu', 180 | 'Xatu', 181 | 'Mareep', 182 | 'Flaaffy', 183 | 'Ampharos', 184 | 'Bellossom', 185 | 'Marill', 186 | 'Azumarill', 187 | 'Sudowoodo', 188 | 'Politoed', 189 | 'Hoppip', 190 | 'Skiploom', 191 | 'Jumpluff', 192 | 'Aipom', 193 | 'Sunkern', 194 | 'Sunflora', 195 | 'Yanma', 196 | 'Wooper', 197 | 'Quagsire', 198 | 'Espeon', 199 | 'Umbreon', 200 | 'Murkrow', 201 | 'Slowking', 202 | 'Misdreavus', 203 | 'Unown', 204 | 'Wobbuffet', 205 | 'Girafarig', 206 | 'Pineco', 207 | 'Forretress', 208 | 'Dunsparce', 209 | 'Gligar', 210 | 'Steelix', 211 | 'Snubbull', 212 | 'Granbull', 213 | 'Qwilfish', 214 | 'Scizor', 215 | 'Shuckle', 216 | 'Heracross', 217 | 'Sneasel', 218 | 'Teddiursa', 219 | 'Ursaring', 220 | 'Slugma', 221 | 'Magcargo', 222 | 'Swinub', 223 | 'Piloswine', 224 | 'Corsola', 225 | 'Remoraid', 226 | 'Octillery', 227 | 'Delibird', 228 | 'Mantine', 229 | 'Skarmory', 230 | 'Houndour', 231 | 'Houndoom', 232 | 'Kingdra', 233 | 'Phanpy', 234 | 'Donphan', 235 | 'Porygon2', 236 | 'Stantler', 237 | 'Smeargle', 238 | 'Tyrogue', 239 | 'Hitmontop', 240 | 'Smoochum', 241 | 'Elekid', 242 | 'Magby', 243 | 'Miltank', 244 | 'Blissey', 245 | 'Raikou', 246 | 'Entei', 247 | 'Suicune', 248 | 'Larvitar', 249 | 'Pupitar', 250 | 'Tyranitar', 251 | 'Lugia', 252 | 'Ho-Oh', 253 | 'Celebi', 254 | 'Treecko', 255 | 'Grovyle', 256 | 'Sceptile', 257 | 'Torchic', 258 | 'Combusken', 259 | 'Blaziken', 260 | 'Mudkip', 261 | 'Marshtomp', 262 | 'Swampert', 263 | 'Poochyena', 264 | 'Mightyena', 265 | 'Zigzagoon', 266 | 'Linoone', 267 | 'Wurmple', 268 | 'Silcoon', 269 | 'Beautifly', 270 | 'Cascoon', 271 | 'Dustox', 272 | 'Lotad', 273 | 'Lombre', 274 | 'Ludicolo', 275 | 'Seedot', 276 | 'Nuzleaf', 277 | 'Shiftry', 278 | 'Taillow', 279 | 'Swellow', 280 | 'Wingull', 281 | 'Pelipper', 282 | 'Ralts', 283 | 'Kirlia', 284 | 'Gardevoir', 285 | 'Surskit', 286 | 'Masquerain', 287 | 'Shroomish', 288 | 'Breloom', 289 | 'Slakoth', 290 | 'Vigoroth', 291 | 'Slaking', 292 | 'Nincada', 293 | 'Ninjask', 294 | 'Shedinja', 295 | 'Whismur', 296 | 'Loudred', 297 | 'Exploud', 298 | 'Makuhita', 299 | 'Hariyama', 300 | 'Azurill', 301 | 'Nosepass', 302 | 'Skitty', 303 | 'Delcatty', 304 | 'Sableye', 305 | 'Mawile', 306 | 'Aron', 307 | 'Lairon', 308 | 'Aggron', 309 | 'Meditite', 310 | 'Medicham', 311 | 'Electrike', 312 | 'Manectric', 313 | 'Plusle', 314 | 'Minun', 315 | 'Volbeat', 316 | 'Illumise', 317 | 'Roselia', 318 | 'Gulpin', 319 | 'Swalot', 320 | 'Carvanha', 321 | 'Sharpedo', 322 | 'Wailmer', 323 | 'Wailord', 324 | 'Numel', 325 | 'Camerupt', 326 | 'Torkoal', 327 | 'Spoink', 328 | 'Grumpig', 329 | 'Spinda', 330 | 'Trapinch', 331 | 'Vibrava', 332 | 'Flygon', 333 | 'Cacnea', 334 | 'Cacturne', 335 | 'Swablu', 336 | 'Altaria', 337 | 'Zangoose', 338 | 'Seviper', 339 | 'Lunatone', 340 | 'Solrock', 341 | 'Barboach', 342 | 'Whiscash', 343 | 'Corphish', 344 | 'Crawdaunt', 345 | 'Baltoy', 346 | 'Claydol', 347 | 'Lileep', 348 | 'Cradily', 349 | 'Anorith', 350 | 'Armaldo', 351 | 'Feebas', 352 | 'Milotic', 353 | 'Castform', 354 | 'Kecleon', 355 | 'Shuppet', 356 | 'Banette', 357 | 'Duskull', 358 | 'Dusclops', 359 | 'Tropius', 360 | 'Chimecho', 361 | 'Absol', 362 | 'Wynaut', 363 | 'Snorunt', 364 | 'Glalie', 365 | 'Spheal', 366 | 'Sealeo', 367 | 'Walrein', 368 | 'Clamperl', 369 | 'Huntail', 370 | 'Gorebyss', 371 | 'Relicanth', 372 | 'Luvdisc', 373 | 'Bagon', 374 | 'Shelgon', 375 | 'Salamence', 376 | 'Beldum', 377 | 'Metang', 378 | 'Metagross', 379 | 'Regirock', 380 | 'Regice', 381 | 'Registeel', 382 | 'Latias', 383 | 'Latios', 384 | 'Kyogre', 385 | 'Groudon', 386 | 'Rayquaza', 387 | 'Jirachi', 388 | 'Deoxys', 389 | 'Turtwig', 390 | 'Grotle', 391 | 'Torterra', 392 | 'Chimchar', 393 | 'Monferno', 394 | 'Infernape', 395 | 'Piplup', 396 | 'Prinplup', 397 | 'Empoleon', 398 | 'Starly', 399 | 'Staravia', 400 | 'Staraptor', 401 | 'Bidoof', 402 | 'Bibarel', 403 | 'Kricketot', 404 | 'Kricketune', 405 | 'Shinx', 406 | 'Luxio', 407 | 'Luxray', 408 | 'Budew', 409 | 'Roserade', 410 | 'Cranidos', 411 | 'Rampardos', 412 | 'Shieldon', 413 | 'Bastiodon', 414 | 'Burmy', 415 | 'Wormadam', 416 | 'Mothim', 417 | 'Combee', 418 | 'Vespiquen', 419 | 'Pachirisu', 420 | 'Buizel', 421 | 'Floatzel', 422 | 'Cherubi', 423 | 'Cherrim', 424 | 'Shellos', 425 | 'Gastrodon', 426 | 'Ambipom', 427 | 'Drifloon', 428 | 'Drifblim', 429 | 'Buneary', 430 | 'Lopunny', 431 | 'Mismagius', 432 | 'Honchkrow', 433 | 'Glameow', 434 | 'Purugly', 435 | 'Chingling', 436 | 'Stunky', 437 | 'Skuntank', 438 | 'Bronzor', 439 | 'Bronzong', 440 | 'Bonsly', 441 | 'Mime Jr.', 442 | 'Happiny', 443 | 'Chatot', 444 | 'Spiritomb', 445 | 'Gible', 446 | 'Gabite', 447 | 'Garchomp', 448 | 'Munchlax', 449 | 'Riolu', 450 | 'Lucario', 451 | 'Hippopotas', 452 | 'Hippowdon', 453 | 'Skorupi', 454 | 'Drapion', 455 | 'Croagunk', 456 | 'Toxicroak', 457 | 'Carnivine', 458 | 'Finneon', 459 | 'Lumineon', 460 | 'Mantyke', 461 | 'Snover', 462 | 'Abomasnow', 463 | 'Weavile', 464 | 'Magnezone', 465 | 'Lickilicky', 466 | 'Rhyperior', 467 | 'Tangrowth', 468 | 'Electivire', 469 | 'Magmortar', 470 | 'Togekiss', 471 | 'Yanmega', 472 | 'Leafeon', 473 | 'Glaceon', 474 | 'Gliscor', 475 | 'Mamoswine', 476 | 'Porygon -Z', 477 | 'Gallade', 478 | 'Probopass', 479 | 'Dusknoir', 480 | 'Froslass', 481 | 'Rotom', 482 | 'Uxie', 483 | 'Mesprit', 484 | 'Azelf', 485 | 'Dialga', 486 | 'Palkia', 487 | 'Heatran', 488 | 'Regigigas', 489 | 'Giratina', 490 | 'Cresselia', 491 | 'Phione', 492 | 'Manaphy', 493 | 'Darkrai', 494 | 'Shaymin', 495 | 'Arceus', 496 | 'Victini', 497 | 'Snivy', 498 | 'Servine', 499 | 'Serperior', 500 | 'Tepig', 501 | 'Pignite', 502 | 'Emboar', 503 | 'Oshawott', 504 | 'Dewott', 505 | 'Samurott', 506 | 'Patrat', 507 | 'Watchog', 508 | 'Lillipup', 509 | 'Herdier', 510 | 'Stoutland', 511 | 'Purrloin', 512 | 'Liepard', 513 | 'Pansage', 514 | 'Simisage', 515 | 'Pansear', 516 | 'Simisear', 517 | 'Panpour', 518 | 'Simipour', 519 | 'Munna', 520 | 'Musharna', 521 | 'Pidove', 522 | 'Tranquill', 523 | 'Unfezant', 524 | 'Blitzle', 525 | 'Zebstrika', 526 | 'Roggenrola', 527 | 'Boldore', 528 | 'Gigalith', 529 | 'Woobat', 530 | 'Swoobat', 531 | 'Drilbur', 532 | 'Excadrill', 533 | 'Audino', 534 | 'Timburr', 535 | 'Gurdurr', 536 | 'Conkeldurr', 537 | 'Tympole', 538 | 'Palpitoad', 539 | 'Seismitoad', 540 | 'Throh', 541 | 'Sawk', 542 | 'Sewaddle', 543 | 'Swadloon', 544 | 'Leavanny', 545 | 'Venipede', 546 | 'Whirlipede', 547 | 'Scolipede', 548 | 'Cottonee', 549 | 'Whimsicott', 550 | 'Petilil', 551 | 'Lilligant', 552 | 'Basculin', 553 | 'Sandile', 554 | 'Krokorok', 555 | 'Krookodile', 556 | 'Darumaka', 557 | 'Darmanitan', 558 | 'Maractus', 559 | 'Dwebble', 560 | 'Crustle', 561 | 'Scraggy', 562 | 'Scrafty', 563 | 'Sigilyph', 564 | 'Yamask', 565 | 'Cofagrigus', 566 | 'Tirtouga', 567 | 'Carracosta', 568 | 'Archen', 569 | 'Archeops', 570 | 'Trubbish', 571 | 'Garbodor', 572 | 'Zorua', 573 | 'Zoroark', 574 | 'Minccino', 575 | 'Cinccino', 576 | 'Gothita', 577 | 'Gothorita', 578 | 'Gothitelle', 579 | 'Solosis', 580 | 'Duosion', 581 | 'Reuniclus', 582 | 'Ducklett', 583 | 'Swanna', 584 | 'Vanillite', 585 | 'Vanillish', 586 | 'Vanilluxe', 587 | 'Deerling', 588 | 'Sawsbuck', 589 | 'Emolga', 590 | 'Karrablast', 591 | 'Escavalier', 592 | 'Foongus', 593 | 'Amoonguss', 594 | 'Frillish', 595 | 'Jellicent', 596 | 'Alomomola', 597 | 'Joltik', 598 | 'Galvantula', 599 | 'Ferroseed', 600 | 'Ferrothorn', 601 | 'Klink', 602 | 'Klang', 603 | 'Klinklang', 604 | 'Tynamo', 605 | 'Eelektrik', 606 | 'Eelektross', 607 | 'Elgyem', 608 | 'Beheeyem', 609 | 'Litwick', 610 | 'Lampent', 611 | 'Chandelure', 612 | 'Axew', 613 | 'Fraxure', 614 | 'Haxorus', 615 | 'Cubchoo', 616 | 'Beartic', 617 | 'Cryogonal', 618 | 'Shelmet', 619 | 'Accelgor', 620 | 'Stunfisk', 621 | 'Mienfoo', 622 | 'Mienshao', 623 | 'Druddigon', 624 | 'Golett', 625 | 'Golurk', 626 | 'Pawniard', 627 | 'Bisharp', 628 | 'Bouffalant', 629 | 'Rufflet', 630 | 'Braviary', 631 | 'Vullaby', 632 | 'Mandibuzz', 633 | 'Heatmor', 634 | 'Durant', 635 | 'Deino', 636 | 'Zweilous', 637 | 'Hydreigon', 638 | 'Larvesta', 639 | 'Volcarona', 640 | 'Cobalion', 641 | 'Terrakion', 642 | 'Virizion', 643 | 'Tornadus', 644 | 'Thundurus', 645 | 'Reshiram', 646 | 'Zekrom', 647 | 'Landorus', 648 | 'Kyurem', 649 | 'Keldeo', 650 | 'Meloetta', 651 | 'Genesect', 652 | 'Chespin', 653 | 'Quilladin', 654 | 'Chesnaught', 655 | 'Fennekin', 656 | 'Braixen', 657 | 'Delphox', 658 | 'Froakie', 659 | 'Frogadier', 660 | 'Greninja', 661 | 'Bunnelby', 662 | 'Diggersby', 663 | 'Fletchling', 664 | 'Fletchinder', 665 | 'Talonflame', 666 | 'Scatterbug', 667 | 'Spewpa', 668 | 'Vivillon', 669 | 'Litleo', 670 | 'Pyroar', 671 | 'Flabebe', 672 | 'Floette', 673 | 'Florges', 674 | 'Skiddo', 675 | 'Gogoat', 676 | 'Pancham', 677 | 'Pangoro', 678 | 'Furfrou', 679 | 'Espurr', 680 | 'Meowstic', 681 | 'Honedge', 682 | 'Doublade', 683 | 'Aegislash', 684 | 'Spritzee', 685 | 'Aromatisse', 686 | 'Swirlix', 687 | 'Slurpuff', 688 | 'Inkay', 689 | 'Malamar', 690 | 'Binacle', 691 | 'Barbaracle', 692 | 'Skrelp', 693 | 'Dragalge', 694 | 'Clauncher', 695 | 'Clawitzer', 696 | 'Helioptile', 697 | 'Heliolisk', 698 | 'Tyrunt', 699 | 'Tyrantrum', 700 | 'Amaura', 701 | 'Aurorus', 702 | 'Sylveon', 703 | 'Hawlucha', 704 | 'Dedenne', 705 | 'Carbink', 706 | 'Goomy', 707 | 'Sliggoo', 708 | 'Goodra', 709 | 'Klefki', 710 | 'Phantump', 711 | 'Trevenant', 712 | 'Pumpkaboo', 713 | 'Gourgeist', 714 | 'Bergmite', 715 | 'Avalugg', 716 | 'Noibat', 717 | 'Noivern', 718 | 'Xerneas', 719 | 'Yveltal', 720 | 'Zygarde', 721 | 'Diancie' 722 | ] 723 | -------------------------------------------------------------------------------- /wincolors.py: -------------------------------------------------------------------------------- 1 | __author__ = 'encode' 2 | 3 | class colors: 4 | BACKGROUND_BLACK = 0x0000 5 | BACKGROUND_BLUE = 0x0011 6 | BACKGROUND_GREEN = 0x0022 7 | BACKGROUND_CYAN = 0x0033 8 | BACKGROUND_RED = 0x0044 9 | BACKGROUND_PINK = 0x0055 10 | BACKGROUND_YELLOW = 0x0066 11 | BACKGROUND_WHITE = 0x0077 12 | BACKGROUND_GRAY = 0x0088 13 | BACKGROUND_LBLUE = 0x0099 14 | BACKGROUND_LGREEN = 0x00AA 15 | BACKGROUND_LCYAN = 0x00BB 16 | BACKGROUND_LRED = 0x00CC 17 | BACKGROUND_LPINK = 0x00DD 18 | BACKGROUND_LYELLOW = 0x00EE 19 | BACKGROUND_LWHITE = 0x00FF 20 | 21 | 22 | FOREGROUND_BLACK = 0x0000 23 | FOREGROUND_BLUE = 0x0001 24 | FOREGROUND_GREEN = 0x0002 25 | FOREGROUND_CYAN = 0x0003 26 | FOREGROUND_RED = 0x0004 27 | FOREGROUND_PINK = 0x0005 28 | FOREGROUND_YELLOW = 0x0006 29 | FOREGROUND_WHITE = 0x0007 30 | FOREGROUND_GRAY = 0x0008 31 | FOREGROUND_LBLUE = 0x0009 32 | FOREGROUND_LGREEN = 0x000A 33 | FOREGROUND_LCYAN = 0x000B 34 | FOREGROUND_LRED = 0x000C 35 | FOREGROUND_LPINK = 0x000D 36 | FOREGROUND_LYELLOW = 0x000E 37 | FOREGROUND_LWHITE = 0x000F 38 | 39 | WARNING = 0x000C 40 | ERROR = 0x0004 41 | INFO = 0x0009 42 | SUCCESS = 0x000E 43 | 44 | 45 | def get_csbi_attributes(handle): 46 | import ctypes 47 | import struct 48 | csbi = ctypes.create_string_buffer(22) 49 | res = ctypes.windll.kernel32.GetConsoleScreenBufferInfo(handle, csbi) 50 | assert res 51 | 52 | (bufx, bufy, curx, cury, wattr, 53 | left, top, right, bottom, maxx, maxy) = struct.unpack("hhhhHhhhhhh", csbi.raw) 54 | return wattr 55 | 56 | def reset(): 57 | import ctypes 58 | STD_OUTPUT_HANDLE = -11 59 | handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE) 60 | reset = get_csbi_attributes(handle) 61 | ctypes.windll.kernel32.SetConsoleTextAttribute(handle, reset) 62 | 63 | def paint(color): 64 | import ctypes 65 | STD_OUTPUT_HANDLE = -11 66 | handle = ctypes.windll.kernel32.GetStdHandle(STD_OUTPUT_HANDLE) 67 | ctypes.windll.kernel32.SetConsoleTextAttribute(handle, color) --------------------------------------------------------------------------------