1
0
mirror of https://github.com/Mrs4s/go-cqhttp.git synced 2025-05-04 19:17:37 +08:00

all: optimize

detected by go-perfguard
This commit is contained in:
wdvxdr 2022-03-27 22:53:00 +08:00
parent ee9af5fa69
commit d522378315
No known key found for this signature in database
GPG Key ID: 703F8C071DE7A1B6
8 changed files with 14 additions and 14 deletions

View File

@ -1342,7 +1342,7 @@ func (bot *CQBot) CQHandleQuickOperation(context, operation gjson.Result) global
if reply.Exists() { if reply.Exists() {
autoEscape := param.EnsureBool(operation.Get("auto_escape"), false) autoEscape := param.EnsureBool(operation.Get("auto_escape"), false)
at := operation.Get("at_sender").Bool() && !isAnonymous && msgType == "group" at := !isAnonymous && operation.Get("at_sender").Bool() && msgType == "group"
if at && reply.IsArray() { if at && reply.IsArray() {
// 在 reply 数组头部插入CQ码 // 在 reply 数组头部插入CQ码
replySegments := make([]global.MSG, 0) replySegments := make([]global.MSG, 0)
@ -1388,7 +1388,7 @@ func (bot *CQBot) CQHandleQuickOperation(context, operation gjson.Result) global
if operation.Get("delete").Bool() { if operation.Get("delete").Bool() {
bot.CQDeleteMessage(int32(context.Get("message_id").Int())) bot.CQDeleteMessage(int32(context.Get("message_id").Int()))
} }
if operation.Get("kick").Bool() && !isAnonymous { if !isAnonymous && operation.Get("kick").Bool() {
bot.CQSetGroupKick(context.Get("group_id").Int(), context.Get("user_id").Int(), "", operation.Get("reject_add_request").Bool()) bot.CQSetGroupKick(context.Get("group_id").Int(), context.Get("user_id").Int(), "", operation.Get("reject_add_request").Bool())
} }
if operation.Get("ban").Bool() { if operation.Get("ban").Bool() {

View File

@ -209,7 +209,7 @@ func ToArrayMessage(e []message.IMessageElement, source message.Source) (r []glo
case *message.DiceElement: case *message.DiceElement:
m = global.MSG{ m = global.MSG{
"type": "dice", "type": "dice",
"data": map[string]string{"value": fmt.Sprint(o.Value)}, "data": map[string]string{"value": strconv.FormatInt(int64(o.Value), 10)},
} }
case *message.MarketFaceElement: case *message.MarketFaceElement:
m = global.MSG{ m = global.MSG{
@ -1192,7 +1192,7 @@ func (bot *CQBot) makeImageOrVideoElem(d map[string]string, video bool, sourceTy
} }
return &LocalImageElement{File: fu.Path, URL: f}, nil return &LocalImageElement{File: fu.Path, URL: f}, nil
} }
if strings.HasPrefix(f, "base64") && !video { if !video && strings.HasPrefix(f, "base64") {
b, err := param.Base64DecodeString(strings.TrimPrefix(f, "base64://")) b, err := param.Base64DecodeString(strings.TrimPrefix(f, "base64://"))
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -2,7 +2,6 @@ package leveldb
import ( import (
"bytes" "bytes"
"io"
"github.com/Mrs4s/go-cqhttp/global" "github.com/Mrs4s/go-cqhttp/global"
) )
@ -125,7 +124,7 @@ func (w *writer) bytes() []byte {
out.uvarint(dataVersion) out.uvarint(dataVersion)
out.uvarint(uint64(w.strings.Len())) out.uvarint(uint64(w.strings.Len()))
out.uvarint(uint64(w.data.Len())) out.uvarint(uint64(w.data.Len()))
_, _ = io.Copy(&out, &w.strings) _, _ = w.strings.WriteTo(&out)
_, _ = io.Copy(&out, &w.data) _, _ = w.data.WriteTo(&out)
return out.Bytes() return out.Bytes()
} }

View File

@ -195,7 +195,8 @@ func (f LogFormat) Format(entry *logrus.Entry) ([]byte, error) {
buf.WriteString(colorReset) buf.WriteString(colorReset)
} }
ret := append([]byte(nil), buf.Bytes()...) // copy buffer ret := make([]byte, len(buf.Bytes()))
copy(ret, buf.Bytes()) // copy buffer
return ret, nil return ret, nil
} }

View File

@ -79,7 +79,7 @@ func DownloadFile(url, path string, limit int64, headers map[string]string) erro
if limit > 0 && resp.ContentLength > limit { if limit > 0 && resp.ContentLength > limit {
return ErrOverSize return ErrOverSize
} }
_, err = io.Copy(file, resp.Body) _, err = file.ReadFrom(resp.Body)
if err != nil { if err != nil {
return err return err
} }
@ -107,7 +107,7 @@ func DownloadFileMultiThreading(url, path string, limit int64, threadCount int,
return err return err
} }
defer file.Close() defer file.Close()
if _, err = io.Copy(file, s); err != nil { if _, err = file.ReadFrom(s); err != nil {
return err return err
} }
return errUnsupportedMultiThreading return errUnsupportedMultiThreading

View File

@ -188,7 +188,7 @@ func fromStream(updateWith io.Reader) (err error, errRecover error) {
} }
// We won't log this error, because it's always going to happen. // We won't log this error, because it's always going to happen.
defer func() { _ = fp.Close() }() defer func() { _ = fp.Close() }()
if _, err = io.Copy(fp, bufio.NewReader(updateWith)); err != nil { if _, err = bufio.NewReader(updateWith).WriteTo(fp); err != nil {
logrus.Errorf("Unable to copy data: %v\n", err) logrus.Errorf("Unable to copy data: %v\n", err)
} }

View File

@ -3,9 +3,9 @@ package server
// daemon 功能写在这,目前仅支持了-d 作为后台运行参数stopstartrestart这些功能目前看起来并不需要可以通过api控制后续需要的话再补全。 // daemon 功能写在这,目前仅支持了-d 作为后台运行参数stopstartrestart这些功能目前看起来并不需要可以通过api控制后续需要的话再补全。
import ( import (
"fmt"
"os" "os"
"os/exec" "os/exec"
"strconv"
"strings" "strings"
"github.com/Mrs4s/go-cqhttp/global" "github.com/Mrs4s/go-cqhttp/global"
@ -36,7 +36,7 @@ func Daemon() {
log.Info("[PID] ", proc.Process.Pid) log.Info("[PID] ", proc.Process.Pid)
// pid写入到pid文件中方便后续stop的时候kill // pid写入到pid文件中方便后续stop的时候kill
pidErr := savePid("go-cqhttp.pid", fmt.Sprintf("%d", proc.Process.Pid)) pidErr := savePid("go-cqhttp.pid", strconv.FormatInt(int64(proc.Process.Pid), 10))
if pidErr != nil { if pidErr != nil {
log.Errorf("save pid file error: %v", pidErr) log.Errorf("save pid file error: %v", pidErr)
} }

View File

@ -54,7 +54,7 @@ func (l *lambdaResponseWriter) flush() error {
buffer := global.NewBuffer() buffer := global.NewBuffer()
defer global.PutBuffer(buffer) defer global.PutBuffer(buffer)
body := utils.B2S(l.buf.Bytes()) body := utils.B2S(l.buf.Bytes())
header := make(map[string]string) header := make(map[string]string, len(l.header))
for k, v := range l.header { for k, v := range l.header {
header[k] = v[0] header[k] = v[0]
} }