Initial commit

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-15 13:57:10 +08:00
co-authored by Claude Opus 5
commit 8679200f41
1897 changed files with 257900 additions and 0 deletions
+76
View File
@@ -0,0 +1,76 @@
package tg
import (
"fmt"
"91porn-server/common/httputil"
)
const (
botApi = "https://api.telegram.org"
TianTian_Bot = "1653674118:AAFXJVpLD2Vc0jHL59ZrqKAUbGRRr1vhUt8" //yinse_zabbix
ChatIdServerTeam = -500730570 //服务器小组
ChatIdRechargeTeam = -1001467392117 //业务监控告警群
ChatIdOPSTeam = -392146367 //运维群
ChatIdBILLTeam = -354751425 //支付报警群
getMe botMethod = "getMe"
sendMessage botMethod = "sendMessage"
)
type botMethod = string
type Bot struct {
token string
msgPayload string
sendRetry int
}
type Msg struct {
ChatId int64
Text string
}
type Panic struct {
ChatId int64
Err interface{}
}
func New(token string, msgPayload string) *Bot {
return &Bot{token: token, msgPayload: msgPayload, sendRetry: 3}
}
func (c *Bot) makeUrl(m botMethod) string {
return fmt.Sprintf("%s/bot%s/%s", botApi, c.token, m)
}
func (c *Bot) Send(t Msg, opts ...*SendOpt) error {
req := map[string]interface{}{
"chat_id": t.ChatId,
"text": c.msgPayload + t.Text,
}
opt := mergeSendOpt(opts)
if opt.ParseMode != nil {
if *opt.ParseMode == MARKDOWN {
req["text"] = "```" + c.msgPayload + "```" + t.Text
}
req["parse_mode"] = *opt.ParseMode
}
retry := c.sendRetry
url := c.makeUrl(sendMessage)
var err error
for retry != 0 {
retry--
resp := struct {
Description string `json:"description"`
OK bool `json:"ok"`
ErrorCode int `json:"error_code"`
}{}
if _, err = httputil.DefaultClientPostJsonWithResp(&resp, url, nil, req); err == nil {
return nil
}
}
return err
}