diff --git a/app/Http/Controllers/Api/TG/HookController.php b/app/Http/Controllers/Api/TG/HookController.php index 797e3d6d..8368bb2e 100755 --- a/app/Http/Controllers/Api/TG/HookController.php +++ b/app/Http/Controllers/Api/TG/HookController.php @@ -50,9 +50,23 @@ final class HookController $sCmd = $this->cleanCmd($aOption[0]); - list($sClass, $sFunc) = explode("#", $sCmd); - $sClass = ucfirst($sClass); - $sFunc = ucfirst($sFunc); +// list($sClass, $sFunc) = explode("#", $sCmd); +// $sClass = ucfirst($sClass); +// $sFunc = ucfirst($sFunc); + + // 大于3个说明是hook或dove之类 + $aCmd = explode("#", $sCmd); + if (count($aCmd) >= 3) { + $sHook = $aCmd[0]; +// $sClass = $aCmd[1]; +// $sFunc = $aCmd[2]; + $sClass = $sHook; + $sFunc = "go"; +// $aUpdate["subCmd"] = "/".$aCmd[1]."#".$aCmd[2]; + } else { + $sClass = $aCmd[0]; + $sFunc = $aCmd[1]; + } unset($aOption[0]); unset($aArg[0]); @@ -64,11 +78,11 @@ final class HookController if (method_exists($sClassPath, $sFunc)) { $oInstans = new $sClassPath(); - $r = $oInstans->$sFunc($aParams); + $r = $oInstans->$sFunc($aParams, $aUpdate); // 可以不返回,里面直接send if (isset($r)) { - if (empty($r)) { $r = 'hook的mod返回空'; } +// if (empty($r)) { $r = 'hook的mod返回空'; } // 返回可以是数组 if (is_array($r)) { foreach ($r as $row) { diff --git a/app/Http/Controllers/SakaiController.php b/app/Http/Controllers/SakaiController.php index 2399bfd3..b0bdd299 100755 --- a/app/Http/Controllers/SakaiController.php +++ b/app/Http/Controllers/SakaiController.php @@ -13,7 +13,7 @@ class SakaiController { public function test1() { - tomd(123, 1); +// tomd(123, 1); @$k = $_GET["k"]; @$s = $_GET["s"]; @@ -27,7 +27,42 @@ class SakaiController //test // $s = "\/AticleSet__1115zz__sale_rate 1118.118"; // $s = "\/git#LastTime 1"; - $s= "/cmd#list"; + $s = "/hook#set site:cfn"; + $s = "/dove#now"; + $s = "/dove#set vcf"; + $s = "/dove#unsetAll"; + $s = "/doveSite#del vcf"; + $s = "/doveSite#option__cfn__www 123"; + $s = "/doveSite#limit 10"; + $s = "/doveSite#like__memo c"; + $s = "/dove#tool#list"; + $s = "/dove#tool#exec html/client"; + $s = "/dove#option#list"; + $s = "/dove#option#add zzzzxxx"; + $s = "/dove#option#option__test xxx111"; + $s = "/dove#option#del test"; + $s = "/dove#option#like__key xx"; + $s = "/dove#option#like__value cc"; + $s = "/dove#option#find jichang_ww"; + $s = "/dove#option#add freenode_title"; + $s = "/dove#tool#sql"; + $s = "/dove#database#select select * from article_list limit 1"; + $s = "/dove#database#sql ALTER TABLE test ADD COLUMN age INT"; + $s = "/dove#toolOld#list"; + $s = "/dove#toolOld#exec html/article"; + $s = "/dove#test#FreenodeCrawUrl"; + $s = "/dove#tool#freenode_up"; + $s = "/dove#tool#toptag_html"; + $s = "/dove#tool#like_auto"; + $s = "/dove#tool#Article_freenode_up_limit 10 3"; + $s = "/note#add skljdfkljsdkljf"; + $s = "/note#now"; + $s = "/note#keep 2"; + $s = "/note#main"; +// $s = "/note#set__1 告诉你啊,你就是个几把"; +// $s = "/note#memo__1 股您吗的"; +// $s = "/note#icon"; + $s = "/note#add__now 脱裤子 112"; $oHttp = new Http(); $oHttp->sMethod = "post"; @@ -59,7 +94,8 @@ class SakaiController $r = $oHttp->send(); - var_dump($r); + echo "
";
+ echo($r);
exit;
}
diff --git a/app/Models/ArticleList.php b/app/Models/ArticleList.php
deleted file mode 100755
index 23de2634..00000000
--- a/app/Models/ArticleList.php
+++ /dev/null
@@ -1,10 +0,0 @@
-get()->toArray();
-
- foreach ($aArticleList as &$row) { // 使用引用来修改原数组
- unset($row['updated_at']); // 移除 updated_at 字段
- unset($row['created_at']); // 移除 created_at 字段
- $this->oTGHttp->sendToTG(json_encode($row, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
- }
-
- $this->oHttp::response(200, 'ok');
- }
-
- public function Find($aParam)
- {
- $iId = $aParam['aArg'][1];
-
- $aSingle = ModelArticle::find($iId)->toArray();
-
- unset($aSingle['updated_at']);
- unset($aSingle['created_at']);
-
- return json_encode($aSingle, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
- }
-
-
- 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 {
- foreach ($aArticleList as &$row) { // 使用引用来修改原数组
- unset($row['updated_at']); // 移除 updated_at 字段
- unset($row['created_at']); // 移除 created_at 字段
- $this->oTGHttp->sendToTG(json_encode($row, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
- }
- }
-
- $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");
- }
- }
-
- public function Add($aParams)
- {
-
- $newArticle = new ModelArticle();
- $newArticle->user_name = $aParams['aArg'][1];
- $r = $newArticle->save();
-
- $this->oTGHttp->sendToTG(json_encode($r, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
-
- $this->oHttp::response(200, 'ok');
-
- }
-
- public function Del($aParams)
- {
-
- $article = ModelArticle::find($aParams['aArg'][1]);
-
- if ($article) {
- $r = $article->delete();
- } else {
- $r = false;
- }
-
- $this->oTGHttp->sendToTG(json_encode($r, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
-
- $this->oHttp::response(200, 'ok');
-
- }
-
- // /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");
- }
-
- $this->oTGHttp->sendToTG(json_encode($r, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
-
- $this->oHttp::response(200, 'ok');
- }
-
-}
diff --git a/app/Services/TG/Hook/Mod/Base.php b/app/Services/TG/Hook/Mod/Base.php
index 6aede038..d0737152 100644
--- a/app/Services/TG/Hook/Mod/Base.php
+++ b/app/Services/TG/Hook/Mod/Base.php
@@ -15,29 +15,43 @@ class Base {
// $this->oTGHttp->sApiChatId = env("telegram_chatid");
}
- protected function cmdGood($sCmd) {
-
- $sCmdNew = "";
- switch ($sCmd) {
- case "user":
- $sCmdNew = "user_name";
- break;
- case "project":
- $sCmdNew = "project_name";
- break;
- case "code":
- $sCmdNew = "sale_code";
- break;
- case "condition":
- $sCmdNew = "cron_condition";
- break;
- default:
- $sCmdNew = $sCmd;
- break;
- }
-
- return $sCmdNew;
-
+ public function toJson($aData)
+ {
+ return json_encode($aData, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
}
+ public function eachSendTg($aData)
+ {
+ foreach ($aData as $row) {
+ $this->oTGHttp->sendToTG(json_encode($row, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
+ }
+
+ $this->oHttp::response(200, 'ok');
+ }
+
+// protected function cmdGood($sCmd) {
+//
+// $sCmdNew = "";
+// switch ($sCmd) {
+// case "user":
+// $sCmdNew = "user_name";
+// break;
+// case "project":
+// $sCmdNew = "project_name";
+// break;
+// case "code":
+// $sCmdNew = "sale_code";
+// break;
+// case "condition":
+// $sCmdNew = "cron_condition";
+// break;
+// default:
+// $sCmdNew = $sCmd;
+// break;
+// }
+//
+// return $sCmdNew;
+//
+// }
+
}
diff --git a/app/Services/TG/Hook/Mod/Cmd.php b/app/Services/TG/Hook/Mod/Cmd.php
deleted file mode 100644
index 70c861de..00000000
--- a/app/Services/TG/Hook/Mod/Cmd.php
+++ /dev/null
@@ -1,34 +0,0 @@
- 'SaleCode#List',
- '优惠码find' => 'SaleCode#Find xxhh',
- '优惠码rate' => 'SaleCode#SetRate__xxzz 6.7',
- '文章list' => 'Article#List',
- '文章like' => 'Article#Like__field like',
- '文章add' => 'Article#Add__name',
- '文章del' => 'Article#Del__id',
- '文章set' => 'Article#Set__id__fild set',
-// '添加github的sshhost' => "System#AddSshHostGithub",
- '文章clone' => "article#clone id",
- 'git手动重置' => "git#pullR",
- '文章find' => "article#find id",
- 'cron暂停' => "option#pause 1",
- '测试cron' => "test#cron_i 01",
- ];
-
- $this->oTGHttp->sendToTG(json_encode($aCmdList, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
-
- $this->oHttp::response(200, 'ok');
-
- }
-
-}
diff --git a/app/Services/TG/Hook/Mod/Dove.php b/app/Services/TG/Hook/Mod/Dove.php
new file mode 100644
index 00000000..98f9e0bb
--- /dev/null
+++ b/app/Services/TG/Hook/Mod/Dove.php
@@ -0,0 +1,91 @@
+get();
+
+ list(, $sSubCmd) = explode("#", $aData['message']['text'], 2);
+ $aData['message']['text'] = "/".$sSubCmd;
+
+ $aData['dove_token'] = env('dove_token');
+
+ foreach ($oDoveSiteCheckedList as $row) {
+
+ $sApiUrl = "https://".$row->www.$row->api_path;
+
+ $this->oHttp->sMethod = "post";
+ $this->oHttp->bIsJson = true;
+ $this->oHttp->sToUrl = $sApiUrl;
+ $this->oHttp->aData = $aData;
+ $r = $this->oHttp->send();
+ return $r;
+
+ }
+
+ }
+
+ public function set($aParam)
+ {
+ $iSetValue = $aParam['iSetValue'] ?? 1;
+ $sCode = $aParam['aArg'][1];
+
+ $oDoveSite = ModelDoveSite::where("code", $sCode)->first();
+
+ if (!$oDoveSite) {
+ throw new \Exception("没有这个code");
+ }
+
+ $oDoveSite->dove_checked = $iSetValue;
+
+ $r = $oDoveSite->save();
+
+ if (!$r) {
+ throw new \Exception("没check上?");
+ }
+
+ $r = $this->now();
+
+ return $r;
+ }
+
+ public function unsetAll()
+ {
+
+ $r = ModelDoveSite::query()->update(["dove_checked" => 0]);
+
+ return $r;
+ }
+
+ public function unset($aParam)
+ {
+ $aParam['iSetValue'] = 0;
+ $r = $this->set($aParam);
+
+ return $r;
+ }
+
+ public function now()
+ {
+ $aDoveSiteNow = ModelDoveSite::where("dove_checked", 1)->get()->toArray();
+
+ if ($aDoveSiteNow) {
+ $r = "";
+ foreach ($aDoveSiteNow as $row) {
+ $r .= "\n";
+ $r .= $row['code']."::".$row['www']."::".$row['class'];
+ }
+ } else {
+ $r = "没有";
+ }
+
+ return $r;
+ }
+
+}
diff --git a/app/Services/TG/Hook/Mod/DoveSite.php b/app/Services/TG/Hook/Mod/DoveSite.php
new file mode 100644
index 00000000..27dcd98a
--- /dev/null
+++ b/app/Services/TG/Hook/Mod/DoveSite.php
@@ -0,0 +1,67 @@
+code = $sCode;
+ $r = $oDoveSite->save();
+
+ return $r;
+ }
+
+ public function del($aParam)
+ {
+ $sCode = $aParam['aArg'][1];
+
+ $r = ModelDoveSite::where("code", $sCode)->delete();
+
+ return $r;
+ }
+
+ public function limit($aParam)
+ {
+ $iLimit = $aParam['aArg'][1];
+
+ $oDoveSite = ModelDoveSite::orderBy("code")->limit($iLimit)->get();
+
+ $this->eachSendTg($oDoveSite);
+ }
+
+ public function like($aParam)
+ {
+ $sField = $aParam['aOption'][1];
+ $sValue = $aParam['aArg'][1];
+
+ $oDoveSiteLike = ModelDoveSite::where($sField, "like", "%".$sValue."%")->get();
+
+ $this->eachSendTg($oDoveSiteLike);
+
+ }
+
+ public function option($aParam)
+ {
+ $sCode = $aParam['aOption'][1];
+ $sField = $aParam['aOption'][2];
+ $sValue = $aParam['aArg'][1];
+
+ $oDoveSite = ModelDoveSite::where("code", $sCode)->first();
+
+ if (!$oDoveSite) {
+ throw new \Exception("没有这个code");
+ }
+
+ $oDoveSite->$sField = $sValue;
+ $r = $oDoveSite->save();
+
+ return $r;
+ }
+
+}
diff --git a/app/Services/TG/Hook/Mod/Git.php b/app/Services/TG/Hook/Mod/Git.php
deleted file mode 100644
index 8f9fb47e..00000000
--- a/app/Services/TG/Hook/Mod/Git.php
+++ /dev/null
@@ -1,128 +0,0 @@
-get()->toArray();
-
- $sMsg = '';
- foreach ($aArticleList as $v) {
- $sMsg .= "\n\n";
- $sMsg .= "https://github.com/".$v['user_name']."/".$v['project_name'];
- }
-
- return $sMsg;
-
- }
-
- public function LastTime($aParam)
- {
- $iId = $aParam['aArg'][1];
-
- $aArticle = ModelArticle::find($iId);
-
- $sProjectPath = env("BASE_DIR") . "github/" . $aArticle->user_name . "-" . $aArticle->project_name;
-
- // 进入指定目录
- if (!chdir($sProjectPath)) {
- throw new \Exception("无法进入目录" . $sProjectPath);
- }
-
- // 获取远程更新
- $this->runCommand('git fetch origin');
-
- // 获取最后提交的时间
- $lastCommitTime = $this->runCommand('git log origin/main -1 --format=%cd');
- $lastCommitTime = \DateTime::createFromFormat('D M d H:i:s Y O', $lastCommitTime[0]);
- $lastCommitTime = json_encode($lastCommitTime->format('Y-m-d H:i:s'));
-
- // 检查是否获取到时间
- if (empty($lastCommitTime)) {
- throw new \Exception("无法获取最后提交时间,可能是分支不存在或没有提交。");
- }
-
- return $lastCommitTime;
-
- }
-
- // 没用
- public function AddSshHostGithub()
- {
-
- // 定义要添加的主机
- $host = 'github.com';
-
- // 执行 ssh-keyscan 命令
- $key = shell_exec("ssh-keyscan -t ed25519 $host");
-
- // 检查是否成功获取到公钥
- if ($key) {
- // 获取 known_hosts 文件的路径
- $knownHostsFile = '/root/.ssh/known_hosts';
-
- // 检查 known_hosts 文件中是否已经存在该主机的公钥
- if (strpos(file_get_contents($knownHostsFile), $host) === false) {
- // 将公钥写入 known_hosts 文件
- file_put_contents($knownHostsFile, $key, FILE_APPEND);
- $sMsg = "公钥已成功添加到 $knownHostsFile\n";
- } else {
- $sMsg = "公钥已存在于 $knownHostsFile\n";
- }
- } else {
- $sMsg = "无法获取 $host 的公钥\n";
- }
-
- $this->oTGHttp->sendToTG($sMsg);
-
- $this->oHttp::response(200, 'ok');
-
- }
-
- // /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)) {
- throw new \Exception("无法进入目录".$sProjectPath);
- }
-
- // 获取远程更新
- $this->runCommand('git fetch origin');
-
- // 硬重置到远程主分支
- $this->runCommand('git reset --hard origin/main');
-
- $this->oTGHttp->sendToTG("操作完成:已重置到远程主分支");
-
- $this->oHttp::response(200, 'ok');
-
- }
-
- private function runCommand($command) {
- $output = [];
- $returnVar = 0;
- exec($command, $output, $returnVar);
-
- if ($returnVar !== 0) {
- $jsonOutput = json_encode($output, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
- $errorMessage = "命令失败: $command\n" . $jsonOutput . "\n";
-
- throw new \Exception($errorMessage);
- } else {
- return $output;
- }
-
- }
-
-}
diff --git a/app/Services/TG/Hook/Mod/Hook.php b/app/Services/TG/Hook/Mod/Hook.php
new file mode 100644
index 00000000..ea0cf9e2
--- /dev/null
+++ b/app/Services/TG/Hook/Mod/Hook.php
@@ -0,0 +1,84 @@
+delete();
+
+ // 添加
+ $oHook = new ModelHook();
+ $oHook->tg_user_id = $iFromId;
+ $oHook->key = $sKey;
+ $oHook->steap = 1;
+ $r = $oHook->save();
+
+ if ($r) {
+
+ $aKey = explode(":", $sKey, 2);
+
+ // site类hook处理
+ if ($aKey[0] === "site") {
+
+// $sSite = $aKey[0];
+ $sCode = $aKey[1];
+
+ $oSiteSingle = ModelSiteList::where("code", $sCode)->first();
+
+ if ($oSiteSingle) {
+ $r = "site::".$oSiteSingle->code."@".$oSiteSingle->www." | 就绪!";
+ } else {
+ $r = "没有这个site!";
+ }
+
+ }
+
+ }
+
+ return $r;
+
+ }
+
+ public function go($aParam, $aData)
+ {
+// $aApiUrl =
+ }
+
+ public function now($aParam, $aData)
+ {
+ $iFromId = $aData["message"]["from"]["id"];
+
+ $oHookNow = ModelHook::where("tg_user_id", $iFromId)->first();
+
+ if ($oHookNow) {
+ $aHookNow = $oHookNow->toArray();
+ unset($aHookNow['id']);
+ unset($aHookNow['tg_user_id']);
+ $r = $this->toJson($aHookNow);
+ } else {
+ $r = "没有!";
+ }
+
+ return $r;
+
+ }
+
+ public function break($aParam, $aData)
+ {
+ $iFromId = $aData["message"]["from"]["id"];
+
+ $r = ModelHook::where("tg_user_id", $iFromId)->delete();
+
+ return $r;
+ }
+
+}
diff --git a/app/Services/TG/Hook/Mod/Note.php b/app/Services/TG/Hook/Mod/Note.php
new file mode 100644
index 00000000..e87d2c52
--- /dev/null
+++ b/app/Services/TG/Hook/Mod/Note.php
@@ -0,0 +1,231 @@
+content = $sValue;
+ $oModelNote->save();
+
+ $aParam["aArg"][1] = $iId;
+ $aData = $this->Find($aParam);
+
+ return $aData;
+ }
+
+ public function Memo($aParam)
+ {
+ $iId = $aParam["aOption"][1];
+ $sValue = $aParam["aArg"][1];
+
+ $oModelNote = ModelNote::find($iId);
+ $oModelNote->memo = $sValue;
+ $oModelNote->save();
+
+ $aParam["aArg"][1] = $iId;
+ $aData = $this->Find($aParam);
+
+ return $aData;
+ }
+
+ public function Find($aParam)
+ {
+ $iId = $aParam["aArg"][1];
+
+ $oNote = ModelNote::find($iId)->first();
+
+ $r = $this->noteToStr([$oNote]);
+
+ return $r;
+ }
+
+ public function Add($aParam)
+ {
+ $sType = $aParam["aOption"][1] ?? "under";
+ $sContent = $aParam["aArg"][1];
+ $iScore = $aParam["aArg"][2] ?? 0;
+
+ if (!isset($this->arrTypeIcon()[$sType])) {
+ return "没有这个type";
+ }
+
+ $oNote = new ModelNote();
+ $oNote->content = $sContent;
+ $oNote->type = $sType;
+ $oNote->score = $iScore;
+ $r = $oNote->save();
+
+ $aParam["aArg"][1] = $oNote->id;
+ return $this->magic($aParam, $sType);
+ }
+
+ public function Main($aParam)
+ {
+
+ $oWarning = ModelNote::where("type", "warning")->get();
+ $oMark = ModelNote::where("type", "mark")->get();
+ $oNow = ModelNote::where("type", "now")->get();
+ $oTrack = ModelNote::where("type", "track")->get();
+ $oKeep = ModelNote::where("type", "keep")->get();
+
+ $sWarning = $this->noteToStr($oWarning, "\n");
+ $sMark = $this->noteToStr($oMark, "\n");
+ $sNow = $this->noteToStr($oNow, "\n");
+ $sTrack = $this->noteToStr($oTrack, "\n");
+ $sKeep = $this->noteToStr($oKeep, "\n");
+
+ $str = $sWarning."\n".$sMark."\n".$sNow."\n".$sTrack."\n".$sKeep;
+
+ return $str;
+
+ }
+
+ public function Now($aParam)
+ {
+ return $this->magic($aParam, "now");
+ }
+
+ public function Keep($aParam)
+ {
+ return $this->magic($aParam, "keep");
+ }
+
+ public function wait($aParam)
+ {
+ return $this->magic($aParam, "wait");
+ }
+
+ public function under($aParam)
+ {
+ return $this->magic($aParam, "under");
+ }
+
+ public function del($aParam)
+ {
+ return $this->magic($aParam, "del");
+ }
+
+ public function done($aParam)
+ {
+ return $this->magic($aParam, "done");
+ }
+
+ public function mark($aParam)
+ {
+ return $this->magic($aParam, "mark");
+ }
+
+ public function track($aParam)
+ {
+ return $this->magic($aParam, "track");
+ }
+
+ public function warning($aParam)
+ {
+ return $this->magic($aParam, "warning");
+ }
+
+ public function tip($aParam)
+ {
+ return $this->magic($aParam, "tip");
+ }
+
+ public function icon()
+ {
+ return $this->toJson($this->arrTypeIcon());
+ }
+
+ private function magic($aParam, $sNoteType)
+ {
+ $iId = $aParam["aArg"][1] ?? false;
+
+ if ($iId) {
+ $oNote = ModelNote::find($iId);
+ $oNote->type = $sNoteType;
+ $oNote->save();
+
+ $oNote = ModelNote::where("type", $sNoteType)->get();
+ $r = $this->noteToStr($oNote);
+ } else {
+ $oNote = ModelNote::where("type", $sNoteType)->get();
+ $r = $this->noteToStr($oNote);
+ }
+
+ return $r;
+ }
+
+ private function noteToStr($oNote, $sBr = "\n\n")
+ {
+ $str = "";
+
+ foreach ($oNote as $row) {
+ $sIcon = $this->mapTypeIcon($row->type);
+ $str .= $sBr;
+ $str .= $sIcon."::".$row->id."::".$row->content;
+ if ($row->memo) {
+ $str .= "::".$row->memo;
+ }
+ }
+
+ return $str;
+ }
+
+ private function arrTypeIcon()
+ {
+ $aMap = [
+ "warning" => "🟥",
+ "now" => "🟩",
+ "wait" => "🟧",
+ "under" => "⚪️",
+ "keep" => "⬛️",
+ "del" => "❌",
+ "track" => "🟫",
+ "mark" => "🟪",
+ "done" => "✅",
+ "tip" => "💡",
+ ];
+
+ return $aMap;
+ }
+
+ private function mapTypeIcon($sType)
+ {
+// $aMap = [
+// "warning" => "⚠️",
+// "now" => "🎸",
+// "wait" => "🚦",
+// "under" => "⚪️",
+// "keep" => "📌",
+// "del" => "❌",
+// "track" => "🌀",
+// "mark" => "⭐️",
+// "done" => "✅",
+// "tip" => "💡",
+// ];
+
+ $aMap = $this->arrTypeIcon();
+
+ if (isset($aMap[$sType])) {
+ $sIcon = $aMap[$sType];
+ } else {
+ $sIcon = "::";
+ }
+
+ return $sIcon;
+
+ }
+
+}
diff --git a/app/Services/TG/Hook/Mod/Option.php b/app/Services/TG/Hook/Mod/Option.php
deleted file mode 100644
index 66294176..00000000
--- a/app/Services/TG/Hook/Mod/Option.php
+++ /dev/null
@@ -1,34 +0,0 @@
-first();
-
- // 检查是否找到了选项
- if ($oOption) {
- $oOption->value = $v;
-
- // 保存并返回结果
- return json_encode($oOption->save());
- }
-
- // 如果没有找到选项,返回一个错误信息
- return json_encode(['error' => 'Option not found']);
- }
-
- public function List()
- {
- $aOptionList = ModelOption::all()->toArray();
-
- return json_encode($aOptionList, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
- }
-
-}
diff --git a/app/Services/TG/Hook/Mod/SaleCode.php b/app/Services/TG/Hook/Mod/SaleCode.php
deleted file mode 100644
index a638ae85..00000000
--- a/app/Services/TG/Hook/Mod/SaleCode.php
+++ /dev/null
@@ -1,48 +0,0 @@
-update(['sale_rate' => $aParams['aArg'][1]]);
-
- $this->oTGHttp->sendToTG(json_encode($updatedRows, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
-
- $this->oHttp::response(200, 'ok');
-
- }
-
- public function List()
- {
- $aSaleCodeList = ModelArticle::select('sale_code', 'sale_rate')
- ->distinct()
- ->orderBy("sale_code")
- ->get()
- ->toArray();
-
- $this->oTGHttp->sendToTG(json_encode($aSaleCodeList, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
-
- $this->oHttp::response(200, 'ok');
- }
-
- public function Find($aParams)
- {
-
- $aSaleCodeList = ModelArticle::select('sale_code', 'sale_rate')
- ->where("sale_code", $aParams['aArg'][1])
- ->distinct()
- ->orderBy("sale_code")
- ->get()
- ->toArray();
-
- $this->oTGHttp->sendToTG(json_encode($aSaleCodeList, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
-
- $this->oHttp::response(200, 'ok');
-
- }
-
-}
diff --git a/app/Services/TG/Hook/Mod/Test.php b/app/Services/TG/Hook/Mod/Test.php
deleted file mode 100644
index aa953ab8..00000000
--- a/app/Services/TG/Hook/Mod/Test.php
+++ /dev/null
@@ -1,28 +0,0 @@
-oHttp->sMethod = "get";
- $this->oHttp->sToUrl = env("APP_URL")."/cron";
- $this->oHttp->bIsJson = true;
- $this->oHttp->aData = [
- "is_test" => true,
- "time_type" => $sTimeType,
- "v" => $sValue
- ];
-
- $r = $this->oHttp->send();
-
- return $r;
-
- }
-
-}