telegram_bot 0.0.6 → 0.0.7

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: 03c9fdf2dd790ac15831cf52dbf9731c5b25f90c
4
- data.tar.gz: 37f347c7aa708b631ef28d2a4d0ac71901fbf71e
3
+ metadata.gz: 46b3af1c9c15bfd7fee3afb047af8491f0438be7
4
+ data.tar.gz: c15932937abf729352f39858151060e15ce45cc7
5
5
  SHA512:
6
- metadata.gz: e42072bac136985ae7fc2136767f6f09bd1fc107ff894c8cb007826467187e7b9eb9f635740054c5399174c26e5b4146eb3d9b71c79392da1017acd475d019c1
7
- data.tar.gz: fac54923bad631123829da3cfed92f2de772bc97c4adb39a93f5b8032ee55d40448a134977d9398b3f4a2fa9a7a5f60848bc217ef7a87a41a73cf2dfa71479c5
6
+ metadata.gz: c1877d5b81089d6a5e705455a05ec575972e564f495052124b944a296423ae73fad55457a1e3232dcce385de26a75d83be6fecefc789444d057526a954413bfd
7
+ data.tar.gz: efc71998e43116e210bad3e50fb630c86697f470451dfed1213fbb41ea56da160c4c827ba43666811c59d4fbd33faff622e04b6735757f74da00ba0847f0bb74
data/.gitignore CHANGED
@@ -12,3 +12,4 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
+ /.idea/
@@ -8,6 +8,10 @@ require "telegram_bot/user"
8
8
  require "telegram_bot/group_chat"
9
9
  require "telegram_bot/channel"
10
10
  require "telegram_bot/message"
11
+ require "telegram_bot/keyboard"
12
+ require "telegram_bot/reply_keyboard_hide"
13
+ require "telegram_bot/reply_keyboard_markup"
14
+ require "telegram_bot/force_replay"
11
15
  require "telegram_bot/out_message"
12
16
  require "telegram_bot/update"
13
17
  require "telegram_bot/api_response"
@@ -0,0 +1,22 @@
1
+ module TelegramBot
2
+ class ForceReply < Keyboard
3
+
4
+ # Shows reply interface to the user, as if they manually selected the bot‘s message and tapped ’Reply'
5
+ # Always true
6
+ # attribute :force_reply, Boolean
7
+
8
+ # Optional. Use this parameter if you want to force reply from specific users only.
9
+ # Targets:
10
+ # 1) users that are @mentioned in the text of the Message object;
11
+ # 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.
12
+ attribute :selective, Boolean, :default => false
13
+
14
+ end
15
+
16
+
17
+ def to_h
18
+ h = {force_reply: true}
19
+ h[:selective] = selective unless selective.nil?
20
+ h
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ module TelegramBot
2
+ class Keyboard
3
+ include Virtus.model
4
+ end
5
+ end
@@ -6,6 +6,7 @@ module TelegramBot
6
6
  attribute :reply_to, Message
7
7
  attribute :parse_mode, String
8
8
  attribute :disable_web_page_preview, Boolean
9
+ attribute :reply_markup, Keyboard
9
10
 
10
11
  def send_with(bot)
11
12
  bot.send_message(self)
@@ -24,6 +25,7 @@ module TelegramBot
24
25
  message[:reply_to_message_id] = reply_to.id unless reply_to.nil?
25
26
  message[:parse_mode] = parse_mode unless parse_mode.nil?
26
27
  message[:disable_web_page_preview] = disable_web_page_preview unless disable_web_page_preview.nil?
28
+ message[:reply_markup] = reply_markup.to_h.to_json unless reply_markup.nil?
27
29
 
28
30
  message
29
31
  end
@@ -0,0 +1,31 @@
1
+ module TelegramBot
2
+ #
3
+ # Upon receiving a message with this object, Telegram clients will hide the current custom keyboard
4
+ # and display the default letter-keyboard.
5
+ # By default, custom keyboards are displayed until a new keyboard is sent by a bot.
6
+ # An exception is made for one-time keyboards that are hidden immediately after the user presses a button
7
+ # (see ReplyKeyboardMarkup).
8
+ class ReplyKeyboardHide < Keyboard
9
+
10
+ # Requests clients to hide the custom keyboard
11
+ # Always true
12
+ # attribute :hide_keyboard, Boolean
13
+
14
+ # Optional. Use this parameter if you want to hide keyboard for specific users only.
15
+ # Targets:
16
+ # 1) users that are @mentioned in the text of the Message object;
17
+ # 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.
18
+ #
19
+ # Example: A user votes in a poll,
20
+ # bot returns confirmation message in reply to the vote and hides keyboard for that user,
21
+ # while still showing the keyboard with poll options to users who haven't voted yet.
22
+ attribute :selective, Boolean, :default => false
23
+
24
+ def to_h
25
+ h = { hide_keyboard: true }
26
+ h[:selective] = selective unless selective.nil?
27
+ h
28
+ end
29
+
30
+ end
31
+ end
@@ -0,0 +1,39 @@
1
+ module TelegramBot
2
+ #
3
+ # This object represents a custom keyboard with reply options (see Introduction to bots for details and examples).
4
+ #
5
+ class ReplyKeyboardMarkup < Keyboard
6
+
7
+ # Array of button rows, each represented by an Array of Strings
8
+ attribute :keyboard, Array
9
+
10
+ # Optional. Requests clients to resize the keyboard vertically for optimal fit
11
+ # (e.g., make the keyboard smaller if there are just two rows of buttons).
12
+ # Defaults to false, in which case the custom keyboard is always of the same height as the app's standard keyboard.
13
+ attribute :resize_keyboard, Boolean, :default => false
14
+
15
+ # Optional. Requests clients to hide the keyboard as soon as it's been used.
16
+ # Defaults to false.
17
+ attribute :one_time_keyboard, Boolean, :default => false
18
+
19
+ # Optional. Use this parameter if you want to show the keyboard to specific users only.
20
+ #
21
+ # Targets:
22
+ # 1) users that are @mentioned in the text of the Message object;
23
+ # 2) if the bot's message is a reply (has reply_to_message_id), sender of the original message.
24
+ #
25
+ # Example: A user requests to change the bot‘s language,
26
+ # bot replies to the request with a keyboard to select the new language.
27
+ # Other users in the group don’t see the keyboard.
28
+ attribute :selective, Boolean, :default => false
29
+
30
+ end
31
+
32
+ def to_h
33
+ h = {keyboard: keyboard}
34
+ h[:resize_keyboard] = resize_keyboard unless resize_keyboard.nil?
35
+ h[:one_time_keyboard] = one_time_keyboard unless one_time_keyboard.nil?
36
+ h[:selective] = selective unless selective.nil?
37
+ h
38
+ end
39
+ end
@@ -1,3 +1,3 @@
1
1
  module TelegramBot
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telegram_bot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - José Tomás Albornoz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-22 00:00:00.000000000 Z
11
+ date: 2016-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon
@@ -86,10 +86,14 @@ files:
86
86
  - lib/telegram_bot/api_response.rb
87
87
  - lib/telegram_bot/bot.rb
88
88
  - lib/telegram_bot/channel.rb
89
+ - lib/telegram_bot/force_replay.rb
89
90
  - lib/telegram_bot/group_chat.rb
91
+ - lib/telegram_bot/keyboard.rb
90
92
  - lib/telegram_bot/message.rb
91
93
  - lib/telegram_bot/null_logger.rb
92
94
  - lib/telegram_bot/out_message.rb
95
+ - lib/telegram_bot/reply_keyboard_hide.rb
96
+ - lib/telegram_bot/reply_keyboard_markup.rb
93
97
  - lib/telegram_bot/update.rb
94
98
  - lib/telegram_bot/user.rb
95
99
  - lib/telegram_bot/version.rb