wechat 0.17.4 → 0.17.6

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: c7d465a4950bcf9d672e465f6df611380a6ea2f8a7a97609a198db0fc6780078
4
- data.tar.gz: 168f9ac6817424838d68f9fceb240e3509da81bad2927c603ebfb840541a6d3c
3
+ metadata.gz: 7f52a2187b27eeeefa75054f9918a0775220e8306e91da7abfa04de6e15d1dd3
4
+ data.tar.gz: 27c1d1a120fd0283bb585931b6798f2051acb4c72b4ecf6bd99171da77a9e8ad
5
5
  SHA512:
6
- metadata.gz: 17dbc1a4799625793717db99df15e1572342a73cc30d189436c1ab146b632ae86a356a4d943b67811844e6969abd55af2b14562915cf18998d23a2ed0e5c767a
7
- data.tar.gz: bb86b6f6871166000718d217bd4e134072e6c4933dc76e579ffde8004f2f17d9661438b4a50bda76a21e432285329446d4b43705c7c97b9419d9a060da482e6c
6
+ metadata.gz: 5fd77e84ec3ab4a1d6369e6a2563f69f695bbb7613f9d74de699ffc696e1820476682e6612facb8291c7f4632e6ac3c0d0181e256c759696e677906022cfe544
7
+ data.tar.gz: f4027609c8a0148c7c0c9e22bc106b9a49d43bebdae94728c81992a569d837535cbb6978197c406bde8e90bb85f4d14d98cd13fa223fc8a3c6eb0e38a95d4cd7
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## v0.17.6 (released at 2024-10-25)
4
+
5
+ * Support Rails 8.0 now
6
+
7
+ ## v0.17.5 (released at 2024-10-25)
8
+
9
+ * Remove `serialize :hash_store` in template as it's cause too many issue in different rails version.
10
+
3
11
  ## v0.17.4 (released at 2024-08-13)
4
12
 
5
13
  * Fix private API ActiveSupport::Deprecation.warn called in Rails 7.2
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)
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.4
4
+ version: 0.17.6
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-08-13 00:00:00.000000000 Z
39
+ date: 2024-12-11 00:00:00.000000000 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
@@ -47,7 +47,7 @@ dependencies:
47
47
  version: '6.0'
48
48
  - - "<"
49
49
  - !ruby/object:Gem::Version
50
- version: '8'
50
+ version: '9'
51
51
  type: :runtime
52
52
  prerelease: false
53
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -57,7 +57,7 @@ dependencies:
57
57
  version: '6.0'
58
58
  - - "<"
59
59
  - !ruby/object:Gem::Version
60
- version: '8'
60
+ version: '9'
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: http
63
63
  requirement: !ruby/object:Gem::Requirement
@@ -140,42 +140,42 @@ dependencies:
140
140
  requirements:
141
141
  - - "~>"
142
142
  - !ruby/object:Gem::Version
143
- version: 1.64.1
143
+ version: 1.68.0
144
144
  type: :development
145
145
  prerelease: false
146
146
  version_requirements: !ruby/object:Gem::Requirement
147
147
  requirements:
148
148
  - - "~>"
149
149
  - !ruby/object:Gem::Version
150
- version: 1.64.1
150
+ version: 1.68.0
151
151
  - !ruby/object:Gem::Dependency
152
152
  name: rails
153
153
  requirement: !ruby/object:Gem::Requirement
154
154
  requirements:
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: 7.2.0
157
+ version: 8.0.0
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
161
161
  requirements:
162
162
  - - ">="
163
163
  - !ruby/object:Gem::Version
164
- version: 7.2.0
164
+ version: 8.0.0
165
165
  - !ruby/object:Gem::Dependency
166
166
  name: rspec-rails
167
167
  requirement: !ruby/object:Gem::Requirement
168
168
  requirements:
169
169
  - - "~>"
170
170
  - !ruby/object:Gem::Version
171
- version: '6.1'
171
+ version: '7.1'
172
172
  type: :development
173
173
  prerelease: false
174
174
  version_requirements: !ruby/object:Gem::Requirement
175
175
  requirements:
176
176
  - - "~>"
177
177
  - !ruby/object:Gem::Version
178
- version: '6.1'
178
+ version: '7.1'
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: rspec-mocks
181
181
  requirement: !ruby/object:Gem::Requirement
@@ -263,8 +263,8 @@ licenses:
263
263
  metadata:
264
264
  bug_tracker_uri: https://github.com/Eric-Guo/wechat/issues
265
265
  changelog_uri: https://github.com/Eric-Guo/wechat/releases
266
- documentation_uri: https://github.com/Eric-Guo/wechat/tree/v0.17.4#readme
267
- source_code_uri: https://github.com/Eric-Guo/wechat/tree/v0.17.4
266
+ documentation_uri: https://github.com/Eric-Guo/wechat/tree/v0.17.6#readme
267
+ source_code_uri: https://github.com/Eric-Guo/wechat/tree/v0.17.6
268
268
  rubygems_mfa_required: 'true'
269
269
  post_install_message:
270
270
  rdoc_options: []
@@ -281,7 +281,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
281
281
  - !ruby/object:Gem::Version
282
282
  version: 3.1.6
283
283
  requirements: []
284
- rubygems_version: 3.5.17
284
+ rubygems_version: 3.5.23
285
285
  signing_key:
286
286
  specification_version: 4
287
287
  summary: DSL for wechat message handling and API
metadata.gz.sig CHANGED
Binary file