mastodon-backup-filter/PostRecipients.cs

18 lines
887 B
C#

namespace MastodonBackupFilter
{
public record struct PostRecipients {
public required bool ToPublic {get; init;}
public required bool CcPublic {get; init;}
public required bool ToFollowers {get; init;}
public required bool CcFollowers {get; init;}
public Visibility AsVisibility() => this switch {
{ToPublic: false, CcPublic: true, ToFollowers: true, CcFollowers: false} => Visibility.Unlisted,
{ToPublic: true, CcPublic: false, ToFollowers: false, CcFollowers: true} => Visibility.Public,
{ToPublic: false, CcPublic: false, ToFollowers: true, CcFollowers: false} => Visibility.Private,
{ToPublic: false, CcPublic: false, ToFollowers: false, CcFollowers: false} => Visibility.DM,
_ => throw new InvalidDataException($"Unable to determine visibility for {this}")
};
}
}