mirror of https://github.com/dnomd343/ProxyC
dnomd343
2 years ago
5 changed files with 156 additions and 37 deletions
@ -0,0 +1,50 @@ |
|||
#!/usr/bin/env python3 |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
import time |
|||
from Basis.Logger import logging |
|||
from Builder import Builder, clientEntry |
|||
|
|||
from ProxyChecker import httpCheck # TODO: refactor in the future |
|||
|
|||
|
|||
def Check(proxyType: str, proxyInfo: dict, checkInfo: dict) -> dict: |
|||
# TODO: checkInfo -> [...] (only check http for now) |
|||
if proxyType not in clientEntry: |
|||
logging.error('Unknown proxy type %s' % proxyType) |
|||
raise RuntimeError('Unknown proxy type') |
|||
try: |
|||
client = Builder(proxyType, proxyInfo) |
|||
except Exception as reason: |
|||
logging.error('Client build error -> %s' % reason) |
|||
raise RuntimeError('Client build error') |
|||
|
|||
# TODO: debug combine output |
|||
logging.debug(client.id) |
|||
logging.debug(client.proxyType) |
|||
logging.debug(client.proxyInfo) |
|||
logging.debug(client.socksAddr) |
|||
logging.debug(client.socksPort) |
|||
|
|||
# TODO: wait port occupied |
|||
time.sleep(1) |
|||
if not client.status(): # client unexpected exit |
|||
client.destroy() # remove file and kill sub process |
|||
logging.error('Client unexpected exit\n%s', client.output) |
|||
raise RuntimeError('Client unexpected exit') |
|||
|
|||
# TODO: check process |
|||
status, _ = httpCheck(client.socksPort) # TODO: add socks5 addr |
|||
|
|||
logging.critical('http check status -> %s' % status) |
|||
|
|||
client.destroy() # clean up the client |
|||
|
|||
return { |
|||
'http': { |
|||
'status': status, |
|||
# TODO: more http check info |
|||
}, |
|||
# TODO: more check items (from checkInfo list) |
|||
} |
|||
|
Loading…
Reference in new issue