diff --git a/ppf.py b/ppf.py index c87bf48..47fa7ad 100755 --- a/ppf.py +++ b/ppf.py @@ -58,10 +58,10 @@ def insert_proxies(proxies, uri, sqlite): query = [ 'proxy=?' for p in proxies ] known = [ i[0] for i in sqlite.execute('SELECT proxy FROM proxylist WHERE %s' % ' OR '.join(query), proxies).fetchall() ] - new = [ (time_now,i,3,0) for i in proxies if not i in known ] + new = [ (time_now,i,3,0,0,0) for i in proxies if not i in known ] if len(new): - sqlite.executemany('INSERT INTO proxylist (added,proxy,failed,tested) VALUES (?,?,?,?)', new) + sqlite.executemany('INSERT INTO proxylist (added,proxy,failed,tested,success_count,total_duration) VALUES (?,?,?,?,?,?)', new) sqlite.commit() _log('+%d item(s) from %s' % (len(new), uri), 'added') time.sleep(0.1) @@ -158,7 +158,7 @@ if __name__ == '__main__': ## create dbs if required sqlite.execute('CREATE TABLE IF NOT EXISTS uris (added INT, url TEXT, check_time INT, error INT, driver INT, hash TEXT)') - sqlite.execute('CREATE TABLE IF NOT EXISTS proxylist (proxy BLOB, country BLOB, added INT, failed INT, tested INT, dronebl INT, proto TEXT, duration INT)') + sqlite.execute('CREATE TABLE IF NOT EXISTS proxylist (proxy BLOB, country BLOB, added INT, failed INT, tested INT, dronebl INT, proto TEXT, duration INT, success_count INT, total_duration INT)') sqlite.commit() import_from_file('import.txt', sqlite) diff --git a/proxywatchd.py b/proxywatchd.py index d72ac17..2d0cae6 100644 --- a/proxywatchd.py +++ b/proxywatchd.py @@ -14,12 +14,14 @@ import rocksock _run_standalone = False class WorkerJob(): - def __init__(self, proxy, proto, failcount): + def __init__(self, proxy, proto, failcount, success_count, total_duration): self.proxy = proxy self.proto = proto self.failcount = failcount self.nextcheck = None self.duration = None + self.success_count = success_count + self.total_duration = total_duration def is_drone_bl(self, proxy): p = proxy.split(':')[0] @@ -75,6 +77,8 @@ class WorkerJob(): self.proto = proto self.duation = duration self.failcount = 0 + self.success_count = self.success_count + 1 + self.total_duration = self.total_duration + duration _log('%s://%s; c: %s; d: %d sec(s); tor: %s; srv: %s; recv: %s' % (proto, self.proxy, match, duration, tor, srv, recv), 'xxxxx') except KeyboardInterrupt as e: raise e @@ -153,7 +157,7 @@ class Proxywatchd(): # create table if needed self._prep_db() - self.mysqlite.execute('CREATE TABLE IF NOT EXISTS proxylist (proxy BLOB, country BLOB, added INT, failed INT, tested INT, source BLOB, dronebl INT, proto TEXT, duration INT)') + self.mysqlite.execute('CREATE TABLE IF NOT EXISTS proxylist (proxy BLOB, country BLOB, added INT, failed INT, tested INT, source BLOB, dronebl INT, proto TEXT, duration INT, success_count INT, total_duration INT)') self.mysqlite.commit() self._close_db() @@ -163,10 +167,10 @@ class Proxywatchd(): def prepare_jobs(self): self._prep_db() - q = 'SELECT proxy,proto,failed FROM proxylist WHERE failed