Crunchy-Downloader/CRD/Utils/Enums/EnumCollection.cs
Elwador ae0f936ff5 Add - Added **toggle to count missing history episodes** instead of just new episodes
Add - Added **Fast Add button** to the Seasons tab
Chg - Changed **"Couldn't sync dubs" message** to include the specific failed dubs and added more details to the log
Chg - Changed **history episode addition** to maintain order (slightly slower when adding but prevents queue mixing)
Chg - Changed **language sorting** for improved clarity
Chg - Changed **subtitle locale handling** to use the actual locale instead of Crunchyroll's local language tag
Chg - Changed **filename format** when downloading all dubs to separate files to include the locale in the filename
Fix - Fixed **download retries not being logged**
Fix - Fixed **dubbed episodes added from the calendar** not updating correctly in the history
Fix - Fixed **DRM authentication issue**
2025-05-06 18:31:44 +02:00

272 lines
No EOL
5.1 KiB
C#

using System;
using System.Runtime.Serialization;
using CRD.Utils.JsonConv;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace CRD.Utils;
[JsonConverter(typeof(StringEnumConverter))]
public enum StreamingService{
[EnumMember(Value = "Crunchyroll")]
Crunchyroll,
[EnumMember(Value = "Unknown")]
Unknown
}
[JsonConverter(typeof(StringEnumConverter))]
public enum EpisodeType{
[EnumMember(Value = "MusicVideo")]
MusicVideo,
[EnumMember(Value = "Concert")]
Concert,
[EnumMember(Value = "Episode")]
Episode,
[EnumMember(Value = "Unknown")]
Unknown
}
[JsonConverter(typeof(StringEnumConverter))]
public enum SeriesType{
[EnumMember(Value = "Artist")]
Artist,
[EnumMember(Value = "Series")]
Series,
[EnumMember(Value = "Unknown")]
Unknown
}
[DataContract]
[JsonConverter(typeof(LocaleConverter))]
public enum Locale{
[EnumMember(Value = "")]
DefaulT,
[EnumMember(Value = "un")]
Unknown,
[EnumMember(Value = "en-US")]
EnUs,
[EnumMember(Value = "es-LA")]
EsLa,
[EnumMember(Value = "es-419")]
Es419,
[EnumMember(Value = "es-ES")]
EsEs,
[EnumMember(Value = "pt-BR")]
PtBr,
[EnumMember(Value = "fr-FR")]
FrFr,
[EnumMember(Value = "de-DE")]
DeDe,
[EnumMember(Value = "ar-ME")]
ArMe,
[EnumMember(Value = "ar-SA")]
ArSa,
[EnumMember(Value = "it-IT")]
ItIt,
[EnumMember(Value = "ru-RU")]
RuRu,
[EnumMember(Value = "tr-TR")]
TrTr,
[EnumMember(Value = "hi-IN")]
HiIn,
[EnumMember(Value = "zh-CN")]
ZhCn,
[EnumMember(Value = "ko-KR")]
KoKr,
[EnumMember(Value = "ja-JP")]
JaJp,
[EnumMember(Value = "id-ID")]
IdId,
[EnumMember(Value = "en-IN")]
EnIn,
[EnumMember(Value = "pt-PT")]
PtPt,
[EnumMember(Value = "zh-TW")]
ZhTw,
[EnumMember(Value = "zh-HK")]
ZhHk,
[EnumMember(Value = "ca-ES")]
CaEs,
[EnumMember(Value = "pl-PL")]
PlPl,
[EnumMember(Value = "th-TH")]
ThTh,
[EnumMember(Value = "ta-IN")]
TaIn,
[EnumMember(Value = "ms-MY")]
MsMy,
[EnumMember(Value = "vi-VN")]
ViVn,
[EnumMember(Value = "te-IN")]
TeIn,
}
public static class EnumExtensions{
public static string GetEnumMemberValue(this Enum value){
var type = value.GetType();
var name = Enum.GetName(type, value);
if (name != null){
var field = type.GetField(name);
if (field != null){
var attr = Attribute.GetCustomAttribute(field, typeof(EnumMemberAttribute)) as EnumMemberAttribute;
if (attr != null){
return attr.Value ?? string.Empty;
}
}
}
return string.Empty;
}
}
[DataContract]
public enum ImageType{
[EnumMember(Value = "poster_tall")]
PosterTall,
[EnumMember(Value = "poster_wide")]
PosterWide,
[EnumMember(Value = "promo_image")]
PromoImage,
[EnumMember(Value = "thumbnail")]
Thumbnail,
}
[DataContract]
public enum DownloadMediaType{
[EnumMember(Value = "Video")]
Video,
[EnumMember(Value = "SyncVideo")]
SyncVideo,
[EnumMember(Value = "Audio")]
Audio,
[EnumMember(Value = "Chapters")]
Chapters,
[EnumMember(Value = "Subtitle")]
Subtitle,
[EnumMember(Value = "Description")]
Description,
}
[JsonConverter(typeof(StringEnumConverter))]
public enum ScaledBorderAndShadowSelection{
[EnumMember(Value = "Dont Add")]
DontAdd,
[EnumMember(Value = "ScaledBorderAndShadow Yes")]
ScaledBorderAndShadowYes,
[EnumMember(Value = "ScaledBorderAndShadow No")]
ScaledBorderAndShadowNo,
}
[JsonConverter(typeof(StringEnumConverter))]
public enum HistoryViewType{
[EnumMember(Value = "Posters")]
Posters,
[EnumMember(Value = "Table")]
Table,
}
[JsonConverter(typeof(StringEnumConverter))]
public enum SortingType{
[EnumMember(Value = "Series Title")]
SeriesTitle,
[EnumMember(Value = "Next Air Date")]
NextAirDate,
[EnumMember(Value = "History Series Add Date")]
HistorySeriesAddDate,
}
[JsonConverter(typeof(StringEnumConverter))]
public enum FilterType{
[EnumMember(Value = "All")]
All,
[EnumMember(Value = "Missing Episodes")]
MissingEpisodes,
[EnumMember(Value = "Missing Episodes Sonarr")]
MissingEpisodesSonarr,
[EnumMember(Value = "Continuing Only")]
ContinuingOnly,
[EnumMember(Value = "Active")]
Active,
[EnumMember(Value = "Inactive")]
Inactive,
}
[JsonConverter(typeof(StringEnumConverter))]
public enum CrunchyUrlType{
[EnumMember(Value = "Artist")]
Artist,
[EnumMember(Value = "MusicVideo")]
MusicVideo,
[EnumMember(Value = "Concert")]
Concert,
[EnumMember(Value = "Episode")]
Episode,
[EnumMember(Value = "Series")]
Series,
[EnumMember(Value = "Unknown")]
Unknown
}
public enum SonarrCoverType{
Banner,
FanArt,
Poster,
ClearLogo,
}
public enum SonarrSeriesType{
Anime,
Standard,
Daily
}
public enum SonarrStatus{
Continuing,
Upcoming,
Ended,
Deleted
};