tgvizor 0.2.0 → 0.3.0

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: dfa3a42c69518ecab7e936a9b6144538e72a98a470371a8bd00b9253bf6049f8
4
- data.tar.gz: 384ffe436ad1e8c37b5a3f049dff970353b25bab32045bdd1f840b9139712ca7
3
+ metadata.gz: f35a3593b31a84a90a63117b8e0f93858b0eb95fa04c90887315049a90f54092
4
+ data.tar.gz: 6d81b6ce5e2b2909aa50c5c28700f1b70b8816800e063260dd166ec7bb67c97d
5
5
  SHA512:
6
- metadata.gz: a26ddda392ce73bbf17eea1b20f037873fb16df2c09f35e7acf038674f99e2bc250d93b5f65f47ed6844924c721059cc9c5bfebebd754b2066204245d4aa4825
7
- data.tar.gz: fd90a0071158fedcda33e9e1814543119122c5212f662b6703433124ad43fe0c51607ad74e0271cb8bdb9b103c276a839d0a354aeea4f174b7bf8ba577485740
6
+ metadata.gz: 49b1339fa9c754f337bc07ba279cf48fbc083de839b8a8e70b296db773cfc269a8132bc68e64cc850c613de661aebfa717ab9f2b1a61ed38d6157c39fa66e6e5
7
+ data.tar.gz: bb106efefe084045e9eaaf6cb387511c4a322fbf03cfea8839719fdb10158da8946b6d920b5e89709b0f43cb4d61263299c0f37a19669cd0f17b60d2492bbcd1
@@ -119,12 +119,12 @@ module TgVizor
119
119
  { event: nil }
120
120
  end
121
121
 
122
- # Chat context (private/group/supergroup/channel) powers the
123
- # dashboard's DM-vs-group breakdown. Prefixed `_` so user properties
124
- # never collide with it.
125
- chat_type = extract_chat_type(update)
126
- if chat_type && classification[:event]
127
- classification[:properties] = (classification[:properties] || {}).merge(_chat_type: chat_type)
122
+ # Chat context (type/id/title) powers the dashboard's DM-vs-group
123
+ # breakdown and group naming. Prefixed `_` so user properties never
124
+ # collide with it.
125
+ chat = extract_chat(update)
126
+ if chat && classification[:event]
127
+ classification[:properties] = (classification[:properties] || {}).merge(chat_properties(chat))
128
128
  end
129
129
 
130
130
  classification
@@ -133,16 +133,22 @@ module TgVizor
133
133
  # Messages carry `chat` directly; callback queries carry it via the
134
134
  # originating message (nil for inline-originated callbacks); inline
135
135
  # queries have no chat at all.
136
- def extract_chat_type(update)
137
- chat =
138
- if update.respond_to?(:chat)
139
- update.chat
140
- else
141
- message = update.respond_to?(:message) ? update.message : nil
142
- message.chat if message && message.respond_to?(:chat)
143
- end
136
+ def extract_chat(update)
137
+ if update.respond_to?(:chat)
138
+ update.chat
139
+ else
140
+ message = update.respond_to?(:message) ? update.message : nil
141
+ message.chat if message && message.respond_to?(:chat)
142
+ end
143
+ end
144
144
 
145
- chat&.respond_to?(:type) ? chat.type : nil
145
+ # `_chat_title` only exists on groups/channels — private chats have none.
146
+ def chat_properties(chat)
147
+ props = {}
148
+ props[:_chat_type] = chat.type if chat.respond_to?(:type) && chat.type
149
+ props[:_chat_id] = chat.id if chat.respond_to?(:id) && chat.id
150
+ props[:_chat_title] = chat.title if chat.respond_to?(:title) && chat.title
151
+ props
146
152
  end
147
153
 
148
154
  def classify_message(message)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TgVizor
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tgvizor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - TGVizor