Skip to content

Commit

Permalink
Feature: attachment description and content type (#2180)
Browse files Browse the repository at this point in the history
  • Loading branch information
quinchs committed Mar 9, 2022
1 parent 24b7bb5 commit 765c0c5
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 2 deletions.
16 changes: 16 additions & 0 deletions src/Discord.Net.Core/Entities/Messages/FileAttachment.cs
Expand Up @@ -7,13 +7,29 @@

namespace Discord
{
/// <summary>
/// Represents an outgoing file attachment used to send a file to discord.
/// </summary>
public struct FileAttachment : IDisposable
{
/// <summary>
/// Gets or sets the filename.
/// </summary>
public string FileName { get; set; }
/// <summary>
/// Gets or sets the description of the file.
/// </summary>
public string Description { get; set; }

/// <summary>
/// Gets or sets whether this file should be marked as a spoiler.
/// </summary>
public bool IsSpoiler { get; set; }

#pragma warning disable IDISP008
/// <summary>
/// Gets the stream containing the file content.
/// </summary>
public Stream Stream { get; }
#pragma warning restore IDISP008

Expand Down
8 changes: 8 additions & 0 deletions src/Discord.Net.Core/Entities/Messages/IAttachment.cs
Expand Up @@ -62,5 +62,13 @@ public interface IAttachment
/// <see langword="true"/> if the attachment is ephemeral; otherwise <see langword="false"/>.
/// </returns>
bool Ephemeral { get; }
/// <summary>
/// Gets the description of the attachment; or <see langword="null"/> if there is none set.
/// </summary>
string Description { get; }
/// <summary>
/// Gets the media's <see href="https://en.wikipedia.org/wiki/Media_type">MIME type</see> if present; otherwise <see langword="null"/>.
/// </summary>
string ContentType { get; }
}
}
12 changes: 10 additions & 2 deletions src/Discord.Net.Rest/Entities/Messages/Attachment.cs
Expand Up @@ -23,8 +23,13 @@ public class Attachment : IAttachment
public int? Width { get; }
/// <inheritdoc />
public bool Ephemeral { get; }
/// <inheritdoc />
public string Description { get; }
/// <inheritdoc />
public string ContentType { get; }

internal Attachment(ulong id, string filename, string url, string proxyUrl, int size, int? height, int? width, bool? ephemeral)
internal Attachment(ulong id, string filename, string url, string proxyUrl, int size, int? height, int? width,
bool? ephemeral, string description, string contentType)
{
Id = id;
Filename = filename;
Expand All @@ -34,13 +39,16 @@ internal Attachment(ulong id, string filename, string url, string proxyUrl, int
Height = height;
Width = width;
Ephemeral = ephemeral.GetValueOrDefault(false);
Description = description;
ContentType = contentType;
}
internal static Attachment Create(Model model)
{
return new Attachment(model.Id, model.Filename, model.Url, model.ProxyUrl, model.Size,
model.Height.IsSpecified ? model.Height.Value : (int?)null,
model.Width.IsSpecified ? model.Width.Value : (int?)null,
model.Ephemeral.ToNullable());
model.Ephemeral.ToNullable(), model.Description.GetValueOrDefault(),
model.ContentType.GetValueOrDefault());
}

/// <summary>
Expand Down

0 comments on commit 765c0c5

Please sign in to comment.