| | from pyngrok import ngrok, conf, exception |
| |
|
| | def connect(token, port, region): |
| | account = None |
| | if token is None: |
| | token = 'None' |
| | else: |
| | if ':' in token: |
| | |
| | token, username, password = token.split(':', 2) |
| | account = f"{username}:{password}" |
| |
|
| | config = conf.PyngrokConfig( |
| | auth_token=token, region=region |
| | ) |
| | |
| | |
| | existing = ngrok.get_tunnels(pyngrok_config=config) |
| | if existing: |
| | for established in existing: |
| | |
| | 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 |
| | else: |
| | public_url = ngrok.connect(port, pyngrok_config=config, bind_tls=True, auth=account).public_url |
| | except exception.PyngrokNgrokError: |
| | print(f'Invalid ngrok authtoken, ngrok connection aborted.\n' |
| | f'Your token: {token}, get the right one on https://dashboard.ngrok.com/get-started/your-authtoken') |
| | else: |
| | print(f'ngrok connected to localhost:{port}! URL: {public_url}\n' |
| | 'You can use this link after the launch is complete.') |
| |
|