Method: WeChat::Bot::Message#parse

Defined in:
lib/wechat/bot/message.rb

#parsevoid

This method returns an undefined value.

解析微信消息



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/wechat/bot/message.rb', line 95

def parse
  parse_source
  parse_kind

  # TODO: 来自于特殊账户无法获取联系人信息,需要单独处理
  @from = @bot.contact_list.find(username: @raw["FromUserName"])

  message = @raw["Content"].convert_emoji
  message = CGI.unescape_html(message) if @kinde != Message::Kind::Text

  if match = group_message(message)
    message = match[1]
    @from_user = @from.find_member(username: match[0]) unless @from.nil?
    @at_message_names = match[2]
  else
    @from_user = @from
  end

  @message = message

  case @kind
  when Message::Kind::Emoticon
    parse_emoticon
  when Message::Kind::ShareCard
    @meta_data = MessageData::ShareCard.parse(@message)
  end

  parse_events
end