khl 1.0.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.
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KHL
4
+ module WebSocket
5
+ class Message
6
+ TYPES = %i[
7
+ event
8
+ hello
9
+ ping
10
+ pong
11
+ resume
12
+ reconnect
13
+ resume_ack
14
+ ].freeze
15
+
16
+ attr_accessor :type, :data, :sn
17
+
18
+ def self.parse(raw)
19
+ return unless raw
20
+
21
+ data = JSON.parse(raw)
22
+ message = Message.new
23
+ message.type = TYPES[data["s"]]
24
+ message.data = data["d"]
25
+ message.sn = data["sn"]
26
+ message
27
+ end
28
+
29
+ def initialize(type: nil, data: nil, sn: nil)
30
+ @type = type
31
+ @data = data
32
+ @sn = sn
33
+ end
34
+
35
+ def to_h
36
+ {
37
+ s: TYPES.index(type),
38
+ d: data,
39
+ sn: sn
40
+ }
41
+ end
42
+
43
+ def to_json
44
+ to_h.to_json
45
+ end
46
+
47
+ TYPES.each do |type|
48
+ define_method("#{type}?") do
49
+ @type == type
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
data/lib/khl.rb ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "khl/http/client"
4
+ require_relative "khl/web_socket/client"
5
+
6
+ module KHL; end
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: khl
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Dounx
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-03-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '7.0'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 7.0.2.3
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '7.0'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 7.0.2.3
33
+ - !ruby/object:Gem::Dependency
34
+ name: faye-websocket
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: 0.11.1
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: 0.11.1
47
+ description: Ruby SDK for 开黑啦
48
+ email:
49
+ - imdounx@gmail.com
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - CHANGELOG.md
55
+ - README.md
56
+ - lib/khl.rb
57
+ - lib/khl/http/asset.rb
58
+ - lib/khl/http/badge.rb
59
+ - lib/khl/http/base.rb
60
+ - lib/khl/http/blacklist.rb
61
+ - lib/khl/http/channel.rb
62
+ - lib/khl/http/channel_role.rb
63
+ - lib/khl/http/channel_user.rb
64
+ - lib/khl/http/client.rb
65
+ - lib/khl/http/direct_message.rb
66
+ - lib/khl/http/game.rb
67
+ - lib/khl/http/gateway.rb
68
+ - lib/khl/http/guild.rb
69
+ - lib/khl/http/guild_emoji.rb
70
+ - lib/khl/http/guild_mute.rb
71
+ - lib/khl/http/guild_role.rb
72
+ - lib/khl/http/intimacy.rb
73
+ - lib/khl/http/invite.rb
74
+ - lib/khl/http/message.rb
75
+ - lib/khl/http/response.rb
76
+ - lib/khl/http/user.rb
77
+ - lib/khl/http/user_chat.rb
78
+ - lib/khl/version.rb
79
+ - lib/khl/web_socket/client.rb
80
+ - lib/khl/web_socket/message.rb
81
+ homepage: https://github.com/DessertShop/KHL
82
+ licenses:
83
+ - MIT
84
+ metadata:
85
+ bug_tracker_uri: https://github.com/DessertShop/KHL/issues
86
+ changelog_uri: https://github.com/DessertShop/KHL/blob/master/CHANGELOG.md
87
+ documentation_uri: https://github.com/DessertShop/KHL/blob/master/README.md
88
+ source_code_uri: https://github.com/DessertShop/KHL
89
+ post_install_message:
90
+ rdoc_options: []
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 2.7.0
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubygems_version: 3.2.33
105
+ signing_key:
106
+ specification_version: 4
107
+ summary: Ruby SDK for 开黑啦
108
+ test_files: []