module MijDiscord::Core::API::User

Public Class Methods

avatar_url(user_id, avatar_id, format = nil) click to toggle source

Make an avatar URL from the user and avatar IDs

# File lib/mij-discord/core/api/user.rb, line 150
def avatar_url(user_id, avatar_id, format = nil)
  format ||= avatar_id.start_with?('a_') ? :gif : :png
  "#{MijDiscord::Core::API::CDN_URL}/avatars/#{user_id}/#{avatar_id}.#{format}"
end
change_own_nickname(auth, server_id, nick, reason = nil) click to toggle source

Change the current bot's nickname on a server

# File lib/mij-discord/core/api/user.rb, line 42
def change_own_nickname(auth, server_id, nick, reason = nil)
  MijDiscord::Core::API.request(
    :guilds_sid_members_me_nick,
    server_id, # This is technically a guild endpoint
    :patch,
    "#{MijDiscord::Core::API::APIBASE_URL}/guilds/#{server_id}/members/@me/nick",
    { nick: nick }.to_json,
    Authorization: auth,
    content_type: :json,
    'X-Audit-Log-Reason': reason
  )
end
change_status_setting(auth, status) click to toggle source

Change user status setting

# File lib/mij-discord/core/api/user.rb, line 132
def change_status_setting(auth, status)
  MijDiscord::Core::API.request(
    :users_me_settings,
    nil,
    :patch,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/@me/settings",
    { status: status }.to_json,
    Authorization: auth,
    content_type: :json
  )
end
connections(auth) click to toggle source

Get information about a user's connections discordapp.com/developers/docs/resources/user#get-users-connections

# File lib/mij-discord/core/api/user.rb, line 121
def connections(auth)
  MijDiscord::Core::API.request(
    :users_me_connections,
    nil,
    :get,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/@me/connections",
    Authorization: auth
  )
end
create_pm(auth, recipient_id) click to toggle source

Create a DM to another user discordapp.com/developers/docs/resources/user#create-dm

# File lib/mij-discord/core/api/user.rb, line 107
def create_pm(auth, recipient_id)
  MijDiscord::Core::API.request(
    :users_me_channels,
    nil,
    :post,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/@me/channels",
    { recipient_id: recipient_id }.to_json,
    Authorization: auth,
    content_type: :json
  )
end
default_avatar(discrim = 0) click to toggle source

Returns one of the “default” discord avatars from the CDN given a discriminator

# File lib/mij-discord/core/api/user.rb, line 145
def default_avatar(discrim = 0)
  "#{MijDiscord::Core::API::CDN_URL}/embed/avatars/#{discrim.to_i % 5}.png"
end
leave_server(auth, server_id) click to toggle source

Leave a server discordapp.com/developers/docs/resources/user#leave-guild

# File lib/mij-discord/core/api/user.rb, line 83
def leave_server(auth, server_id)
  MijDiscord::Core::API.request(
    :users_me_guilds_sid,
    nil,
    :delete,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/@me/guilds/#{server_id}",
    Authorization: auth
  )
end
profile(auth) click to toggle source

Get current user data discordapp.com/developers/docs/resources/user#get-current-user

# File lib/mij-discord/core/api/user.rb, line 31
def profile(auth)
  MijDiscord::Core::API.request(
    :users_me,
    nil,
    :get,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/@me",
    Authorization: auth
  )
end
resolve(auth, user_id) click to toggle source

Get user data discordapp.com/developers/docs/resources/user#get-user

# File lib/mij-discord/core/api/user.rb, line 7
def resolve(auth, user_id)
  MijDiscord::Core::API.request(
    :users_uid,
    nil,
    :get,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/#{user_id}",
    Authorization: auth
  )
end
resolve2(auth, user_id) click to toggle source

Get profile data (for userbots only) Not officially documented, reverse engineered from tracking Discord's network activity

# File lib/mij-discord/core/api/user.rb, line 19
def resolve2(auth, user_id)
  MijDiscord::Core::API.request(
    :users_uid,
    nil,
    :get,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/#{user_id}/profile",
    Authorization: auth
  )
end
servers(auth) click to toggle source

Get the servers a user is connected to discordapp.com/developers/docs/resources/user#get-current-user-guilds

# File lib/mij-discord/core/api/user.rb, line 71
def servers(auth)
  MijDiscord::Core::API.request(
    :users_me_guilds,
    nil,
    :get,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/@me/guilds",
    Authorization: auth
  )
end
update_profile(auth, username, avatar) click to toggle source

Update user data discordapp.com/developers/docs/resources/user#modify-current-user

# File lib/mij-discord/core/api/user.rb, line 57
def update_profile(auth, username, avatar)
  MijDiscord::Core::API.request(
    :users_me,
    nil,
    :patch,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/@me",
    { avatar: avatar, username: username }.delete_if {|_,v| v.nil? }.to_json,
    Authorization: auth,
    content_type: :json
  )
end
user_dms(auth) click to toggle source

Get the DMs for the current user discordapp.com/developers/docs/resources/user#get-user-dms

# File lib/mij-discord/core/api/user.rb, line 95
def user_dms(auth)
  MijDiscord::Core::API.request(
    :users_me_channels,
    nil,
    :get,
    "#{MijDiscord::Core::API::APIBASE_URL}/users/@me/channels",
    Authorization: auth
  )
end