mirror of
https://github.com/Crunchy-DL/Crunchy-Downloader.git
synced 2026-01-11 20:10:26 +00:00
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**
272 lines
No EOL
5.1 KiB
C#
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
|
|
}; |