oTGHttp->sendToTG($sMsg); $this->oHttp::response(200, 'ok'); } public function Clone($aParam) { $iId = $aParam['aArg'][1]; // 查找文章 $aArticle = ModelArticle::find($iId); if ($aArticle) { // 复制文章 $newArticle = $aArticle->replicate(); // 如果需要,可以修改新文章的某些字段,例如标题或状态 // $newArticle->title = $newArticle->title . ' - Copy'; // 修改标题 // $newArticle->status = 'draft'; // 例如,将状态设置为草稿 // 保存新文章 $newArticle->save(); // 发送新文章的 ID 到 Telegram $sMsg = "新文章已创建,ID: " . $newArticle->id; $this->oTGHttp->sendToTG($sMsg); // 返回 HTTP 响应 $this->oHttp::response(200, 'ok'); } else { throw new \Exception("没有这个id"); } } // /Git#PullR 3 public function PullR($aParam) { $iId = $aParam['aArg'][1]; $aArticle = ModelArticle::find($iId); $sProjectPath = env("BASE_DIR")."github/".$aArticle->user_name."-".$aArticle->project_name; // 进入指定目录 if (!chdir($sProjectPath)) { echo "无法进入目录 {$sProjectPath}\n"; exit(1); } // 获取远程更新 $this->runCommand('git fetch origin'); // 硬重置到远程主分支 $this->runCommand('git reset --hard origin/main'); echo "操作完成:已重置到远程主分支。\n"; } private function runCommand($command) { $output = []; $returnVar = 0; exec($command, $output, $returnVar); if ($returnVar !== 0) { // 将输出数组转换为 JSON 格式 $jsonOutput = json_encode($output, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); $errorMessage = "命令失败: $command\n" . $jsonOutput . "\n"; throw new \Exception($errorMessage); } } }