mtproto 0.0.7 → 0.0.8

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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.env.example +4 -0
  3. data/lib/mtproto/async/middleware/base.rb +17 -0
  4. data/lib/mtproto/async/middleware/flood_wait.rb +42 -0
  5. data/lib/mtproto/async/request.rb +18 -0
  6. data/lib/mtproto/async/request_queue.rb +63 -0
  7. data/lib/mtproto/async_client.rb +201 -0
  8. data/lib/mtproto/auth_key_generator.rb +21 -21
  9. data/lib/mtproto/client/rpc.rb +44 -20
  10. data/lib/mtproto/client.rb +49 -15
  11. data/lib/mtproto/rpc/get_config.rb +19 -22
  12. data/lib/mtproto/rpc/get_contacts.rb +12 -5
  13. data/lib/mtproto/rpc/get_updates_difference.rb +23 -5
  14. data/lib/mtproto/rpc/get_updates_state.rb +12 -5
  15. data/lib/mtproto/rpc/get_users.rb +12 -5
  16. data/lib/mtproto/rpc/ping.rb +12 -5
  17. data/lib/mtproto/rpc/send_code.rb +19 -22
  18. data/lib/mtproto/rpc/send_message.rb +21 -5
  19. data/lib/mtproto/rpc/sign_in.rb +23 -27
  20. data/lib/mtproto/{tl → type}/auth_key/dh_gen_response.rb +1 -1
  21. data/lib/mtproto/{tl → type}/auth_key/req_dh_params.rb +1 -1
  22. data/lib/mtproto/{tl → type}/auth_key/req_pq_multi.rb +1 -1
  23. data/lib/mtproto/{tl → type}/auth_key/res_pq.rb +1 -1
  24. data/lib/mtproto/{tl → type}/auth_key/server_dh_params.rb +1 -1
  25. data/lib/mtproto/{tl → type}/auth_key/set_client_dh_params.rb +1 -1
  26. data/lib/mtproto/{tl → type}/bad_msg_notification.rb +1 -1
  27. data/lib/mtproto/{tl → type}/client_dh_inner_data.rb +1 -1
  28. data/lib/mtproto/{tl → type}/code_settings.rb +1 -1
  29. data/lib/mtproto/{tl → type}/config.rb +1 -1
  30. data/lib/mtproto/{tl → type}/gzip_packed.rb +1 -1
  31. data/lib/mtproto/{tl → type}/message.rb +1 -1
  32. data/lib/mtproto/{tl → type}/msg_container.rb +1 -1
  33. data/lib/mtproto/{tl → type}/new_session_created.rb +1 -1
  34. data/lib/mtproto/{tl/p_q_inner_data.rb → type/pq_inner_data.rb} +1 -1
  35. data/lib/mtproto/{tl → type}/rpc/auth/authorization.rb +5 -5
  36. data/lib/mtproto/{tl → type}/rpc/auth/send_code.rb +1 -1
  37. data/lib/mtproto/{tl → type}/rpc/auth/sent_code.rb +7 -7
  38. data/lib/mtproto/{tl → type}/rpc/auth/sign_in.rb +1 -1
  39. data/lib/mtproto/{tl → type}/rpc/contacts/contacts.rb +5 -5
  40. data/lib/mtproto/{tl → type}/rpc/contacts/get_contacts.rb +1 -1
  41. data/lib/mtproto/{tl → type}/rpc/help/config.rb +7 -7
  42. data/lib/mtproto/{tl → type}/rpc/help/get_config.rb +1 -1
  43. data/lib/mtproto/type/rpc/init_connection.rb +28 -0
  44. data/lib/mtproto/type/rpc/invoke_with_layer.rb +19 -0
  45. data/lib/mtproto/{tl → type}/rpc/messages/send_message.rb +1 -1
  46. data/lib/mtproto/{tl → type}/rpc/messages/updates.rb +5 -5
  47. data/lib/mtproto/{tl → type}/rpc/ping.rb +1 -1
  48. data/lib/mtproto/{tl → type}/rpc/pong.rb +1 -1
  49. data/lib/mtproto/{tl → type}/rpc/updates/difference.rb +5 -5
  50. data/lib/mtproto/{tl → type}/rpc/updates/get_difference.rb +1 -1
  51. data/lib/mtproto/{tl → type}/rpc/updates/get_state.rb +1 -1
  52. data/lib/mtproto/{tl → type}/rpc/updates/state.rb +5 -5
  53. data/lib/mtproto/{tl → type}/rpc/users/get_users.rb +1 -1
  54. data/lib/mtproto/{tl → type}/rpc/users/users.rb +5 -5
  55. data/lib/mtproto/{tl → type}/rpc_error.rb +1 -1
  56. data/lib/mtproto/{tl → type}/sent_code.rb +1 -1
  57. data/lib/mtproto/{tl → type}/serializer.rb +1 -1
  58. data/lib/mtproto/{tl → type}/server_dh_inner_data.rb +1 -1
  59. data/lib/mtproto/updates_poller.rb +3 -3
  60. data/lib/mtproto/version.rb +1 -1
  61. data/lib/mtproto.rb +18 -13
  62. metadata +59 -39
  63. data/lib/mtproto/tl/method_builder.rb +0 -29
@@ -4,7 +4,7 @@ require_relative '../../gzip_packed'
4
4
  require_relative '../../rpc_error'
5
5
 
6
6
  module MTProto
7
- module TL
7
+ module Type
8
8
  module RPC
9
9
  module Auth
10
10
  class Authorization
@@ -14,13 +14,13 @@ module MTProto
14
14
  def self.parse(response)
15
15
  constructor = response[0, 4].unpack1('L<')
16
16
 
17
- if constructor == TL::GzipPacked::CONSTRUCTOR
18
- response = TL::GzipPacked.unpack(response)
17
+ if constructor == Type::GzipPacked::CONSTRUCTOR
18
+ response = Type::GzipPacked.unpack(response)
19
19
  constructor = response[0, 4].unpack1('L<')
20
20
  end
21
21
 
22
- if constructor == TL::RpcError::CONSTRUCTOR
23
- error = TL::RpcError.deserialize(response)
22
+ if constructor == Type::RpcError::CONSTRUCTOR
23
+ error = Type::RpcError.deserialize(response)
24
24
  raise MTProto::RpcError.new(error.error_code, error.error_message)
25
25
  end
26
26
 
@@ -4,7 +4,7 @@ require_relative '../../serializer'
4
4
  require_relative '../../code_settings'
5
5
 
6
6
  module MTProto
7
- module TL
7
+ module Type
8
8
  module RPC
9
9
  module Auth
10
10
  class SendCode
@@ -5,25 +5,25 @@ require_relative '../../rpc_error'
5
5
  require_relative '../../sent_code'
6
6
 
7
7
  module MTProto
8
- module TL
8
+ module Type
9
9
  module RPC
10
10
  module Auth
11
11
  class SentCode
12
12
  def self.parse(response)
13
13
  constructor = response[0, 4].unpack1('L<')
14
14
 
15
- if constructor == TL::GzipPacked::CONSTRUCTOR
16
- response = TL::GzipPacked.unpack(response)
15
+ if constructor == Type::GzipPacked::CONSTRUCTOR
16
+ response = Type::GzipPacked.unpack(response)
17
17
  constructor = response[0, 4].unpack1('L<')
18
18
  end
19
19
 
20
- if constructor == TL::RpcError::CONSTRUCTOR
21
- error = TL::RpcError.deserialize(response)
20
+ if constructor == Type::RpcError::CONSTRUCTOR
21
+ error = Type::RpcError.deserialize(response)
22
22
  raise MTProto::RpcError.new(error.error_code, error.error_message)
23
23
  end
24
24
 
25
- if constructor == TL::SentCode::CONSTRUCTOR
26
- sent_code = TL::SentCode.deserialize(response)
25
+ if constructor == Type::SentCode::CONSTRUCTOR
26
+ sent_code = Type::SentCode.deserialize(response)
27
27
  sent_code.to_h
28
28
  else
29
29
  raise UnexpectedConstructorError.new(constructor)
@@ -3,7 +3,7 @@
3
3
  require_relative '../../serializer'
4
4
 
5
5
  module MTProto
6
- module TL
6
+ module Type
7
7
  module RPC
8
8
  module Auth
9
9
  class SignIn
@@ -4,7 +4,7 @@ require_relative '../../gzip_packed'
4
4
  require_relative '../../rpc_error'
5
5
 
6
6
  module MTProto
7
- module TL
7
+ module Type
8
8
  module RPC
9
9
  module Contacts
10
10
  class Contacts
@@ -18,14 +18,14 @@ module MTProto
18
18
  constructor = response[offset, 4].unpack1('L<')
19
19
  offset += 4
20
20
 
21
- if constructor == TL::GzipPacked::CONSTRUCTOR
22
- response = TL::GzipPacked.unpack(response)
21
+ if constructor == Type::GzipPacked::CONSTRUCTOR
22
+ response = Type::GzipPacked.unpack(response)
23
23
  constructor = response[0, 4].unpack1('L<')
24
24
  offset = 4
25
25
  end
26
26
 
27
- if constructor == TL::RpcError::CONSTRUCTOR
28
- error = TL::RpcError.deserialize(response)
27
+ if constructor == Type::RpcError::CONSTRUCTOR
28
+ error = Type::RpcError.deserialize(response)
29
29
  raise MTProto::RpcError.new(error.error_code, error.error_message)
30
30
  end
31
31
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  module RPC
6
6
  module Contacts
7
7
  class GetContacts
@@ -5,25 +5,25 @@ require_relative '../../rpc_error'
5
5
  require_relative '../../config'
6
6
 
7
7
  module MTProto
8
- module TL
8
+ module Type
9
9
  module RPC
10
10
  module Help
11
11
  class Config
12
12
  def self.parse(response)
13
13
  constructor = response[0, 4].unpack1('L<')
14
14
 
15
- if constructor == TL::GzipPacked::CONSTRUCTOR
16
- response = TL::GzipPacked.unpack(response)
15
+ if constructor == Type::GzipPacked::CONSTRUCTOR
16
+ response = Type::GzipPacked.unpack(response)
17
17
  constructor = response[0, 4].unpack1('L<')
18
18
  end
19
19
 
20
- if constructor == TL::RpcError::CONSTRUCTOR
21
- error = TL::RpcError.deserialize(response)
20
+ if constructor == Type::RpcError::CONSTRUCTOR
21
+ error = Type::RpcError.deserialize(response)
22
22
  raise MTProto::RpcError.new(error.error_code, error.error_message)
23
23
  end
24
24
 
25
- if constructor == TL::Config::CONSTRUCTOR || constructor == TL::Config::CONSTRUCTOR_ALT
26
- TL::Config.deserialize(response)
25
+ if constructor == Type::Config::CONSTRUCTOR || constructor == Type::Config::CONSTRUCTOR_ALT
26
+ Type::Config.deserialize(response)
27
27
  else
28
28
  raise UnexpectedConstructorError.new(constructor)
29
29
  end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  module RPC
6
6
  module Help
7
7
  class GetConfig
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../serializer'
4
+
5
+ module MTProto
6
+ module Type
7
+ module RPC
8
+ class InitConnection
9
+ CONSTRUCTOR = 0xc1cd5ea9
10
+
11
+ def self.build(api_id:, device_model:, system_version:, app_version:, system_lang_code:, lang_pack:, lang_code:, query:)
12
+ flags = 0
13
+
14
+ body = [CONSTRUCTOR].pack('L<')
15
+ body += Serializer.serialize_int(flags)
16
+ body += Serializer.serialize_int(api_id)
17
+ body += Serializer.serialize_string(device_model)
18
+ body += Serializer.serialize_string(system_version)
19
+ body += Serializer.serialize_string(app_version)
20
+ body += Serializer.serialize_string(system_lang_code)
21
+ body += Serializer.serialize_string(lang_pack)
22
+ body += Serializer.serialize_string(lang_code)
23
+ body + query
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../serializer'
4
+
5
+ module MTProto
6
+ module Type
7
+ module RPC
8
+ class InvokeWithLayer
9
+ CONSTRUCTOR = 0xda9b0d0d
10
+
11
+ def self.build(layer:, query:)
12
+ body = [CONSTRUCTOR].pack('L<')
13
+ body += Serializer.serialize_int(layer)
14
+ body + query
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -3,7 +3,7 @@
3
3
  require_relative '../../serializer'
4
4
 
5
5
  module MTProto
6
- module TL
6
+ module Type
7
7
  module RPC
8
8
  module Messages
9
9
  class SendMessage
@@ -4,7 +4,7 @@ require_relative '../../gzip_packed'
4
4
  require_relative '../../rpc_error'
5
5
 
6
6
  module MTProto
7
- module TL
7
+ module Type
8
8
  module RPC
9
9
  module Messages
10
10
  class Updates
@@ -20,14 +20,14 @@ module MTProto
20
20
  constructor = response[offset, 4].unpack1('L<')
21
21
  offset += 4
22
22
 
23
- if constructor == TL::GzipPacked::CONSTRUCTOR
24
- response = TL::GzipPacked.unpack(response)
23
+ if constructor == Type::GzipPacked::CONSTRUCTOR
24
+ response = Type::GzipPacked.unpack(response)
25
25
  constructor = response[0, 4].unpack1('L<')
26
26
  offset = 4
27
27
  end
28
28
 
29
- if constructor == TL::RpcError::CONSTRUCTOR
30
- error = TL::RpcError.deserialize(response)
29
+ if constructor == Type::RpcError::CONSTRUCTOR
30
+ error = Type::RpcError.deserialize(response)
31
31
  raise MTProto::RpcError.new(error.error_code, error.error_message)
32
32
  end
33
33
 
@@ -3,7 +3,7 @@
3
3
  require_relative '../serializer'
4
4
 
5
5
  module MTProto
6
- module TL
6
+ module Type
7
7
  module RPC
8
8
  class Ping
9
9
  CONSTRUCTOR = 0x7abe77ec
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  module RPC
6
6
  class Pong
7
7
  CONSTRUCTOR = 0x347773c5
@@ -4,7 +4,7 @@ require_relative '../../gzip_packed'
4
4
  require_relative '../../rpc_error'
5
5
 
6
6
  module MTProto
7
- module TL
7
+ module Type
8
8
  module RPC
9
9
  module Updates
10
10
  class Difference
@@ -30,14 +30,14 @@ module MTProto
30
30
  constructor = response[offset, 4].unpack1('L<')
31
31
  offset += 4
32
32
 
33
- if constructor == TL::GzipPacked::CONSTRUCTOR
34
- response = TL::GzipPacked.unpack(response)
33
+ if constructor == Type::GzipPacked::CONSTRUCTOR
34
+ response = Type::GzipPacked.unpack(response)
35
35
  constructor = response[0, 4].unpack1('L<')
36
36
  offset = 4
37
37
  end
38
38
 
39
- if constructor == TL::RpcError::CONSTRUCTOR
40
- error = TL::RpcError.deserialize(response)
39
+ if constructor == Type::RpcError::CONSTRUCTOR
40
+ error = Type::RpcError.deserialize(response)
41
41
  raise MTProto::RpcError.new(error.error_code, error.error_message)
42
42
  end
43
43
 
@@ -3,7 +3,7 @@
3
3
  require_relative '../../serializer'
4
4
 
5
5
  module MTProto
6
- module TL
6
+ module Type
7
7
  module RPC
8
8
  module Updates
9
9
  class GetDifference
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  module RPC
6
6
  module Updates
7
7
  class GetState
@@ -4,7 +4,7 @@ require_relative '../../gzip_packed'
4
4
  require_relative '../../rpc_error'
5
5
 
6
6
  module MTProto
7
- module TL
7
+ module Type
8
8
  module RPC
9
9
  module Updates
10
10
  class State
@@ -16,14 +16,14 @@ module MTProto
16
16
  constructor = response[offset, 4].unpack1('L<')
17
17
  offset += 4
18
18
 
19
- if constructor == TL::GzipPacked::CONSTRUCTOR
20
- response = TL::GzipPacked.unpack(response)
19
+ if constructor == Type::GzipPacked::CONSTRUCTOR
20
+ response = Type::GzipPacked.unpack(response)
21
21
  constructor = response[0, 4].unpack1('L<')
22
22
  offset = 4
23
23
  end
24
24
 
25
- if constructor == TL::RpcError::CONSTRUCTOR
26
- error = TL::RpcError.deserialize(response)
25
+ if constructor == Type::RpcError::CONSTRUCTOR
26
+ error = Type::RpcError.deserialize(response)
27
27
  raise MTProto::RpcError.new(error.error_code, error.error_message)
28
28
  end
29
29
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  module RPC
6
6
  module Users
7
7
  class GetUsers
@@ -4,7 +4,7 @@ require_relative '../../gzip_packed'
4
4
  require_relative '../../rpc_error'
5
5
 
6
6
  module MTProto
7
- module TL
7
+ module Type
8
8
  module RPC
9
9
  module Users
10
10
  class Users
@@ -17,14 +17,14 @@ module MTProto
17
17
  constructor = response[offset, 4].unpack1('L<')
18
18
  offset += 4
19
19
 
20
- if constructor == TL::GzipPacked::CONSTRUCTOR
21
- response = TL::GzipPacked.unpack(response)
20
+ if constructor == Type::GzipPacked::CONSTRUCTOR
21
+ response = Type::GzipPacked.unpack(response)
22
22
  constructor = response[0, 4].unpack1('L<')
23
23
  offset = 4
24
24
  end
25
25
 
26
- if constructor == TL::RpcError::CONSTRUCTOR
27
- error = TL::RpcError.deserialize(response)
26
+ if constructor == Type::RpcError::CONSTRUCTOR
27
+ error = Type::RpcError.deserialize(response)
28
28
  raise MTProto::RpcError.new(error.error_code, error.error_message)
29
29
  end
30
30
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  class RpcError
6
6
  CONSTRUCTOR = 0x2144ca19
7
7
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  class SentCode
6
6
  CONSTRUCTOR = 0x5e002502
7
7
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  module Serializer
6
6
  module_function
7
7
 
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- module TL
4
+ module Type
5
5
  class ServerDHInnerData
6
6
  CONSTRUCTOR = 0xb5890dba
7
7
 
@@ -31,7 +31,7 @@ module MTProto
31
31
 
32
32
  @running = true
33
33
 
34
- @state = RPC::GetUpdatesState.new(@client).call
34
+ @state = RPC::GetUpdatesState.new(@client).call_sync
35
35
 
36
36
  poll_loop
37
37
  end
@@ -45,7 +45,7 @@ module MTProto
45
45
  def poll_loop
46
46
  while @running
47
47
  begin
48
- difference = RPC::GetUpdatesDifference.new(@client).call(
48
+ difference = RPC::GetUpdatesDifference.new(@client).call_sync(
49
49
  pts: @state[:pts],
50
50
  date: @state[:date],
51
51
  qts: @state[:qts]
@@ -56,7 +56,7 @@ module MTProto
56
56
  if difference[:state]
57
57
  @state = @state.merge(difference[:state])
58
58
  elsif difference[:type] == :too_long
59
- @state = RPC::GetUpdatesState.new(@client).call
59
+ @state = RPC::GetUpdatesState.new(@client).call_sync
60
60
  elsif difference[:date]
61
61
  @state[:date] = difference[:date]
62
62
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MTProto
4
- VERSION = '0.0.7'
4
+ VERSION = '0.0.8'
5
5
  end
data/lib/mtproto.rb CHANGED
@@ -4,19 +4,19 @@ require_relative 'mtproto/version'
4
4
  require_relative 'mtproto/errors'
5
5
  require_relative 'mtproto/transport/abridged_packet_codec'
6
6
  require_relative 'mtproto/transport/tcp_connection'
7
- require_relative 'mtproto/tl/message'
8
- require_relative 'mtproto/tl/serializer'
9
- require_relative 'mtproto/tl/p_q_inner_data'
10
- require_relative 'mtproto/tl/server_dh_inner_data'
11
- require_relative 'mtproto/tl/client_dh_inner_data'
12
- require_relative 'mtproto/tl/bad_msg_notification'
13
- require_relative 'mtproto/tl/msg_container'
14
- require_relative 'mtproto/tl/new_session_created'
15
- require_relative 'mtproto/tl/rpc_error'
16
- require_relative 'mtproto/tl/gzip_packed'
17
- require_relative 'mtproto/tl/config'
18
- require_relative 'mtproto/tl/code_settings'
19
- require_relative 'mtproto/tl/sent_code'
7
+ require_relative 'mtproto/type/message'
8
+ require_relative 'mtproto/type/serializer'
9
+ require_relative 'mtproto/type/pq_inner_data'
10
+ require_relative 'mtproto/type/server_dh_inner_data'
11
+ require_relative 'mtproto/type/client_dh_inner_data'
12
+ require_relative 'mtproto/type/bad_msg_notification'
13
+ require_relative 'mtproto/type/msg_container'
14
+ require_relative 'mtproto/type/new_session_created'
15
+ require_relative 'mtproto/type/rpc_error'
16
+ require_relative 'mtproto/type/gzip_packed'
17
+ require_relative 'mtproto/type/config'
18
+ require_relative 'mtproto/type/code_settings'
19
+ require_relative 'mtproto/type/sent_code'
20
20
  require_relative 'mtproto/crypto/rsa_key'
21
21
  require_relative 'mtproto/crypto/factorization'
22
22
  require_relative 'mtproto/crypto/aes_ige'
@@ -39,6 +39,11 @@ require_relative 'mtproto/rpc/get_updates_state'
39
39
  require_relative 'mtproto/rpc/get_updates_difference'
40
40
  require_relative 'mtproto/rpc/get_contacts'
41
41
  require_relative 'mtproto/updates_poller'
42
+ require_relative 'mtproto/async/request'
43
+ require_relative 'mtproto/async/request_queue'
44
+ require_relative 'mtproto/async/middleware/base'
45
+ require_relative 'mtproto/async/middleware/flood_wait'
46
+ require_relative 'mtproto/async_client'
42
47
 
43
48
  module MTProto
44
49
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mtproto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artem Levenkov
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - "~>"
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0.2'
26
+ - !ruby/object:Gem::Dependency
27
+ name: concurrent-ruby
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '1.3'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '1.3'
26
40
  description: A Ruby library for Telegram MTProto protocol with TCP abridged transport
27
41
  support
28
42
  email:
@@ -39,6 +53,11 @@ files:
39
53
  - ext/factorization/extconf.rb
40
54
  - ext/factorization/factorization.c
41
55
  - lib/mtproto.rb
56
+ - lib/mtproto/async/middleware/base.rb
57
+ - lib/mtproto/async/middleware/flood_wait.rb
58
+ - lib/mtproto/async/request.rb
59
+ - lib/mtproto/async/request_queue.rb
60
+ - lib/mtproto/async_client.rb
42
61
  - lib/mtproto/auth_key_generator.rb
43
62
  - lib/mtproto/client.rb
44
63
  - lib/mtproto/client/rpc.rb
@@ -63,46 +82,47 @@ files:
63
82
  - lib/mtproto/rpc/send_message.rb
64
83
  - lib/mtproto/rpc/sign_in.rb
65
84
  - lib/mtproto/session.rb
66
- - lib/mtproto/tl/auth_key/dh_gen_response.rb
67
- - lib/mtproto/tl/auth_key/req_dh_params.rb
68
- - lib/mtproto/tl/auth_key/req_pq_multi.rb
69
- - lib/mtproto/tl/auth_key/res_pq.rb
70
- - lib/mtproto/tl/auth_key/server_dh_params.rb
71
- - lib/mtproto/tl/auth_key/set_client_dh_params.rb
72
- - lib/mtproto/tl/bad_msg_notification.rb
73
- - lib/mtproto/tl/client_dh_inner_data.rb
74
- - lib/mtproto/tl/code_settings.rb
75
- - lib/mtproto/tl/config.rb
76
- - lib/mtproto/tl/gzip_packed.rb
77
- - lib/mtproto/tl/message.rb
78
- - lib/mtproto/tl/method_builder.rb
79
- - lib/mtproto/tl/msg_container.rb
80
- - lib/mtproto/tl/new_session_created.rb
81
- - lib/mtproto/tl/p_q_inner_data.rb
82
- - lib/mtproto/tl/rpc/auth/authorization.rb
83
- - lib/mtproto/tl/rpc/auth/send_code.rb
84
- - lib/mtproto/tl/rpc/auth/sent_code.rb
85
- - lib/mtproto/tl/rpc/auth/sign_in.rb
86
- - lib/mtproto/tl/rpc/contacts/contacts.rb
87
- - lib/mtproto/tl/rpc/contacts/get_contacts.rb
88
- - lib/mtproto/tl/rpc/help/config.rb
89
- - lib/mtproto/tl/rpc/help/get_config.rb
90
- - lib/mtproto/tl/rpc/messages/send_message.rb
91
- - lib/mtproto/tl/rpc/messages/updates.rb
92
- - lib/mtproto/tl/rpc/ping.rb
93
- - lib/mtproto/tl/rpc/pong.rb
94
- - lib/mtproto/tl/rpc/updates/difference.rb
95
- - lib/mtproto/tl/rpc/updates/get_difference.rb
96
- - lib/mtproto/tl/rpc/updates/get_state.rb
97
- - lib/mtproto/tl/rpc/updates/state.rb
98
- - lib/mtproto/tl/rpc/users/get_users.rb
99
- - lib/mtproto/tl/rpc/users/users.rb
100
- - lib/mtproto/tl/rpc_error.rb
101
- - lib/mtproto/tl/sent_code.rb
102
- - lib/mtproto/tl/serializer.rb
103
- - lib/mtproto/tl/server_dh_inner_data.rb
104
85
  - lib/mtproto/transport/abridged_packet_codec.rb
105
86
  - lib/mtproto/transport/tcp_connection.rb
87
+ - lib/mtproto/type/auth_key/dh_gen_response.rb
88
+ - lib/mtproto/type/auth_key/req_dh_params.rb
89
+ - lib/mtproto/type/auth_key/req_pq_multi.rb
90
+ - lib/mtproto/type/auth_key/res_pq.rb
91
+ - lib/mtproto/type/auth_key/server_dh_params.rb
92
+ - lib/mtproto/type/auth_key/set_client_dh_params.rb
93
+ - lib/mtproto/type/bad_msg_notification.rb
94
+ - lib/mtproto/type/client_dh_inner_data.rb
95
+ - lib/mtproto/type/code_settings.rb
96
+ - lib/mtproto/type/config.rb
97
+ - lib/mtproto/type/gzip_packed.rb
98
+ - lib/mtproto/type/message.rb
99
+ - lib/mtproto/type/msg_container.rb
100
+ - lib/mtproto/type/new_session_created.rb
101
+ - lib/mtproto/type/pq_inner_data.rb
102
+ - lib/mtproto/type/rpc/auth/authorization.rb
103
+ - lib/mtproto/type/rpc/auth/send_code.rb
104
+ - lib/mtproto/type/rpc/auth/sent_code.rb
105
+ - lib/mtproto/type/rpc/auth/sign_in.rb
106
+ - lib/mtproto/type/rpc/contacts/contacts.rb
107
+ - lib/mtproto/type/rpc/contacts/get_contacts.rb
108
+ - lib/mtproto/type/rpc/help/config.rb
109
+ - lib/mtproto/type/rpc/help/get_config.rb
110
+ - lib/mtproto/type/rpc/init_connection.rb
111
+ - lib/mtproto/type/rpc/invoke_with_layer.rb
112
+ - lib/mtproto/type/rpc/messages/send_message.rb
113
+ - lib/mtproto/type/rpc/messages/updates.rb
114
+ - lib/mtproto/type/rpc/ping.rb
115
+ - lib/mtproto/type/rpc/pong.rb
116
+ - lib/mtproto/type/rpc/updates/difference.rb
117
+ - lib/mtproto/type/rpc/updates/get_difference.rb
118
+ - lib/mtproto/type/rpc/updates/get_state.rb
119
+ - lib/mtproto/type/rpc/updates/state.rb
120
+ - lib/mtproto/type/rpc/users/get_users.rb
121
+ - lib/mtproto/type/rpc/users/users.rb
122
+ - lib/mtproto/type/rpc_error.rb
123
+ - lib/mtproto/type/sent_code.rb
124
+ - lib/mtproto/type/serializer.rb
125
+ - lib/mtproto/type/server_dh_inner_data.rb
106
126
  - lib/mtproto/updates_poller.rb
107
127
  - lib/mtproto/version.rb
108
128
  - tmp/.keep