global

package
v1.0.0-alpha.1919810 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 26, 2021 License: AGPL-3.0 Imports: 37 Imported by: 8

Documentation

Overview

Package global 包含文件下载,视频音频编码,本地文件缓存处理,消息过滤器,调用速率限制,gocq主配置等的相关函数与结构体

Index

Constants

View Source
const (
	// ImagePath go-cqhttp使用的图片缓存目录
	ImagePath = "data/images"
	// ImagePathOld 兼容旧版go-cqhttp使用的图片缓存目录
	ImagePathOld = "data/image"
	// VoicePath go-cqhttp使用的语音缓存目录
	VoicePath = "data/voices"
	// VoicePathOld 兼容旧版go-cqhttp使用的语音缓存目录
	VoicePathOld = "data/record"
	// VideoPath go-cqhttp使用的视频缓存目录
	VideoPath = "data/videos"
	// CachePath go-cqhttp使用的缓存目录
	CachePath = "data/cache"
)

Variables

View Source
var (
	// ErrSyntax Path语法错误时返回的错误
	ErrSyntax = errors.New("syntax error")
	// HeaderAmr AMR文件头
	HeaderAmr = []byte("#!AMR")
	// HeaderSilk Silkv3文件头
	HeaderSilk = []byte("\x02#!SILK_V3")
)
View Source
var (

	// Proxy 存储Config.proxy_rewrite,用于设置代理
	Proxy string

	// ErrOverSize 响应主体过大时返回此错误
	ErrOverSize = errors.New("oversize")

	// UserAgent HTTP请求时使用的UA
	UserAgent = "" /* 130-byte string literal not displayed */
)
View Source
var DefaultConfFile = path.Join(currentPath, "config.hjson")
View Source
var DefaultConfigWithComments = `` /* 3661-byte string literal not displayed */

DefaultConfigWithComments 为go-cqhttp的默认配置文件

View Source
var PasswordHash [16]byte

PasswordHash 存储QQ密码哈希供登录使用

Functions

func BootFilter added in v0.9.25

func BootFilter()

BootFilter 启动事件过滤器

func Check

func Check(err error)

Check 检测err是否为nil

func DelFile added in v0.9.27

func DelFile(path string) bool

DelFile 删除一个给定path,并返回删除结果

func DownloadFile added in v0.9.37

func DownloadFile(url, path string, limit int64, headers map[string]string) error

DownloadFile 将给定URL对应的文件下载至给定Path

func DownloadFileMultiThreading added in v0.9.37

func DownloadFileMultiThreading(url, path string, limit int64, threadCount int, headers map[string]string) error

DownloadFileMultiThreading 使用threadCount个线程将给定URL对应的文件下载至给定Path

func EncodeMP4 added in v0.9.38

func EncodeMP4(src string, dst string) error

EncodeMP4 将给定视频文件编码为MP4

func EncoderSilk added in v0.9.38

func EncoderSilk(data []byte) ([]byte, error)

EncoderSilk 将音频编码为Silk

func EnsureBool added in v0.9.20

func EnsureBool(p interface{}, defaultVal bool) bool

EnsureBool 判断给定的p是否可表示为合法Bool类型,否则返回defaultVal

支持的合法类型有

type bool

type gjson.True or gjson.False

type string "true","yes","1" or "false","no","0" (case insensitive)

func ExtractCover added in v0.9.38

func ExtractCover(src string, target string) error

ExtractCover 获取给定视频文件的Cover

func FindFile added in v0.9.26

func FindFile(file, cache, p string) (data []byte, err error)

FindFile 从给定的File寻找文件,并返回文件byte数组。File是一个合法的URL。p为文件寻找位置。 对于HTTP/HTTPS形式的URL,Cache为"1"或空时表示启用缓存

func GetBytes

func GetBytes(url string) ([]byte, error)

GetBytes 对给定URL发送Get请求,返回响应主体

func GetLogLevel added in v0.9.40

func GetLogLevel(level string) []logrus.Level

GetLogLevel 获取日志等级

可能的值有

"trace","debug","info","warn","warn","error"

func GetSliderTicket added in v0.9.37

func GetSliderTicket(raw, id string) (string, error)

GetSliderTicket 通过给定的验证链接raw和id,获取验证结果Ticket

func InitLimiter added in v0.9.25

func InitLimiter(frequency float64, bucketSize int)

InitLimiter 初始化速率限制器

func IsAMRorSILK added in v0.9.20

func IsAMRorSILK(b []byte) bool

IsAMRorSILK 判断给定文件是否为Amr或Silk格式

func NeteaseMusicSongInfo added in v0.9.22

func NeteaseMusicSongInfo(id string) (gjson.Result, error)

NeteaseMusicSongInfo 通过给定id在wdd音乐上查找曲目信息

func NewBuffer added in v1.0.0

func NewBuffer() *bytes.Buffer

NewBuffer 从池钟获取新 bytes.Buffer

func PathExists

func PathExists(path string) bool

PathExists 判断给定path是否存在

func PutBuffer added in v1.0.0

func PutBuffer(buf *bytes.Buffer)

PutBuffer 将 Buffer放入池中

func QQMusicSongInfo added in v0.9.21

func QQMusicSongInfo(id string) (gjson.Result, error)

QQMusicSongInfo 通过给定id在QQ音乐上查找曲目信息

func RateLimit added in v0.9.25

func RateLimit(ctx context.Context)

RateLimit 执行API调用速率限制

func ReadAddrFile added in v0.9.31

func ReadAddrFile(path string) []*net.TCPAddr

ReadAddrFile 从给定path中读取合法的IP地址与端口,每个IP地址以换行符"\n"作为分隔

func ReadAllText

func ReadAllText(path string) string

ReadAllText 读取给定path对应文件,无法读取时返回空值

func SplitURL added in v0.9.39

func SplitURL(s string) []string

SplitURL 将给定URL字符串分割为两部分,用于URL预处理防止风控

func UpdateFromStream added in v0.9.37

func UpdateFromStream(updateWith io.Reader) (err error, errRecover error)

UpdateFromStream copy form getlantern/go-update

func VersionNameCompare added in v0.9.30

func VersionNameCompare(current, remote string) bool

VersionNameCompare 检查版本名是否需要更新, 仅适用于 go-cqhttp 的版本命名规则

例: v0.9.29-fix2 == v0.9.29-fix2 -> false

v0.9.29-fix1 < v0.9.29-fix2 -> true

v0.9.29-fix2 > v0.9.29-fix1 -> false

v0.9.29-fix2 < v0.9.30 -> true

func WriteAllText

func WriteAllText(path, text string) error

WriteAllText 将给定text写入给定path

Types

type AndOperator added in v0.9.21

type AndOperator struct {
	// contains filtered or unexported fields
}

AndOperator 定义了过滤器中And操作符

func (*AndOperator) Eval added in v0.9.21

func (op *AndOperator) Eval(payload MSG) bool

Eval 对payload执行And过滤

type CQHTTPAPIConfig added in v0.9.39

type CQHTTPAPIConfig struct {
	Host                         string `json:"host"`
	Port                         uint16 `json:"port"`
	UseHTTP                      bool   `json:"use_http"`
	WSHost                       string `json:"ws_host"`
	WSPort                       uint16 `json:"ws_port"`
	UseWS                        bool   `json:"use_ws"`
	WSReverseURL                 string `json:"ws_reverse_url"`
	WSReverseAPIURL              string `json:"ws_reverse_api_url"`
	WSReverseEventURL            string `json:"ws_reverse_event_url"`
	WSReverseReconnectInterval   uint16 `json:"ws_reverse_reconnect_interval"`
	WSReverseReconnectOnCode1000 bool   `json:"ws_reverse_reconnect_on_code_1000"`
	UseWsReverse                 bool   `json:"use_ws_reverse"`
	PostURL                      string `json:"post_url"`
	AccessToken                  string `json:"access_token"`
	Secret                       string `json:"secret"`
	PostMessageFormat            string `json:"post_message_format"`
}

CQHTTPAPIConfig HTTPAPI对应的Config结构体

type ContainsOperator added in v0.9.21

type ContainsOperator struct {
	// contains filtered or unexported fields
}

ContainsOperator 定义了过滤器中Contains操作符

func (*ContainsOperator) Eval added in v0.9.21

func (op *ContainsOperator) Eval(payload MSG) bool

Eval 对payload执行Contains过滤

type EqualOperator added in v0.9.21

type EqualOperator struct {
	// contains filtered or unexported fields
}

EqualOperator 定义了过滤器中Equal操作符

func (*EqualOperator) Eval added in v0.9.21

func (op *EqualOperator) Eval(payload MSG) bool

Eval 对payload执行Equal过滤

type Filter added in v0.9.21

type Filter interface {
	Eval(payload MSG) bool
}

Filter 定义了一个消息上报过滤接口

var EventFilter Filter

EventFilter 初始化一个nil过滤器

func Generate added in v0.9.25

func Generate(opName string, argument gjson.Result) Filter

Generate 根据给定操作符名opName及操作符参数argument创建一个过滤器实例

type GoCQHTTPConfig added in v0.9.39

type GoCQHTTPConfig struct {
	Enabled  bool              `json:"enabled"`
	Host     string            `json:"host"`
	Port     uint16            `json:"port"`
	Timeout  int32             `json:"timeout"`
	PostUrls map[string]string `json:"post_urls"`
}

GoCQHTTPConfig 正向HTTP对应config结构体

type GoCQReverseWebSocketConfig added in v0.9.39

type GoCQReverseWebSocketConfig struct {
	Enabled                  bool   `json:"enabled"`
	ReverseURL               string `json:"reverse_url"`
	ReverseAPIURL            string `json:"reverse_api_url"`
	ReverseEventURL          string `json:"reverse_event_url"`
	ReverseReconnectInterval uint16 `json:"reverse_reconnect_interval"`
}

GoCQReverseWebSocketConfig 反向WebSocket对应Config结构体

type GoCQWebSocketConfig added in v0.9.39

type GoCQWebSocketConfig struct {
	Enabled bool   `json:"enabled"`
	Host    string `json:"host"`
	Port    uint16 `json:"port"`
}

GoCQWebSocketConfig 正向WebSocket对应Config结构体

type InOperator added in v0.9.21

type InOperator struct {
	// contains filtered or unexported fields
}

InOperator 定义了过滤器中In操作符

func (*InOperator) Eval added in v0.9.21

func (op *InOperator) Eval(payload MSG) bool

Eval 对payload执行In过滤

type JSONConfig added in v0.9.39

type JSONConfig struct {
	Uin               int64  `json:"uin"`
	Password          string `json:"password"`
	EncryptPassword   bool   `json:"encrypt_password"`
	PasswordEncrypted string `json:"password_encrypted"`
	EnableDB          bool   `json:"enable_db"`
	EnableSelfMessage bool   `json:"enable_self_message"`
	AccessToken       string `json:"access_token"`
	ReLogin           struct {
		Enabled         bool `json:"enabled"`
		ReLoginDelay    int  `json:"relogin_delay"`
		MaxReloginTimes uint `json:"max_relogin_times"`
	} `json:"relogin"`
	RateLimit struct {
		Enabled    bool    `json:"enabled"`
		Frequency  float64 `json:"frequency"`
		BucketSize int     `json:"bucket_size"`
	} `json:"_rate_limit"`
	IgnoreInvalidCQCode bool                          `json:"ignore_invalid_cqcode"`
	ForceFragmented     bool                          `json:"force_fragmented"`
	FixURL              bool                          `json:"fix_url"`
	ProxyRewrite        string                        `json:"proxy_rewrite"`
	HeartbeatInterval   time.Duration                 `json:"heartbeat_interval"`
	HTTPConfig          *GoCQHTTPConfig               `json:"http_config"`
	WSConfig            *GoCQWebSocketConfig          `json:"ws_config"`
	ReverseServers      []*GoCQReverseWebSocketConfig `json:"ws_reverse_servers"`
	PostMessageFormat   string                        `json:"post_message_format"`
	UseSSOAddress       bool                          `json:"use_sso_address"`
	Debug               bool                          `json:"debug"`
	LogLevel            string                        `json:"log_level"`
}

JSONConfig Config对应的结构体

func DefaultConfig

func DefaultConfig() *JSONConfig

DefaultConfig 返回一份默认配置对应结构体

func LoadConfig added in v0.9.40

func LoadConfig(p string) *JSONConfig

LoadConfig 加载配置文件

func (*JSONConfig) Save added in v0.9.39

func (c *JSONConfig) Save(path string) error

Save 写入配置文件至path

type LocalHook added in v0.9.40

type LocalHook struct {
	// contains filtered or unexported fields
}

LocalHook logrus本地钩子

func NewLocalHook added in v0.9.40

func NewLocalHook(args interface{}, formatter logrus.Formatter, levels ...logrus.Level) *LocalHook

NewLocalHook 初始化本地日志钩子实现

func (*LocalHook) Fire added in v0.9.40

func (hook *LocalHook) Fire(entry *logrus.Entry) error

Fire ref: logrus/hooks.go impl Hook interface

func (*LocalHook) Levels added in v0.9.40

func (hook *LocalHook) Levels() []logrus.Level

Levels ref: logrus/hooks.go impl Hook interface

func (*LocalHook) SetFormatter added in v0.9.40

func (hook *LocalHook) SetFormatter(formatter logrus.Formatter)

SetFormatter 设置日志格式

func (*LocalHook) SetPath added in v0.9.40

func (hook *LocalHook) SetPath(path string)

SetPath 设置日志写入路径

func (*LocalHook) SetWriter added in v0.9.40

func (hook *LocalHook) SetWriter(writer io.Writer)

SetWriter 设置Writer

type MSG added in v0.9.34

type MSG map[string]interface{}

MSG 消息Map

func (MSG) Get added in v0.9.34

func (m MSG) Get(s string) MSG

Get 尝试从消息Map中取出key为s的值,若不存在则返回MSG{}

若所给key对应的值的类型是global.MSG,则返回此值

若所给key对应值的类型不是global.MSG,则返回MSG{"__str__": Val}

func (MSG) String added in v0.9.34

func (m MSG) String() string

String 将消息Map转化为String。若Map存在key "__str__",则返回此key对应的值,否则将输出整张消息Map对应的JSON字符串

type NotEqualOperator added in v0.9.21

type NotEqualOperator struct {
	// contains filtered or unexported fields
}

NotEqualOperator 定义了过滤器中NotEqual操作符

func (*NotEqualOperator) Eval added in v0.9.21

func (op *NotEqualOperator) Eval(payload MSG) bool

Eval 对payload执行NotEqual过滤

type NotOperator added in v0.9.21

type NotOperator struct {
	// contains filtered or unexported fields
}

NotOperator 定义了过滤器中Not操作符

func (*NotOperator) Eval added in v0.9.21

func (op *NotOperator) Eval(payload MSG) bool

Eval 对payload执行Not过滤

type OrOperator added in v0.9.21

type OrOperator struct {
	// contains filtered or unexported fields
}

OrOperator 定义了过滤器中Or操作符

func (*OrOperator) Eval added in v0.9.21

func (op *OrOperator) Eval(payload MSG) bool

Eval 对payload执行Or过滤

type RegexOperator added in v0.9.21

type RegexOperator struct {
	// contains filtered or unexported fields
}

RegexOperator 定义了过滤器中Regex操作符

func (*RegexOperator) Eval added in v0.9.21

func (op *RegexOperator) Eval(payload MSG) bool

Eval 对payload执行RegexO过滤

type WriteCounter added in v0.9.31

type WriteCounter struct {
	Total uint64
}

WriteCounter 写入量计算实例

func (*WriteCounter) PrintProgress added in v0.9.31

func (wc *WriteCounter) PrintProgress()

PrintProgress 方法将打印当前的总写入量

func (*WriteCounter) Write added in v0.9.31

func (wc *WriteCounter) Write(p []byte) (int, error)

Write 方法将写入的byte长度追加至写入的总长度Total中

Directories

Path Synopsis
Package codec Slik编码核心模块
Package codec Slik编码核心模块

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL