wechat 0.17.3 → 0.17.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 497060e96871aaed2d484bf54a8f39701e67895add0fb2d456ad7722297db841
4
- data.tar.gz: e7c029ef4bb8cf4018b81902999e54900df9f92dcfc9de1673f9a2b1514b48dc
3
+ metadata.gz: 2abb37f01abc3bcc8f7c9f0500f5a4f73c6877c36152b0e74ddb92fa630227e7
4
+ data.tar.gz: d08f8b4c5ddc18d3733ad331268733a5dc55ee41b684cdc810905583f32923fe
5
5
  SHA512:
6
- metadata.gz: bd6fa6017ade886d1e33de0971bfbea8abe4e05f8b01e15b91c256552bf9f6704a23c703ca3278867bfc65aed853adc1027d8841845d8d96eb9c1a14eb61d420
7
- data.tar.gz: e786359f9835a52ddb6c7627115ffe1ea2151411c4c91374ae2343ef977a7eddb45d379c06b21ea10942dc583fe7666fbf710c52253d41c92e5ed1df6ba816af
6
+ metadata.gz: 8ee8b7886ef537b146b3f4a5fbcf035a67effd8876f85ca167c10c6528102c653a076dc2b32a28897db378e0ea0422cbb37d988d520a321e62109e6306297d88
7
+ data.tar.gz: 77d3c1abb49ec7c7e4fa3597a676c02618db0aa2f6ed35f954de10dea11549802e5085fbb175b2861972db341fc657d1884048c6b5c1034c9c5ab781baacf7cf
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.17.5 (released at 2024-10-25)
4
+
5
+ * Remove `serialize :hash_store` in template as it's cause too many issue in different rails version.
6
+
7
+ ## v0.17.4 (released at 2024-08-13)
8
+
9
+ * Fix private API ActiveSupport::Deprecation.warn called in Rails 7.2
10
+
3
11
  ## v0.17.3 (released at 2024-01-04)
4
12
 
5
13
  * Add New CorpApi batch_get_by_user and follow_user_list. by @leepood #321
data/README-CN.md CHANGED
@@ -859,6 +859,27 @@ end
859
859
 
860
860
  注意设置了[多客服消息转发](http://dkf.qq.com/)后,不能再添加默认文字信息 `responder`,否则文字消息将得不到转发。
861
861
 
862
+
863
+ ### 无法处理给一个默认回答,一周内不要重复
864
+
865
+ ```ruby
866
+ class WechatsController < ActionController::Base
867
+ on :fallback do |message|
868
+ Rails.logger.debug "YouApp_ToUserName: #{message.message_hash["FromUserName"]}"
869
+ session = WechatSession.find_by openid: message.message_hash["FromUserName"]
870
+ return message.reply.success if session.present? && session.greating_time.present? && session.greating_time >= 1.week.ago
871
+
872
+ images_path = Rails.root.join("public", "images", "default_help.jpg")
873
+ media_id = Wechat.api.media_create("image", images_path)["media_id"]
874
+ if session.present? && session.reload
875
+ # generate migration: add_column :wechat_sessions, :greating_time, :datetime
876
+ session.update(greating_time: Time.current)
877
+ end
878
+ message.reply.image(media_id)
879
+ end
880
+ end
881
+ ```
882
+
862
883
  ### 通知
863
884
 
864
885
  现支持以下通知:
data/README.md CHANGED
@@ -894,6 +894,26 @@ end
894
894
 
895
895
  Caution: do not set default text responder if you want to use [multiply human customer service](http://dkf.qq.com/), other will lead text message can not transfer.
896
896
 
897
+ ### Give a default answer, do not repeat within a week
898
+
899
+ ```ruby
900
+ class WechatsController < ActionController::Base
901
+ on :fallback do |message|
902
+ Rails.logger.debug "YouApp_ToUserName: #{message.message_hash["FromUserName"]}"
903
+ session = WechatSession.find_by openid: message.message_hash["FromUserName"]
904
+ return message.reply.success if session.present? && session.greating_time.present? && session.greating_time >= 1.week.ago
905
+
906
+ images_path = Rails.root.join("public", "images", "default_help.jpg")
907
+ media_id = Wechat.api.media_create("image", images_path)["media_id"]
908
+ if session.present? && session.reload
909
+ # generate migration: add_column :wechat_sessions, :greating_time, :datetime
910
+ session.update(greating_time: Time.current)
911
+ end
912
+ message.reply.image(media_id)
913
+ end
914
+ end
915
+ ```
916
+
897
917
  ### Notifications
898
918
 
899
919
  * `wechat.responder.after_create` data includes request <Wechat::Message> and response <Wechat::Message>.
@@ -4,7 +4,8 @@
4
4
  # Feel free to inherit from other class like ActiveModel::Model
5
5
  class WechatSession < ActiveRecord::Base
6
6
  validates :openid, presence: true, uniqueness: true
7
- serialize :hash_store, type: Hash
7
+ # don't using serialize if possible, see README `on :fallback`
8
+ serialize :hash_store, type: Hash, coder: YAML, yaml: { permitted_classes: [String] }
8
9
 
9
10
  # called by wechat gems when user request session
10
11
  def self.find_or_initialize_session(request_message)
@@ -145,7 +145,7 @@ module Wechat
145
145
  end
146
146
 
147
147
  def material(media_id)
148
- ActiveSupport::Deprecation.warn('material is deprecated. use get_material instead.')
148
+ ActiveSupport::Deprecation.new.warn('material is deprecated. use get_material instead.')
149
149
 
150
150
  post 'material/get_material', JSON.generate(media_id: media_id), as: :file
151
151
  end
@@ -171,7 +171,7 @@ module Wechat
171
171
  end
172
172
 
173
173
  def material(media_id)
174
- ActiveSupport::Deprecation.warn('material is deprecated. use get_material instead.')
174
+ ActiveSupport::Deprecation.new.warn('material is deprecated. use get_material instead.')
175
175
 
176
176
  post 'material/get_material', JSON.generate(media_id: media_id), params: { agentid: agentid }, as: :file
177
177
  end
data/lib/wechat.rb CHANGED
@@ -8,6 +8,7 @@ loader.setup
8
8
 
9
9
  require 'base64'
10
10
  require 'openssl/cipher'
11
+ require 'ostruct'
11
12
 
12
13
  module Wechat
13
14
  class AccessTokenExpiredError < StandardError; end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wechat
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.3
4
+ version: 0.17.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Skinnyworm
@@ -36,7 +36,7 @@ cert_chain:
36
36
  uxhUIIN2A+qeUxOIoO9VfGAX5Q+cQ4J+EpKkDovIHaG0tJdNoA9EABD8yMMHgWgw
37
37
  q9fk/nu08SjME28EsSxW0oLUQq1vHNKWUyZuHtihd0yBYGRJH7xdZivkUOs=
38
38
  -----END CERTIFICATE-----
39
- date: 2024-01-04 00:00:00.000000000 Z
39
+ date: 2024-10-25 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
@@ -45,6 +45,9 @@ dependencies:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '6.0'
48
+ - - "<"
49
+ - !ruby/object:Gem::Version
50
+ version: '8'
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,6 +55,9 @@ dependencies:
52
55
  - - ">="
53
56
  - !ruby/object:Gem::Version
54
57
  version: '6.0'
58
+ - - "<"
59
+ - !ruby/object:Gem::Version
60
+ version: '8'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: http
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -134,70 +140,70 @@ dependencies:
134
140
  requirements:
135
141
  - - "~>"
136
142
  - !ruby/object:Gem::Version
137
- version: '1.9'
143
+ version: 1.66.1
138
144
  type: :development
139
145
  prerelease: false
140
146
  version_requirements: !ruby/object:Gem::Requirement
141
147
  requirements:
142
148
  - - "~>"
143
149
  - !ruby/object:Gem::Version
144
- version: '1.9'
150
+ version: 1.66.1
145
151
  - !ruby/object:Gem::Dependency
146
152
  name: rails
147
153
  requirement: !ruby/object:Gem::Requirement
148
154
  requirements:
149
155
  - - ">="
150
156
  - !ruby/object:Gem::Version
151
- version: 7.0.0
157
+ version: 7.2.0
152
158
  type: :development
153
159
  prerelease: false
154
160
  version_requirements: !ruby/object:Gem::Requirement
155
161
  requirements:
156
162
  - - ">="
157
163
  - !ruby/object:Gem::Version
158
- version: 7.0.0
164
+ version: 7.2.0
159
165
  - !ruby/object:Gem::Dependency
160
166
  name: rspec-rails
161
167
  requirement: !ruby/object:Gem::Requirement
162
168
  requirements:
163
169
  - - "~>"
164
170
  - !ruby/object:Gem::Version
165
- version: '6.0'
171
+ version: '6.1'
166
172
  type: :development
167
173
  prerelease: false
168
174
  version_requirements: !ruby/object:Gem::Requirement
169
175
  requirements:
170
176
  - - "~>"
171
177
  - !ruby/object:Gem::Version
172
- version: '6.0'
178
+ version: '6.1'
173
179
  - !ruby/object:Gem::Dependency
174
180
  name: rspec-mocks
175
181
  requirement: !ruby/object:Gem::Requirement
176
182
  requirements:
177
183
  - - "~>"
178
184
  - !ruby/object:Gem::Version
179
- version: '3.12'
185
+ version: '3.13'
180
186
  type: :development
181
187
  prerelease: false
182
188
  version_requirements: !ruby/object:Gem::Requirement
183
189
  requirements:
184
190
  - - "~>"
185
191
  - !ruby/object:Gem::Version
186
- version: '3.12'
192
+ version: '3.13'
187
193
  - !ruby/object:Gem::Dependency
188
194
  name: sqlite3
189
195
  requirement: !ruby/object:Gem::Requirement
190
196
  requirements:
191
197
  - - "~>"
192
198
  - !ruby/object:Gem::Version
193
- version: '1.5'
199
+ version: '2.0'
194
200
  type: :development
195
201
  prerelease: false
196
202
  version_requirements: !ruby/object:Gem::Requirement
197
203
  requirements:
198
204
  - - "~>"
199
205
  - !ruby/object:Gem::Version
200
- version: '1.5'
206
+ version: '2.0'
201
207
  description: API, command and message handling for WeChat in Rails
202
208
  email: eric.guocz@gmail.com
203
209
  executables:
@@ -257,8 +263,8 @@ licenses:
257
263
  metadata:
258
264
  bug_tracker_uri: https://github.com/Eric-Guo/wechat/issues
259
265
  changelog_uri: https://github.com/Eric-Guo/wechat/releases
260
- documentation_uri: https://github.com/Eric-Guo/wechat/tree/v0.17.3#readme
261
- source_code_uri: https://github.com/Eric-Guo/wechat/tree/v0.17.3
266
+ documentation_uri: https://github.com/Eric-Guo/wechat/tree/v0.17.5#readme
267
+ source_code_uri: https://github.com/Eric-Guo/wechat/tree/v0.17.5
262
268
  rubygems_mfa_required: 'true'
263
269
  post_install_message:
264
270
  rdoc_options: []
@@ -275,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
275
281
  - !ruby/object:Gem::Version
276
282
  version: 3.1.6
277
283
  requirements: []
278
- rubygems_version: 3.5.3
284
+ rubygems_version: 3.5.22
279
285
  signing_key:
280
286
  specification_version: 4
281
287
  summary: DSL for wechat message handling and API
metadata.gz.sig CHANGED
Binary file