Class: Discorb::ThreadChannel Abstract
- Inherits:
 - 
      Channel
      
        
- Object
 - DiscordModel
 - Channel
 - Discorb::ThreadChannel
 
 
- Includes:
 - Messageable
 
- Defined in:
 - lib/discorb/channel.rb
 
Overview
Represents a thread.
Defined Under Namespace
Classes: Member, News, Private, Public
Class Attribute Summary collapse
- 
  
    
      .channel_type -> Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute channel_type.
 
Instance Attribute Summary collapse
- 
  
    
      #archived -> Boolean 
    
    
      (also: #archived?)
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Whether the thread is archived or not.
 - #archived_timestamp -> Time? (also: #archived_at) readonly
 - 
  
    
      #auto_archive_duration -> Integer 
    
    
      (also: #archive_in)
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Auto archive duration in seconds.
 - 
  
    
      #id -> Discorb::Snowflake 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
The ID of the channel.
 - 
  
    
      #member_count -> Integer 
    
    
      (also: #recipient_count)
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
The number of recipients in the thread.
 - 
  
    
      #members -> Array<Discorb::ThreadChannel::Member> 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
The members of the thread.
 - 
  
    
      #message_count -> Integer 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
The number of messages in the thread.
 - 
  
    
      #name -> String 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
The name of the thread.
 - 
  
    
      #rate_limit_per_user -> Integer 
    
    
      (also: #slowmode)
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
The rate limit per user (slowmode) in the thread.
 
Instance Method Summary collapse
- #add_member(member = :me) -> Object (also: #join)
 - 
  
    
      #archive(reason: nil) -> self 
    
    
  
  
  
  
  
  
  
  
  
    
Helper method to archive the thread.
 - 
  
    
      #edit(name: :unset, archived: :unset, auto_archive_duration: :unset, archive_in: :unset, locked: :unset, reason: nil) -> Async::Task<self> 
    
    
  
  
  
  
  
  
  
  
  
    
Edit the thread.
 - #fetch_members -> Object
 - #guild -> Object
 - #inspect -> Object
 - #joined? -> Boolean
 - 
  
    
      #lock(reason: nil) -> self 
    
    
  
  
  
  
  
  
  
  
  
    
Helper method to lock the thread.
 - #me -> Object
 - #owner -> Object
 - #parent -> Object (also: #channel)
 - #remove_member(member = :me) -> Object (also: #leave)
 - 
  
    
      #unarchive(reason: nil) -> self 
    
    
  
  
  
  
  
  
  
  
  
    
Helper method to unarchive the thread.
 - 
  
    
      #unlock(reason: nil) -> self 
    
    
  
  
  
  
  
  
  
  
  
    
Helper method to unlock the thread.
 
Methods included from Messageable
#delete_message!, #edit_message, #fetch_message, #fetch_messages, #post, #typing
Methods inherited from Channel
Methods inherited from DiscordModel
Class Attribute Details
.channel_type -> Object (readonly)
Returns the value of attribute channel_type.
      994 995 996  | 
    
      # File 'lib/discorb/channel.rb', line 994 def channel_type @channel_type end  | 
  
Instance Attribute Details
#archived -> Boolean (readonly) Also known as: archived?
Returns Whether the thread is archived or not.
      824 825 826  | 
    
      # File 'lib/discorb/channel.rb', line 824 def archived @archived end  | 
  
#archived_timestamp -> Time? (readonly) Also known as: archived_at
      818 819 820  | 
    
      # File 'lib/discorb/channel.rb', line 818 def @archived_timestamp end  | 
  
#auto_archive_duration -> Integer (readonly) Also known as: archive_in
Returns Auto archive duration in seconds.
      821 822 823  | 
    
      # File 'lib/discorb/channel.rb', line 821 def auto_archive_duration @auto_archive_duration end  | 
  
#id -> Discorb::Snowflake (readonly)
This ID is same as the starter message's ID
Returns The ID of the channel.
      801 802 803  | 
    
      # File 'lib/discorb/channel.rb', line 801 def id @id end  | 
  
#member_count -> Integer (readonly) Also known as: recipient_count
This will stop counting at 50.
Returns The number of recipients in the thread.
      809 810 811  | 
    
      # File 'lib/discorb/channel.rb', line 809 def member_count @member_count end  | 
  
#members -> Array<Discorb::ThreadChannel::Member> (readonly)
Returns The members of the thread.
      815 816 817  | 
    
      # File 'lib/discorb/channel.rb', line 815 def members @members end  | 
  
#message_count -> Integer (readonly)
This will stop counting at 50.
Returns The number of messages in the thread.
      806 807 808  | 
    
      # File 'lib/discorb/channel.rb', line 806 def @message_count end  | 
  
#name -> String (readonly)
Returns The name of the thread.
      803 804 805  | 
    
      # File 'lib/discorb/channel.rb', line 803 def name @name end  | 
  
#rate_limit_per_user -> Integer (readonly) Also known as: slowmode
Returns The rate limit per user (slowmode) in the thread.
      812 813 814  | 
    
      # File 'lib/discorb/channel.rb', line 812 def rate_limit_per_user @rate_limit_per_user end  | 
  
Instance Method Details
#add_member(member = :me) -> Object Also known as: join
      950 951 952 953 954 955 956 957 958  | 
    
      # File 'lib/discorb/channel.rb', line 950 def add_member(member = :me) Async do if member == :me @client.http.post("/channels/#{@id}/thread-members/@me").wait else @client.http.post("/channels/#{@id}/thread-members/#{Utils.try(member, :id)}").wait end end end  | 
  
#archive(reason: nil) -> self
Helper method to archive the thread.
      883 884 885  | 
    
      # File 'lib/discorb/channel.rb', line 883 def archive(reason: nil) edit(archived: true, reason: reason) end  | 
  
#edit(name: :unset, archived: :unset, auto_archive_duration: :unset, archive_in: :unset, locked: :unset, reason: nil) -> Async::Task<self>
This is an asynchronous method, it will return a Async::Task object. Use Async::Task#wait to get the result.
This method calls HTTP request.
The arguments of this method are defaultly set to :unset. Specify value to set the value, if not don't specify or specify :unset.
Edit the thread.
      863 864 865 866 867 868 869 870 871 872 873 874  | 
    
      # File 'lib/discorb/channel.rb', line 863 def edit(name: :unset, archived: :unset, auto_archive_duration: :unset, archive_in: :unset, locked: :unset, reason: nil) Async do payload = {} payload[:name] = name if name != :unset payload[:archived] = archived if archived != :unset auto_archive_duration ||= archive_in payload[:auto_archive_duration] = auto_archive_duration if auto_archive_duration != :unset payload[:locked] = locked if locked != :unset @client.http.patch("/channels/#{@id}", payload, audit_log_reason: reason).wait self end end  | 
  
#fetch_members -> Object
      974 975 976 977 978 979  | 
    
      # File 'lib/discorb/channel.rb', line 974 def fetch_members Async do _resp, data = @client.http.get("/channels/#{@id}/thread-members").wait data.map { |d| @members[d[:id]] = Member.new(@client, d) } end end  | 
  
#guild -> Object
      938 939 940  | 
    
      # File 'lib/discorb/channel.rb', line 938 def guild @client.guilds[@guild] end  | 
  
#inspect -> Object
      946 947 948  | 
    
      # File 'lib/discorb/channel.rb', line 946 def inspect "#<#{self.class} \"##{@name}\" id=#{@id}>" end  | 
  
#joined? -> Boolean
      934 935 936  | 
    
      # File 'lib/discorb/channel.rb', line 934 def joined? @members[@client.user.id] end  | 
  
#lock(reason: nil) -> self
Helper method to lock the thread.
      894 895 896  | 
    
      # File 'lib/discorb/channel.rb', line 894 def lock(reason: nil) edit(archived: true, locked: true, reason: reason) end  | 
  
#me -> Object
      930 931 932  | 
    
      # File 'lib/discorb/channel.rb', line 930 def me @members[@client.user.id] end  | 
  
#owner -> Object
      942 943 944  | 
    
      # File 'lib/discorb/channel.rb', line 942 def owner guild.members[@owner_id] end  | 
  
#parent -> Object Also known as: channel
      922 923 924 925 926  | 
    
      # File 'lib/discorb/channel.rb', line 922 def parent return nil unless @parent_id @client.channels[@parent_id] end  | 
  
#remove_member(member = :me) -> Object Also known as: leave
      962 963 964 965 966 967 968 969 970  | 
    
      # File 'lib/discorb/channel.rb', line 962 def remove_member(member = :me) Async do if member == :me @client.http.delete("/channels/#{@id}/thread-members/@me").wait else @client.http.delete("/channels/#{@id}/thread-members/#{Utils.try(member, :id)}").wait end end end  | 
  
#unarchive(reason: nil) -> self
Helper method to unarchive the thread.
      905 906 907  | 
    
      # File 'lib/discorb/channel.rb', line 905 def unarchive(reason: nil) edit(archived: false, reason: reason) end  | 
  
#unlock(reason: nil) -> self
This method won't unarchive the thread. Use #unarchive instead.
Helper method to unlock the thread.
      918 919 920  | 
    
      # File 'lib/discorb/channel.rb', line 918 def unlock(reason: nil) edit(archived: !unarchive, locked: false, reason: reason) end  |