telerb 0.1.1 → 0.1.3

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: 2eb70663a11c93169a9b1499a8a4c6a2290d4482fc022fd495bf3cc8eb4f05d8
4
- data.tar.gz: 6df1d4ed6f24f4fc33245f8593f1eca7c15ab442ef9b94d23d6d5e8126b7f61b
3
+ metadata.gz: f3db2e928c39d62a55c8d9a16bf1b1d6efe3f3022acb0e516ae8f62cc317aa68
4
+ data.tar.gz: 27f16654ae9420a8369d2beec14199c225139eac7dd8adccb46387e4cd1bb4f1
5
5
  SHA512:
6
- metadata.gz: 76b8dea62d0519a382fd14d020d619b9f42d471246b452a9918173ac669add4c396338167b719f81848a7305c899b6b413830b6f3c2a082fac47011bf5c5f6ba
7
- data.tar.gz: f4a7ac3d109cac951537ff5e330cc598daaf270cc8026e8a40c779d2ae1a204f50322308e45ec568bdb289cbe6f7c98fa4d0966928919982db9efe236cb64ac5
6
+ metadata.gz: be06d05d8992bc2fbd85b6589db0b7728d88dfd2e4d177f54d2224b18f2782dd038522083868fb0855bb0b36ee9387fcb69cdfcdefc448e3ad958fe3fbae7c53
7
+ data.tar.gz: fbd917d08644cdaab74b525f1d96004cb901247d491bda396017805cfdaa522d8712b26a76e163b1d055e43bcfcf395a9046d7cc6b81fc817a5a6b410f78fa16
data/CHANGELOG.md CHANGED
@@ -3,3 +3,19 @@
3
3
  ## [0.1.0] - 2024-04-06
4
4
 
5
5
  - Initial release
6
+
7
+ ## [0.1.1] - 2024-04-07
8
+
9
+ - Implement the photo sending method
10
+
11
+ - Improvements to the http service
12
+
13
+ ## [0.1.2] - 2024-04-07
14
+
15
+ - Add error handling to methods
16
+ - Implements The Audio, Video, Document sending method
17
+ - Improvement in media delivery Service
18
+
19
+ ## [0.1.3] - 2024-04-08
20
+
21
+ - Implement the methods to define the commands and obtain the defined commands
data/README.md CHANGED
@@ -14,8 +14,10 @@ If bundler is not being used to manage dependencies, install the gem by executin
14
14
 
15
15
  ## Usage
16
16
 
17
+ ### Initialize Bot
17
18
 
18
19
  ```
20
+
19
21
  require 'telerb'
20
22
 
21
23
  # Create a bot instance
@@ -28,12 +30,40 @@ bot.listen do |message|
28
30
  message_id = message['message_id']
29
31
  # Send a text message
30
32
  bot.send_message(chat_id, 'Hello World', message_id)
31
- # Send a Photo
32
- bot.send_photo(chat_id, "./exemple.png", "test", message_id)
33
33
  end
34
+
34
35
  ```
35
36
  The ***message_id*** parameter is only necessary if you want the message to be sent as a reply.
36
37
 
38
+ ### Send Medias
39
+ ```
40
+
41
+ # Send a Photo
42
+ bot.send_photo(chat_id, "./exemple.png", "test", message_id)
43
+ # Send Document
44
+ bot.send_document(chat_id, "./exemple.rar", "test", message_id)
45
+ # Send Audio
46
+ bot.send_audio(chat_id, "./exemple.mp3", "test", message_id)
47
+ # Send Video
48
+ bot.send_video(chat_id, "./exemple.mp4", "test", message_id)
49
+
50
+ ```
51
+ ### Commands
52
+ ```
53
+
54
+ COMMANDS = [
55
+ { command: "/start", description: "Start bot" },
56
+ { command: "/help", description: "Show command list" }
57
+ ].freeze
58
+
59
+ # Method that records bot commands
60
+ bot.set_commands(COMMANDS)
61
+
62
+ # Method that returns the available commands
63
+ bot.get_commands
64
+
65
+ ```
66
+
37
67
  ## Development
38
68
 
39
69
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -50,4 +80,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
50
80
 
51
81
  ## Code of Conduct
52
82
 
53
- Everyone interacting in the TelegrambotRuby project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/codebyallan/TeleRb/blob/master/CODE_OF_CONDUCT.md).
83
+ Everyone interacting in the TeleRb project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/codebyallan/TeleRb/blob/master/CODE_OF_CONDUCT.md).
@@ -4,7 +4,7 @@ require "httparty"
4
4
  # Class responsability for http services
5
5
  class HttpClient
6
6
  include HTTParty
7
- def get(url, options)
7
+ def get(url, options = nil)
8
8
  self.class.get(url, query: options)
9
9
  end
10
10
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TeleRb
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.3"
5
5
  end
data/lib/telerb.rb CHANGED
@@ -24,31 +24,80 @@ module TeleRb
24
24
  block.call update["message"] if block_given? && update["message"]
25
25
  @offset = update["update_id"] + 1
26
26
  end
27
- sleep 2
27
+ rescue StandardError => e
28
+ puts "Error in listen method: #{e.message}"
28
29
  end
30
+ sleep 2
29
31
  end
30
32
 
31
33
  def send_message(chat_id, text, reply_to_message_id = nil)
32
- response = CLIENT.post("#{@base_uri}#{@token}/sendMessage",
33
- { chat_id: chat_id, text: text, reply_to_message_id: reply_to_message_id })
34
- response.parsed_response
34
+ CLIENT.post("#{@base_uri}#{@token}/sendMessage",
35
+ { chat_id: chat_id, text: text, reply_to_message_id: reply_to_message_id })
36
+ "Message sent successfully!"
37
+ rescue StandardError => e
38
+ puts "Error sending message: #{e.message}"
39
+ nil
35
40
  end
36
41
 
37
42
  def send_photo(chat_id, photo_path, caption = nil, reply_to_message_id = nil)
38
- response = CLIENT.post("#{@base_uri}#{@token}/sendPhoto",
39
- {
40
- chat_id: chat_id,
41
- reply_to_message_id: reply_to_message_id,
42
- photo: File.new(photo_path, "rb"),
43
- caption: caption
44
- },
45
- { "Content-Type" => "multipart/form-data" })
46
- response.parsed_response
43
+ send_media(chat_id, photo_path, caption, reply_to_message_id, "sendPhoto", :photo)
44
+ end
45
+
46
+ def send_audio(chat_id, audio_path, caption = nil, reply_to_message_id = nil)
47
+ send_media(chat_id, audio_path, caption, reply_to_message_id, "sendAudio", :audio)
48
+ end
49
+
50
+ def send_video(chat_id, video_path, caption = nil, reply_to_message_id = nil)
51
+ send_media(chat_id, video_path, caption, reply_to_message_id, "sendVideo", :video)
52
+ end
53
+
54
+ def send_document(chat_id, document_path, caption = nil, reply_to_message_id = nil)
55
+ send_media(chat_id, document_path, caption, reply_to_message_id, "sendDocument", :document)
56
+ end
57
+
58
+ def get_commands
59
+ response = CLIENT.get("#{@base_uri}#{@token}/getMyCommands")
60
+ response.parsed_response["result"]
61
+ rescue StandardError => e
62
+ puts "Error getting list of defined commands: #{e.message}"
63
+ nil
64
+ end
65
+
66
+ def set_commands(commands)
67
+ CLIENT.post("#{@base_uri}#{@token}/setMyCommands", { commands: commands }.to_json,
68
+ { "Content-Type" => "application/json" })
69
+ "Commands set successfully"
70
+ rescue StandardError => e
71
+ puts "Error defining command list: #{e.message}"
72
+ nil
73
+ end
74
+
75
+ private
76
+
77
+ def send_media(chat_id, media_path, caption = nil, reply_to_message_id = nil, method, filekey)
78
+ raise ArgumentError, "Invalid media type: {#{filekey.capitalize}" unless %i[photo audio video
79
+ document].include?(filekey)
80
+
81
+ CLIENT.post("#{@base_uri}#{@token}/#{method}",
82
+ {
83
+ chat_id: chat_id,
84
+ reply_to_message_id: reply_to_message_id,
85
+ filekey.to_sym => File.new(media_path, "rb"),
86
+ caption: caption
87
+ },
88
+ { "Content-Type" => "multipart/form-data" })
89
+ "#{filekey.capitalize} Sent with success!"
90
+ rescue StandardError => e
91
+ puts "Error when sending #{filekey.capitalize}: #{e.message}"
92
+ nil
47
93
  end
48
94
 
49
95
  def get_updates(offset = nil)
50
96
  response = CLIENT.get("#{@base_uri}#{@token}/getUpdates", { offset: offset })
51
97
  response.parsed_response["result"]
98
+ rescue StandardError => e
99
+ puts "Error in get_updates method: #{e.message}"
100
+ []
52
101
  end
53
102
  end
54
103
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: telerb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - CodeByAllan
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-04-07 00:00:00.000000000 Z
11
+ date: 2024-04-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Ruby library to interact with the Telegram API and create custom bots.
14
14
  email: