Пошук термінала
Дозвольте клієнту самому знайти порт термінала й токен або передайте їх самі.
Клієнту потрібні дві речі: порт, на якому слухає термінал, і токен.
Terminal.discover() знаходить обидві.
Знайти термінал
from spectre_terminal import Terminal
terminal = Terminal.discover()Токен береться зі змінної середовища SPECTRE_LOCAL_API_TOKEN і більше
нізвідки. Порт береться з файлу instance.json термінала. Якщо файлу
немає, порт — 48180. Потім discover() робить один пробний запит.
Коли пошук не вдається
| Що відбувається | Що ви отримаєте | Що робити |
|---|---|---|
| Токен не задано | TokenMissing | Задати SPECTRE_LOCAL_API_TOKEN |
| API вимкнено | LocalApiDisabled | Увімкнути API |
| На порту ніхто не відповідає | TerminalUnreachable | Запустити термінал |
| Токен не поточний | ApiError з кодом unauthorized | Знову скопіювати токен |
| Термінал має іншу версію API | IncompatibleTerminal | Див. Сумісність |
Це назви в Python. Назви в TypeScript закінчуються на Error, наприклад
TokenMissingError.
Задати порт і токен самостійно
import os
from spectre_terminal import Terminal
found = Terminal.discover(port=48181)
direct = Terminal(os.environ["SPECTRE_LOCAL_API_TOKEN"], port=48181)discover() з портом не читає instance.json. Конструктор бере токен і
порт такими, як їх передано.
Це потрібно для другого термінала на іншому порту. Підтримуваний випадок —
один термінал на машині. Хост — завжди 127.0.0.1 або localhost.
Прочитати порт без клієнта
Програма іншою мовою читає local_api_port з instance.json:
{ "pid": 108957, "http_port": 46727, "local_api_port": 48180 }| Система | Шлях |
|---|---|
| Linux | $XDG_DATA_HOME/spectre-terminal/instance.json, типово ~/.local/share/spectre-terminal/instance.json |
| macOS | ~/Library/Application Support/spectre-terminal/instance.json |
| Windows | %LOCALAPPDATA%\spectre-terminal\instance.json |
local_api_port відсутній або дорівнює null, поки API вимкнено. Не
використовуйте http_port: це не Local API.