Crunchy-Downloader/CRD/Utils/Enums/EnumCollection.cs
Elwador 4f6d0f2257 Add - Added --historyRefreshActive parameter
Add - Added **hardware acceleration options** for sync timings
Add - Added an **icon for episodes removed from Crunchyroll** or moved to a different season
Add - Added **highlighting for selected dubs/subs** in history
Add - Added **highlighting of episode titles** when all selected dubs/subs are available
Add - Added option to **set history series to inactive**
Add - Added **filter for Active and Inactive** series in history
Add - Added **download retry options** to settings, making retry variables editable
Chg - Changed **Sonarr missing filter** to respect the "Skip Unmonitored" setting
Chg - Changed to **show an error** if an episode wasn't added to the queue
Chg - Changed to show **dates for episodes** in the history
Chg - Changed **sync timings algorithm** to improve overall performance
Chg - Changed **sync timings algorithm** to more accurately synchronize dubs
Chg - Changed **series/season refresh messages** to indicate failure or success more clearly
Chg - Changed **error display frequency** to reduce repeated popups for the same message
Fix - Fixed **movie detection** to properly verify if the ID corresponds to a movie
Fix - Fixed **long option hiding remove buttons** for FFmpeg and MKVMerge additional options
Fix - Fixed **toast message timer** not updating correctly
Fix - Fixed **path length error**
Fix - Fixed a **rare crash when navigating history**
2025-04-23 22:36:05 +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
};