|
1 | 1 | package coolq
|
2 | 2 |
|
3 | 3 | import (
|
| 4 | + "bytes" |
4 | 5 | "crypto/md5"
|
5 | 6 | "encoding/hex"
|
6 | 7 | "encoding/json"
|
@@ -789,16 +790,16 @@ func (bot *CQBot) CQSetGroupLeave(groupID int64) global.MSG {
|
789 | 790 | //
|
790 | 791 | // https://docs.go-cqhttp.org/api/#%E8%8E%B7%E5%8F%96%E7%BE%A4-%E5%85%A8%E4%BD%93%E6%88%90%E5%91%98-%E5%89%A9%E4%BD%99%E6%AC%A1%E6%95%B0
|
791 | 792 | // @route(get_group_at_all_remain)
|
792 |
| -//func (bot *CQBot) CQGetAtAllRemain(groupID int64) global.MSG { |
793 |
| -// if g := bot.Client.FindGroup(groupID); g != nil { |
794 |
| -// i, err := bot.Client.GetAtAllRemain(groupID) |
795 |
| -// if err != nil { |
796 |
| -// return Failed(100, "GROUP_REMAIN_API_ERROR", err.Error()) |
797 |
| -// } |
798 |
| -// return OK(i) |
799 |
| -// } |
800 |
| -// return Failed(100, "GROUP_NOT_FOUND", "群聊不存在") |
801 |
| -//} |
| 793 | +func (bot *CQBot) CQGetAtAllRemain(groupID int64) global.MSG { |
| 794 | + if g := bot.Client.GetCachedGroupInfo(uint32(groupID)); g != nil { |
| 795 | + i, err := bot.Client.GetAtAllRemain(bot.Client.Uin, uint32(groupID)) |
| 796 | + if err != nil { |
| 797 | + return Failed(100, "GROUP_REMAIN_API_ERROR", err.Error()) |
| 798 | + } |
| 799 | + return OK(i) |
| 800 | + } |
| 801 | + return Failed(100, "GROUP_NOT_FOUND", "群聊不存在") |
| 802 | +} |
802 | 803 |
|
803 | 804 | // CQProcessFriendRequest 处理加好友请求
|
804 | 805 | //
|
@@ -1379,40 +1380,47 @@ func (bot *CQBot) CQCanSendRecord() global.MSG {
|
1379 | 1380 | // https://docs.go-cqhttp.org/api/#%E5%9B%BE%E7%89%87-ocr
|
1380 | 1381 | // @route(ocr_image,".ocr_image")
|
1381 | 1382 | // @rename(image_id->image)
|
1382 |
| -//func (bot *CQBot) CQOcrImage(imageID string) global.MSG { |
1383 |
| -// // TODO: fix this |
1384 |
| -// var elem msg.Element |
1385 |
| -// elem.Type = "image" |
1386 |
| -// elem.Data = []msg.Pair{{K: "file", V: imageID}} |
1387 |
| -// img, err := bot.makeImageOrVideoElem(elem, false, message.SourceGroup) |
1388 |
| -// if err != nil { |
1389 |
| -// log.Warnf("load image error: %v", err) |
1390 |
| -// return Failed(100, "LOAD_FILE_ERROR", err.Error()) |
1391 |
| -// } |
1392 |
| -// rsp, err := bot.Client.ImageOcr(img) |
1393 |
| -// if err != nil { |
1394 |
| -// log.Warnf("ocr image error: %v", err) |
1395 |
| -// return Failed(100, "OCR_API_ERROR", err.Error()) |
1396 |
| -// } |
1397 |
| -// return OK(rsp) |
1398 |
| -//} |
| 1383 | +func (bot *CQBot) CQOcrImage(imageID string) global.MSG { |
| 1384 | + // TODO: fix this |
| 1385 | + var elem msg.Element |
| 1386 | + elem.Type = "image" |
| 1387 | + elem.Data = []msg.Pair{{K: "file", V: imageID}} |
| 1388 | + img, err := bot.makeImageOrVideoElem(elem, false, message.SourceGroup) |
| 1389 | + if err != nil { |
| 1390 | + log.Warnf("load image error: %v", err) |
| 1391 | + return Failed(100, "LOAD_FILE_ERROR", err.Error()) |
| 1392 | + } |
| 1393 | + image, ok := img.(*msg.LocalImage) |
| 1394 | + if !ok { |
| 1395 | + return Failed(100, "IMAGE_ERROR", "图片数据错误") |
| 1396 | + } |
| 1397 | + rsp, err := bot.Client.ImageOcr(image.URL) |
| 1398 | + if err != nil { |
| 1399 | + log.Warnf("ocr image error: %v", err) |
| 1400 | + return Failed(100, "OCR_API_ERROR", err.Error()) |
| 1401 | + } |
| 1402 | + return OK(rsp) |
| 1403 | +} |
1399 | 1404 |
|
1400 | 1405 | // CQSetGroupPortrait 扩展API-设置群头像
|
1401 | 1406 | //
|
1402 | 1407 | // https://docs.go-cqhttp.org/api/#%E8%AE%BE%E7%BD%AE%E7%BE%A4%E5%A4%B4%E5%83%8F
|
1403 | 1408 | // @route(set_group_portrait)
|
1404 |
| -//func (bot *CQBot) CQSetGroupPortrait(groupID int64, file, cache string) global.MSG { |
1405 |
| -// if g := bot.Client.FindGroup(groupID); g != nil { |
1406 |
| -// img, err := global.FindFile(file, cache, global.ImagePath) |
1407 |
| -// if err != nil { |
1408 |
| -// log.Warnf("set group portrait error: %v", err) |
1409 |
| -// return Failed(100, "LOAD_FILE_ERROR", err.Error()) |
1410 |
| -// } |
1411 |
| -// g.UpdateGroupHeadPortrait(img) |
1412 |
| -// return OK(nil) |
1413 |
| -// } |
1414 |
| -// return Failed(100, "GROUP_NOT_FOUND", "群聊不存在") |
1415 |
| -//} |
| 1409 | +func (bot *CQBot) CQSetGroupPortrait(groupID int64, file, cache string) global.MSG { |
| 1410 | + if g := bot.Client.GetCachedGroupInfo(uint32(groupID)); g != nil { |
| 1411 | + img, err := global.FindFile(file, cache, global.ImagePath) |
| 1412 | + if err != nil { |
| 1413 | + log.Warnf("set group portrait error: %v", err) |
| 1414 | + return Failed(100, "LOAD_FILE_ERROR", err.Error()) |
| 1415 | + } |
| 1416 | + if bot.Client.SetGroupAvatar(g.GroupUin, bytes.NewReader(img)) == nil { |
| 1417 | + return OK(nil) |
| 1418 | + } |
| 1419 | + Failed(100, "PERMISSION_DENIED", "机器人权限不足") |
| 1420 | + |
| 1421 | + } |
| 1422 | + return Failed(100, "GROUP_NOT_FOUND", "群聊不存在") |
| 1423 | +} |
1416 | 1424 |
|
1417 | 1425 | // CQSetGroupAnonymousBan 群组匿名用户禁言
|
1418 | 1426 | //
|
@@ -1585,10 +1593,13 @@ func (bot *CQBot) CQGetVersionInfo() global.MSG {
|
1585 | 1593 | //
|
1586 | 1594 | // https://club.vip.qq.com/onlinestatus/set
|
1587 | 1595 | // @route(send_group_sign)
|
1588 |
| -//func (bot *CQBot) CQSendGroupSign(groupID int64) global.MSG { |
1589 |
| -// bot.Client.SendGroupSign(groupID) |
1590 |
| -// return OK(nil) |
1591 |
| -//} |
| 1596 | +func (bot *CQBot) CQSendGroupSign(groupID int64) global.MSG { |
| 1597 | + _, err := bot.Client.SendGroupSign(uint32(groupID)) |
| 1598 | + if err == nil { |
| 1599 | + return OK(nil) |
| 1600 | + } |
| 1601 | + return Failed(100, "SEND_GROUP_SIGN_ERROR", err.Error()) |
| 1602 | +} |
1592 | 1603 |
|
1593 | 1604 | // CQSetModelShow 设置在线机型
|
1594 | 1605 | //
|
|
0 commit comments