feat: Added stuff
Some checks failed
build / checks-matrix (push) Has been cancelled
build / codecov (push) Has been cancelled
docs / docs (push) Has been cancelled
build / checks-build (push) Has been cancelled

This commit is contained in:
uttarayan21
2025-11-19 17:01:14 +05:30
parent 29674df85e
commit f41625e0ed
10 changed files with 271 additions and 151 deletions

View File

@@ -4,6 +4,7 @@ version = "0.1.0"
edition = "2024"
[dependencies]
bytes = "1.11.0"
iref = { version = "3.2.2", features = ["serde"] }
jiff = { version = "0.2.16", features = ["serde"] }
reqwest = { version = "0.12.24", features = ["json"] }

View File

@@ -17,8 +17,16 @@ pub async fn main() {
for item in items {
println!("{}: {:?}", item.id, item.name);
let items = jellyfin.items(item.id).await.expect("Items");
for item in items {
println!(" {}: {:?}", item.id, item.name);
}
std::fs::write(
format!("items_{:?}.json", item.name),
serde_json::to_string_pretty(&items).expect("Serialize items"),
);
// for item in items {
// println!(" {}: {:?}", item.id, item.name);
// std::fs::write(
// format!("item_{}.json", item.id),
// serde_json::to_string_pretty(&item).expect("Serialize item"),
// );
// }
}
}

View File

@@ -6013,7 +6013,6 @@ pub struct XbmcMetadataOptions {
pub enable_extra_thumbs_duplication: bool,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ApiName {
#[serde(rename = "Mal")]
Mal,
@@ -6030,7 +6029,6 @@ pub enum ApiName {
}
/// An enum representing formats of spatial audio.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum AudioSpatialFormat {
#[serde(rename = "None")]
None,
@@ -6041,7 +6039,6 @@ pub enum AudioSpatialFormat {
}
/// The base item kind.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum BaseItemKind {
#[serde(rename = "AggregateFolder")]
AggregateFolder,
@@ -6119,7 +6116,6 @@ pub enum BaseItemKind {
Year,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ChannelItemSortField {
#[serde(rename = "Name")]
Name,
@@ -6137,7 +6133,6 @@ pub enum ChannelItemSortField {
CommunityPlayCount,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ChannelMediaContentType {
#[serde(rename = "Clip")]
Clip,
@@ -6157,7 +6152,6 @@ pub enum ChannelMediaContentType {
TvExtra,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ChannelMediaType {
#[serde(rename = "Audio")]
Audio,
@@ -6168,7 +6162,6 @@ pub enum ChannelMediaType {
}
/// Enum ChannelType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ChannelType {
#[serde(rename = "TV")]
Tv,
@@ -6176,7 +6169,6 @@ pub enum ChannelType {
Radio,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum CodecType {
#[serde(rename = "Video")]
Video,
@@ -6187,7 +6179,6 @@ pub enum CodecType {
}
/// Collection type.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum CollectionType {
#[serde(rename = "unknown")]
Unknown,
@@ -6218,7 +6209,6 @@ pub enum CollectionType {
}
/// The collection type options.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum CollectionTypeOptions {
#[serde(rename = "movies")]
Movies,
@@ -6238,7 +6228,6 @@ pub enum CollectionTypeOptions {
Mixed,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum DayOfWeek {
#[serde(rename = "Sunday")]
Sunday,
@@ -6256,7 +6245,6 @@ pub enum DayOfWeek {
Saturday,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum DayPattern {
#[serde(rename = "Daily")]
Daily,
@@ -6267,7 +6255,6 @@ pub enum DayPattern {
}
/// Enum containing deinterlace methods.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum DeinterlaceMethod {
#[serde(rename = "yadif")]
Yadif,
@@ -6275,7 +6262,6 @@ pub enum DeinterlaceMethod {
Bwdif,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum DlnaProfileType {
#[serde(rename = "Audio")]
Audio,
@@ -6290,7 +6276,6 @@ pub enum DlnaProfileType {
}
/// An enum representing an algorithm to downmix surround sound to stereo.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum DownMixStereoAlgorithms {
#[serde(rename = "None")]
None,
@@ -6305,7 +6290,6 @@ pub enum DownMixStereoAlgorithms {
}
/// An enum that represents a day of the week, weekdays, weekends, or all days.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum DynamicDayOfWeek {
#[serde(rename = "Sunday")]
Sunday,
@@ -6330,7 +6314,6 @@ pub enum DynamicDayOfWeek {
}
/// An enum representing the options to disable embedded subs.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum EmbeddedSubtitleOptions {
#[serde(rename = "AllowAll")]
AllowAll,
@@ -6343,7 +6326,6 @@ pub enum EmbeddedSubtitleOptions {
}
/// Enum containing encoder presets.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum EncoderPreset {
#[serde(rename = "auto")]
Auto,
@@ -6369,7 +6351,6 @@ pub enum EncoderPreset {
Ultrafast,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum EncodingContext {
#[serde(rename = "Streaming")]
Streaming,
@@ -6378,7 +6359,6 @@ pub enum EncodingContext {
}
/// The specific media type of an MediaBrowser.Model.Providers.ExternalIdInfo.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ExternalIdMediaType {
#[serde(rename = "Album")]
Album,
@@ -6408,7 +6388,6 @@ pub enum ExternalIdMediaType {
Book,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ExtraType {
#[serde(rename = "Unknown")]
Unknown,
@@ -6437,7 +6416,6 @@ pub enum ExtraType {
}
/// Enum FileSystemEntryType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum FileSystemEntryType {
#[serde(rename = "File")]
File,
@@ -6449,7 +6427,6 @@ pub enum FileSystemEntryType {
NetworkShare,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ForgotPasswordAction {
#[serde(rename = "ContactAdmin")]
ContactAdmin,
@@ -6460,7 +6437,6 @@ pub enum ForgotPasswordAction {
}
/// This exists simply to identify a set of known commands.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum GeneralCommandType {
#[serde(rename = "MoveUp")]
MoveUp,
@@ -6551,7 +6527,6 @@ pub enum GeneralCommandType {
}
/// Enum GroupQueueMode.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum GroupQueueMode {
#[serde(rename = "Queue")]
Queue,
@@ -6560,7 +6535,6 @@ pub enum GroupQueueMode {
}
/// Enum GroupRepeatMode.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum GroupRepeatMode {
#[serde(rename = "RepeatOne")]
RepeatOne,
@@ -6571,7 +6545,6 @@ pub enum GroupRepeatMode {
}
/// Enum GroupShuffleMode.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum GroupShuffleMode {
#[serde(rename = "Sorted")]
Sorted,
@@ -6580,7 +6553,6 @@ pub enum GroupShuffleMode {
}
/// Enum GroupState.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum GroupStateType {
#[serde(rename = "Idle")]
Idle,
@@ -6593,7 +6565,6 @@ pub enum GroupStateType {
}
/// Enum GroupUpdateType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum GroupUpdateType {
#[serde(rename = "UserJoined")]
UserJoined,
@@ -6620,7 +6591,6 @@ pub enum GroupUpdateType {
}
/// Enum containing hardware acceleration types.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum HardwareAccelerationType {
#[serde(rename = "none")]
None,
@@ -6641,7 +6611,6 @@ pub enum HardwareAccelerationType {
}
/// Enum ImageOutputFormat.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ImageFormat {
#[serde(rename = "Bmp")]
Bmp,
@@ -6657,7 +6626,6 @@ pub enum ImageFormat {
Svg,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ImageOrientation {
#[serde(rename = "TopLeft")]
TopLeft,
@@ -6678,7 +6646,6 @@ pub enum ImageOrientation {
}
/// Enum ImageResolution.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ImageResolution {
#[serde(rename = "MatchSource")]
MatchSource,
@@ -6700,7 +6667,6 @@ pub enum ImageResolution {
P2160,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ImageSavingConvention {
#[serde(rename = "Legacy")]
Legacy,
@@ -6709,7 +6675,6 @@ pub enum ImageSavingConvention {
}
/// Enum ImageType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ImageType {
#[serde(rename = "Primary")]
Primary,
@@ -6740,7 +6705,6 @@ pub enum ImageType {
}
/// Enum IsoType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum IsoType {
#[serde(rename = "Dvd")]
Dvd,
@@ -6749,7 +6713,6 @@ pub enum IsoType {
}
/// Used to control the data that gets attached to DtoBaseItems.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ItemFields {
#[serde(rename = "AirTime")]
AirTime,
@@ -6874,7 +6837,6 @@ pub enum ItemFields {
}
/// Enum ItemFilter.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ItemFilter {
#[serde(rename = "IsFolder")]
IsFolder,
@@ -6897,7 +6859,6 @@ pub enum ItemFilter {
}
/// These represent sort orders.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ItemSortBy {
#[serde(rename = "Default")]
Default,
@@ -6965,7 +6926,6 @@ pub enum ItemSortBy {
SearchScore,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum KeepUntil {
#[serde(rename = "UntilDeleted")]
UntilDeleted,
@@ -6977,7 +6937,6 @@ pub enum KeepUntil {
UntilDate,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum LiveTvServiceStatus {
#[serde(rename = "Ok")]
Ok,
@@ -6986,7 +6945,6 @@ pub enum LiveTvServiceStatus {
}
/// Enum LocationType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum LocationType {
#[serde(rename = "FileSystem")]
FileSystem,
@@ -6998,7 +6956,6 @@ pub enum LocationType {
Offline,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum LogLevel {
#[serde(rename = "Trace")]
Trace,
@@ -7016,7 +6973,6 @@ pub enum LogLevel {
None,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum MediaProtocol {
#[serde(rename = "File")]
File,
@@ -7035,7 +6991,6 @@ pub enum MediaProtocol {
}
/// Defines the types of content an individual Jellyfin.Data.Entities.MediaSegment represents.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum MediaSegmentType {
#[serde(rename = "Unknown")]
Unknown,
@@ -7051,7 +7006,6 @@ pub enum MediaSegmentType {
Intro,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum MediaSourceType {
#[serde(rename = "Default")]
Default,
@@ -7063,7 +7017,6 @@ pub enum MediaSourceType {
/** Media streaming protocol.
Lowercase for backwards compatibility.*/
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum MediaStreamProtocol {
#[serde(rename = "http")]
Http,
@@ -7072,7 +7025,6 @@ pub enum MediaStreamProtocol {
}
/// Enum MediaStreamType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum MediaStreamType {
#[serde(rename = "Audio")]
Audio,
@@ -7089,7 +7041,6 @@ pub enum MediaStreamType {
}
/// Media types.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum MediaType {
#[serde(rename = "Unknown")]
Unknown,
@@ -7104,7 +7055,6 @@ pub enum MediaType {
}
/// Enum MetadataFields.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum MetadataField {
#[serde(rename = "Cast")]
Cast,
@@ -7126,7 +7076,6 @@ pub enum MetadataField {
OfficialRating,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum MetadataRefreshMode {
#[serde(rename = "None")]
None,
@@ -7138,7 +7087,6 @@ pub enum MetadataRefreshMode {
FullRefresh,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ParameterInclude {
#[serde(rename = "ProviderList")]
ProviderList,
@@ -7151,7 +7099,6 @@ pub enum ParameterInclude {
}
/// The person kind.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PersonKind {
#[serde(rename = "Unknown")]
Unknown,
@@ -7205,7 +7152,6 @@ pub enum PersonKind {
Translator,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PlayAccess {
#[serde(rename = "Full")]
Full,
@@ -7213,7 +7159,6 @@ pub enum PlayAccess {
None,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PlaybackErrorCode {
#[serde(rename = "NotAllowed")]
NotAllowed,
@@ -7224,7 +7169,6 @@ pub enum PlaybackErrorCode {
}
/// Enum PlaybackOrder.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PlaybackOrder {
#[serde(rename = "Default")]
Default,
@@ -7233,7 +7177,6 @@ pub enum PlaybackOrder {
}
/// Enum PlaybackRequestType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PlaybackRequestType {
#[serde(rename = "Play")]
Play,
@@ -7272,7 +7215,6 @@ pub enum PlaybackRequestType {
}
/// Enum PlayCommand.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PlayCommand {
#[serde(rename = "PlayNow")]
PlayNow,
@@ -7286,7 +7228,6 @@ pub enum PlayCommand {
PlayShuffle,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PlayMethod {
#[serde(rename = "Transcode")]
Transcode,
@@ -7297,7 +7238,6 @@ pub enum PlayMethod {
}
/// Enum PlayQueueUpdateReason.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PlayQueueUpdateReason {
#[serde(rename = "NewPlaylist")]
NewPlaylist,
@@ -7322,7 +7262,6 @@ pub enum PlayQueueUpdateReason {
}
/// Enum PlaystateCommand.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PlaystateCommand {
#[serde(rename = "Stop")]
Stop,
@@ -7345,7 +7284,6 @@ pub enum PlaystateCommand {
}
/// Plugin load status.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum PluginStatus {
#[serde(rename = "Active")]
Active,
@@ -7363,7 +7301,6 @@ pub enum PluginStatus {
Disabled,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ProcessPriorityClass {
#[serde(rename = "Normal")]
Normal,
@@ -7379,7 +7316,6 @@ pub enum ProcessPriorityClass {
AboveNormal,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ProfileConditionType {
#[serde(rename = "Equals")]
Equals,
@@ -7393,7 +7329,6 @@ pub enum ProfileConditionType {
EqualsAny,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ProfileConditionValue {
#[serde(rename = "AudioChannels")]
AudioChannels,
@@ -7445,7 +7380,6 @@ pub enum ProfileConditionValue {
VideoRangeType,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ProgramAudio {
#[serde(rename = "Mono")]
Mono,
@@ -7461,7 +7395,6 @@ pub enum ProgramAudio {
Atmos,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum RatingType {
#[serde(rename = "Score")]
Score,
@@ -7469,7 +7402,6 @@ pub enum RatingType {
Likes,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum RecommendationType {
#[serde(rename = "SimilarToRecentlyPlayed")]
SimilarToRecentlyPlayed,
@@ -7485,7 +7417,6 @@ pub enum RecommendationType {
HasLikedActor,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum RecordingStatus {
#[serde(rename = "New")]
New,
@@ -7503,7 +7434,6 @@ pub enum RecordingStatus {
Error,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum RepeatMode {
#[serde(rename = "RepeatNone")]
RepeatNone,
@@ -7514,7 +7444,6 @@ pub enum RepeatMode {
}
/// An enum representing the axis that should be scrolled.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum ScrollDirection {
#[serde(rename = "Horizontal")]
Horizontal,
@@ -7523,7 +7452,6 @@ pub enum ScrollDirection {
}
/// Enum SendCommandType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum SendCommandType {
#[serde(rename = "Unpause")]
Unpause,
@@ -7536,7 +7464,6 @@ pub enum SendCommandType {
}
/// The status of a series.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum SeriesStatus {
#[serde(rename = "Continuing")]
Continuing,
@@ -7547,7 +7474,6 @@ pub enum SeriesStatus {
}
/// The different kinds of messages that are used in the WebSocket api.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum SessionMessageType {
#[serde(rename = "ForceKeepAlive")]
ForceKeepAlive,
@@ -7620,7 +7546,6 @@ pub enum SessionMessageType {
}
/// An enum representing the sorting order.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum SortOrder {
#[serde(rename = "Ascending")]
Ascending,
@@ -7628,7 +7553,6 @@ pub enum SortOrder {
Descending,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum Status {
#[serde(rename = "Completed")]
Completed,
@@ -7639,7 +7563,6 @@ pub enum Status {
}
/// Delivery method to use during playback of a specific subtitle format.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum SubtitleDeliveryMethod {
#[serde(rename = "Encode")]
Encode,
@@ -7654,7 +7577,6 @@ pub enum SubtitleDeliveryMethod {
}
/// An enum representing a subtitle playback mode.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum SubtitlePlaybackMode {
#[serde(rename = "Default")]
Default,
@@ -7668,7 +7590,6 @@ pub enum SubtitlePlaybackMode {
Smart,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum SyncAction {
#[serde(rename = "UpdateProvider")]
UpdateProvider,
@@ -7677,7 +7598,6 @@ pub enum SyncAction {
}
/// Enum SyncPlayUserAccessType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum SyncPlayUserAccessType {
#[serde(rename = "CreateAndJoinGroups")]
CreateAndJoinGroups,
@@ -7688,7 +7608,6 @@ pub enum SyncPlayUserAccessType {
}
/// Enum TaskCompletionStatus.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TaskCompletionStatus {
#[serde(rename = "Completed")]
Completed,
@@ -7701,7 +7620,6 @@ pub enum TaskCompletionStatus {
}
/// Enum TaskState.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TaskState {
#[serde(rename = "Idle")]
Idle,
@@ -7712,7 +7630,6 @@ pub enum TaskState {
}
/// Enum containing tonemapping algorithms.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TonemappingAlgorithm {
#[serde(rename = "none")]
None,
@@ -7733,7 +7650,6 @@ pub enum TonemappingAlgorithm {
}
/// Enum containing tonemapping modes.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TonemappingMode {
#[serde(rename = "auto")]
Auto,
@@ -7748,7 +7664,6 @@ pub enum TonemappingMode {
}
/// Enum containing tonemapping ranges.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TonemappingRange {
#[serde(rename = "auto")]
Auto,
@@ -7758,7 +7673,6 @@ pub enum TonemappingRange {
Pc,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TranscodeReason {
#[serde(rename = "ContainerNotSupported")]
ContainerNotSupported,
@@ -7814,7 +7728,6 @@ pub enum TranscodeReason {
VideoCodecTagNotSupported,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TranscodeSeekInfo {
#[serde(rename = "Auto")]
Auto,
@@ -7822,7 +7735,6 @@ pub enum TranscodeSeekInfo {
Bytes,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TransportStreamTimestamp {
#[serde(rename = "None")]
None,
@@ -7833,7 +7745,6 @@ pub enum TransportStreamTimestamp {
}
/// Enum TrickplayScanBehavior.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum TrickplayScanBehavior {
#[serde(rename = "Blocking")]
Blocking,
@@ -7842,7 +7753,6 @@ pub enum TrickplayScanBehavior {
}
/// An enum representing an unrated item.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum UnratedItem {
#[serde(rename = "Movie")]
Movie,
@@ -7864,7 +7774,6 @@ pub enum UnratedItem {
Other,
}
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum Video3DFormat {
#[serde(rename = "HalfSideBySide")]
HalfSideBySide,
@@ -7879,7 +7788,6 @@ pub enum Video3DFormat {
}
/// An enum representing video ranges.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum VideoRange {
#[serde(rename = "Unknown")]
Unknown,
@@ -7890,7 +7798,6 @@ pub enum VideoRange {
}
/// An enum representing types of video ranges.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum VideoRangeType {
#[serde(rename = "Unknown")]
Unknown,
@@ -7913,7 +7820,6 @@ pub enum VideoRangeType {
}
/// Enum VideoType.
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "PascalCase")]
pub enum VideoType {
#[serde(rename = "VideoFile")]
VideoFile,

View File

@@ -185,6 +185,39 @@ impl JellyfinClient {
let out: jellyfin::BaseItemDtoQueryResult = serde_json::from_str(&text)?;
Ok(out.items)
}
pub async fn search(&self, query: impl AsRef<str>) -> Result<Vec<jellyfin::BaseItemDto>> {
let text = &self
.request_builder(Method::GET, "Items/Search")
.query(&[("searchTerm", query.as_ref()), ("recursive", "true")])
.send()
.await?
.error_for_status()?
.text()
.await?;
let out: jellyfin::BaseItemDtoQueryResult = serde_json::from_str(&text)?;
Ok(out.items)
}
pub async fn thumbnail(
&self,
item: uuid::Uuid,
image_type: jellyfin::ImageType,
) -> Result<bytes::Bytes> {
let uri = format!(
"Items/{}/Images/{}",
item,
serde_json::to_string(&image_type).expect("Failed to serialize image type")
);
let bytes = self
.request_builder(Method::GET, uri)
.send()
.await?
.error_for_status()?
.bytes()
.await?;
Ok(bytes)
}
}
// pub trait Item {