UNPKG

kawazu

Version:

kawazu CLI tool for real-time chat in your editor

81 lines (80 loc) 3.57 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.showProfile = showProfile; exports.openProfile = openProfile; const chalk_1 = __importDefault(require("chalk")); const node_fetch_1 = __importDefault(require("node-fetch")); const config_1 = require("../utils/config"); async function showProfile(username) { try { const config = await (0, config_1.loadConfig)(); console.log(chalk_1.default.blue(` ${username} のプロフィールを取得中...`)); // API リクエスト const response = await (0, node_fetch_1.default)(`${config.server_url}/api/profiles/${username}/url`); const result = await response.json(); if (!response.ok || !result.success) { console.error(chalk_1.default.red(` ${result.error || 'プロフィールが見つかりません'}`)); return; } const { url, is_public } = result.data; console.log(chalk_1.default.green('\n プロフィールが見つかりました!')); console.log(` ユーザー: ${chalk_1.default.cyan(username)}`); console.log(` URL: ${chalk_1.default.blue(url)}`); if (!is_public) { console.log(chalk_1.default.yellow(' このプロフィールはプライベート設定です')); } console.log(chalk_1.default.gray('\n 上記URLをブラウザで開いてプロフィールを確認できます')); } catch (error) { console.error(chalk_1.default.red(` エラーが発生しました: ${error.message}`)); if (error.code === 'ECONNREFUSED') { console.log(chalk_1.default.yellow(' APIサーバーが起動していない可能性があります')); } } } async function openProfile(username) { try { const config = await (0, config_1.loadConfig)(); // プロフィールURL取得 const response = await (0, node_fetch_1.default)(`${config.server_url}/api/profiles/${username}/url`); const result = await response.json(); if (!response.ok || !result.success) { console.error(chalk_1.default.red(` ${result.error || 'プロフィールが見つかりません'}`)); return; } const { url } = result.data; // プラットフォーム別でブラウザオープン const { spawn } = require('child_process'); const platform = process.platform; let command; let args; if (platform === 'darwin') { command = 'open'; args = [url]; } else if (platform === 'win32') { command = 'start'; args = [url]; } else { command = 'xdg-open'; args = [url]; } console.log(chalk_1.default.blue(` ブラウザで ${username} のプロフィールを開いています...`)); console.log(chalk_1.default.gray(`URL: ${url}`)); const child = spawn(command, args, { detached: true, stdio: 'ignore' }); child.unref(); } catch (error) { console.error(chalk_1.default.red(` ブラウザを開けませんでした: ${error.message}`)); console.log(chalk_1.default.yellow(' 手動でブラウザを開いて以下のURLにアクセスしてください:')); // フォールバック: URL表示 await showProfile(username); } }