wechat 0.17.3 → 0.17.5

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
  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