chatbot_helper-telegram 0.1.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 +7 -0
- data/.gitignore +129 -0
- data/.travis.yml +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +128 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/chatbot_helper-telegram.gemspec +43 -0
- data/lib/chatbot_helper/exceptions.rb +27 -0
- data/lib/chatbot_helper/telegram.rb +47 -0
- data/lib/chatbot_helper/telegram/animation.rb +22 -0
- data/lib/chatbot_helper/telegram/audio.rb +16 -0
- data/lib/chatbot_helper/telegram/base_resource.rb +254 -0
- data/lib/chatbot_helper/telegram/callback_game.rb +11 -0
- data/lib/chatbot_helper/telegram/callback_query.rb +29 -0
- data/lib/chatbot_helper/telegram/chat.rb +16 -0
- data/lib/chatbot_helper/telegram/chat_member.rb +18 -0
- data/lib/chatbot_helper/telegram/chosen_inline_result.rb +29 -0
- data/lib/chatbot_helper/telegram/collection_resource.rb +50 -0
- data/lib/chatbot_helper/telegram/contact.rb +16 -0
- data/lib/chatbot_helper/telegram/document.rb +22 -0
- data/lib/chatbot_helper/telegram/file.rb +16 -0
- data/lib/chatbot_helper/telegram/force_reply.rb +16 -0
- data/lib/chatbot_helper/telegram/game.rb +35 -0
- data/lib/chatbot_helper/telegram/inline_keyboard_button.rb +36 -0
- data/lib/chatbot_helper/telegram/inline_keyboard_markup.rb +16 -0
- data/lib/chatbot_helper/telegram/inline_query.rb +24 -0
- data/lib/chatbot_helper/telegram/keyboard_button.rb +69 -0
- data/lib/chatbot_helper/telegram/location.rb +12 -0
- data/lib/chatbot_helper/telegram/message.rb +55 -0
- data/lib/chatbot_helper/telegram/message_entity.rb +23 -0
- data/lib/chatbot_helper/telegram/photo_size.rb +25 -0
- data/lib/chatbot_helper/telegram/reply_keyboard_markup.rb +20 -0
- data/lib/chatbot_helper/telegram/reply_keyboard_remove.rb +17 -0
- data/lib/chatbot_helper/telegram/response_parameters.rb +13 -0
- data/lib/chatbot_helper/telegram/sticker.rb +22 -0
- data/lib/chatbot_helper/telegram/toolbox.rb +27 -0
- data/lib/chatbot_helper/telegram/update.rb +28 -0
- data/lib/chatbot_helper/telegram/user.rb +16 -0
- data/lib/chatbot_helper/telegram/user_profile_photos.rb +20 -0
- data/lib/chatbot_helper/telegram/venue.rb +22 -0
- data/lib/chatbot_helper/telegram/version.rb +5 -0
- data/lib/chatbot_helper/telegram/video.rb +22 -0
- data/lib/chatbot_helper/telegram/voice.rb +16 -0
- metadata +176 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module ChatbotHelper
|
4
|
+
module Telegram
|
5
|
+
# A toolbox which provides useful internal helpers for this library.
|
6
|
+
#
|
7
|
+
# Please don't use these methods as they are subject to chhange any time
|
8
|
+
# and are not documented in any way.
|
9
|
+
module Toolbox
|
10
|
+
def self.parse_json(string, opts = {})
|
11
|
+
opts[:max_nesting] = false unless opts[:max_nesting]
|
12
|
+
p = JSON.parse(string, opts)
|
13
|
+
return p
|
14
|
+
rescue TypeError, JSON::ParserError => e
|
15
|
+
return nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.generate_json(hash, opts = {})
|
19
|
+
opts[:max_nesting] = false unless opts[:max_nesting]
|
20
|
+
p = JSON.generate(hash, opts)
|
21
|
+
return p
|
22
|
+
rescue JSON::GeneratorError => e
|
23
|
+
return nil
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module ChatbotHelper
|
2
|
+
module Telegram
|
3
|
+
# The update resource which represents a Telegram bot API update
|
4
|
+
class Update < ChatbotHelper::Telegram::BaseResource
|
5
|
+
class << self
|
6
|
+
def required_fields
|
7
|
+
%w[update_id]
|
8
|
+
end
|
9
|
+
|
10
|
+
def optional_objects
|
11
|
+
[
|
12
|
+
{ name: 'message', type: ChatbotHelper::Telegram::Message },
|
13
|
+
{ name: 'edited_message', type: ChatbotHelper::Telegram::Message },
|
14
|
+
{ name: 'channel_post', type: ChatbotHelper::Telegram::Message },
|
15
|
+
{ name: 'edited_channel_post',
|
16
|
+
type: ChatbotHelper::Telegram::Message },
|
17
|
+
{ name: 'inline_query',
|
18
|
+
type: ChatbotHelper::Telegram::InlineQuery },
|
19
|
+
{ name: 'chosen_inline_result',
|
20
|
+
type: ChatbotHelper::Telegram::ChosenInlineResult },
|
21
|
+
{ name: 'callback_query',
|
22
|
+
type: ChatbotHelper::Telegram::CallbackQuery }
|
23
|
+
]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module ChatbotHelper
|
2
|
+
module Telegram
|
3
|
+
# The user resource which represents a Telegram bot API user
|
4
|
+
class User < ChatbotHelper::Telegram::BaseResource
|
5
|
+
class << self
|
6
|
+
def required_fields
|
7
|
+
%w[id first_name]
|
8
|
+
end
|
9
|
+
|
10
|
+
def optional_fields
|
11
|
+
%w[last_name username]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module ChatbotHelper
|
2
|
+
module Telegram
|
3
|
+
# The user_profile_photos resource which represents a Telegram bot API
|
4
|
+
# user_profile_photos
|
5
|
+
class UserProfilePhotos < ChatbotHelper::Telegram::BaseResource
|
6
|
+
class << self
|
7
|
+
def required_fields
|
8
|
+
%w[total_count]
|
9
|
+
end
|
10
|
+
|
11
|
+
def required_arrays
|
12
|
+
[
|
13
|
+
{ name: 'photos',
|
14
|
+
type: ChatbotHelper::Telegram::PhotoSizeCollection }
|
15
|
+
]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module ChatbotHelper
|
2
|
+
module Telegram
|
3
|
+
# The venue resource which represents a Telegram bot API venue
|
4
|
+
class Venue < ChatbotHelper::Telegram::BaseResource
|
5
|
+
class << self
|
6
|
+
def required_fields
|
7
|
+
%w[title address]
|
8
|
+
end
|
9
|
+
|
10
|
+
def optional_fields
|
11
|
+
%w[foursquare_id]
|
12
|
+
end
|
13
|
+
|
14
|
+
def required_objects
|
15
|
+
[
|
16
|
+
{ name: 'location', type: ChatbotHelper::Telegram::Location }
|
17
|
+
]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module ChatbotHelper
|
2
|
+
module Telegram
|
3
|
+
# The video resource which represents a Telegram bot API video
|
4
|
+
class Video < ChatbotHelper::Telegram::BaseResource
|
5
|
+
class << self
|
6
|
+
def required_fields
|
7
|
+
%w[file_id width height duration]
|
8
|
+
end
|
9
|
+
|
10
|
+
def optional_fields
|
11
|
+
%w[mime_type file_size]
|
12
|
+
end
|
13
|
+
|
14
|
+
def optional_objects
|
15
|
+
[
|
16
|
+
{ name: 'thumb', type: ChatbotHelper::Telegram::PhotoSize }
|
17
|
+
]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module ChatbotHelper
|
2
|
+
module Telegram
|
3
|
+
# The voice resource which represents a Telegram bot API voice
|
4
|
+
class Voice < ChatbotHelper::Telegram::BaseResource
|
5
|
+
class << self
|
6
|
+
def required_fields
|
7
|
+
%w[file_id duration]
|
8
|
+
end
|
9
|
+
|
10
|
+
def optional_fields
|
11
|
+
%w[mime_type file_size]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,176 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: chatbot_helper-telegram
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Koray Koska
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-04-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.13'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: simplecov
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: codeclimate-test-reporter
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.0.0
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.0.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: json
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.0'
|
97
|
+
description: This library tries to help working with messages from the Telegram chatbot
|
98
|
+
API. Messages are parsed and useful methods provide all needed information about
|
99
|
+
the message.
|
100
|
+
email:
|
101
|
+
- koray@koska.at
|
102
|
+
executables: []
|
103
|
+
extensions: []
|
104
|
+
extra_rdoc_files: []
|
105
|
+
files:
|
106
|
+
- ".gitignore"
|
107
|
+
- ".travis.yml"
|
108
|
+
- Gemfile
|
109
|
+
- LICENSE.txt
|
110
|
+
- README.md
|
111
|
+
- Rakefile
|
112
|
+
- bin/console
|
113
|
+
- bin/setup
|
114
|
+
- chatbot_helper-telegram.gemspec
|
115
|
+
- lib/chatbot_helper/exceptions.rb
|
116
|
+
- lib/chatbot_helper/telegram.rb
|
117
|
+
- lib/chatbot_helper/telegram/animation.rb
|
118
|
+
- lib/chatbot_helper/telegram/audio.rb
|
119
|
+
- lib/chatbot_helper/telegram/base_resource.rb
|
120
|
+
- lib/chatbot_helper/telegram/callback_game.rb
|
121
|
+
- lib/chatbot_helper/telegram/callback_query.rb
|
122
|
+
- lib/chatbot_helper/telegram/chat.rb
|
123
|
+
- lib/chatbot_helper/telegram/chat_member.rb
|
124
|
+
- lib/chatbot_helper/telegram/chosen_inline_result.rb
|
125
|
+
- lib/chatbot_helper/telegram/collection_resource.rb
|
126
|
+
- lib/chatbot_helper/telegram/contact.rb
|
127
|
+
- lib/chatbot_helper/telegram/document.rb
|
128
|
+
- lib/chatbot_helper/telegram/file.rb
|
129
|
+
- lib/chatbot_helper/telegram/force_reply.rb
|
130
|
+
- lib/chatbot_helper/telegram/game.rb
|
131
|
+
- lib/chatbot_helper/telegram/inline_keyboard_button.rb
|
132
|
+
- lib/chatbot_helper/telegram/inline_keyboard_markup.rb
|
133
|
+
- lib/chatbot_helper/telegram/inline_query.rb
|
134
|
+
- lib/chatbot_helper/telegram/keyboard_button.rb
|
135
|
+
- lib/chatbot_helper/telegram/location.rb
|
136
|
+
- lib/chatbot_helper/telegram/message.rb
|
137
|
+
- lib/chatbot_helper/telegram/message_entity.rb
|
138
|
+
- lib/chatbot_helper/telegram/photo_size.rb
|
139
|
+
- lib/chatbot_helper/telegram/reply_keyboard_markup.rb
|
140
|
+
- lib/chatbot_helper/telegram/reply_keyboard_remove.rb
|
141
|
+
- lib/chatbot_helper/telegram/response_parameters.rb
|
142
|
+
- lib/chatbot_helper/telegram/sticker.rb
|
143
|
+
- lib/chatbot_helper/telegram/toolbox.rb
|
144
|
+
- lib/chatbot_helper/telegram/update.rb
|
145
|
+
- lib/chatbot_helper/telegram/user.rb
|
146
|
+
- lib/chatbot_helper/telegram/user_profile_photos.rb
|
147
|
+
- lib/chatbot_helper/telegram/venue.rb
|
148
|
+
- lib/chatbot_helper/telegram/version.rb
|
149
|
+
- lib/chatbot_helper/telegram/video.rb
|
150
|
+
- lib/chatbot_helper/telegram/voice.rb
|
151
|
+
homepage: https://github.com/Ybrin/chatbot_helper-telegram
|
152
|
+
licenses:
|
153
|
+
- MIT
|
154
|
+
metadata:
|
155
|
+
allowed_push_host: https://rubygems.org
|
156
|
+
post_install_message:
|
157
|
+
rdoc_options: []
|
158
|
+
require_paths:
|
159
|
+
- lib
|
160
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
161
|
+
requirements:
|
162
|
+
- - ">="
|
163
|
+
- !ruby/object:Gem::Version
|
164
|
+
version: '0'
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: '0'
|
170
|
+
requirements: []
|
171
|
+
rubyforge_project:
|
172
|
+
rubygems_version: 2.5.1
|
173
|
+
signing_key:
|
174
|
+
specification_version: 4
|
175
|
+
summary: Easily handle Telegram chatbot messages in Ruby
|
176
|
+
test_files: []
|