Sha256: 8d8d6c002250cbc80bc107f41597ed026c9996ca5ab9a9234f6bbb9379512e21

Contents?: true

Size: 1.99 KB

Versions: 1

Compression:

Stored size: 1.99 KB

Contents

require 'claide'
require 'colored2'

module OceanWechatRobot

  class Command < CLAide::Command
    # 命令
    self.command = 'ocean_wecaht_robot'
    # 简述
    self.summary = '微信群机器人工具'
    # 描述
    self.description = '微信群机器人工具,可以向微信群发送消息'

    # 参数选项
    def self.options
      [
          ['--webhook=wechat group webhook', '微信群的webhook'],
          ['--msg=content', '微信群消息'],
          ['--msg-type=[text|markdown|news]', '微信群消息的类型'],
          ['--at-mobiles=phone', '@人的手机号,多个用,分割'],
      ].concat(super)
    end

    # ===== 1
    # 运行入口,这里可以坐一些初始化,其他的依赖校验,比如 git 版本等等
    # @param argv 是 Array 类型
    def self.run(argv)
      super(argv)
    end

    # ===== 2
    # 初始化
    # @param argv 是 CLAide::ARGV 类型
    def initialize(argv)
      super
      @webhook = argv.option('webhook')
      @msg = argv.option('msg')
      @msg_type = argv.option('msg-type')
      @at_mobiles = argv.option("at-mobiles", "").split(",")
    end

    # ===== 3
    # 参数校验
    def validate!
      super

      unless @webhook
        help!('please set webhook value!')
      end

      unless @msg
        help!('please set msg value!')
      end

      unless @msg_type
        help!('please set msg type value!')
      end

      if @msg_type && !%w(text markdown news).include?(@msg_type)
        help! "`#{@msg_type}' is not a valid msg type!"
      end
    end

    # ===== 3
    # 重写父类run,执行逻辑,不需要调用 super
    def run
      wechat = OceanWechatRobot::WechatRobot.new("#{@webhook}")
      if @msg_type == 'text'
        wechat.send_text(@msg, @at_mobiles)
      elsif @msg_type == 'markdown'
        wechat.send_markdown(@msg, @at_mobiles)
      elsif @msg_type == 'news'
        # wechat.send_news('', '', '', '', @at_mobiles)
        raise 'news 类型未实现......'
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ocean_wechat_robot-0.0.1 lib/ocean_wechat_robot/command.rb