mirror of
https://github.com/Mrs4s/go-cqhttp.git
synced 2025-05-04 11:07:39 +08:00
move mime to internal package
This commit is contained in:
parent
65b050c781
commit
98712bf9ca
@ -23,6 +23,7 @@ import (
|
||||
"github.com/Mrs4s/go-cqhttp/db"
|
||||
"github.com/Mrs4s/go-cqhttp/global"
|
||||
"github.com/Mrs4s/go-cqhttp/internal/base"
|
||||
"github.com/Mrs4s/go-cqhttp/internal/mime"
|
||||
)
|
||||
|
||||
// CQBot CQBot结构体,存储Bot实例相关配置
|
||||
@ -152,10 +153,9 @@ func (bot *CQBot) uploadLocalImage(target message.Source, img *LocalImageElement
|
||||
defer func() { _ = f.Close() }()
|
||||
img.Stream = f
|
||||
}
|
||||
if lawful, mime := base.IsLawfulImage(img.Stream); !lawful {
|
||||
return nil, errors.New("image type error: " + mime)
|
||||
if mt, ok := mime.CheckImage(img.Stream); !ok {
|
||||
return nil, errors.New("image type error: " + mt)
|
||||
}
|
||||
// todo: enable multi-thread upload, now got error code 81
|
||||
i, err := bot.Client.UploadImage(target, img.Stream, 4)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -28,6 +28,7 @@ import (
|
||||
"github.com/Mrs4s/go-cqhttp/global"
|
||||
"github.com/Mrs4s/go-cqhttp/internal/base"
|
||||
"github.com/Mrs4s/go-cqhttp/internal/cache"
|
||||
"github.com/Mrs4s/go-cqhttp/internal/mime"
|
||||
"github.com/Mrs4s/go-cqhttp/internal/param"
|
||||
)
|
||||
|
||||
@ -844,8 +845,8 @@ func (bot *CQBot) ToElement(t string, d map[string]string, sourceType message.So
|
||||
return nil, err
|
||||
}
|
||||
if !global.IsAMRorSILK(data) {
|
||||
lawful, mt := base.IsLawfulAudio(bytes.NewReader(data))
|
||||
if !lawful {
|
||||
mt, ok := mime.CheckAudio(bytes.NewReader(data))
|
||||
if !ok {
|
||||
return nil, errors.New("audio type error: " + mt)
|
||||
}
|
||||
data, err = global.EncoderSilk(data)
|
||||
|
@ -1,8 +1,6 @@
|
||||
package base
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
@ -19,13 +17,3 @@ func encodeSilk(_ []byte, _ string) ([]byte, error) {
|
||||
func resampleSilk(data []byte) []byte {
|
||||
return data
|
||||
}
|
||||
|
||||
// Mime scan feature
|
||||
var (
|
||||
IsLawfulImage = nocheck // 检查图片MIME
|
||||
IsLawfulAudio = nocheck // 检查音频MIME
|
||||
)
|
||||
|
||||
func nocheck(_ io.ReadSeeker) (bool, string) {
|
||||
return true, ""
|
||||
}
|
||||
|
@ -9,11 +9,6 @@ import (
|
||||
"github.com/Mrs4s/go-cqhttp/internal/base"
|
||||
)
|
||||
|
||||
func init() {
|
||||
base.IsLawfulImage = checkImage
|
||||
base.IsLawfulAudio = checkAudio
|
||||
}
|
||||
|
||||
const limit = 4 * 1024
|
||||
|
||||
func scan(r io.ReadSeeker) string {
|
||||
@ -24,15 +19,15 @@ func scan(r io.ReadSeeker) string {
|
||||
return http.DetectContentType(in)
|
||||
}
|
||||
|
||||
// checkImage 判断给定流是否为合法图片
|
||||
// CheckImage 判断给定流是否为合法图片
|
||||
// 返回 是否合法, 实际Mime
|
||||
// 判断后会自动将 Stream Seek 至 0
|
||||
func checkImage(r io.ReadSeeker) (ok bool, t string) {
|
||||
func CheckImage(r io.ReadSeeker) (t string, ok bool) {
|
||||
if base.SkipMimeScan {
|
||||
return true, ""
|
||||
return "", true
|
||||
}
|
||||
if r == nil {
|
||||
return false, "image/nil-stream"
|
||||
return "image/nil-stream", false
|
||||
}
|
||||
t = scan(r)
|
||||
switch t {
|
||||
@ -42,15 +37,15 @@ func checkImage(r io.ReadSeeker) (ok bool, t string) {
|
||||
return
|
||||
}
|
||||
|
||||
// checkImage 判断给定流是否为合法音频
|
||||
func checkAudio(r io.ReadSeeker) (bool, string) {
|
||||
// CheckAudio 判断给定流是否为合法音频
|
||||
func CheckAudio(r io.ReadSeeker) (string, bool) {
|
||||
if base.SkipMimeScan {
|
||||
return true, ""
|
||||
return "", true
|
||||
}
|
||||
t := scan(r)
|
||||
// std mime type detection is not full supported for audio
|
||||
if strings.Contains(t, "text") || strings.Contains(t, "image") {
|
||||
return false, t
|
||||
return t, false
|
||||
}
|
||||
return true, t
|
||||
return t, true
|
||||
}
|
1
main.go
1
main.go
@ -5,7 +5,6 @@ import (
|
||||
"github.com/Mrs4s/go-cqhttp/cmd/gocq"
|
||||
|
||||
_ "github.com/Mrs4s/go-cqhttp/db/leveldb" // leveldb
|
||||
_ "github.com/Mrs4s/go-cqhttp/modules/mime" // mime检查模块
|
||||
_ "github.com/Mrs4s/go-cqhttp/modules/silk" // silk编码模块
|
||||
// 其他模块
|
||||
// _ "github.com/Mrs4s/go-cqhttp/db/mongodb" // mongodb 数据库支持
|
||||
|
Loading…
x
Reference in New Issue
Block a user