class CQHttp::Utils
各种工具包
Example:
CQHttp::Utils.log str, Logger::INFO
Attributes
fileLogger[RW]
@!method stdLogger
@return [Logger] 终端Logger
@!method fileLogger
@return [Logger] 文件Logger
@!method loggerFile
@return [String] Logger文件地址
loggerFile[RW]
@!method stdLogger
@return [Logger] 终端Logger
@!method fileLogger
@return [Logger] 文件Logger
@!method loggerFile
@return [String] Logger文件地址
stdLogger[RW]
@!method stdLogger
@return [Logger] 终端Logger
@!method fileLogger
@return [Logger] 文件Logger
@!method loggerFile
@return [String] Logger文件地址
Public Class Methods
cq_parse(cqmsg)
click to toggle source
CQ码解析
@param cqmsg [String] @return [Hash]
# File lib/Bot/Utils.rb, line 90 def cq_parse(cqmsg) cqary = [] cqmsg.scan(/\[CQ:(.*?),(.*?)\]/m).each do |matches| cqcode = { type: matches[0], data: {} } matches[1].split(',').each do |arg| args = arg.split('=') cqcode[:data][args[0].to_sym] = args[1] end cqary << cqcode end cqary end
httpPost(url, ret)
click to toggle source
post发包
@param url [URI] @param ret [String] @return [String]
# File lib/Bot/Utils.rb, line 48 def httpPost(url, ret) req = Net::HTTP::Post.new(url.path, { 'Content-Type' => 'application/json' }) req.body = ret res = Net::HTTP.start(url.hostname, url.port) do |http| http.request(req) end res.body end
Also aliased as: post
initLogger(loggerFile=nil)
click to toggle source
初始化日志
@param loggerFile [String]
# File lib/Bot/Utils.rb, line 19 def initLogger(loggerFile=nil) @loggerFile = loggerFile @stdLogger = setLogger(Logger.new(STDOUT)) @fileLogger = setLogger(Logger.new(@loggerFile, 'daily')) if @loggerFile end
log(str, severity=Logger::INFO, app="RUBY-CQHTTP")
click to toggle source
输出日志
@param str [String] @param severity [Logger::INFO, Logger::DEBUG, Logger::WARN, Logger::ERROR] @param app [String]
# File lib/Bot/Utils.rb, line 38 def log(str, severity=Logger::INFO, app="RUBY-CQHTTP") @stdLogger.log(severity, str, app) @fileLogger.log(severity, str, app) if @loggerFile end
msg_change(msg)
click to toggle source
消息转义
& -> &
[ -> [
] -> ]
@param msg [String] @return [String]
# File lib/Bot/Utils.rb, line 65 def msg_change(msg) msg.gsub!('&','&') msg.gsub!('[','[') msg.gsub!(']',']') msg end
msg_change!(msg)
click to toggle source
消息反转义
& -> &
[ -> [
] -> ]
@param msg [String] @return [String]
# File lib/Bot/Utils.rb, line 79 def msg_change!(msg) msg.gsub!('&','&') msg.gsub!('[','[') msg.gsub!(']',']') msg end
setLoggerLevel(loggerLevel)
click to toggle source
设置日志等级
@param loggerLevel [String]
# File lib/Bot/Utils.rb, line 28 def setLoggerLevel(loggerLevel) @stdLogger.level = loggerLevel @fileLogger.level = loggerLevel if @loggerFile end
Private Class Methods
setLogger(logger)
click to toggle source
设置logger
# File lib/Bot/Utils.rb, line 106 def setLogger(logger) logger.level = 'INFO' logger.formatter = proc do |severity, datetime, progname, msg| if progname == nil "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}][#{severity}]: #{msg.to_s.gsub(/\n/,'\n').gsub(/\r/,'\r') }\n" else "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}][#{progname}][#{severity}]: #{msg.to_s.gsub(/\n/,'\n').gsub(/\r/,'\r') }\n" end end logger end