Browse Source

Feature: attachment description and content type (#2180)

tags/3.4.1
Quin Lynch GitHub 3 years ago
parent
commit
765c0c5544
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 2 deletions
  1. +16
    -0
      src/Discord.Net.Core/Entities/Messages/FileAttachment.cs
  2. +8
    -0
      src/Discord.Net.Core/Entities/Messages/IAttachment.cs
  3. +10
    -2
      src/Discord.Net.Rest/Entities/Messages/Attachment.cs

+ 16
- 0
src/Discord.Net.Core/Entities/Messages/FileAttachment.cs View File

@@ -7,13 +7,29 @@ using System.Threading.Tasks;

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



+ 8
- 0
src/Discord.Net.Core/Entities/Messages/IAttachment.cs View File

@@ -62,5 +62,13 @@ namespace Discord
/// <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; }
}
}

+ 10
- 2
src/Discord.Net.Rest/Entities/Messages/Attachment.cs View File

@@ -23,8 +23,13 @@ namespace Discord
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;
@@ -34,13 +39,16 @@ namespace Discord
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>


Loading…
Cancel
Save