mirror of
https://github.com/ValdikSS/tor-relay-scanner.git
synced 2026-09-30 10:47:58 +03:00
@@ -124,7 +124,12 @@ def start_browser():
|
||||
|
||||
|
||||
def str_list_with_prefix(prefix, list_):
|
||||
return "\n".join([prefix + r for r in list_])
|
||||
return "\n".join(prefix + r for r in list_)
|
||||
|
||||
|
||||
def chunked_list(l, size):
|
||||
for i in range(0, len(l), size):
|
||||
yield l[i:i+size]
|
||||
|
||||
|
||||
async def main_async(args):
|
||||
@@ -168,34 +173,27 @@ async def main_async(args):
|
||||
relays_new.append(relay_copy)
|
||||
relays = relays_new
|
||||
if not relays:
|
||||
print("There are no relays within specified port number constrains!", file=sys.stderr)
|
||||
print("There are no relays within specified port number constraints!", file=sys.stderr)
|
||||
print("Try changing port numbers.", file=sys.stderr)
|
||||
return 2
|
||||
|
||||
working_relays = list()
|
||||
ntry = 0
|
||||
relaypos = 0
|
||||
numtries = round(len(relays) / NUM_RELAYS)
|
||||
for ntry in range(numtries):
|
||||
numtries = (len(relays) + NUM_RELAYS - 1) // NUM_RELAYS
|
||||
for ntry, chunk in enumerate(chunked_list(relays, NUM_RELAYS)):
|
||||
if len(working_relays) >= WORKING_RELAY_NUM_GOAL:
|
||||
break
|
||||
|
||||
relaynum = min(NUM_RELAYS, len(relays) - relaypos - 1)
|
||||
test_relays = [TorRelay(relays[x])
|
||||
for x in range(relaypos, relaypos+relaynum)]
|
||||
relaypos += NUM_RELAYS
|
||||
|
||||
if not test_relays:
|
||||
break
|
||||
relaynum = len(chunk)
|
||||
test_relays = [TorRelay(r) for r in chunk]
|
||||
|
||||
print(
|
||||
f"\nTry {ntry}/{numtries}, We'll test the following {NUM_RELAYS} random relays:", file=sys.stderr)
|
||||
f"\nTry {ntry+1}/{numtries}, We'll test the following {relaynum} random relays:", file=sys.stderr)
|
||||
for relay in test_relays:
|
||||
print(relay, file=sys.stderr)
|
||||
print("", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
|
||||
if ntry:
|
||||
print(f"Found {len(working_relays)} good relays so far. Test {ntry}/{numtries} started…", file=sys.stderr)
|
||||
print(f"Found {len(working_relays)} good relays so far. Test {ntry+1}/{numtries} started…", file=sys.stderr)
|
||||
else:
|
||||
print(f"Test started…", file=sys.stderr)
|
||||
|
||||
@@ -203,7 +201,7 @@ async def main_async(args):
|
||||
for relay in test_relays:
|
||||
tasks.append(asyncio.create_task(relay.check(TIMEOUT)))
|
||||
fin = await asyncio.gather(*tasks)
|
||||
print("", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
|
||||
print("The following relays are reachable this try:", file=sys.stderr)
|
||||
for relay in test_relays:
|
||||
@@ -216,7 +214,7 @@ async def main_async(args):
|
||||
print("No relays are reachable this try.", file=sys.stderr)
|
||||
|
||||
if ntry > 1:
|
||||
print("", file=sys.stderr)
|
||||
print(file=sys.stderr)
|
||||
print("All reachable relays:", file=sys.stderr)
|
||||
for relay in working_relays:
|
||||
if relay:
|
||||
|
||||
Reference in New Issue
Block a user