diff options
Diffstat (limited to 'modules/ngrok.py')
-rw-r--r-- | modules/ngrok.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/modules/ngrok.py b/modules/ngrok.py index 3df2c06b..67a74e85 100644 --- a/modules/ngrok.py +++ b/modules/ngrok.py @@ -7,12 +7,24 @@ def connect(token, port, region): else: if ':' in token: # token = authtoken:username:password - account = token.split(':')[1] + ':' + token.split(':')[-1] - token = token.split(':')[0] + token, username, password = token.split(':', 2) + account = f"{username}:{password}" config = conf.PyngrokConfig( 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: if account is None: public_url = ngrok.connect(port, pyngrok_config=config, bind_tls=True).public_url |