fixed an issue with using ngrok for other connections and also ngrok not using auth_token

This commit is contained in:
Nathanael Santoso 2023-04-04 07:41:55 +00:00
parent 2edf73b38f
commit 3158d17ccf

View File

@ -1,14 +1,6 @@
from pyngrok import ngrok, conf, exception from pyngrok import ngrok, conf, exception
def connect(token, port, region): def connect(token, port, region):
# Guard for existing tunnels
existing = ngrok.get_tunnels()
if existing:
public_url = existing[0].public_url
print(f'ngrok has already been connected to localhost:{port}! URL: {public_url}\n'
'You can use this link after the launch is complete.')
return
account = None account = None
if token is None: if token is None:
token = 'None' token = 'None'
@ -21,6 +13,18 @@ def connect(token, port, region):
config = conf.PyngrokConfig( config = conf.PyngrokConfig(
auth_token=token, region=region auth_token=token, region=region
) )
# Guard for existing tunnels
existing = ngrok.get_tunnels(pyngrok_config=config)
if existing:
for established in existing:
# Extra configuration in the case that the user is also using ngrok for other tunnels
if established.config['addr'][-4:] == str(port):
public_url = existing[0].public_url
print(f'ngrok has already been connected to localhost:{port}! URL: {public_url}\n'
'You can use this link after the launch is complete.')
return
try: try:
if account is None: if account is None:
public_url = ngrok.connect(port, pyngrok_config=config, bind_tls=True).public_url public_url = ngrok.connect(port, pyngrok_config=config, bind_tls=True).public_url