目前已經實作出了多種功能,為了讓使用更直覺化,今天要將所有功能進行統一整合並模組化,讓結構更清晰,提升查詢效率
# 記錄控制面板訊息 ID(用於重啟時更新)
control_panel_message_id = None
整合CI/CD執行狀態以及commit最新紀錄
@discord.ui.button(label="📊 狀態監控", style=discord.ButtonStyle.primary, custom_id="status_monitor")
async def status_monitor(self, interaction: discord.Interaction, button: discord.ui.Button):
"""狀態監控面板"""
embed = discord.Embed(
title="📊 DevOps 狀態監控",
description="即時系統狀態與健康度檢查",
color=0x3498DB
)
# 獲取即時狀態
build_status = get_latest_build_status()
commit_info = get_latest_commit()
# 簡化狀態顯示
embed.add_field(
name="🔄 CI/CD 狀態",
value="點擊下方按鈕查看詳細狀態",
inline=False
)
embed.add_field(
name="📝 最新提交",
value="查看最近程式碼變更",
inline=False
)
view = StatusMonitorView()
await interaction.response.send_message(embed=embed, view=view, ephemeral=True)
管理PR merge紀錄及追蹤
@discord.ui.button(label="📝 變更管理", style=discord.ButtonStyle.success, custom_id="change_management")
async def change_management(self, interaction: discord.Interaction, button: discord.ui.Button):
"""變更管理面板"""
embed = discord.Embed(
title="📝 變更管理控制台",
description="追蹤程式碼變更與版本發布",
color=0x27AE60
)
embed.add_field(
name="🔄 更新檢查",
value="立即檢查最新合併的 PR",
inline=True
)
embed.add_field(
name="📈 近期活動",
value="查看最近開發進度",
inline=True
)
view = ChangeManagementView()
await interaction.response.send_message(embed=embed, view=view, ephemeral=True)
查看系統排程情形
@discord.ui.button(label="⚙️ 排程管理", style=discord.ButtonStyle.secondary, custom_id="schedule_management")
async def schedule_management(self, interaction: discord.Interaction, button: discord.ui.Button):
"""排程管理面板"""
embed = discord.Embed(
title="⚙️ 排程任務管理",
description="自動化任務與排程設定",
color=0xF39C12
)
next_check = get_next_monday()
embed.add_field(
name="⏰ 下次檢查",
value=f"{(next_check + timedelta(hours=8)).strftime('%Y-%m-%d %H:%M')} (台灣時間)",
inline=True
)
embed.add_field(
name="📊 排程狀態",
value="✅ 運行中" if CHANGELOG_CHANNEL_ID else "❌ 未啟用",
inline=True
)
view = ScheduleManagementView()
await interaction.response.send_message(embed=embed, view=view, ephemeral=True)
查詢系統運行環境設置
@discord.ui.button(label="🔧 系統資訊", style=discord.ButtonStyle.gray, custom_id="system_info")
async def system_info(self, interaction: discord.Interaction, button: discord.ui.Button):
"""系統資訊面板"""
embed = discord.Embed(
title="🔧 系統資訊與支援",
description="環境設定與技術資源",
color=0x95A5A6
)
embed.add_field(
name="🌐 運行環境",
value="Render" if not os.path.exists('.env') else "本地",
inline=True
)
embed.add_field(
name="🤖 Bot 狀態",
value="✅ 在線",
inline=True
)
view = SystemInfoView()
await interaction.response.send_message(embed=embed, view=view, ephemeral=True)
實際操作執行結果
輸入!panel呼叫面板