rottenstuff commited on
Commit
dba1ffa
·
verified ·
1 Parent(s): 5ee2aab

Upload 12 files

Browse files
Files changed (1) hide show
  1. colab_tunnel/_tunnels.py +14 -2
colab_tunnel/_tunnels.py CHANGED
@@ -291,14 +291,26 @@ def get_mmar_url(port: int) -> str:
291
 
292
  @tunnel_provider('tunnelite')
293
  def get_tunnelite_url(port: int) -> str:
 
 
 
 
 
 
 
 
294
  return get_revproxy_url(
295
  bin_url='https://github.com/hehepiska/tunnellite-linux/releases/download/latest/tunnelite',
296
  need_unpack=False,
297
  bin_path=tunnelite_bin,
298
- start_commands=[str(tunnelite_bin), f'http://127.0.0.1:{port}'],
 
 
 
 
299
  read_from_stderr=False,
300
  url_pattern=r'(?P<url>https?://\S+\.tunnelite\.com)',
301
- timeout=45.0, # Tunnelite стартует медленно
302
  )
303
 
304
 
 
291
 
292
  @tunnel_provider('tunnelite')
293
  def get_tunnelite_url(port: int) -> str:
294
+ """
295
+ tunnelite — интерактивное TUI-приложение, которое проверяет isatty(stdout).
296
+ Без PTY оно выводит URL и сразу завершается, не поддерживая туннель → 404.
297
+ `script -q -c "..." /dev/null` выделяет pseudo-TTY для дочернего процесса,
298
+ tunnelite думает что работает в терминале и держит соединение.
299
+ script при этом транслирует весь вывод в свой stdout — читаем через обычный PIPE.
300
+ """
301
+ kill_process_by_name(tunnelite_bin.name)
302
  return get_revproxy_url(
303
  bin_url='https://github.com/hehepiska/tunnellite-linux/releases/download/latest/tunnelite',
304
  need_unpack=False,
305
  bin_path=tunnelite_bin,
306
+ start_commands=[
307
+ 'script', '-q', '-c',
308
+ f'{tunnelite_bin} http://127.0.0.1:{port}',
309
+ '/dev/null',
310
+ ],
311
  read_from_stderr=False,
312
  url_pattern=r'(?P<url>https?://\S+\.tunnelite\.com)',
313
+ timeout=45.0,
314
  )
315
 
316