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
d5ee8fb3
Commit
d5ee8fb3
authored
Aug 08, 2020
by
Mrs4s
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cqcode `record` supported.
parent
fa5ee669
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
57 additions
and
1 deletion
+57
-1
coolq/bot.go
coolq/bot.go
+9
-0
coolq/cqcode.go
coolq/cqcode.go
+38
-0
global/fs.go
global/fs.go
+7
-0
go.mod
go.mod
+1
-1
go.sum
go.sum
+2
-0
No files found.
coolq/bot.go
View file @
d5ee8fb3
...
@@ -99,6 +99,15 @@ func (bot *CQBot) SendGroupMessage(groupId int64, m *message.SendingMessage) int
...
@@ -99,6 +99,15 @@ func (bot *CQBot) SendGroupMessage(groupId int64, m *message.SendingMessage) int
newElem
=
append
(
newElem
,
gm
)
newElem
=
append
(
newElem
,
gm
)
continue
continue
}
}
if
i
,
ok
:=
elem
.
(
*
message
.
GroupVoiceElement
);
ok
{
gv
,
err
:=
bot
.
Client
.
UploadGroupPtt
(
groupId
,
i
.
Data
,
int32
(
len
(
i
.
Data
)))
if
err
!=
nil
{
log
.
Warnf
(
"警告: 群 %v 消息语音上传失败: %v"
,
groupId
,
err
)
continue
}
newElem
=
append
(
newElem
,
gv
)
continue
}
newElem
=
append
(
newElem
,
elem
)
newElem
=
append
(
newElem
,
elem
)
}
}
m
.
Elements
=
newElem
m
.
Elements
=
newElem
...
...
coolq/cqcode.go
View file @
d5ee8fb3
...
@@ -246,6 +246,44 @@ func (bot *CQBot) ToElement(t string, d map[string]string, group bool) (message.
...
@@ -246,6 +246,44 @@ func (bot *CQBot) ToElement(t string, d map[string]string, group bool) (message.
return
rsp
,
nil
return
rsp
,
nil
}
}
return
nil
,
errors
.
New
(
"invalid image"
)
return
nil
,
errors
.
New
(
"invalid image"
)
case
"record"
:
if
!
group
{
return
nil
,
errors
.
New
(
"private voice unsupported now"
)
}
f
:=
d
[
"file"
]
var
data
[]
byte
if
strings
.
HasPrefix
(
f
,
"http"
)
||
strings
.
HasPrefix
(
f
,
"https"
)
{
b
,
err
:=
global
.
GetBytes
(
f
)
if
err
!=
nil
{
return
nil
,
err
}
data
=
b
}
if
strings
.
HasPrefix
(
f
,
"base64"
)
{
b
,
err
:=
base64
.
StdEncoding
.
DecodeString
(
strings
.
ReplaceAll
(
f
,
"base64://"
,
""
))
if
err
!=
nil
{
return
nil
,
err
}
data
=
b
}
if
strings
.
HasPrefix
(
f
,
"file"
)
{
fu
,
err
:=
url
.
Parse
(
f
)
if
err
!=
nil
{
return
nil
,
err
}
if
strings
.
HasPrefix
(
fu
.
Path
,
"/"
)
&&
runtime
.
GOOS
==
`windows`
{
fu
.
Path
=
fu
.
Path
[
1
:
]
}
b
,
err
:=
ioutil
.
ReadFile
(
fu
.
Path
)
if
err
!=
nil
{
return
nil
,
err
}
data
=
b
}
if
!
global
.
IsAMR
(
data
)
{
return
nil
,
errors
.
New
(
"unsupported voice file format (please use AMR file for now)"
)
}
return
&
message
.
GroupVoiceElement
{
Data
:
data
},
nil
case
"face"
:
case
"face"
:
id
,
err
:=
strconv
.
Atoi
(
d
[
"id"
])
id
,
err
:=
strconv
.
Atoi
(
d
[
"id"
])
if
err
!=
nil
{
if
err
!=
nil
{
...
...
global/fs.go
View file @
d5ee8fb3
...
@@ -31,3 +31,10 @@ func Check(err error) {
...
@@ -31,3 +31,10 @@ func Check(err error) {
log
.
Fatalf
(
"遇到错误: %v"
,
err
)
log
.
Fatalf
(
"遇到错误: %v"
,
err
)
}
}
}
}
func
IsAMR
(
b
[]
byte
)
bool
{
if
len
(
b
)
<=
6
{
return
false
}
return
b
[
0
]
==
0x23
&&
b
[
1
]
==
0x21
&&
b
[
2
]
==
0x41
&&
b
[
3
]
==
0x4D
&&
b
[
4
]
==
0x52
// amr file header
}
go.mod
View file @
d5ee8fb3
...
@@ -3,7 +3,7 @@ module github.com/Mrs4s/go-cqhttp
...
@@ -3,7 +3,7 @@ module github.com/Mrs4s/go-cqhttp
go 1.14
go 1.14
require (
require (
github.com/Mrs4s/MiraiGo v0.0.0-2020080
7030850-ed30f7ad5934
github.com/Mrs4s/MiraiGo v0.0.0-2020080
8003732-2a32e623270d
github.com/gin-gonic/gin v1.6.3
github.com/gin-gonic/gin v1.6.3
github.com/gorilla/websocket v1.4.2
github.com/gorilla/websocket v1.4.2
github.com/guonaihong/gout v0.1.1
github.com/guonaihong/gout v0.1.1
...
...
go.sum
View file @
d5ee8fb3
...
@@ -2,6 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
...
@@ -2,6 +2,8 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/Mrs4s/MiraiGo v0.0.0-20200807030850-ed30f7ad5934 h1:LoNjIsnyEQFGP9IchIQ65yHRCfNKSru3BAOguRepkCM=
github.com/Mrs4s/MiraiGo v0.0.0-20200807030850-ed30f7ad5934 h1:LoNjIsnyEQFGP9IchIQ65yHRCfNKSru3BAOguRepkCM=
github.com/Mrs4s/MiraiGo v0.0.0-20200807030850-ed30f7ad5934/go.mod h1:0je03wji/tSw4bUH4QCF2Z4/EjyNWjSJTyy5tliX6EM=
github.com/Mrs4s/MiraiGo v0.0.0-20200807030850-ed30f7ad5934/go.mod h1:0je03wji/tSw4bUH4QCF2Z4/EjyNWjSJTyy5tliX6EM=
github.com/Mrs4s/MiraiGo v0.0.0-20200808003732-2a32e623270d h1:K9jHdcO13mLqQB0xm0/ZlY852FoVQJ/WSDwfdmfhDlU=
github.com/Mrs4s/MiraiGo v0.0.0-20200808003732-2a32e623270d/go.mod h1:0je03wji/tSw4bUH4QCF2Z4/EjyNWjSJTyy5tliX6EM=
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0=
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
...
...
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