Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
G
go-cqhttp
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nanahira
go-cqhttp
Commits
24dad3d6
Commit
24dad3d6
authored
Sep 05, 2020
by
scjtqs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix
parent
5024cc08
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
60 additions
and
37 deletions
+60
-37
coolq/api.go
coolq/api.go
+6
-6
coolq/bot.go
coolq/bot.go
+0
-1
coolq/cqcode.go
coolq/cqcode.go
+54
-30
No files found.
coolq/api.go
View file @
24dad3d6
...
@@ -119,7 +119,7 @@ func (bot *CQBot) CQSendGroupMessage(groupId int64, i interface{}, autoEscape bo
...
@@ -119,7 +119,7 @@ func (bot *CQBot) CQSendGroupMessage(groupId int64, i interface{}, autoEscape bo
}
}
if
m
,
ok
:=
i
.
(
gjson
.
Result
);
ok
{
if
m
,
ok
:=
i
.
(
gjson
.
Result
);
ok
{
if
m
.
Type
==
gjson
.
JSON
{
if
m
.
Type
==
gjson
.
JSON
{
elem
:=
bot
.
ConvertObjectMessage
(
m
,
true
,
groupId
)
elem
:=
bot
.
ConvertObjectMessage
(
m
,
true
)
fixAt
(
elem
)
fixAt
(
elem
)
mid
:=
bot
.
SendGroupMessage
(
groupId
,
&
message
.
SendingMessage
{
Elements
:
elem
})
mid
:=
bot
.
SendGroupMessage
(
groupId
,
&
message
.
SendingMessage
{
Elements
:
elem
})
if
mid
==
-
1
{
if
mid
==
-
1
{
...
@@ -144,7 +144,7 @@ func (bot *CQBot) CQSendGroupMessage(groupId int64, i interface{}, autoEscape bo
...
@@ -144,7 +144,7 @@ func (bot *CQBot) CQSendGroupMessage(groupId int64, i interface{}, autoEscape bo
if
autoEscape
{
if
autoEscape
{
elem
=
append
(
elem
,
message
.
NewText
(
str
))
elem
=
append
(
elem
,
message
.
NewText
(
str
))
}
else
{
}
else
{
elem
=
bot
.
ConvertStringMessage
(
str
,
true
,
groupId
)
elem
=
bot
.
ConvertStringMessage
(
str
,
true
)
}
}
fixAt
(
elem
)
fixAt
(
elem
)
mid
:=
bot
.
SendGroupMessage
(
groupId
,
&
message
.
SendingMessage
{
Elements
:
elem
})
mid
:=
bot
.
SendGroupMessage
(
groupId
,
&
message
.
SendingMessage
{
Elements
:
elem
})
...
@@ -187,7 +187,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
...
@@ -187,7 +187,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
}
}
return
m
[
"time"
]
.
(
int32
)
return
m
[
"time"
]
.
(
int32
)
}(),
}(),
Message
:
bot
.
ConvertStringMessage
(
m
[
"message"
]
.
(
string
),
true
,
groupId
),
Message
:
bot
.
ConvertStringMessage
(
m
[
"message"
]
.
(
string
),
true
),
})
})
return
return
}
}
...
@@ -196,7 +196,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
...
@@ -196,7 +196,7 @@ func (bot *CQBot) CQSendGroupForwardMessage(groupId int64, m gjson.Result) MSG {
}
}
uin
,
_
:=
strconv
.
ParseInt
(
e
.
Get
(
"data.uin"
)
.
Str
,
10
,
64
)
uin
,
_
:=
strconv
.
ParseInt
(
e
.
Get
(
"data.uin"
)
.
Str
,
10
,
64
)
name
:=
e
.
Get
(
"data.name"
)
.
Str
name
:=
e
.
Get
(
"data.name"
)
.
Str
content
:=
bot
.
ConvertObjectMessage
(
e
.
Get
(
"data.content"
),
true
,
groupId
)
content
:=
bot
.
ConvertObjectMessage
(
e
.
Get
(
"data.content"
),
true
)
if
uin
!=
0
&&
name
!=
""
&&
len
(
content
)
>
0
{
if
uin
!=
0
&&
name
!=
""
&&
len
(
content
)
>
0
{
var
newElem
[]
message
.
IMessageElement
var
newElem
[]
message
.
IMessageElement
for
_
,
elem
:=
range
content
{
for
_
,
elem
:=
range
content
{
...
@@ -242,7 +242,7 @@ func (bot *CQBot) CQSendPrivateMessage(userId int64, i interface{}, autoEscape b
...
@@ -242,7 +242,7 @@ func (bot *CQBot) CQSendPrivateMessage(userId int64, i interface{}, autoEscape b
var
str
string
var
str
string
if
m
,
ok
:=
i
.
(
gjson
.
Result
);
ok
{
if
m
,
ok
:=
i
.
(
gjson
.
Result
);
ok
{
if
m
.
Type
==
gjson
.
JSON
{
if
m
.
Type
==
gjson
.
JSON
{
elem
:=
bot
.
ConvertObjectMessage
(
m
,
true
,
userId
)
elem
:=
bot
.
ConvertObjectMessage
(
m
,
true
)
mid
:=
bot
.
SendPrivateMessage
(
userId
,
&
message
.
SendingMessage
{
Elements
:
elem
})
mid
:=
bot
.
SendPrivateMessage
(
userId
,
&
message
.
SendingMessage
{
Elements
:
elem
})
if
mid
==
-
1
{
if
mid
==
-
1
{
return
Failed
(
100
)
return
Failed
(
100
)
...
@@ -265,7 +265,7 @@ func (bot *CQBot) CQSendPrivateMessage(userId int64, i interface{}, autoEscape b
...
@@ -265,7 +265,7 @@ func (bot *CQBot) CQSendPrivateMessage(userId int64, i interface{}, autoEscape b
if
autoEscape
{
if
autoEscape
{
elem
=
append
(
elem
,
message
.
NewText
(
str
))
elem
=
append
(
elem
,
message
.
NewText
(
str
))
}
else
{
}
else
{
elem
=
bot
.
ConvertStringMessage
(
str
,
false
,
userId
)
elem
=
bot
.
ConvertStringMessage
(
str
,
false
)
}
}
mid
:=
bot
.
SendPrivateMessage
(
userId
,
&
message
.
SendingMessage
{
Elements
:
elem
})
mid
:=
bot
.
SendPrivateMessage
(
userId
,
&
message
.
SendingMessage
{
Elements
:
elem
})
if
mid
==
-
1
{
if
mid
==
-
1
{
...
...
coolq/bot.go
View file @
24dad3d6
...
@@ -259,4 +259,3 @@ func (m MSG) ToJson() string {
...
@@ -259,4 +259,3 @@ func (m MSG) ToJson() string {
b
,
_
:=
json
.
Marshal
(
m
)
b
,
_
:=
json
.
Marshal
(
m
)
return
string
(
b
)
return
string
(
b
)
}
}
coolq/cqcode.go
View file @
24dad3d6
...
@@ -6,6 +6,11 @@ import (
...
@@ -6,6 +6,11 @@ import (
"encoding/hex"
"encoding/hex"
"errors"
"errors"
"fmt"
"fmt"
"github.com/Mrs4s/MiraiGo/binary"
"github.com/Mrs4s/MiraiGo/message"
"github.com/Mrs4s/go-cqhttp/global"
log
"github.com/sirupsen/logrus"
"github.com/tidwall/gjson"
"io/ioutil"
"io/ioutil"
"net/url"
"net/url"
"path"
"path"
...
@@ -13,12 +18,6 @@ import (
...
@@ -13,12 +18,6 @@ import (
"runtime"
"runtime"
"strconv"
"strconv"
"strings"
"strings"
"github.com/Mrs4s/MiraiGo/binary"
"github.com/Mrs4s/MiraiGo/message"
"github.com/Mrs4s/go-cqhttp/global"
log
"github.com/sirupsen/logrus"
"github.com/tidwall/gjson"
)
)
var
matchReg
=
regexp
.
MustCompile
(
`\[CQ:\w+?.*?]`
)
var
matchReg
=
regexp
.
MustCompile
(
`\[CQ:\w+?.*?]`
)
...
@@ -173,7 +172,7 @@ func ToStringMessage(e []message.IMessageElement, code int64, raw ...bool) (r st
...
@@ -173,7 +172,7 @@ func ToStringMessage(e []message.IMessageElement, code int64, raw ...bool) (r st
return
return
}
}
func
(
bot
*
CQBot
)
ConvertStringMessage
(
m
string
,
group
bool
,
uid
int64
)
(
r
[]
message
.
IMessageElement
)
{
func
(
bot
*
CQBot
)
ConvertStringMessage
(
m
string
,
group
bool
)
(
r
[]
message
.
IMessageElement
)
{
i
:=
matchReg
.
FindAllStringSubmatchIndex
(
m
,
-
1
)
i
:=
matchReg
.
FindAllStringSubmatchIndex
(
m
,
-
1
)
si
:=
0
si
:=
0
for
_
,
idx
:=
range
i
{
for
_
,
idx
:=
range
i
{
...
@@ -205,14 +204,14 @@ func (bot *CQBot) ConvertStringMessage(m string, group bool, uid int64) (r []mes
...
@@ -205,14 +204,14 @@ func (bot *CQBot) ConvertStringMessage(m string, group bool, uid int64) (r []mes
ReplySeq
:
org
[
"message-id"
]
.
(
int32
),
ReplySeq
:
org
[
"message-id"
]
.
(
int32
),
Sender
:
org
[
"sender"
]
.
(
message
.
Sender
)
.
Uin
,
Sender
:
org
[
"sender"
]
.
(
message
.
Sender
)
.
Uin
,
Time
:
org
[
"time"
]
.
(
int32
),
Time
:
org
[
"time"
]
.
(
int32
),
Elements
:
bot
.
ConvertStringMessage
(
org
[
"message"
]
.
(
string
),
group
,
uid
),
Elements
:
bot
.
ConvertStringMessage
(
org
[
"message"
]
.
(
string
),
group
),
},
},
},
r
...
)
},
r
...
)
continue
continue
}
}
}
}
}
}
elem
,
err
:=
bot
.
ToElement
(
t
,
d
,
group
,
uid
)
elem
,
err
:=
bot
.
ToElement
(
t
,
d
,
group
)
if
err
!=
nil
{
if
err
!=
nil
{
if
!
IgnoreInvalidCQCode
{
if
!
IgnoreInvalidCQCode
{
log
.
Warnf
(
"转换CQ码 %v 到MiraiGo Element时出现错误: %v 将原样发送."
,
code
,
err
)
log
.
Warnf
(
"转换CQ码 %v 到MiraiGo Element时出现错误: %v 将原样发送."
,
code
,
err
)
...
@@ -230,7 +229,7 @@ func (bot *CQBot) ConvertStringMessage(m string, group bool, uid int64) (r []mes
...
@@ -230,7 +229,7 @@ func (bot *CQBot) ConvertStringMessage(m string, group bool, uid int64) (r []mes
return
return
}
}
func
(
bot
*
CQBot
)
ConvertObjectMessage
(
m
gjson
.
Result
,
group
bool
,
uid
int64
)
(
r
[]
message
.
IMessageElement
)
{
func
(
bot
*
CQBot
)
ConvertObjectMessage
(
m
gjson
.
Result
,
group
bool
)
(
r
[]
message
.
IMessageElement
)
{
convertElem
:=
func
(
e
gjson
.
Result
)
{
convertElem
:=
func
(
e
gjson
.
Result
)
{
t
:=
e
.
Get
(
"type"
)
.
Str
t
:=
e
.
Get
(
"type"
)
.
Str
if
t
==
"reply"
&&
group
{
if
t
==
"reply"
&&
group
{
...
@@ -249,7 +248,7 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool, uid int64) (r
...
@@ -249,7 +248,7 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool, uid int64) (r
ReplySeq
:
org
[
"message-id"
]
.
(
int32
),
ReplySeq
:
org
[
"message-id"
]
.
(
int32
),
Sender
:
org
[
"sender"
]
.
(
message
.
Sender
)
.
Uin
,
Sender
:
org
[
"sender"
]
.
(
message
.
Sender
)
.
Uin
,
Time
:
org
[
"time"
]
.
(
int32
),
Time
:
org
[
"time"
]
.
(
int32
),
Elements
:
bot
.
ConvertStringMessage
(
org
[
"message"
]
.
(
string
),
group
,
uid
),
Elements
:
bot
.
ConvertStringMessage
(
org
[
"message"
]
.
(
string
),
group
),
},
},
},
r
...
)
},
r
...
)
return
return
...
@@ -261,7 +260,7 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool, uid int64) (r
...
@@ -261,7 +260,7 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool, uid int64) (r
d
[
key
.
Str
]
=
value
.
Str
d
[
key
.
Str
]
=
value
.
Str
return
true
return
true
})
})
elem
,
err
:=
bot
.
ToElement
(
t
,
d
,
group
,
uid
)
elem
,
err
:=
bot
.
ToElement
(
t
,
d
,
group
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Warnf
(
"转换CQ码到MiraiGo Element时出现错误: %v 将忽略本段CQ码."
,
err
)
log
.
Warnf
(
"转换CQ码到MiraiGo Element时出现错误: %v 将忽略本段CQ码."
,
err
)
return
return
...
@@ -269,7 +268,7 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool, uid int64) (r
...
@@ -269,7 +268,7 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool, uid int64) (r
r
=
append
(
r
,
elem
)
r
=
append
(
r
,
elem
)
}
}
if
m
.
Type
==
gjson
.
String
{
if
m
.
Type
==
gjson
.
String
{
return
bot
.
ConvertStringMessage
(
m
.
Str
,
group
,
uid
)
return
bot
.
ConvertStringMessage
(
m
.
Str
,
group
)
}
}
if
m
.
IsArray
()
{
if
m
.
IsArray
()
{
for
_
,
e
:=
range
m
.
Array
()
{
for
_
,
e
:=
range
m
.
Array
()
{
...
@@ -282,12 +281,12 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool, uid int64) (r
...
@@ -282,12 +281,12 @@ func (bot *CQBot) ConvertObjectMessage(m gjson.Result, group bool, uid int64) (r
return
return
}
}
func
(
bot
*
CQBot
)
ToElement
(
t
string
,
d
map
[
string
]
string
,
group
bool
,
uid
int64
)
(
message
.
IMessageElement
,
error
)
{
func
(
bot
*
CQBot
)
ToElement
(
t
string
,
d
map
[
string
]
string
,
group
bool
)
(
message
.
IMessageElement
,
error
)
{
switch
t
{
switch
t
{
case
"text"
:
case
"text"
:
return
message
.
NewText
(
d
[
"text"
]),
nil
return
message
.
NewText
(
d
[
"text"
]),
nil
case
"image"
:
case
"image"
:
return
bot
.
makeImageElem
(
t
,
d
,
group
,
uid
)
return
bot
.
makeImageElem
(
t
,
d
,
group
)
case
"record"
:
case
"record"
:
if
!
group
{
if
!
group
{
return
nil
,
errors
.
New
(
"private voice unsupported now"
)
return
nil
,
errors
.
New
(
"private voice unsupported now"
)
...
@@ -428,8 +427,27 @@ func (bot *CQBot) ToElement(t string, d map[string]string, group bool, uid int64
...
@@ -428,8 +427,27 @@ func (bot *CQBot) ToElement(t string, d map[string]string, group bool, uid int64
case
"cardimage"
:
case
"cardimage"
:
source
:=
d
[
"source"
]
source
:=
d
[
"source"
]
icon
:=
d
[
"icon"
]
icon
:=
d
[
"icon"
]
img
,
_
:=
bot
.
makeImageElem
(
t
,
d
,
group
,
uid
)
minwidth
,
_
:=
strconv
.
ParseInt
(
d
[
"minwidth"
],
10
,
64
)
return
bot
.
SendNewPic
(
uid
,
img
,
source
,
icon
,
group
)
if
minwidth
==
0
{
minwidth
=
400
}
minheight
,
_
:=
strconv
.
ParseInt
(
d
[
"minheight"
],
10
,
64
)
if
minheight
==
0
{
minheight
=
400
}
maxwidth
,
_
:=
strconv
.
ParseInt
(
d
[
"maxwidth"
],
10
,
64
)
if
maxwidth
==
0
{
maxwidth
=
500
}
maxheight
,
_
:=
strconv
.
ParseInt
(
d
[
"maxheight"
],
10
,
64
)
if
maxheight
==
0
{
maxheight
=
1000
}
img
,
err
:=
bot
.
makeImageElem
(
t
,
d
,
group
)
if
err
!=
nil
{
return
nil
,
errors
.
New
(
"send cardimage faild"
)
}
return
bot
.
SendNewPic
(
img
,
source
,
icon
,
minwidth
,
minheight
,
maxwidth
,
maxheight
,
group
)
default
:
default
:
return
nil
,
errors
.
New
(
"unsupported cq code: "
+
t
)
return
nil
,
errors
.
New
(
"unsupported cq code: "
+
t
)
}
}
...
@@ -464,7 +482,7 @@ func CQCodeUnescapeValue(content string) string {
...
@@ -464,7 +482,7 @@ func CQCodeUnescapeValue(content string) string {
}
}
// 图片 elem 生成器,单独拎出来,用于公用
// 图片 elem 生成器,单独拎出来,用于公用
func
(
bot
*
CQBot
)
makeImageElem
(
t
string
,
d
map
[
string
]
string
,
group
bool
,
uid
int64
)
(
message
.
IMessageElement
,
error
)
{
func
(
bot
*
CQBot
)
makeImageElem
(
t
string
,
d
map
[
string
]
string
,
group
bool
)
(
message
.
IMessageElement
,
error
)
{
f
:=
d
[
"file"
]
f
:=
d
[
"file"
]
if
strings
.
HasPrefix
(
f
,
"http"
)
||
strings
.
HasPrefix
(
f
,
"https"
)
{
if
strings
.
HasPrefix
(
f
,
"http"
)
||
strings
.
HasPrefix
(
f
,
"https"
)
{
cache
:=
d
[
"cache"
]
cache
:=
d
[
"cache"
]
...
@@ -512,7 +530,7 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
...
@@ -512,7 +530,7 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
rawPath
+=
".cqimg"
rawPath
+=
".cqimg"
}
}
if
!
global
.
PathExists
(
rawPath
)
&&
d
[
"url"
]
!=
""
{
if
!
global
.
PathExists
(
rawPath
)
&&
d
[
"url"
]
!=
""
{
return
bot
.
ToElement
(
t
,
map
[
string
]
string
{
"file"
:
d
[
"url"
]},
group
,
uid
)
return
bot
.
ToElement
(
t
,
map
[
string
]
string
{
"file"
:
d
[
"url"
]},
group
)
}
}
if
global
.
PathExists
(
rawPath
)
{
if
global
.
PathExists
(
rawPath
)
{
b
,
err
:=
ioutil
.
ReadFile
(
rawPath
)
b
,
err
:=
ioutil
.
ReadFile
(
rawPath
)
...
@@ -548,7 +566,7 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
...
@@ -548,7 +566,7 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
}
}
if
size
==
0
{
if
size
==
0
{
if
url
!=
""
{
if
url
!=
""
{
return
bot
.
ToElement
(
t
,
map
[
string
]
string
{
"file"
:
url
},
group
,
uid
)
return
bot
.
ToElement
(
t
,
map
[
string
]
string
{
"file"
:
url
},
group
)
}
}
return
nil
,
errors
.
New
(
"img size is 0"
)
return
nil
,
errors
.
New
(
"img size is 0"
)
}
}
...
@@ -559,7 +577,7 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
...
@@ -559,7 +577,7 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
rsp
,
err
:=
bot
.
Client
.
QueryGroupImage
(
1
,
hash
,
size
)
rsp
,
err
:=
bot
.
Client
.
QueryGroupImage
(
1
,
hash
,
size
)
if
err
!=
nil
{
if
err
!=
nil
{
if
url
!=
""
{
if
url
!=
""
{
return
bot
.
ToElement
(
t
,
map
[
string
]
string
{
"file"
:
url
},
group
,
uid
)
return
bot
.
ToElement
(
t
,
map
[
string
]
string
{
"file"
:
url
},
group
)
}
}
return
nil
,
err
return
nil
,
err
}
}
...
@@ -568,7 +586,7 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
...
@@ -568,7 +586,7 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
rsp
,
err
:=
bot
.
Client
.
QueryFriendImage
(
1
,
hash
,
size
)
rsp
,
err
:=
bot
.
Client
.
QueryFriendImage
(
1
,
hash
,
size
)
if
err
!=
nil
{
if
err
!=
nil
{
if
url
!=
""
{
if
url
!=
""
{
return
bot
.
ToElement
(
t
,
map
[
string
]
string
{
"file"
:
url
},
group
,
uid
)
return
bot
.
ToElement
(
t
,
map
[
string
]
string
{
"file"
:
url
},
group
)
}
}
return
nil
,
err
return
nil
,
err
}
}
...
@@ -578,26 +596,32 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
...
@@ -578,26 +596,32 @@ func (bot *CQBot) makeImageElem(t string, d map[string]string, group bool, uid i
}
}
//SendNewPic 一种xml 方式发送的群消息图片
//SendNewPic 一种xml 方式发送的群消息图片
func
(
bot
*
CQBot
)
SendNewPic
(
id
int64
,
i
message
.
ImageElement
,
source
string
,
icon
string
,
group
bool
)
(
*
message
.
ServiceElement
,
error
)
{
func
(
bot
*
CQBot
)
SendNewPic
(
elem
message
.
IMessageElement
,
source
string
,
icon
string
,
minwidth
int64
,
minheigt
int64
,
maxwidth
int64
,
maxheight
int64
,
group
bool
)
(
*
message
.
ServiceElement
,
error
)
{
var
xml
string
var
xml
string
xml
=
""
if
i
,
ok
:=
elem
.
(
*
message
.
ImageElement
);
ok
{
if
group
==
false
{
if
group
==
false
{
gm
,
err
:=
bot
.
Client
.
UploadPrivateImage
(
id
,
i
.
Data
)
gm
,
err
:=
bot
.
Client
.
UploadPrivateImage
(
1
,
i
.
Data
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Warnf
(
"警告: 群 %v 消息图片上传失败: %v"
,
id
,
err
)
log
.
Warnf
(
"警告: 群 %v 消息图片上传失败: %v"
,
1
,
err
)
return
nil
,
err
return
nil
,
err
}
}
xml
=
fmt
.
Sprintf
(
`<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msg serviceID="5" templateID="1" action="" brief="[分享]我看到一张很赞的图片,分享给你,快来看!" sourceMsgId="0" url="%s" flag="2" adverSign="0" multiMsgFlag="0"><item layout="0"><image uuid="%d" md5="%x" GroupFiledid="0" filesize="%d" local_path="%s" minWidth="
400" minHeight="400" maxWidth="500" maxHeight="1000" /></item><source name="%s" icon="%s" action="" appid="-1" /></msg>`
,
""
,
gm
.
ImageId
,
gm
.
Md5
,
i
.
Size
,
""
,
source
,
icon
)
xml
=
fmt
.
Sprintf
(
`<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msg serviceID="5" templateID="1" action="" brief="[分享]我看到一张很赞的图片,分享给你,快来看!" sourceMsgId="0" url="%s" flag="2" adverSign="0" multiMsgFlag="0"><item layout="0"><image uuid="%d" md5="%x" GroupFiledid="0" filesize="%d" local_path="%s" minWidth="
%d" minHeight="%d" maxWidth="%d" maxHeight="%d" /></item><source name="%s" icon="%s" action="" appid="-1" /></msg>`
,
""
,
gm
.
ImageId
,
gm
.
Md5
,
len
(
i
.
Data
),
""
,
minwidth
,
minheigt
,
maxwidth
,
maxheight
,
source
,
icon
)
}
else
{
}
else
{
gm
,
err
:=
bot
.
Client
.
UploadGroupImage
(
id
,
i
.
Data
)
log
.
Warnf
(
" img %d"
,
i
.
Size
)
gm
,
err
:=
bot
.
Client
.
UploadGroupImage
(
1
,
i
.
Data
)
if
err
!=
nil
{
if
err
!=
nil
{
log
.
Warnf
(
"警告: 群 %v 消息图片上传失败: %v"
,
id
,
err
)
log
.
Warnf
(
"警告: 群 %v 消息图片上传失败: %v"
,
1
,
err
)
return
nil
,
err
return
nil
,
err
}
}
xml
=
fmt
.
Sprintf
(
`<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msg serviceID="5" templateID="1" action="" brief="[分享]我看到一张很赞的图片,分享给你,快来看!" sourceMsgId="0" url="%s" flag="2" adverSign="0" multiMsgFlag="0"><item layout="0"><image uuid="%d" md5="%x" GroupFiledid="0" filesize="%d" local_path="%s" minWidth="
400" minHeight="400" maxWidth="500" maxHeight="1000" /></item><source name="%s" icon="%s" action="" appid="-1" /></msg>`
,
""
,
gm
.
FileId
,
gm
.
Md5
,
i
.
Size
,
""
,
source
,
icon
)
xml
=
fmt
.
Sprintf
(
`<?xml version='1.0' encoding='UTF-8' standalone='yes' ?><msg serviceID="5" templateID="1" action="" brief="[分享]我看到一张很赞的图片,分享给你,快来看!" sourceMsgId="0" url="%s" flag="2" adverSign="0" multiMsgFlag="0"><item layout="0"><image uuid="%d" md5="%x" GroupFiledid="0" filesize="%d" local_path="%s" minWidth="
%d" minHeight="%d" maxWidth="%d" maxHeight="%d" /></item><source name="%s" icon="%s" action="" appid="-1" /></msg>`
,
""
,
gm
.
FileId
,
gm
.
Md5
,
len
(
i
.
Data
),
""
,
minwidth
,
minheigt
,
maxwidth
,
maxheight
,
source
,
icon
)
}
}
}
if
xml
!=
""
{
log
.
Warn
(
xml
)
log
.
Warn
(
xml
)
XmlMsg
:=
message
.
NewRichXml
(
xml
,
5
)
XmlMsg
:=
message
.
NewRichXml
(
xml
,
5
)
return
XmlMsg
,
nil
return
XmlMsg
,
nil
}
return
nil
,
errors
.
New
(
"发送xml图片消息失败"
)
return
nil
,
errors
.
New
(
"发送xml图片消息失败"
)
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment