51 lines
1.1 KiB
Python
51 lines
1.1 KiB
Python
|
#!/usr/bin/env python3
|
||
|
|
||
|
"""Craft and send requests to the local client API"""
|
||
|
|
||
|
|
||
|
import sys
|
||
|
import os
|
||
|
import time
|
||
|
from threading import Thread
|
||
|
if not os.path.exists('onionr.sh'):
|
||
|
os.chdir('../')
|
||
|
sys.path.append("src/")
|
||
|
|
||
|
import filepaths
|
||
|
import config
|
||
|
config.reload()
|
||
|
|
||
|
with open(filepaths.private_API_host_file, 'r') as host:
|
||
|
hostname = host.read()
|
||
|
|
||
|
port = config.get("client.client.port", 0)
|
||
|
if not port:
|
||
|
print("Could not get port for Onionr UI. Try again")
|
||
|
sys.exit(1)
|
||
|
torrc = f"""
|
||
|
HiddenServiceDir remote-onionr-hs
|
||
|
HiddenServicePort 80 {hostname}:{port}
|
||
|
"""
|
||
|
|
||
|
with open("remote-onionr-torrc", "w") as torrc_f:
|
||
|
torrc_f.write(torrc)
|
||
|
|
||
|
|
||
|
def show_onion():
|
||
|
while True:
|
||
|
time.sleep(1)
|
||
|
try:
|
||
|
with open("remote-onionr-hs/hostname", "r") as f:
|
||
|
o = f.read()
|
||
|
print("UI Onion (Keep secret):", o)
|
||
|
config.set("ui.public_remote_enabled", True)
|
||
|
config.set("ui.public_remote_hosts", [o])
|
||
|
config.save()
|
||
|
break
|
||
|
except FileNotFoundError:
|
||
|
pass
|
||
|
|
||
|
Thread(target=show_onion, daemon=True).start()
|
||
|
|
||
|
os.system("tor -f remote-onionr-torrc")
|