discord_api 0.0.1 → 0.1.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: 87a86b36af7da2e67a7cf1b5ba61abbb3cb3d44132c8b3d4ecc63871090d40a0
4
- data.tar.gz: aee120202417f73ddbcfba36568d15fe3146bd54776c2ee1e95ca4ca880544e8
3
+ metadata.gz: f5b44836b278c5d28cd0a2c6fe4009eae2957b0c6bc803fa9cfcc277b7eb794b
4
+ data.tar.gz: 6b7b1de20d49ba721cdd56409e06ce854973951d0dec7a1e38ca44046dd52da3
5
5
  SHA512:
6
- metadata.gz: 3b9df969d355386214e50684381f991aecdf1e71d02ffe90a0496b78a2d731b5e433ebfdf8cc136602e4e3214f182cd49744a087973736fb3ca2778c43f91e5a
7
- data.tar.gz: 0b04d785a62f2ce440077cb448898816028bd0cc52ecb0e0287306c0f4520b43f9053f6ed07175c29adaa6f347e95aa14f0d99c0acad9de42ef233501f270b4f
6
+ metadata.gz: 5f32b3a7c6103ceedf3455e10ee7ec02d89522b34031c5d8fe546bf31d02103e3afdbf422f9c5876a0d9735f5ae005876015b033e24e448826caa1e004950cb5
7
+ data.tar.gz: 3f14957f832318e5a7c590830fbc0e7ac7f45a32c1299db78d70d8f98a9e764f614410896f41bb5eaa5de6fac8ee2fc5891300b8efda6f8b6386bb8a3bf80f5f
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Discord API
2
2
 
3
- This is a Ruby wrapper for the Discord API. It is currently in development and is not ready for use.
3
+ This is a Ruby library for the Discord HTTP API. **Currently in development**
4
4
 
5
5
  ## Installation
6
6
 
@@ -28,5 +28,79 @@ Firstly you'll need to set either a user token or bot token. Some endpoints are
28
28
 
29
29
  ```ruby
30
30
  # Get the current user
31
+ # Required scope: identify
32
+ # Required scopes if you want the user's email: identify email
31
33
  @client.users.me
34
+
35
+ # Get the user's guilds
36
+ # Required scope: guilds
37
+ @client.users.guilds
38
+ ```
39
+
40
+ ### Channels
41
+
42
+ These endpoints are only accessible using a bot token.
43
+
44
+ ```ruby
45
+ # Retrieve a Channel
46
+ @client.channels.retrieve(id: 123123)
47
+
48
+ # Update a Channel's details
49
+ # https://discord.com/developers/docs/resources/channel#modify-channel
50
+ @client.channels.update(id: 123123, name: "new-channel-name")
51
+ ```
52
+
53
+ ### Messages
54
+
55
+ These endpoints are only accessible using a bot token.
56
+
57
+ ```ruby
58
+ # List messages for a channel
59
+ @client.messages.list(channel_id: 123123)
60
+
61
+ # Get a message
62
+ @client.messages.retrieve(channel_id: 123123, message_id: 123123)
63
+
64
+ # Create a message
65
+ # https://discord.com/developers/docs/resources/channel#create-message
66
+ @client.messages.create(channel_id: 123123, content: "Hello World")
67
+
68
+ # Update a message
69
+ # https://discord.com/developers/docs/resources/channel#edit-message
70
+ @client.messages.update(channel_id: 123123, message_id: 123123, content: "Hello World")
71
+
72
+ # Delete a message
73
+ @client.messages.delete(channel_id: 123123, message_id: 123123)
74
+
75
+ # Bulk delete messages
76
+ @client.messages.bulk_delete(channel_id: 123123, ids: [123123, 321321])
32
77
  ```
78
+
79
+ ### Guilds/Servers
80
+
81
+ These endpoints are only accessible using a bot token.
82
+
83
+ ```ruby
84
+ # Retrieve a Guild's details
85
+ @client.guilds.retrieve(id: 123123)
86
+
87
+ # Update a Guild's details
88
+ # https://discord.com/developers/docs/resources/guild#modify-guild
89
+ @client.guilds.update(id: 123123, name: "new-guild-name")
90
+
91
+ # Retrieve a list of a Guild's channels
92
+ @client.guilds.channels(guild: 123123)
93
+
94
+ # Create a Guild channel
95
+ # https://discord.com/developers/docs/resources/guild#create-guild-channel
96
+ @client.guilds.create_channel(guild: 123123, name: "new-channel-name")
97
+ ```
98
+
99
+ ## Contributing
100
+
101
+ Bug reports and pull requests are welcome on GitHub at https://github.com/deanpcmad/discord_api.
102
+
103
+ ## License
104
+
105
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
106
+
data/Rakefile CHANGED
@@ -6,7 +6,7 @@ require "rake/testtask"
6
6
  Rake::TestTask.new(:test) do |t|
7
7
  t.libs << "test"
8
8
  t.libs << "lib"
9
- t.test_files = FileList["test/**/test_*.rb"]
9
+ t.test_files = FileList["test/**/*_test.rb"]
10
10
  end
11
11
 
12
12
  task default: :test
@@ -14,6 +14,18 @@ module Discord
14
14
  UsersResource.new(self)
15
15
  end
16
16
 
17
+ def guilds
18
+ GuildsResource.new(self)
19
+ end
20
+
21
+ def channels
22
+ ChannelsResource.new(self)
23
+ end
24
+
25
+ def messages
26
+ MessagesResource.new(self)
27
+ end
28
+
17
29
  def connection
18
30
  @connection ||= Faraday.new(BASE_URL) do |conn|
19
31
  if user_access_token
@@ -6,13 +6,13 @@ module Discord
6
6
  body = response.body
7
7
 
8
8
  new(
9
- data: body["data"].map { |attrs| type.new(attrs) },
10
- total: body["data"].count,
11
- cursor: body.dig("pagination", "cursor")
9
+ data: body.map { |attrs| type.new(attrs) },
10
+ total: body.count,
11
+ # cursor: body.dig("pagination", "cursor")
12
12
  )
13
13
  end
14
14
 
15
- def initialize(data:, total:, cursor:)
15
+ def initialize(data:, total:, cursor:nil)
16
16
  @data = data
17
17
  @total = total
18
18
  @cursor = cursor.nil? ? nil : cursor
@@ -0,0 +1,4 @@
1
+ module Discord
2
+ class Channel < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Discord
2
+ class Guild < Object
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Discord
2
+ class Message < Object
3
+ end
4
+ end
@@ -0,0 +1,13 @@
1
+ module Discord
2
+ class ChannelsResource < Resource
3
+
4
+ def retrieve(id:)
5
+ Channel.new get_request("channels/#{id}").body
6
+ end
7
+
8
+ def update(id:, **params)
9
+ Channel.new patch_request("channels/#{id}", body: params).body
10
+ end
11
+
12
+ end
13
+ end
@@ -0,0 +1,24 @@
1
+ module Discord
2
+ class GuildsResource < Resource
3
+
4
+ def retrieve(id:)
5
+ Guild.new get_request("guilds/#{id}").body
6
+ end
7
+
8
+ def update(id:, **params)
9
+ response = patch_request("guilds/#{id}", body: params)
10
+ Guild.new response.body
11
+ end
12
+
13
+ def channels(guild:)
14
+ response = get_request("guilds/#{guild}/channels")
15
+ Collection.from_response(response, type: Channel)
16
+ end
17
+
18
+ def create_channel(guild:, **params)
19
+ response = post_request("guilds/#{guild}/channels", body: params)
20
+ Channel.new response.body
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,32 @@
1
+ module Discord
2
+ class MessagesResource < Resource
3
+
4
+ def list(channel:, **params)
5
+ response = get_request("channels/#{channel}/messages", params: params)
6
+ Collection.from_response(response, type: Message)
7
+ end
8
+
9
+ def retrieve(channel:, message:)
10
+ Message.new get_request("channels/#{channel}/messages/#{message}").body
11
+ end
12
+
13
+ def create(channel:, **params)
14
+ response = post_request("channels/#{channel}/messages", body: params)
15
+ Message.new response.body
16
+ end
17
+
18
+ def update(channel:, id:, **params)
19
+ response = patch_request("channels/#{channel}/messages/#{id}", body: params)
20
+ Message.new response.body
21
+ end
22
+
23
+ def delete(channel:, id:)
24
+ delete_request("channels/#{channel}/messages/#{id}")
25
+ end
26
+
27
+ def bulk_delete(channel:, messages:)
28
+ post_request("channels/#{channel}/messages/bulk-delete", body: {messages: messages})
29
+ end
30
+
31
+ end
32
+ end
@@ -1,10 +1,14 @@
1
1
  module Discord
2
2
  class UsersResource < Resource
3
3
 
4
- # Get the currently authenticated user
5
4
  def me
6
5
  User.new get_request("users/@me").body
7
6
  end
8
7
 
8
+ def guilds
9
+ response = get_request("users/@me/guilds")
10
+ Collection.from_response(response, type: Guild)
11
+ end
12
+
9
13
  end
10
14
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Discord
4
- VERSION = "0.0.1"
4
+ VERSION = "0.1.1"
5
5
  end
data/lib/discord.rb CHANGED
@@ -11,7 +11,13 @@ module Discord
11
11
  autoload :Object, "discord/object"
12
12
 
13
13
  autoload :UsersResource, "discord/resources/users"
14
+ autoload :ChannelsResource, "discord/resources/channels"
15
+ autoload :MessagesResource, "discord/resources/messages"
16
+ autoload :GuildsResource, "discord/resources/guilds"
14
17
 
15
18
  autoload :User, "discord/objects/user"
19
+ autoload :Guild, "discord/objects/guild"
20
+ autoload :Channel, "discord/objects/channel"
21
+ autoload :Message, "discord/objects/message"
16
22
 
17
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: discord_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dean Perry
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-30 00:00:00.000000000 Z
11
+ date: 2023-11-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -41,16 +41,24 @@ files:
41
41
  - lib/discord/collection.rb
42
42
  - lib/discord/error.rb
43
43
  - lib/discord/object.rb
44
+ - lib/discord/objects/channel.rb
45
+ - lib/discord/objects/guild.rb
46
+ - lib/discord/objects/message.rb
44
47
  - lib/discord/objects/user.rb
45
48
  - lib/discord/resource.rb
49
+ - lib/discord/resources/channels.rb
50
+ - lib/discord/resources/guilds.rb
51
+ - lib/discord/resources/messages.rb
46
52
  - lib/discord/resources/users.rb
47
53
  - lib/discord/version.rb
48
54
  - lib/discord_api.rb
49
55
  - sig/discord/api.rbs
50
- homepage:
56
+ homepage: https://github.com/deanpcmad/discord_api
51
57
  licenses:
52
58
  - MIT
53
- metadata: {}
59
+ metadata:
60
+ homepage_uri: https://github.com/deanpcmad/discord_api
61
+ source_code_uri: https://github.com/deanpcmad/discord_api
54
62
  post_install_message:
55
63
  rdoc_options: []
56
64
  require_paths:
@@ -66,8 +74,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
74
  - !ruby/object:Gem::Version
67
75
  version: '0'
68
76
  requirements: []
69
- rubygems_version: 3.4.10
77
+ rubygems_version: 3.4.20
70
78
  signing_key:
71
79
  specification_version: 4
72
- summary: A Ruby wrapper for the Discord API
80
+ summary: Ruby library for the Discord HTTP API
73
81
  test_files: []