telegrammer 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +1 -1
- data/lib/telegrammer.rb +2 -1
- data/lib/telegrammer/bot.rb +27 -1
- data/lib/telegrammer/data_types/chat.rb +22 -0
- data/lib/telegrammer/data_types/file.rb +16 -0
- data/lib/telegrammer/data_types/message.rb +2 -2
- data/lib/telegrammer/version.rb +1 -1
- metadata +5 -5
- data/lib/telegrammer/data_types/channel.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9ccbe938586bdb894b8bb7da76c5f4f1223e25fb
|
4
|
+
data.tar.gz: d1081a1b521c670e287ac228e962103f574dd386
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 31ca5931228d51197094729224556299b4bcbbf81d9d9da4ef8cdcea90296e15de16fa67305f1d7eef54c8394fe62458654f3892cf3bd861214cbfa07c22d63d
|
7
|
+
data.tar.gz: a7029706230bfe110efac6df6fb32f793278f8b8d7c8ad5d5fe0166abc69825a0e5fcbfdd2afb82d86893b689aaf88df54e2ec7178e874e3e0a8b97a9d5699b2
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
# Telegrammer
|
7
7
|
|
8
|
-
Ruby client for the [Telegram's Bot API](https://core.telegram.org/bots/api).
|
8
|
+
Ruby client for the [Telegram's Bot API](https://core.telegram.org/bots/api). Compliant with the [version 2015-10-08 of the API](https://core.telegram.org/bots/api#recent-changes).
|
9
9
|
|
10
10
|
## Installation
|
11
11
|
|
data/lib/telegrammer.rb
CHANGED
@@ -6,7 +6,7 @@ require 'telegrammer/version'
|
|
6
6
|
|
7
7
|
require 'telegrammer/data_types/base'
|
8
8
|
require 'telegrammer/data_types/audio'
|
9
|
-
require 'telegrammer/data_types/
|
9
|
+
require 'telegrammer/data_types/chat'
|
10
10
|
require 'telegrammer/data_types/contact'
|
11
11
|
require 'telegrammer/data_types/photo_size'
|
12
12
|
require 'telegrammer/data_types/user'
|
@@ -15,6 +15,7 @@ require 'telegrammer/data_types/video'
|
|
15
15
|
require 'telegrammer/data_types/voice'
|
16
16
|
|
17
17
|
require 'telegrammer/data_types/document'
|
18
|
+
require 'telegrammer/data_types/file'
|
18
19
|
require 'telegrammer/data_types/force_reply'
|
19
20
|
require 'telegrammer/data_types/group_chat'
|
20
21
|
require 'telegrammer/data_types/location'
|
data/lib/telegrammer/bot.rb
CHANGED
@@ -400,7 +400,7 @@ module Telegrammer
|
|
400
400
|
|
401
401
|
# Get a list of profile pictures for a user.
|
402
402
|
#
|
403
|
-
# @param [Hash] params hash of paramers to send to the
|
403
|
+
# @param [Hash] params hash of paramers to send to the getUserProfilePhotos API operation.
|
404
404
|
# @option params [Integer] :user_id Required. Unique identifier of the target user.
|
405
405
|
# @option params [Integer] :offset Optional. Sequential number of the first photo to be returned. By default, all photos are returned.
|
406
406
|
# @option params [Integer] :limit Optional. Limits the number of photos to be retrieved. Values between 1—100 are accepted. Defaults to 100.
|
@@ -425,6 +425,32 @@ module Telegrammer
|
|
425
425
|
Telegrammer::DataTypes::UserProfilePhotos.new(response.result)
|
426
426
|
end
|
427
427
|
|
428
|
+
# Get a list of profile pictures for a user.
|
429
|
+
#
|
430
|
+
# @param [Hash] params hash of paramers to send to the sendChatAction API operation.
|
431
|
+
# @option params [Integer] :user_id Required. Unique identifier of the target user.
|
432
|
+
# @option params [Integer] :offset Optional. Sequential number of the first photo to be returned. By default, all photos are returned.
|
433
|
+
# @option params [Integer] :limit Optional. Limits the number of photos to be retrieved. Values between 1—100 are accepted. Defaults to 100.
|
434
|
+
#
|
435
|
+
# @example
|
436
|
+
# bot = Telegrammer::Bot.new('[YOUR TELEGRAM TOKEN]')
|
437
|
+
# bot.get_file(file_id: 123456789)
|
438
|
+
#
|
439
|
+
# @raise [Telegrammer::Errors::BadRequestError]
|
440
|
+
# @raise [Telegrammer::Errors::ServiceUnavailableError] if Telegram servers are down
|
441
|
+
#
|
442
|
+
# @return [String] URL of the file (valid for one hour) or BadRequestError if the file_id is wrong
|
443
|
+
def get_file(params)
|
444
|
+
params_validation = {
|
445
|
+
file_id: { required: true, class: [String] }
|
446
|
+
}
|
447
|
+
|
448
|
+
response = response = api_request("getFile", params, params_validation)
|
449
|
+
file_object = Telegrammer::DataTypes::File.new(response.result)
|
450
|
+
|
451
|
+
"https://api.telegram.org/file/bot#{@api_token}/#{file_object.file_path}"
|
452
|
+
end
|
453
|
+
|
428
454
|
private
|
429
455
|
|
430
456
|
def api_request(action, params, params_validation)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Telegrammer
|
2
|
+
module DataTypes
|
3
|
+
# Telegram Chat data type
|
4
|
+
#
|
5
|
+
# @attr [Integer] id Unique identifier for this chat, not exceeding 1e13 by absolute value
|
6
|
+
# @attr [String] type Type of chat, can be either “private”, or “group”, or “channel”
|
7
|
+
# @attr [String] title Optional. Title, for channels and group chats
|
8
|
+
# @attr [String] username Optional. Username, for private chats and channels if available
|
9
|
+
# @attr [String] first_name Optional. First name of the other party in a private chat
|
10
|
+
# @attr [String] last_name Optional. Last name of the other party in a private chat
|
11
|
+
#
|
12
|
+
# See more at https://core.telegram.org/bots/api#chat
|
13
|
+
class Chat < Telegrammer::DataTypes::Base
|
14
|
+
attribute :id, Integer
|
15
|
+
attribute :type, String
|
16
|
+
attribute :title, String
|
17
|
+
attribute :username, String
|
18
|
+
attribute :first_name, String
|
19
|
+
attribute :last_name, String
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Telegrammer
|
2
|
+
module DataTypes
|
3
|
+
# Telegram File data type.
|
4
|
+
#
|
5
|
+
# @attr [String] file_id Unique identifier for this file
|
6
|
+
# @attr [Integer] file_size Optional. File size, if known
|
7
|
+
# @attr [String] file_path Optional. File path. Use https://api.telegram.org/file/bot<token>/<file_path> to get the file.
|
8
|
+
#
|
9
|
+
# See more at https://core.telegram.org/bots/api#file
|
10
|
+
class File < Telegrammer::DataTypes::Base
|
11
|
+
attribute :file_id, String
|
12
|
+
attribute :file_size, Integer
|
13
|
+
attribute :file_path, String
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -5,7 +5,7 @@ module Telegrammer
|
|
5
5
|
# @attr [Integer] message_id Unique message identifier
|
6
6
|
# @attr [Telegrammer::DataTypes::User] from Sender
|
7
7
|
# @attr [DateTime] date Date the message was sent
|
8
|
-
# @attr [Telegrammer::DataTypes::
|
8
|
+
# @attr [Telegrammer::DataTypes::Chat] chat Conversation the message belongs to
|
9
9
|
# @attr [Telegrammer::DataTypes::User] forward_from Optional. For forwarded messages, sender of the original message
|
10
10
|
# @attr [DateTime] forward_date Optional. For forwarded messages, date the original message was sent
|
11
11
|
# @attr [Telegrammer::DataTypes::Message] reply_to_message Optional. For replies, the original message. Note that the Message object in this field will not contain further reply_to_message fields even if it itself is a reply.
|
@@ -31,7 +31,7 @@ module Telegrammer
|
|
31
31
|
attribute :message_id, Integer
|
32
32
|
attribute :from, User
|
33
33
|
attribute :date, DateTime
|
34
|
-
attribute :chat,
|
34
|
+
attribute :chat, Chat
|
35
35
|
attribute :forward_from, User
|
36
36
|
attribute :forward_date, DateTime
|
37
37
|
attribute :reply_to_message, Message
|
data/lib/telegrammer/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telegrammer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luis Mayoral
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-10-
|
11
|
+
date: 2015-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httpclient
|
@@ -97,9 +97,10 @@ files:
|
|
97
97
|
- lib/telegrammer/bot.rb
|
98
98
|
- lib/telegrammer/data_types/audio.rb
|
99
99
|
- lib/telegrammer/data_types/base.rb
|
100
|
-
- lib/telegrammer/data_types/
|
100
|
+
- lib/telegrammer/data_types/chat.rb
|
101
101
|
- lib/telegrammer/data_types/contact.rb
|
102
102
|
- lib/telegrammer/data_types/document.rb
|
103
|
+
- lib/telegrammer/data_types/file.rb
|
103
104
|
- lib/telegrammer/data_types/force_reply.rb
|
104
105
|
- lib/telegrammer/data_types/group_chat.rb
|
105
106
|
- lib/telegrammer/data_types/location.rb
|
@@ -135,9 +136,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
135
136
|
version: '0'
|
136
137
|
requirements: []
|
137
138
|
rubyforge_project:
|
138
|
-
rubygems_version: 2.4.
|
139
|
+
rubygems_version: 2.4.5.1
|
139
140
|
signing_key:
|
140
141
|
specification_version: 4
|
141
142
|
summary: Ruby client for the Telegram's Bots API
|
142
143
|
test_files: []
|
143
|
-
has_rdoc:
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module Telegrammer
|
2
|
-
module DataTypes
|
3
|
-
# Custom attribute class to handle chat attribute in Telegrammer::DataTypes::Message
|
4
|
-
class Channel < Virtus::Attribute
|
5
|
-
# Transforms a channel into a User object or GroupChat object
|
6
|
-
def coerce(value)
|
7
|
-
value.respond_to?(:first_name) ? User.new(value) : GroupChat.new(value)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|