def _load_items(self):
pass
def _setup_accounts(self):
pass
async def start(self):
pass
async def check_version(self):
pass
def _print_stats(self):
pass
async def check(self, proxy):
async with aiohttp.ClientSession() as session:
try:
async with session.get('http://httpbin.org/ip', proxy=f'http://{proxy}', timeout=aiohttp.ClientTimeout(total=2), ssl = False) as resp:
if resp.status == 200:
data = await resp.json()
self.workingProxies.append(proxy)
print(f"Proxy {proxy} is working. IP: {data['origin']}")
return
except aiohttp.client_exceptions.ServerDisconnectedError:
print(f"Server disconnected while checking proxy {proxy}. Moving on to next proxy.")
return
except aiohttp.client_exceptions.ClientOSError:
print(f"Server disconnected while checking proxy {proxy}. Moving on to next proxy.")
return
except aiohttp.client_exceptions.TooManyRedirects:
print(f"Server disconnected while checking proxy {proxy}. Moving on to next proxy.")
return
except asyncio.TimeoutError:
print(f"Timeout while checking proxy {proxy}. Moving on to next proxy.")
return
def get_working_proxy(self):
if len(self.workingProxies) != 0:
proxy = random.choice(self.workingProxies)
return f"http://{proxy}"
else:
return None
async def start_proxy(self):
self.status = "Proxy checker"
self._print_stats()
coroutines = []
for proxy in self.proxylist:
coroutines.append(self.check(proxy))
await asyncio.gather(*coroutines)