Перейти до вмісту

Пошук термінала

Дозвольте клієнту самому знайти порт термінала й токен або передайте їх самі.

Клієнту потрібні дві речі: порт, на якому слухає термінал, і токен. 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Знову скопіювати токен
Термінал має іншу версію APIIncompatibleTerminalДив. Сумісність

Це назви в 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.

На цій сторінці