kanal-interfaces-telegram 0.1.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ec97da09dbf6a19e7b65b361c5b7ab53b735a265ba0ed0eb80bd1451ab476a71
4
- data.tar.gz: b5a7ba8bbf3d590d39babc65445942c433491205985403c1c51575e0ca63fc0a
3
+ metadata.gz: 214fdfb6f4940364c3169b9db39c19276bb9c435ac0204f81b7a2943fb90b1ed
4
+ data.tar.gz: 97f7f66f82039c0722ba552a8929739a04fa2b8f6e78a8142a6ec44bdbd4babe
5
5
  SHA512:
6
- metadata.gz: 359c32decdf13beb0e80e78c1ac6ae660886fd0e781514cd5d19c4ad0ecd844a713ac1152af92ede60a703e51ad59707bbe05f057988306e1fd48511b99e40f3
7
- data.tar.gz: 34d5fa6508289862c9f68be3fb435a3db12d284cb28668bb1c221130f0f907b0e59b139ae8dbe0e67bf736128e0bc8f59e2a0c4f9dbfcda25715fe031ae757aa
6
+ metadata.gz: 8257d35fc51f48850dcf32707c92b25449470c121c28096178a19433cb62f33f2c89fd6f3dbea9934542de2d23d033ef12c6a4a8e44d9573cf68da3264bd8e34
7
+ data.tar.gz: 134c37797653dec0f74baa42e7e6db3a2ffbc238451bd55d607e74f9cc992f9a8ed0e5b71711bbaa1725980ea2ea55c38a8698ee59dd08b44b839e9eeea5a1e8
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.2.0] - 2023-01-30
4
+
5
+ - Library now can send images via .tg_image_path
6
+ - Populating separate field in input
7
+ - Using output.tg_chat_id and not the one inside interface, this is preparations for future sending outputs in separate methods... Probably
8
+
3
9
  ## [0.1.0] - 2022-11-21
4
10
 
5
11
  - Initial release
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- kanal-interfaces-telegram (0.1.2)
4
+ kanal-interfaces-telegram (0.2.1)
5
5
  telegram-bot-ruby
6
6
 
7
7
  GEM
@@ -17,8 +17,16 @@ module Kanal
17
17
 
18
18
  def register_parameters(core)
19
19
  core.register_input_parameter :tg_message, readonly: true
20
+ core.register_input_parameter :tg_text, readonly: true
21
+ core.register_input_parameter :tg_chat_id, readonly: true
22
+ core.register_input_parameter :tg_username, readonly: true
23
+
24
+ core.register_output_parameter :tg_chat_id
20
25
  core.register_output_parameter :tg_text
21
26
  core.register_output_parameter :tg_reply_markup
27
+ core.register_output_parameter :tg_image_path
28
+ core.register_output_parameter :tg_audio_path
29
+ core.register_output_parameter :tg_document_path
22
30
  end
23
31
 
24
32
  def register_hooks(core)
@@ -27,11 +35,12 @@ module Kanal
27
35
  end
28
36
 
29
37
  core.hooks.attach :input_before_router do |input|
30
- input.body = input.tg_message.text
38
+ input.body = input.tg_text
31
39
  end
32
40
 
33
41
  core.hooks.attach :output_before_returned do |input, output|
34
42
  output.tg_text = output.body
43
+ output.tg_chat_id = input.tg_chat_id
35
44
  end
36
45
  end
37
46
  end
@@ -26,16 +26,50 @@ module Kanal
26
26
  input = @core.create_input
27
27
 
28
28
  input.tg_message = message
29
+ input.tg_text = message.text
30
+ input.tg_chat_id = message.chat.id
31
+ input.tg_username = message.try(:chat).try(:username) || input.tg_message.try(:from).try(:username)
29
32
 
30
33
  output = router.create_output_for_input input
31
34
 
32
35
  bot.api.send_message(
33
- chat_id: message.chat.id,
36
+ chat_id: output.tg_chat_id,
34
37
  text: output.tg_text,
35
38
  reply_markup: output.tg_reply_markup
36
39
  )
40
+
41
+ image_path = output.tg_image_path
42
+
43
+ if image_path && File.exist?(image_path)
44
+ bot.api.send_photo(
45
+ chat_id: message.chat.id,
46
+ photo: Faraday::UploadIO.new(image_path, guess_mimetype(image_path))
47
+ )
48
+ end
49
+ end
50
+ end
51
+ end
52
+
53
+ private
54
+
55
+ def guess_mimetype(filename)
56
+ images = {
57
+ "image/jpeg" => %w[jpg jpeg],
58
+ "image/png" => ["png"],
59
+ "image/bmp" => ["bmp"]
60
+ }
61
+
62
+ # TODO: rewrite with .find or .each
63
+ for pack in [images] do
64
+ for mime, types in pack do
65
+ for type in types do
66
+ return mime if filename.include? type
67
+ end
37
68
  end
38
69
  end
70
+
71
+
72
+ "application/octet-stream"
39
73
  end
40
74
  end
41
75
  end
@@ -3,7 +3,7 @@
3
3
  module Kanal
4
4
  module Interfaces
5
5
  module Telegram
6
- VERSION = "0.1.2"
6
+ VERSION = "0.2.1"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kanal-interfaces-telegram
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - idchlife
@@ -47,7 +47,6 @@ files:
47
47
  - lib/kanal/interfaces/telegram/plugins/telegram_integration_plugin.rb
48
48
  - lib/kanal/interfaces/telegram/telegram_interface.rb
49
49
  - lib/kanal/interfaces/telegram/version.rb
50
- - pep.rb
51
50
  - sig/kanal/interfaces/telegram.rbs
52
51
  homepage: https://github.com/idchlife/kanal-interfaces-telegram
53
52
  licenses:
data/pep.rb DELETED
@@ -1,8 +0,0 @@
1
- a = nil
2
-
3
- until a.is_a?(Numeric) do
4
- puts "Введите первое число:"
5
- input = STDIN.gets.chomp
6
-
7
- a = Integer(input, exception: false)
8
- end