wechate 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4b6b91099a4fef8be31e4fa2309e47b35de942a5
4
- data.tar.gz: 5ed0da20b8a30efa5cb501a196f2a3d67140c7af
3
+ metadata.gz: de6b4f8c972f76415dd2d2ec1551db5b9a304873
4
+ data.tar.gz: 92f7891c51d0f26056094619ec449d0cd30c46d5
5
5
  SHA512:
6
- metadata.gz: b3006934734d7be618f09b946160088451a0a20a81fe82b61ee5101906ff71cdbd8244226bc244dca6a7495e3f8cac367c55569be7da4dcffb05d07b770cbe60
7
- data.tar.gz: dad616e023ed3693c04e8932b28da062d6afa4ea5f730ec52e03ea29e4fb353b80af055a6320bed77710d5bfbdb4cc95ec0da59324a4eea96c7358d31fa3ad73
6
+ metadata.gz: 8bc2fa109b3360a32cca4a7a077489a6358b6f37f3001250d3585ec751365168cc5ebb23985a6e5281fbeea51faba9aaa098f64990dde34ffa03fc438c7380db
7
+ data.tar.gz: 853cc40e380ade2f5d5344b601172500c063c9d0166dc0f9c3de05f70f468e44c2e09aa2a594d6f0549a9c990a1177cc8f6e530f7b681e12300dbc945430caa3
@@ -1,17 +1,16 @@
1
+ require 'json'
1
2
  require 'nokogiri'
2
3
  require_relative 'http'
3
4
  require_relative 'aes'
4
5
 
5
6
  module Wechate
6
- OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
7
+
7
8
  class Client
8
9
  include Wechate::Http
9
10
  include Wechate::Aes
10
11
 
11
- def initialize aeskey,token,appid=nil,secret=nil
12
+ def initialize appid,secret
12
13
  @host_api = 'https://qyapi.weixin.qq.com'
13
- @aeskey = aeskey
14
- @token = token
15
14
  @appid = appid
16
15
  @secret = secret
17
16
  @access_token = nil
@@ -33,10 +32,6 @@ module Wechate
33
32
 
34
33
  end
35
34
 
36
- def worker=(worker)
37
- @worker = worker
38
- end
39
-
40
35
  def department_list
41
36
  data = api_get(:department_list)
42
37
  data["department"]
@@ -69,91 +64,8 @@ module Wechate
69
64
  "articles"=>message
70
65
  }
71
66
  end
72
-
73
67
  api_post(:message_send,params.to_json.gsub(/\\u([0-9a-z]{4})/) {|s| [$1.to_i(16)].pack("U")})
74
68
  end
75
-
76
- def pong params,timestamp,nonce
77
- message = decode(params[:xml][:Encrypt],params[:timestamp],params[:nonce],params[:msg_signature])
78
-
79
- xml = Nokogiri::XML(message)
80
- fromUserName = xml.xpath("//FromUserName").text
81
- toUserName = xml.xpath("//ToUserName").text
82
- timestamp = Time.now.to_i.to_s
83
- response = get_response(xml)
84
- msg_encrypt = case response
85
- when String
86
- build_text(fromUserName,toUserName,timestamp,response)
87
- when Array
88
- build_news(fromUserName,toUserName,timestamp,response)
89
- when URI
90
- build_image(fromUserName,toUserName,timestamp,response)
91
- end
92
- encode(msg_encrypt,timestamp,nonce,toUserName)
93
- end
94
-
95
- def get_response xml
96
- raise "Invalid worker" unless @worker
97
- create_time = xml.xpath("//CreateTime").text
98
- msg_type = xml.xpath("//MsgType").text
99
- fromUserName = xml.xpath("//FromUserName").text
100
- agent_id = xml.xpath("//AgentID").text
101
-
102
- ret = case msg_type
103
- when "event"
104
- event = xml.xpath("//Event").text
105
- event_key = xml.xpath("//EventKey").text
106
- ret = case event
107
- when "click"
108
- @worker.click_callback(fromUserName,event_key,create_time)
109
- when "scancode_push"
110
- when "scancode_waitmsg"
111
- @worker.scancode_callback(fromUserName,event_key,xml.xpath("//ScanResult").text)
112
- when "location_select"
113
- when "pic_photo_or_album"
114
- @worker.unknown_event(fromUserName,event_key)
115
- else
116
- @worker.unknown_event(fromUserName,event_key)
117
- end
118
- else
119
- msg_id = xml.xpath("//MsgId").text
120
- case msg_type
121
- when "text"
122
- @worker.text_callback(fromUserName,msg_id,xml.xpath("//PicUrl").text)
123
- when "image"
124
- args = {:pic=>xml.xpath("//PicUrl").text,
125
- :media_id=>xml.xpath("//MediaId").text}
126
- @worker.image_callback(fromUserName,msg_id,args)
127
- when "location"
128
- args = {:location=>{:lat=>xml.xpath("//Location_X").text,
129
- :lng=>xml.xpath("//Location_Y").text},
130
- :scale=>xml.xpath("//Scale").text,
131
- :lable=>xml.xpath("//Label").text}
132
- @worker.location_callback(fromUserName,msg_id,args)
133
- when "voice"
134
- args = {:format=>xml.xpath("//Format").text,
135
- :media_id=>xml.xpath("//MediaId").text}
136
- @worker.voice_callback(fromUserName,msg_id,args)
137
- end
138
- end
139
- end
140
-
141
- def build_text fromUserName,toUserName,timestamp,response
142
- "<xml><ToUserName><![CDATA[#{fromUserName}]]></ToUserName><FromUserName><![CDATA[#{toUserName}]]></FromUserName><CreateTime>#{timestamp}</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[#{response}]]></Content></xml>"
143
- end
144
-
145
- def build_image fromUserName,toUserName,timestamp,response
146
- "<xml><ToUserName><![CDATA[toUser]]></ToUserName><FromUserName><![CDATA[fromUser]]></FromUserName><CreateTime>12345678</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>2</ArticleCount><Articles><item><Title><![CDATA[title1]]></Title> <Description><![CDATA[description1]]></Description><PicUrl><![CDATA[picurl]]></PicUrl><Url><![CDATA[url]]></Url></item></Articles></xml>"
147
- end
148
-
149
- def build_news fromUserName,toUserName,timestamp,response
150
- items = response.map do |item|
151
- "<item><Title><![CDATA[#{item.title}]]></Title><Description><![CDATA[#{item.description}]]></Description><PicUrl><![CDATA[#{item.picurl}]]></PicUrl><Url><![CDATA[#{item.url}]]></Url></item>"
152
- end.join
153
-
154
- "<xml><ToUserName><![CDATA[#{fromUserName}]]></ToUserName><FromUserName><![CDATA[#{toUserName}]]></FromUserName><CreateTime>#{timestamp}</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>#{response.length}</ArticleCount><Articles>#{items}</Articles></xml>"
155
- end
156
-
157
69
  end
158
70
 
159
71
  end
@@ -1,3 +1,3 @@
1
1
  module Wechate
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.7"
3
3
  end
data/lib/wechate.rb CHANGED
@@ -4,7 +4,7 @@ require 'digest/sha1'
4
4
  require 'faraday'
5
5
  require 'nokogiri'
6
6
 
7
-
7
+ require "wechate/app"
8
8
  require "wechate/client"
9
9
  require "wechate/aes"
10
10
  require "wechate/http"
@@ -12,5 +12,5 @@ require "wechate/factory"
12
12
  require "wechate/worker"
13
13
 
14
14
  module Wechate
15
-
15
+ OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
16
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wechate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - goxplanet