UNPKG

peertube-plugin-admin-message

Version:

動画・配信ページの説明欄下にインスタンス管理者からのメッセージを表示するプラグインです。

119 lines (106 loc) 4.15 kB
async function register({ registerSetting, settingsManager, storageManager, videoCategoryManager, videoLicenceManager, videoLanguageManager, peertubeHelpers }) { console.log('Admin Message Plugin: Server-side registration starting for PeerTube 7.2.1') // プラグイン設定を登録 registerSetting({ name: 'enable-admin-message', label: 'メッセージ表示を有効化', type: 'input-checkbox', default: true, descriptionHTML: '管理者メッセージの表示を有効または無効にします' }) registerSetting({ name: 'admin-message-content', label: '管理者メッセージ内容', type: 'input-textarea', default: 'Welcome to our PeerTube instance!\n\nThis is an admin message.', descriptionHTML: '管理者メッセージの内容(Markdown記法と安全なHTMLがサポートされています)', private: false }) registerSetting({ name: 'message-style', label: 'メッセージスタイル', type: 'select', options: [ { label: '情報(青)', value: 'info' }, { label: '警告(オレンジ)', value: 'warning' }, { label: '成功(緑)', value: 'success' }, { label: 'エラー(赤)', value: 'error' }, { label: 'デフォルト(グレー)', value: 'default' }, { label: 'その他(透明・無色)', value: 'transparent' } ], default: 'info', descriptionHTML: '管理者メッセージの外観スタイル' }) registerSetting({ name: 'show-on-video-pages', label: '動画ページに表示', type: 'input-checkbox', default: true, descriptionHTML: '通常の動画ページにメッセージを表示します' }) registerSetting({ name: 'show-on-live-pages', label: 'ライブページに表示', type: 'input-checkbox', default: true, descriptionHTML: 'ライブ配信ページにメッセージを表示します' }) registerSetting({ name: 'insert-position', label: 'メッセージ挿入位置', type: 'select', options: [ { label: '動画のすぐ下〜説明欄の間', value: 'before-description' }, { label: '説明欄の下〜コメント欄の間(デフォルト)', value: 'after-description' }, { label: 'コメント欄のすぐ下', value: 'after-comments' } ], default: 'after-description', descriptionHTML: 'ページ内でのメッセージ表示位置を選択してください' }) registerSetting({ name: 'font-size', label: '文字サイズ', type: 'select', options: [ { label: '標準(16px)', value: 'normal' }, { label: '大(18px)', value: 'large' }, { label: '特大(20px)', value: 'extra-large' } ], default: 'normal', descriptionHTML: 'メッセージの文字サイズを選択してください' }) // PeerTube 7.2.1 用のAPIエンドポイント登録 // クライアントサイドから設定を取得できるようにする if (peertubeHelpers.registerApi) { peertubeHelpers.registerApi({ method: 'GET', path: '/settings', handler: async (req, res) => { try { const settings = await settingsManager.getSettings([ 'enable-admin-message', 'admin-message-content', 'message-style', 'show-on-video-pages', 'show-on-live-pages', 'insert-position', 'font-size' ]) console.log('Admin Message Plugin: API settings request', settings) res.json(settings) } catch (error) { console.error('Admin Message Plugin: API error', error) res.status(500).json({ error: 'Failed to get settings' }) } } }) } console.log('Admin Message Plugin: Server-side registration completed successfully') } async function unregister() { console.log('Admin Message Plugin: Server-side unregistration completed') } module.exports = { register, unregister }