parent
							
								
									d86b314347
								
							
						
					
					
						commit
						1025ada7e8
					
				| @ -0,0 +1,3 @@ | ||||
| __pycache__ | ||||
| Pipfile | ||||
| Pipfile.lock | ||||
| @ -0,0 +1,77 @@ | ||||
| from math import pi, sin, cos, atan2, sqrt | ||||
| 
 | ||||
| class Location(): | ||||
|     def __init__(self, latitude, longitude): | ||||
|         self.latitude = latitude | ||||
|         self.longitude = longitude | ||||
|      | ||||
|     def distance(self, other): | ||||
|         R = 6371e3 | ||||
|         d_lat = (self.latitude - other.latitude) * pi/180 | ||||
|         d_lon = (self.longitude - other.longitude) * pi/180 | ||||
| 
 | ||||
|         a = sin(d_lat/2) * sin(d_lat/2) +\ | ||||
|             sin(d_lon/2) * sin(d_lon/2) * cos(self.latitude) * cos(other.latitude) | ||||
|          | ||||
|         c = 2 * atan2(sqrt(a), sqrt(1-a)) | ||||
|         d = R * c / 1000 | ||||
| 
 | ||||
|         return d | ||||
|      | ||||
|     def get_cooldown(self, other): | ||||
|         distance = self.distance(other) | ||||
| 
 | ||||
|         if distance <= 2: | ||||
|             return 1 | ||||
|         elif distance <= 5: | ||||
|             return 2 | ||||
|         elif distance <= 7: | ||||
|             return 5 | ||||
|         elif distance <= 10: | ||||
|             return 7 | ||||
|         elif distance <= 12: | ||||
|             return 8 | ||||
|         elif distance <= 18: | ||||
|             return 10 | ||||
|         elif distance <= 26: | ||||
|             return 15 | ||||
|         elif distance <= 42: | ||||
|             return 19 | ||||
|         elif distance <= 65: | ||||
|             return 22 | ||||
|         elif distance <= 81: | ||||
|             return 25 | ||||
|         elif distance <= 100: | ||||
|             return 35 | ||||
|         elif distance <= 220: | ||||
|             return 40 | ||||
|         elif distance <= 250: | ||||
|             return 45 | ||||
|         elif distance <= 350: | ||||
|             return 51 | ||||
|         elif distance <= 375: | ||||
|             return 54 | ||||
|         elif distance <= 460: | ||||
|             return 62 | ||||
|         elif distance <= 500: | ||||
|             return 65 | ||||
|         elif distance <= 565: | ||||
|             return 69 | ||||
|         elif distance <= 700: | ||||
|             return 78 | ||||
|         elif distance <= 800: | ||||
|             return 84 | ||||
|         elif distance <= 900: | ||||
|             return 92 | ||||
|         elif distance <= 1000: | ||||
|             return 99 | ||||
|         elif distance <= 1100: | ||||
|             return 107 | ||||
|         elif distance <= 1200: | ||||
|             return 114 | ||||
|         elif distance <= 1300: | ||||
|             return 117 | ||||
|         else: | ||||
|             return 120 | ||||
| 
 | ||||
|          | ||||
| @ -0,0 +1,28 @@ | ||||
| from datetime import datetime | ||||
| 
 | ||||
| class Pokemon(): | ||||
|     def __init__(self, name, number, location, | ||||
|                 cp, level, attack, defense, hp, | ||||
|                 iv, shiny, start_time, end_time, | ||||
|                 country): | ||||
|         self.name = name | ||||
|         self.number = number | ||||
|         self.location = location | ||||
|         self.cp = cp | ||||
|         self.level = level | ||||
|         self.attack = attack | ||||
|         self.defense = defense | ||||
|         self.hp = hp | ||||
|         self.iv = iv | ||||
|         self.shiny = shiny | ||||
|         self.start_time = start_time | ||||
|         self.end_time = end_time | ||||
|         self.country = country | ||||
|      | ||||
|     def is_dispawned(self): | ||||
|         if datetime().now() > end_time: | ||||
|             return True | ||||
|         return False | ||||
| 
 | ||||
|      | ||||
|      | ||||
| @ -0,0 +1,3 @@ | ||||
| class Raid(): | ||||
|     def __init__(self): | ||||
|         pass | ||||
| @ -0,0 +1,35 @@ | ||||
| from bs4 import BeautifulSoup | ||||
| import requests | ||||
| 
 | ||||
| def get_pokemons(url): | ||||
|     pokemon_lst = [] | ||||
|     response = requests.get(url) | ||||
|     soup = BeautifulSoup(response.text, "lxml") | ||||
| 
 | ||||
|     for row in scraper.find_all("tr")[1:]: | ||||
|         data = row.find_all("td")[1:] | ||||
| 
 | ||||
|         name = data[0].text | ||||
|         number = int(data[1].text) | ||||
| 
 | ||||
|         coordinates = map(float, data[2].text.split(",")) | ||||
|         location = Location(*coordinates) | ||||
| 
 | ||||
|         cp = int(data[3].text) | ||||
|         level = int(data[4].text) | ||||
|         attack = int(data[5].text) | ||||
|         defense = int(data[6].text) | ||||
|         hp = int(data[7].text) | ||||
|         iv = int(data[8].text.rstrip("%")) | ||||
|         shiny = data[9].text == "Yes" | ||||
|         start_time = datetime.fromisoformat(data[10].text) | ||||
|         end_time = datetime.fromisoformat(data[11].text) | ||||
|         country = data[12].text | ||||
| 
 | ||||
|         pokemon = Pokemon(name, number, location, cp, level, attack, defense, hp, iv, shiny, start_time, end_time, country) | ||||
|         pokemon_lst.append(pokemon) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @ -0,0 +1,30 @@ | ||||
| from bs4 import BeautifulSoup | ||||
| from ispoof.core.location import Location | ||||
| from ispoof.core.pokemon import Pokemon | ||||
| from datetime import datetime | ||||
| import requests | ||||
| 
 | ||||
| pokemon_html = requests.get("https://moonani.com/PokeList/index.php") | ||||
| scraper = BeautifulSoup(pokemon_html.text, "lxml") | ||||
| for row in scraper.find_all("tr")[1:]: | ||||
|     data = row.find_all("td")[1:] | ||||
| 
 | ||||
|     name = data[0].text | ||||
|     number = int(data[1].text) | ||||
| 
 | ||||
|     coordinates = map(float, data[2].text.split(",")) | ||||
|     location = Location(*coordinates) | ||||
| 
 | ||||
|     cp = int(data[3].text) | ||||
|     level = int(data[4].text) | ||||
|     attack = int(data[5].text) | ||||
|     defense = int(data[6].text) | ||||
|     hp = int(data[7].text) | ||||
|     iv = int(data[8].text.rstrip("%")) | ||||
|     shiny = data[9].text == "Yes" | ||||
|     start_time = datetime.fromisoformat(data[10].text) | ||||
|     end_time = datetime.fromisoformat(data[11].text) | ||||
|     country = data[12].text | ||||
| 
 | ||||
|     pokemon = Pokemon(name, number, location, cp, level, attack, defense, hp, iv, shiny, start_time, end_time, country) | ||||
|     print(pokemon) | ||||
| @ -0,0 +1,4 @@ | ||||
| pymobiledevice3 | ||||
| beautifulsoup4 | ||||
| lxml | ||||
| requests | ||||
					Loading…
					
					
				
		Reference in new issue