Spaces:
Configuration error
Configuration error
| from pyngrok import ngrok, conf, exception | |
| def connect(token, port, region): | |
| account = None | |
| if token is None: | |
| token = 'None' | |
| else: | |
| if ':' in token: | |
| # token = authtoken:username:password | |
| 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 | |
| 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.') | |