class MijDiscord::Data::Webhook
Attributes
avatar_id[R]
bot[R]
channel[R]
name[R]
owner[R]
token[R]
Public Class Methods
new(data, bot)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 19 def initialize(data, bot) @bot = bot @id = data['id'].to_id @token = data['token'] update_data(data) if (user = data['user']) unless (@owner = server.member(user['id'])) @owner = @bot.cache.put_user(user) end end end
Public Instance Methods
avatar_url(format = nil)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 47 def avatar_url(format = nil) return MijDiscord::Core::API::User.default_avatar(0) unless @avatar_id MijDiscord::Core::API::User.avatar_url(@id, @avatar_id, format) end
Also aliased as: avatar
delete(reason = nil)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 79 def delete(reason = nil) if via_token? MijDiscord::Core::API::Webhook.token_delete_webhook(@token, @id, reason) else MijDiscord::Core::API::Webhook.delete_webhook(@bot.auth, @id, reason) end nil end
execute(text: '', name: nil, avatar: nil, tts: false, embeds: [], file: nil, wait: true)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 89 def execute(text: '', name: nil, avatar: nil, tts: false, embeds: [], file: nil, wait: true) raise 'Not yet implemented' unless file.nil? # TODO: Implement params = { content: text, username: name, avatar_url: avatar, tts: tts, embeds: embeds.map(&:to_hash), }.delete_if {|_,v| v.nil? } response = MijDiscord::Core::API::Webhook.execute_json(@token, @id, params, wait) wait ? Message.new(JSON.parse(response), @bot) : nil end
inspect()
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 104 def inspect MijDiscord.make_inspect(self, :id, :name, :channel, :owner) end
server()
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 43 def server @channel.server end
set_avatar(data, format = :png, reason = nil)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 72 def set_avatar(data, format = :png, reason = nil) data = User.process_avatar(data, format, true) update_webhook(reason, avatar: data) end
Also aliased as: avatar=
set_channel(channel, reason = nil)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 66 def set_channel(channel, reason = nil) update_webhook(reason, channel_id: channel.to_id) end
Also aliased as: channel=
set_name(name, reason = nil)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 60 def set_name(name, reason = nil) update_webhook(reason, name: name) end
Also aliased as: name=
set_options(reason = nil, name: nil, channel: nil, avatar: nil, format: :png)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 54 def set_options(reason = nil, name: nil, channel: nil, avatar: nil, format: :png) data = {name: name, channel_id: channel&.to_id} data[:avatar] = User.process_avatar(avatar, format, true) unless avatar.nil? update_webhook(reason, **data.delete_if {|_,v| v.nil? }) end
update_data(data)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 33 def update_data(data) @name = data['name'] @channel = @bot.channel(data['channel_id']) @avatar_id = data['avatar'] end
via_token?()
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 39 def via_token? @owner.nil? end
Private Instance Methods
update_webhook(reason, **data)
click to toggle source
# File lib/mij-discord/data/webhook.rb, line 110 def update_webhook(reason, **data) response = if via_token? MijDiscord::Core::API::Webhook.token_update_webhook(@token, @id, data, reason) else MijDiscord::Core::API::Webhook.update_webhook(@bot.auth, @id, data, reason) end update_data(JSON.parse(response)) nil end