From 6667c25116e3b3151cb2b6a7e0e1649b0d81ef3e Mon Sep 17 00:00:00 2001 From: hellcat <> Date: Sun, 13 Jul 2025 14:21:55 +0800 Subject: [PATCH] no message --- src/Controllers/TomApi/Tg/HookController.php | 2 +- src/Models/MailArticle.php | 16 + src/Services/Tg/Hook/Mod/Mail.php | 338 +++++++++++++------ src/Services/Tg/Http.php | 2 +- src/Services/TomTool/TgFormat.php | 10 + 5 files changed, 272 insertions(+), 96 deletions(-) create mode 100755 src/Models/MailArticle.php diff --git a/src/Controllers/TomApi/Tg/HookController.php b/src/Controllers/TomApi/Tg/HookController.php index 3ad5d714..13c600af 100755 --- a/src/Controllers/TomApi/Tg/HookController.php +++ b/src/Controllers/TomApi/Tg/HookController.php @@ -109,7 +109,7 @@ final class HookController $oTGHttp->sendToTG($r, $aUpdate); } - Http::response(200, 'ok'); + Http::response(200); } } else { diff --git a/src/Models/MailArticle.php b/src/Models/MailArticle.php new file mode 100755 index 00000000..69053484 --- /dev/null +++ b/src/Models/MailArticle.php @@ -0,0 +1,16 @@ +"; -// } + $oMailArticle = ModelMailArticle::all(); + + return $this->toJson($oMailArticle); + } + + public function add($aParam) + { + $sValue = $aParam["aArg"][1] ?? false; + + if ($sValue == "?") { + return "/node#add 无参数"; + } + + $oMailArticle = new ModelMailArticle(); + $oMailArticle->save(); + + $aParam["aArg"][1] = $oMailArticle->id; + return $this->find($aParam); + } + + public function set($aParam) + { + $iId = $aParam["aOption"][1] ?? false; + $sField = $aParam["aOption"][2] ?? false; + $sValue = $aParam["aArg"][1] ?? false; + + if ($sValue == "?") { + return "/mail#set__{id}__{field} {value}"; + } + + if (!$iId) { + return "需要id"; + } + + if (!$sField) { + return "需要field"; + } + + if (!$sValue) { + return "需要value"; + } + + $oMailArticle = ModelMailArticle::where("id", $iId)->first(); + + if (!$oMailArticle->exists()) { + return "没找到这个id"; + } + + $oMailArticle->$sField = $sValue; + + $oMailArticle->save(); + + $aParam["aArg"][1] = $oMailArticle->id; + return $this->find($aParam); + } + + public function like($aParam) + { + $sValue = $aParam["aArg"][1] ?? false; + $sField = $aParam["aOption"][1] ?? false; + + if ($sValue == "?") { + return "/mail#like__{likeField} {likeValue}"; + } + + if (!$sValue) { + return "需要field"; + } + + if (!$sField) { + return "需要value"; + } + + $oMailArticle = ModelMailArticle::where($sField, "like", "%".$sValue."%")->get(); + + return $this->toJson($oMailArticle); + } + + public function del($aParam) + { + $iId = $aParam["aArg"][1] ?? false; + + if (!$iId) { + return "需要id"; + } + + $oMailArticle = ModelMailArticle::find($iId); + + if (!$oMailArticle) { + return "没有这个id"; + } + + $oMailArticle->delete(); + + return $this->list(); + } + + public function find($aParam) + { + $iId = $aParam["aArg"][1] ?? false; + + if (!$iId) { + return "需要id"; + } + + $oMailArticle = ModelMailArticle::find($iId); + + return $this->toJson($oMailArticle); + } + + public function me() + { + $tmp = [ + "type:bulk=群发,none=默认原本", + "tpl:war=重要通知,tip=运维通知,warn=系统提示", + ]; + + $str = TgFormat::arrToStr($tmp); + + return $str; + } + + public function sendTest($aParam) + { + $aParam["is_test"] = true; + + return $this->send($aParam); + } + + public function send($aParam) + { + $iId = $aParam["aArg"][1] ?? false; + $iClass = $aParam["aOption"][1] ?? false; + $sType = $aParam["aOption"][2] ?? "no"; + $isTest = $aParam["is_test"] ?? false; + + if ($iId == "?") { + return "/mail#send__{class大于等于,支持zero}__{type?} {articleId} | type=空:核查提示,type=yes:确认核查"; + } + + if (!$iId) { + return "需要id"; + } + + if (!$iClass) { + return "需要class"; + } + + if ($iClass == "zero") { + $iClass == 0; + } + + $oMailArticle = ModelMailArticle::find($iId); + + if (!$oMailArticle) { + return "没有这个id"; + } + + if ($sType == "no") { + + $msg = $this->toJson($oMailArticle); + + $sTip = "仔细核查!!!别弄错了!!!确认在option输入yes。\n\n"; + + return $sTip.$msg; + + } else if ($sType == "yes") { + + return $this->_send($oMailArticle, $iClass, $isTest); + + } + + } + + public function _send($oMailArticle, $iClass, $isTest = false) + { + $sMailTitle = $oMailArticle["title"]; + $sMailContent = $oMailArticle["content"]; + $sTpl = $oMailArticle["tpl"]; + $sType = $oMailArticle["type"]; + + $content = strip_tags( + str_replace( + ['

','

'], + ['','

'], + $sMailContent + ), + ['br', 'a', 'strong'] + ); + + if ($isTest) { + $users = (new User())->where("email", "yuejiqi@tuta.io")->get(); +// echo "testmail";exit;£ + } else { + $users = (new User())->where('class', '>=', $iClass)->get(); + //echo 11;exit; + } + + $i = 0; + foreach ($users as $user) { + + if ($sType == "bulk") { + + (new EmailQueue())->add_bulk( //add_bulk 群发 + $user->email, + $sMailTitle, + $sTpl.'.tpl', // 注意切换模版 + [ + 'user' => $user, + 'text' => $content, + ] + ); + + } else { + + (new EmailQueue())->add( + $user->email, + $sMailTitle, + $sTpl.'.tpl', // 注意切换模版 + [ + 'user' => $user, + 'text' => $content, + ] + ); + + } + + $i++; + } + + + return $sType."邮件添加".$i."条"; } public function tmp() { - $subject = "福云 - 运维通知"; + $subject = "福云 - 暑假礼盒"; // $text = "
原主域名fuuu.cloud被封禁,已更换为fuuuu.cloud(多了一个u)。

无法继续翻墙的用户需到网站上重新复制订阅。

很抱歉对您的使用造成影响,补偿有套餐用户30g流量。"; - $text = "
近期管控收紧,造成节点波动和不可用。已陆续恢复正常,补偿有套餐用户10g流量。

最新域名:fuuuu.cloud"; +// $text = "
近期管控收紧,造成节点波动和不可用。已陆续恢复正常,补偿有套餐用户10g流量。

最新域名:fuuuu.cloud"; + $text = "
礼盒内容:
一批6折优惠码:zzxxss,仅限购买月套餐
10g流量,赠送给有套餐用户。
富云最新域名fuuuu.cloud"; $content = strip_tags( str_replace( @@ -54,8 +287,8 @@ final class Mail ['br', 'a', 'strong'] ); - $users = (new User())->where('class', '>=', 0)->get(); -// $users = (new User())->where("email", "yuejiqi@tuta.io")->get(); +// $users = (new User())->where('class', '>=', 0)->get(); + $users = (new User())->where("email", "yuejiqi@tuta.io")->get(); $i = 0; foreach ($users as $user) { @@ -76,89 +309,6 @@ final class Mail } - public function test_yuejiqi() - { - $subject = "福云 - 重要通知:域名地址变更!"; - - $text = "
原主域名fuuu.cloud被封禁,已更换为fuuuu.cloud(多了一个u)。

无法继续翻墙的用户需到网站上重新复制订阅。

很抱歉对您的使用造成影响,补偿有套餐用户30g流量。"; - - $content = strip_tags( - str_replace( - ['

','

'], - ['','

'], - $text - ), - ['br', 'a', 'strong'] - ); - -// $users = (new User())->where('class', '>=', 0)->get(); - $users = (new User())->where("email", "yuejiqi@tuta.io")->get(); - - $i = 0; - foreach ($users as $user) { - (new EmailQueue())->add_bulk( - $user->email, - $subject, - 'war.tpl', - [ - 'user' => $user, - 'text' => $content, - ] - ); - $i++; - } - - - return "邮件队列添加".$i."条"; - - } - - - - - public function tmp2() - { - $subject = "福云 - 重要通知:域名地址变更!"; - - - - $text = "
主域名fuuu.cloud被封禁,已更换为fuuuu.cloud(多一个u)。"; - - $content = strip_tags( - str_replace( - ['

','

'], - ['','

'], - $text - ), - ['br', 'a', 'strong'] - ); - -// $users = (new User())->where('class', '>=', 0) -// ->get(); - - $users = (new User())->where("email", "yuejiqi@tuta.io")->get(); - - foreach ($users as $user) { - (new EmailQueue())->add( - $user->email, - $subject, - 'war.tpl', - [ - 'user' => $user, - 'text' => $content, - ] - ); - } - - - return "应该发送成功了"; - - - - - } - - } diff --git a/src/Services/Tg/Http.php b/src/Services/Tg/Http.php index a678728a..f67de9b5 100644 --- a/src/Services/Tg/Http.php +++ b/src/Services/Tg/Http.php @@ -19,7 +19,7 @@ class Http { public function sendToTG($sMsg = "没有msg?", $aUpdate = []) { - if (isset($aUpdate["cmd"]) && $aUpdate["cmd"] == "shell") { + if (isset($aUpdate["shell"]) && $aUpdate["shell"] == "cmd") { echo $sMsg; diff --git a/src/Services/TomTool/TgFormat.php b/src/Services/TomTool/TgFormat.php index f103906a..0ae21d79 100644 --- a/src/Services/TomTool/TgFormat.php +++ b/src/Services/TomTool/TgFormat.php @@ -22,4 +22,14 @@ class TgFormat { return $sValue; } + public static function arrToStr($arr) + { + $str = ""; + foreach ($arr as $v) { + $str .= "\n\n".$v; + } + + return $str; + } + }