Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f6b7cb68d | ||
|
|
20aeeefb3c | ||
|
|
08ffd4de6c | ||
|
|
72a2e694f8 | ||
|
|
2238e23c8d | ||
|
|
a13e39dc0a | ||
|
|
0f506e5afc | ||
|
|
74f19e9d03 | ||
|
|
44c45d11f2 | ||
|
|
50e91680bb | ||
|
|
3554c95edc | ||
|
|
b2598f2406 | ||
|
|
db8c460b42 | ||
|
|
6818b10f4a | ||
|
|
7747a4b634 | ||
|
|
727b06e143 | ||
|
|
2226ec7e63 | ||
|
|
c0c3864a8e | ||
|
|
8c2ab9376c |
@@ -4,6 +4,7 @@ import (
|
|||||||
"github.com/go-resty/resty/v2"
|
"github.com/go-resty/resty/v2"
|
||||||
"go-wechat/utils"
|
"go-wechat/utils"
|
||||||
"log"
|
"log"
|
||||||
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
// KfcCrazyThursdayCmd
|
// KfcCrazyThursdayCmd
|
||||||
@@ -33,8 +34,9 @@ func kfcApi1() string {
|
|||||||
res := resty.New()
|
res := resty.New()
|
||||||
resp, err := res.R().
|
resp, err := res.R().
|
||||||
Post("https://api.jixs.cc/api/wenan-fkxqs/index.php")
|
Post("https://api.jixs.cc/api/wenan-fkxqs/index.php")
|
||||||
if err != nil {
|
if err != nil || resp.StatusCode() != http.StatusOK {
|
||||||
log.Panicf("KFC接口1文案获取失败: %s", err.Error())
|
log.Printf("KFC接口1文案获取失败: %v", err)
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
log.Printf("KFC接口1文案获取结果: %s", resp.String())
|
log.Printf("KFC接口1文案获取结果: %s", resp.String())
|
||||||
return resp.String()
|
return resp.String()
|
||||||
@@ -58,8 +60,9 @@ func kfcApi2() string {
|
|||||||
resp, err := res.R().
|
resp, err := res.R().
|
||||||
SetResult(&resData).
|
SetResult(&resData).
|
||||||
Post("https://api.jixs.cc/api/wenan-fkxqs/index.php")
|
Post("https://api.jixs.cc/api/wenan-fkxqs/index.php")
|
||||||
if err != nil {
|
if err != nil || resp.StatusCode() != http.StatusOK {
|
||||||
log.Panicf("KFC接口2文案获取失败: %s", err.Error())
|
log.Printf("KFC接口2文案获取失败: %v", err)
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
log.Printf("KFC接口2文案获取结果: %s", resp.String())
|
log.Printf("KFC接口2文案获取结果: %s", resp.String())
|
||||||
if resData.Data.Msg != "" {
|
if resData.Data.Msg != "" {
|
||||||
@@ -84,8 +87,9 @@ func kfcApi3() string {
|
|||||||
resp, err := res.R().
|
resp, err := res.R().
|
||||||
SetResult(&resData).
|
SetResult(&resData).
|
||||||
Post("https://api.pearktrue.cn/api/kfc")
|
Post("https://api.pearktrue.cn/api/kfc")
|
||||||
if err != nil {
|
if err != nil || resp.StatusCode() != http.StatusOK {
|
||||||
log.Panicf("KFC接口3文案获取失败: %s", err.Error())
|
log.Printf("KFC接口3文案获取失败: %v", err)
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
log.Printf("KFC接口3文案获取结果: %s", resp.String())
|
log.Printf("KFC接口3文案获取结果: %s", resp.String())
|
||||||
if resData.Text != "" {
|
if resData.Text != "" {
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ func GetAllEnableNews() (records []entity.Friend, err error) {
|
|||||||
// @return records
|
// @return records
|
||||||
// @return err
|
// @return err
|
||||||
func GetAllEnableClearGroup() (records []entity.Friend, err error) {
|
func GetAllEnableClearGroup() (records []entity.Friend, err error) {
|
||||||
err = client.MySQL.Where("clear_members != 0").Where("is_ok IS TRUE").Find(&records).Error
|
err = client.MySQL.Where("clear_member > 0").Where("is_ok IS TRUE").Find(&records).Error
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,6 +73,8 @@ func GetTextMessagesById(id string) (records []vo.TextMessageItem, err error) {
|
|||||||
Where("tm.`from_user` = ?", id).
|
Where("tm.`from_user` = ?", id).
|
||||||
Where(`(tm.type = 1 OR ( tm.type = 49 AND EXTRACTVALUE ( tm.content, "/msg/appmsg/type" ) IN (?) ))`, appMsgList).
|
Where(`(tm.type = 1 OR ( tm.type = 49 AND EXTRACTVALUE ( tm.content, "/msg/appmsg/type" ) IN (?) ))`, appMsgList).
|
||||||
Where("DATE ( tm.create_at ) = DATE ( CURDATE() - INTERVAL 1 DAY )").
|
Where("DATE ( tm.create_at ) = DATE ( CURDATE() - INTERVAL 1 DAY )").
|
||||||
|
Where("tm.content NOT LIKE '#昨日水群排行榜%'").
|
||||||
|
Where("tm.content NOT LIKE '#昨日消息总结%'").
|
||||||
Order("tm.create_at ASC")
|
Order("tm.create_at ASC")
|
||||||
|
|
||||||
err = tx.Find(&records).Error
|
err = tx.Find(&records).Error
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ import (
|
|||||||
// ClearGroupUser
|
// ClearGroupUser
|
||||||
// @description: 清理群成员
|
// @description: 清理群成员
|
||||||
func ClearGroupUser() {
|
func ClearGroupUser() {
|
||||||
groups, err := service.GetAllEnableNews()
|
groups, err := service.GetAllEnableClearGroup()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("获取启用了聊天排行榜的群组失败, 错误信息: %v", err)
|
log.Printf("获取启用了聊天排行榜的群组失败, 错误信息: %v", err)
|
||||||
return
|
return
|
||||||
@@ -42,9 +42,9 @@ func ClearGroupUser() {
|
|||||||
// 发送通知到群里
|
// 发送通知到群里
|
||||||
ms := make([]string, 0)
|
ms := make([]string, 0)
|
||||||
for k, v := range memberMap {
|
for k, v := range memberMap {
|
||||||
ms = append(ms, fmt.Sprintf("%s: %s", k, v))
|
ms = append(ms, fmt.Sprintf("昵称:%s\n最后活跃时间:%s", k, v))
|
||||||
}
|
}
|
||||||
msg := fmt.Sprintf("#清理群成员#\n\n很遗憾地通知各位,就在刚刚,有%d名群友引活跃度不够暂时离开了我们,希望还健在的群友引以为戒、保持活跃!\n\n活跃信息: \n%s",
|
msg := fmt.Sprintf("#清理群成员\n\n很遗憾地通知各位,就在刚刚,有%d名群友因活跃度不够暂时离开了我们,希望还健在的群友引以为戒、保持活跃!\n\n详细信息: \n%s",
|
||||||
memberCount, strings.Join(ms, "\n"))
|
memberCount, strings.Join(ms, "\n"))
|
||||||
utils.SendMessage(group.Wxid, "", msg, 0)
|
utils.SendMessage(group.Wxid, "", msg, 0)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,6 +103,7 @@ func Sync() {
|
|||||||
"custom_account": friend.CustomAccount,
|
"custom_account": friend.CustomAccount,
|
||||||
"pinyin": friend.Pinyin,
|
"pinyin": friend.Pinyin,
|
||||||
"pinyin_all": friend.PinyinAll,
|
"pinyin_all": friend.PinyinAll,
|
||||||
|
"is_ok": true,
|
||||||
}
|
}
|
||||||
err = tx.Model(&entity.Friend{}).Where("wxid = ?", friend.Wxid).Updates(pm).Error
|
err = tx.Model(&entity.Friend{}).Where("wxid = ?", friend.Wxid).Updates(pm).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -122,18 +123,30 @@ func Sync() {
|
|||||||
// 组装成一句话
|
// 组装成一句话
|
||||||
msg := []string{"#新好友通知\n"}
|
msg := []string{"#新好友通知\n"}
|
||||||
for wxId, nickname := range newItmes {
|
for wxId, nickname := range newItmes {
|
||||||
msg = append(msg, "微信Id: "+wxId+" -> 昵称: "+nickname)
|
msg = append(msg, "微信Id: "+wxId+"\n昵称: "+nickname)
|
||||||
}
|
}
|
||||||
for _, user := range config.Conf.System.NewFriendNotify.ToUser {
|
for _, user := range config.Conf.System.NewFriendNotify.ToUser {
|
||||||
if user != "" {
|
if user != "" {
|
||||||
// 发送一条新消息
|
// 发送一条新消息
|
||||||
utils.SendMessage(user, "", strings.Join(msg, "\n"), 0)
|
utils.SendMessage(user, "", strings.Join(msg, "\n-------\n"), 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 清理不在列表中的好友
|
// 清理不在列表中的好友
|
||||||
err = tx.Model(&entity.Friend{}).Where("wxid NOT IN (?)", nowIds).Update("is_ok", false).Error
|
clearPm := map[string]any{
|
||||||
|
"is_ok": false,
|
||||||
|
"enable_chat_rank": false,
|
||||||
|
"enable_welcome": false,
|
||||||
|
"enable_summary": false,
|
||||||
|
"enable_news": false,
|
||||||
|
"clear_member": false,
|
||||||
|
"enable_ai": false,
|
||||||
|
}
|
||||||
|
err = tx.Model(&entity.Friend{}).Where("wxid NOT IN (?)", nowIds).Updates(clearPm).Error
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("清理好友失败: %s", err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
log.Println("同步好友列表完成")
|
log.Println("同步好友列表完成")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ func DailyNews() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
newsStr := fmt.Sprintf("#每日早报#\n\n又是新的一天了,让我们康康一觉醒来世界又发生了哪些变化~\n\n%s", strings.Join(news, "\n"))
|
newsStr := fmt.Sprintf("#每日早报\n\n又是新的一天了,让我们康康一觉醒来世界又发生了哪些变化~\n\n%s", strings.Join(news, "\n"))
|
||||||
|
|
||||||
// 循环发送新闻
|
// 循环发送新闻
|
||||||
for _, group := range groups {
|
for _, group := range groups {
|
||||||
|
|||||||
@@ -42,11 +42,12 @@ func AiSummary() {
|
|||||||
注意,他们可能是多个话题,请仔细甄别。
|
注意,他们可能是多个话题,请仔细甄别。
|
||||||
每一行代表一个人的发言,每一行的的格式为: {"{nickname}": "{content}"}--end--
|
每一行代表一个人的发言,每一行的的格式为: {"{nickname}": "{content}"}--end--
|
||||||
|
|
||||||
|
群名称: %s
|
||||||
聊天记录如下:
|
聊天记录如下:
|
||||||
%s
|
%s
|
||||||
`
|
`
|
||||||
|
|
||||||
msg := fmt.Sprintf(msgTmp, strings.Join(content, "\n"))
|
msg := fmt.Sprintf(msgTmp, group.Nickname, strings.Join(content, "\n"))
|
||||||
|
|
||||||
// AI总结
|
// AI总结
|
||||||
messages := []openai.ChatCompletionMessage{
|
messages := []openai.ChatCompletionMessage{
|
||||||
|
|||||||
Reference in New Issue
Block a user