xasin-telegram 0.2 → 0.2.1

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: ca600743456b5d6b4114c81e9088714a8bada45d
4
- data.tar.gz: ea9dcfbd3270f0f47e8665af6757680701268eb7
3
+ metadata.gz: 0f3ca644e1e5d77120315bfd33be84caca0c66ef
4
+ data.tar.gz: b88593045f6338ad204bfefcdade20fff9ec0cf9
5
5
  SHA512:
6
- metadata.gz: b703ae37d7171d40fced2228c328f7040a6680081146609aaaa068e3d03199982a5224e5fe3d8535090db5008f3faa8641d03f1c6c530f7f13f788fce886f477
7
- data.tar.gz: 1ed6375349b5c692049f19fcd9e38c9471d407f42a42574cde4d7d133a00a160bb4cc1a334aecf1a1fc002ae7c0fd672b992a6372d31acdfea45527518a9869b
6
+ metadata.gz: 82b65f87cb2d4b341a086bb748a48ee7a73ade189eee2e2ac21933f21352b149e0fef778ebb54ef1d932f0afdb2bdacd196ed3dc253fb625048b96c39eee26f8
7
+ data.tar.gz: 8b297c561c50a537a740a701bbb263adbffc2c596951ef7ae52d3680c8fff46e078dec39a794d51d53cef7a30d551ce932a1e4087b466fa13b4e34765c35a89c
@@ -32,20 +32,18 @@ module Telegram
32
32
  return nil unless (keyboardLayout.is_a? Array)
33
33
  return nil unless gID
34
34
 
35
+
36
+ keyboardLayout = [keyboardLayout] unless(keyboardLayout[0].is_a? Array);
35
37
  outData = Array.new();
36
- if(keyboardLayout[0].is_a? String) then
37
- keyboardLayout.each do |key|
38
- outData << {text: key, callback_data: "#{gID}:#{key}"}
39
- end
40
- outData = [outData];
41
- else
42
- keyboardLayout.each do |row|
43
- newRow = Array.new();
44
- row.each do |key|
45
- newRow << {text: key, callback_data: "#{gID}:#{key}"}
46
- end
47
- outData << newRow
38
+
39
+ keyboardLayout.each do |row|
40
+ newRow = Array.new();
41
+
42
+ row.each do |key, val|
43
+ cbd = {i: gID, k: (val or key)};
44
+ newRow << {text: key, callback_data: cbd.to_json}
48
45
  end
46
+ outData << newRow;
49
47
  end
50
48
 
51
49
  return {inline_keyboard: outData};
@@ -76,15 +74,15 @@ module Telegram
76
74
  text: data[:text]
77
75
  }
78
76
 
79
- if(ilk = data[:inline_keyboard] and data[:GID])
80
- outData[:reply_markup] = _process_inline_keyboard(ilk, data[:GID]);
77
+ if(ilk = data[:inline_keyboard] and data[:gid])
78
+ outData[:reply_markup] = _process_inline_keyboard(ilk, data[:gid]);
81
79
  end
82
80
 
83
81
  reply = @httpCore.perform_post("sendMessage", outData);
84
82
  return unless reply[:ok]
85
83
 
86
84
  # Check if this message has a grouping ID
87
- if(gID = data[:GID])
85
+ if(gID = data[:gid])
88
86
  # If the message has the :single flag, delete the last one
89
87
  if(data[:single])
90
88
  _handle_delete(gID, uID);
@@ -105,7 +103,7 @@ module Telegram
105
103
 
106
104
  return unless data[:text];
107
105
  # Fetch the target Message ID
108
- return unless mID = @groupIDList[uID][data[:GID]]
106
+ return unless mID = @groupIDList[uID][data[:gid]]
109
107
 
110
108
  outData = {
111
109
  chat_id: uID,
@@ -174,10 +172,14 @@ module Telegram
174
172
  return unless(data[:text] = msg[:text])
175
173
 
176
174
  if(replyMSG = msg[:reply_to_message])
177
- data[:reply_GID] = @groupIDList[uID].key(replyMSG[:message_id]);
175
+ data[:reply_gid] = @groupIDList[uID].key(replyMSG[:message_id]);
178
176
  end
179
177
 
180
- if(data[:reply_GID])
178
+ if(data[:text] =~ /^\//)
179
+ @mqtt.publish_to "Telegram/#{uID}/Command", data.to_json;
180
+ end
181
+
182
+ if(data[:reply_gid])
181
183
  @mqtt.publish_to "Telegram/#{uID}/Reply", data.to_json;
182
184
  else
183
185
  @mqtt.publish_to "Telegram/#{uID}/Received", data.to_json;
@@ -193,7 +195,15 @@ module Telegram
193
195
  end
194
196
 
195
197
  return unless /(\S+):(\S+)/ =~ msg[:data]
196
- @mqtt.publish_to "Telegram/#{uID}/KeyboardPress", {GID: $1, key: $2}
198
+ begin
199
+ data = JSON.parse(msg[:data], symbolize_names: true);
200
+
201
+ if(data[:k] =~ /^\//)
202
+ @mqtt.publish_to "Telegram/#{uID}/Command", {text: data[:k]}.to_json
203
+ end
204
+ @mqtt.publish_to "Telegram/#{uID}/KeyboardPress", data.to_json
205
+ rescue
206
+ end
197
207
  end
198
208
  end
199
209
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xasin-telegram
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xasin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-14 00:00:00.000000000 Z
11
+ date: 2018-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mqtt-sub_handler