oHttp->sToUrl = "https://api.github.com/repos/".$oArticle->user_name."/".$oArticle->project_name; $this->oHttp->sMetHod = "get"; $r = $this->oHttp->send(); $aGitHub = json_decode($r, true); if (!isset($aGitHub["id"])) { $aGitHub["thisSendUrl"] = $this->oHttp->sToUrl; return $this->toJson($aGitHub); } $tmp = str_replace("T", " ", rtrim($aGitHub["updated_at"], "Z")); //updated_at, pushed_at $tmp = strtotime($tmp); $tmpDate = date("Y-m-d H:i:s", $tmp + (8 * 3600)); $tmpTime = strtotime($tmpDate); $tmpNowTime = time(); $tmpDiff = $tmpNowTime - $tmpTime; $iLastUpdate = ceil($tmpDiff / 60); $aGitHubNew = []; $aGitHubNew["⭐️星星"] = $aGitHub["stargazers_count"]; $aGitHubNew["♻️最后更新"] = $iLastUpdate."分钟前"; // 替换T为空格并去掉Z $aGitHubNew["watchers"] = $aGitHub["watchers_count"]; $aGitHubNew["forks"] = $aGitHub["forks_count"]; $aGitHubNew["watchers"] = $aGitHub["watchers_count"]; $aGitHubNew["url"] = $this->urlFormat($aGitHub["html_url"]); return $this->toJson($aGitHubNew); } public function List($aParam) { if (isset($aParam['aOption'][1])) { $sOrderBy = $aParam['aOption'][1]; } else { $sOrderBy = "i_in10"; } $aArticleList = ModelArticle::orderBy($sOrderBy)->get()->toArray(); $str = ""; foreach ($aArticleList as &$row) { // 使用引用来修改原数组 unset($row['updated_at']); // 移除 updated_at 字段 unset($row['created_at']); // 移除 created_at 字段 // $aTmp[] = $this->toJson($row); // $this->oTGHttp->sendToTG(json_encode($row, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT)); // $str .= "\n"; $str .= $this->toJson($row); $str .= "\n\n"; } return $str; } public function Find($aParam) { $iId = $aParam['aArg'][1]; $aSingle = ModelArticle::find($iId)->toArray(); unset($aSingle['updated_at']); unset($aSingle['created_at']); return $this->toJson($aSingle); } public function Like($aParams) { $aArticleList = ModelArticle::where($this->cmdGood($aParams['aOption'][1]), 'like', '%' . $aParams['aArg'][1] . '%') ->orderBy("user_name") ->get() ->toArray(); if (empty($aArticleList)) { $this->oTGHttp->sendToTG("没有"); } else { $aTmp = []; foreach ($aArticleList as &$row) { // 使用引用来修改原数组 unset($row['updated_at']); // 移除 updated_at 字段 unset($row['created_at']); // 移除 created_at 字段 $aTmp[] = $this->toJson($row); } } return $aTmp; } 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'); return $this->toJson($sMsg); } else { throw new \Exception("没有这个id"); } } public function Add($aParams) { $newArticle = new ModelArticle(); $newArticle->user_name = $aParams['aArg'][1]; $r = $newArticle->save(); return $r; } public function Del($aParams) { $article = ModelArticle::find($aParams['aArg'][1]); if ($article) { $r = $article->delete(); } else { $r = false; } return $r; } public function JsonAdd($aParam) { return $this->JsonSet($aParam, "add"); } public function Json($aParam) { $iId = $aParam["aOption"][1] ?? false; $sJson = $aParam["aArg"] ?? false; if (empty($aParam["aOption"]) && empty($aParam["aArg"])) { return "/article#json__id? | 有id为set,无id为add"; } // if (!$iId) { // return "需要id"; // } // // if (!$sJson) { // return "需要json"; // } if (!$iId) { $oArticle = new ModelArticle(); } else { $oArticle = ModelArticle::find($iId); if (!$oArticle) { return "没到到这个"; } } $sJson = implode(" ", $sJson); $aJson = json_decode($sJson, true); foreach ($aJson as $k => $v) { $oArticle->$k = $v; } $oArticle->save(); $aParam["aArg"][1] = $oArticle->id; return $this->Find($aParam); } // /ArticleSet__id__user_name xxx public function Set($aParams) { $sField = $this->cmdGood($aParams['aOption'][2]); $article = ModelArticle::find($aParams['aOption'][1]); $sSet = $aParams['aArg'][1]; if ($article) { $article->$sField = $sSet; $r = $article->save(); } else { // 处理未找到的情况 throw new \Exception("Article not found"); } $aParam["aArg"][1] = $article->id; return $this->Find($aParam); // return $this->toJson($article); } }