discordrb-webhooks 0.1.0 → 3.4.2
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 +5 -5
- data/lib/discordrb/webhooks/builder.rb +4 -0
- data/lib/discordrb/webhooks/client.rb +4 -6
- data/lib/discordrb/webhooks/embeds.rb +62 -32
- data/lib/discordrb/webhooks/version.rb +1 -1
- metadata +8 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 44effaadc7c29e9e3e22abf7c4d01ba2a93495383de144e30816a41ed4c630b1
|
4
|
+
data.tar.gz: 6a5313cd404e6bf577cc2a34809ce5df22c17d1be58fcc65b0abb75cb99f1d1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 98da4d01dc7e8f50a3a6a7923a7eedd194f75fcdd1dd2256b076faff2813d2d919e9de0feefb79224ebb851aab0f75c305094cf4fd9354e4bf5eb73d0aadea71
|
7
|
+
data.tar.gz: 0a8a29adc73d9dd6c577c045a23f908a56925e44b6c90fccff84c9ae00a567318248b8ef19677c2f725f82ea910d56b5b083537ad0bdb0c1fb9df22b1e8dc69d
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'discordrb/webhooks/embeds'
|
2
4
|
|
3
5
|
module Discordrb::Webhooks
|
@@ -35,6 +37,7 @@ module Discordrb::Webhooks
|
|
35
37
|
# @param file [File] A file to be sent.
|
36
38
|
def file=(file)
|
37
39
|
raise ArgumentError, 'Embeds and files are mutually exclusive!' unless @embeds.empty?
|
40
|
+
|
38
41
|
@file = file
|
39
42
|
end
|
40
43
|
|
@@ -42,6 +45,7 @@ module Discordrb::Webhooks
|
|
42
45
|
# @param embed [Embed] The embed to add.
|
43
46
|
def <<(embed)
|
44
47
|
raise ArgumentError, 'Embeds and files are mutually exclusive!' if @file
|
48
|
+
|
45
49
|
@embeds << embed
|
46
50
|
end
|
47
51
|
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rest-client'
|
2
4
|
require 'json'
|
3
5
|
|
@@ -13,11 +15,7 @@ module Discordrb::Webhooks
|
|
13
15
|
# @param token [String] The webhook's authorisation token. Will only be used
|
14
16
|
# if `url` is not set.
|
15
17
|
def initialize(url: nil, id: nil, token: nil)
|
16
|
-
@url =
|
17
|
-
url
|
18
|
-
else
|
19
|
-
generate_url(id, token)
|
20
|
-
end
|
18
|
+
@url = url || generate_url(id, token)
|
21
19
|
end
|
22
20
|
|
23
21
|
# Executes the webhook this client points to with the given data.
|
@@ -66,7 +64,7 @@ module Discordrb::Webhooks
|
|
66
64
|
end
|
67
65
|
|
68
66
|
def generate_url(id, token)
|
69
|
-
"https://
|
67
|
+
"https://discord.com/api/v6/webhooks/#{id}/#{token}"
|
70
68
|
end
|
71
69
|
end
|
72
70
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Discordrb::Webhooks
|
2
4
|
# An embed is a multipart-style attachment to a webhook message that can have a variety of different purposes and
|
3
5
|
# appearances.
|
@@ -8,7 +10,7 @@ module Discordrb::Webhooks
|
|
8
10
|
@description = description
|
9
11
|
@url = url
|
10
12
|
@timestamp = timestamp
|
11
|
-
|
13
|
+
self.colour = colour || color
|
12
14
|
@footer = footer
|
13
15
|
@image = image
|
14
16
|
@thumbnail = thumbnail
|
@@ -18,68 +20,66 @@ module Discordrb::Webhooks
|
|
18
20
|
@fields = fields
|
19
21
|
end
|
20
22
|
|
21
|
-
#
|
22
|
-
# @return [String]
|
23
|
+
# @return [String, nil] title of the embed that will be displayed above everything else.
|
23
24
|
attr_accessor :title
|
24
25
|
|
25
|
-
#
|
26
|
-
# @return [String]
|
26
|
+
# @return [String, nil] description for this embed
|
27
27
|
attr_accessor :description
|
28
28
|
|
29
|
-
#
|
30
|
-
# @return [String]
|
29
|
+
# @return [String, nil] URL the title should point to
|
31
30
|
attr_accessor :url
|
32
31
|
|
33
|
-
#
|
34
|
-
# @return [Time]
|
32
|
+
# @return [Time, nil] timestamp for this embed. Will be displayed just below the title.
|
35
33
|
attr_accessor :timestamp
|
36
34
|
|
37
|
-
# @return [Integer] the colour of the bar to the side, in decimal form
|
35
|
+
# @return [Integer, nil] the colour of the bar to the side, in decimal form
|
38
36
|
attr_reader :colour
|
39
37
|
alias_method :color, :colour
|
40
38
|
|
41
39
|
# Sets the colour of the bar to the side of the embed to something new.
|
42
|
-
# @param value [
|
40
|
+
# @param value [String, Integer, {Integer, Integer, Integer}, #to_i, nil] The colour in decimal, hexadecimal, R/G/B decimal, or nil to clear the embeds colour
|
43
41
|
# form.
|
44
42
|
def colour=(value)
|
45
|
-
if value.
|
43
|
+
if value.nil?
|
44
|
+
@colour = nil
|
45
|
+
elsif value.is_a? Integer
|
46
46
|
raise ArgumentError, 'Embed colour must be 24-bit!' if value >= 16_777_216
|
47
|
+
|
47
48
|
@colour = value
|
48
49
|
elsif value.is_a? String
|
49
50
|
self.colour = value.delete('#').to_i(16)
|
50
51
|
elsif value.is_a? Array
|
51
52
|
raise ArgumentError, 'Colour tuple must have three values!' if value.length != 3
|
53
|
+
|
52
54
|
self.colour = value[0] << 16 | value[1] << 8 | value[2]
|
55
|
+
else
|
56
|
+
self.colour = value.to_i
|
53
57
|
end
|
54
58
|
end
|
55
59
|
|
56
60
|
alias_method :color=, :colour=
|
57
61
|
|
58
|
-
# The footer for this embed.
|
59
62
|
# @example Add a footer to an embed
|
60
63
|
# embed.footer = Discordrb::Webhooks::EmbedFooter.new(text: 'Hello', icon_url: 'https://i.imgur.com/j69wMDu.jpg')
|
61
|
-
# @return [EmbedFooter]
|
64
|
+
# @return [EmbedFooter, nil] footer for this embed
|
62
65
|
attr_accessor :footer
|
63
66
|
|
64
|
-
# The image for this embed.
|
65
67
|
# @see EmbedImage
|
66
68
|
# @example Add a image to an embed
|
67
69
|
# embed.image = Discordrb::Webhooks::EmbedImage.new(url: 'https://i.imgur.com/PcMltU7.jpg')
|
68
|
-
# @return [EmbedImage]
|
70
|
+
# @return [EmbedImage, nil] image for this embed
|
69
71
|
attr_accessor :image
|
70
72
|
|
71
|
-
# The thumbnail for this embed.
|
72
73
|
# @see EmbedThumbnail
|
73
74
|
# @example Add a thumbnail to an embed
|
74
75
|
# embed.thumbnail = Discordrb::Webhooks::EmbedThumbnail.new(url: 'https://i.imgur.com/xTG3a1I.jpg')
|
75
|
-
# @return [EmbedThumbnail]
|
76
|
+
# @return [EmbedThumbnail, nil] thumbnail for this embed
|
76
77
|
attr_accessor :thumbnail
|
77
78
|
|
78
|
-
# The author for this embed.
|
79
79
|
# @see EmbedAuthor
|
80
80
|
# @example Add a author to an embed
|
81
81
|
# embed.author = Discordrb::Webhooks::EmbedAuthor.new(name: 'meew0', url: 'https://github.com/meew0', icon_url: 'https://avatars2.githubusercontent.com/u/3662915?v=3&s=466')
|
82
|
-
# @return [EmbedAuthor]
|
82
|
+
# @return [EmbedAuthor, nil] author for this embed
|
83
83
|
attr_accessor :author
|
84
84
|
|
85
85
|
# Add a field object to this embed.
|
@@ -94,13 +94,13 @@ module Discordrb::Webhooks
|
|
94
94
|
# embed.add_field(name: 'A field', value: "The field's content")
|
95
95
|
# @param name [String] The field's name
|
96
96
|
# @param value [String] The field's value
|
97
|
-
# @param inline [true, false] Whether the field should be
|
97
|
+
# @param inline [true, false] Whether the field should be inline
|
98
98
|
def add_field(name: nil, value: nil, inline: nil)
|
99
99
|
self << EmbedField.new(name: name, value: value, inline: inline)
|
100
100
|
end
|
101
101
|
|
102
102
|
# @return [Array<EmbedField>] the fields attached to this embed.
|
103
|
-
|
103
|
+
attr_accessor :fields
|
104
104
|
|
105
105
|
# @return [Hash] a hash representation of this embed, to be converted to JSON.
|
106
106
|
def to_hash
|
@@ -108,14 +108,14 @@ module Discordrb::Webhooks
|
|
108
108
|
title: @title,
|
109
109
|
description: @description,
|
110
110
|
url: @url,
|
111
|
-
timestamp: @timestamp
|
111
|
+
timestamp: @timestamp&.utc&.iso8601,
|
112
112
|
color: @colour,
|
113
|
-
footer: @footer
|
114
|
-
image: @image
|
115
|
-
thumbnail: @thumbnail
|
116
|
-
video: @video
|
117
|
-
provider: @provider
|
118
|
-
author: @author
|
113
|
+
footer: @footer&.to_hash,
|
114
|
+
image: @image&.to_hash,
|
115
|
+
thumbnail: @thumbnail&.to_hash,
|
116
|
+
video: @video&.to_hash,
|
117
|
+
provider: @provider&.to_hash,
|
118
|
+
author: @author&.to_hash,
|
119
119
|
fields: @fields.map(&:to_hash)
|
120
120
|
}
|
121
121
|
end
|
@@ -124,6 +124,12 @@ module Discordrb::Webhooks
|
|
124
124
|
# An embed's footer will be displayed at the very bottom of an embed, together with the timestamp. An icon URL can be
|
125
125
|
# set together with some text to be displayed.
|
126
126
|
class EmbedFooter
|
127
|
+
# @return [String, nil] text to be displayed in the footer
|
128
|
+
attr_accessor :text
|
129
|
+
|
130
|
+
# @return [String, nil] URL to an icon to be showed alongside the text
|
131
|
+
attr_accessor :icon_url
|
132
|
+
|
127
133
|
# Creates a new footer object.
|
128
134
|
# @param text [String, nil] The text to be displayed in the footer.
|
129
135
|
# @param icon_url [String, nil] The URL to an icon to be showed alongside the text.
|
@@ -143,6 +149,9 @@ module Discordrb::Webhooks
|
|
143
149
|
|
144
150
|
# An embed's image will be displayed at the bottom, in large format. It will replace a footer icon URL if one is set.
|
145
151
|
class EmbedImage
|
152
|
+
# @return [String, nil] URL of the image
|
153
|
+
attr_accessor :url
|
154
|
+
|
146
155
|
# Creates a new image object.
|
147
156
|
# @param url [String, nil] The URL of the image.
|
148
157
|
def initialize(url: nil)
|
@@ -160,6 +169,9 @@ module Discordrb::Webhooks
|
|
160
169
|
# An embed's thumbnail will be displayed at the right of the message, next to the description and fields. When clicked
|
161
170
|
# it will point to the embed URL.
|
162
171
|
class EmbedThumbnail
|
172
|
+
# @return [String, nil] URL of the thumbnail
|
173
|
+
attr_accessor :url
|
174
|
+
|
163
175
|
# Creates a new thumbnail object.
|
164
176
|
# @param url [String, nil] The URL of the thumbnail.
|
165
177
|
def initialize(url: nil)
|
@@ -176,6 +188,15 @@ module Discordrb::Webhooks
|
|
176
188
|
|
177
189
|
# An embed's author will be shown at the top to indicate who "authored" the particular event the webhook was sent for.
|
178
190
|
class EmbedAuthor
|
191
|
+
# @return [String, nil] name of the author
|
192
|
+
attr_accessor :name
|
193
|
+
|
194
|
+
# @return [String, nil] URL the name should link to
|
195
|
+
attr_accessor :url
|
196
|
+
|
197
|
+
# @return [String, nil] URL of the icon to be displayed next to the author
|
198
|
+
attr_accessor :icon_url
|
199
|
+
|
179
200
|
# Creates a new author object.
|
180
201
|
# @param name [String, nil] The name of the author.
|
181
202
|
# @param url [String, nil] The URL the name should link to.
|
@@ -198,11 +219,20 @@ module Discordrb::Webhooks
|
|
198
219
|
|
199
220
|
# A field is a small block of text with a header that can be relatively freely layouted with other fields.
|
200
221
|
class EmbedField
|
222
|
+
# @return [String, nil] name of the field, displayed in bold at the top of the field.
|
223
|
+
attr_accessor :name
|
224
|
+
|
225
|
+
# @return [String, nil] value of the field, displayed in normal text below the name.
|
226
|
+
attr_accessor :value
|
227
|
+
|
228
|
+
# @return [true, false] whether the field should be displayed inline with other fields.
|
229
|
+
attr_accessor :inline
|
230
|
+
|
201
231
|
# Creates a new field object.
|
202
|
-
# @param name [String, nil] The name of the field, displayed in bold at the top.
|
232
|
+
# @param name [String, nil] The name of the field, displayed in bold at the top of the field.
|
203
233
|
# @param value [String, nil] The value of the field, displayed in normal text below the name.
|
204
|
-
# @param inline [true, false] Whether the field should be displayed
|
205
|
-
def initialize(name: nil, value: nil, inline:
|
234
|
+
# @param inline [true, false] Whether the field should be displayed inline with other fields.
|
235
|
+
def initialize(name: nil, value: nil, inline: false)
|
206
236
|
@name = name
|
207
237
|
@value = value
|
208
238
|
@inline = inline
|
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: discordrb-webhooks
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- meew0
|
8
|
+
- swarley
|
8
9
|
autorequire:
|
9
10
|
bindir: exe
|
10
11
|
cert_chain: []
|
11
|
-
date:
|
12
|
+
date: 2021-02-05 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rest-client
|
@@ -16,14 +17,14 @@ dependencies:
|
|
16
17
|
requirements:
|
17
18
|
- - ">="
|
18
19
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
20
|
+
version: 2.0.0
|
20
21
|
type: :runtime
|
21
22
|
prerelease: false
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
23
24
|
requirements:
|
24
25
|
- - ">="
|
25
26
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
27
|
+
version: 2.0.0
|
27
28
|
description: A client for Discord's webhooks to fit alongside [discordrb](https://rubygems.org/gems/discordrb).
|
28
29
|
email:
|
29
30
|
- ''
|
@@ -36,7 +37,7 @@ files:
|
|
36
37
|
- lib/discordrb/webhooks/client.rb
|
37
38
|
- lib/discordrb/webhooks/embeds.rb
|
38
39
|
- lib/discordrb/webhooks/version.rb
|
39
|
-
homepage: https://github.com/
|
40
|
+
homepage: https://github.com/shardlab/discordrb
|
40
41
|
licenses:
|
41
42
|
- MIT
|
42
43
|
metadata: {}
|
@@ -48,17 +49,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
48
49
|
requirements:
|
49
50
|
- - ">="
|
50
51
|
- !ruby/object:Gem::Version
|
51
|
-
version: 2.
|
52
|
+
version: '2.5'
|
52
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
54
|
requirements:
|
54
55
|
- - ">="
|
55
56
|
- !ruby/object:Gem::Version
|
56
57
|
version: '0'
|
57
58
|
requirements: []
|
58
|
-
|
59
|
-
rubygems_version: 2.6.10
|
59
|
+
rubygems_version: 3.1.4
|
60
60
|
signing_key:
|
61
61
|
specification_version: 4
|
62
62
|
summary: Webhook client for discordrb
|
63
63
|
test_files: []
|
64
|
-
has_rdoc:
|