1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2025-09-04 01:42:44 +00:00

[2/3] update openapi spec: generate code

This updates the openapi spec and invokes the code generator to update
to the Jellyfin 10.10.6 API.

A big motivation to do this was because some mandatory fields have been
made obsolete and are no longer included in responses. Sailfin tries to
deserialize these mandatory fields and fails deserializing. It was evident
in the list of sessions to control.

The failing was a bit too gracefully in my opinion, it did not even show
that an error occurred, nor was it logged anywhere. It took some time
to debug.
This commit is contained in:
Chris Josten 2025-03-13 02:39:07 +01:00
parent eeb9183909
commit d685b48ec1
504 changed files with 62190 additions and 41202 deletions

View file

@ -27,14 +27,15 @@
* file with a newer file if needed instead of manually updating the files.
*/
#ifndef JELLYFIN_LOADER_HTTP_DLNASERVER_H
#define JELLYFIN_LOADER_HTTP_DLNASERVER_H
#ifndef JELLYFIN_LOADER_HTTP_CLIENTLOG_H
#define JELLYFIN_LOADER_HTTP_CLIENTLOG_H
#include <optional>
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/clientlogdocumentresponsedto.h"
namespace Jellyfin {
// Forward declaration
@ -46,9 +47,23 @@ namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Upload a document.
*/
class LogFileLoader : public Jellyfin::Support::HttpLoader<ClientLogDocumentResponseDto, LogFileParams> {
public:
explicit LogFileLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const LogFileParams& parameters) const override;
QUrlQuery query(const LogFileParams& parameters) const override;
QByteArray body(const LogFileParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader
} // NS Jellyfin
#endif // JELLYFIN_LOADER_HTTP_DLNASERVER_H
#endif // JELLYFIN_LOADER_HTTP_CLIENTLOG_H

View file

@ -118,20 +118,6 @@ protected:
QByteArray body(const GetDefaultMetadataOptionsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates the path to the media encoder.
*/
class UpdateMediaEncoderPathLoader : public Jellyfin::Support::HttpLoader<void, UpdateMediaEncoderPathParams> {
public:
explicit UpdateMediaEncoderPathLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateMediaEncoderPathParams& parameters) const override;
QUrlQuery query(const UpdateMediaEncoderPathParams& parameters) const override;
QByteArray body(const UpdateMediaEncoderPathParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader

View file

@ -35,9 +35,9 @@
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/deviceinfoqueryresult.h"
#include "JellyfinQt/dto/deviceinfo.h"
#include "JellyfinQt/dto/deviceoptions.h"
#include "JellyfinQt/dto/deviceinfodtoqueryresult.h"
#include "JellyfinQt/dto/deviceinfodto.h"
#include "JellyfinQt/dto/deviceoptionsdto.h"
namespace Jellyfin {
// Forward declaration
@ -53,7 +53,7 @@ using namespace Jellyfin::DTO;
* @brief Get Devices.
*/
class GetDevicesLoader : public Jellyfin::Support::HttpLoader<DeviceInfoQueryResult, GetDevicesParams> {
class GetDevicesLoader : public Jellyfin::Support::HttpLoader<DeviceInfoDtoQueryResult, GetDevicesParams> {
public:
explicit GetDevicesLoader(ApiClient *apiClient = nullptr);
@ -81,7 +81,7 @@ protected:
* @brief Get info for a device.
*/
class GetDeviceInfoLoader : public Jellyfin::Support::HttpLoader<DeviceInfo, GetDeviceInfoParams> {
class GetDeviceInfoLoader : public Jellyfin::Support::HttpLoader<DeviceInfoDto, GetDeviceInfoParams> {
public:
explicit GetDeviceInfoLoader(ApiClient *apiClient = nullptr);
@ -95,7 +95,7 @@ protected:
* @brief Get options for a device.
*/
class GetDeviceOptionsLoader : public Jellyfin::Support::HttpLoader<DeviceOptions, GetDeviceOptionsParams> {
class GetDeviceOptionsLoader : public Jellyfin::Support::HttpLoader<DeviceOptionsDto, GetDeviceOptionsParams> {
public:
explicit GetDeviceOptionsLoader(ApiClient *apiClient = nullptr);

View file

@ -1,141 +0,0 @@
/*
* Sailfin: a Jellyfin client written using Qt
* Copyright (C) 2021 Chris Josten and the Sailfin Contributors.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE! PLEASE DO NOT EDIT THIS, AS YOUR EDITS WILL GET
* OVERWRITTEN AT SOME POINT!
*
* If there is a bug in this file, please fix the code generator used to generate this file found in
* core/openapigenerator.d.
*
* This file is generated based on Jellyfin's OpenAPI description, "openapi.json". Please update that
* file with a newer file if needed instead of manually updating the files.
*/
#ifndef JELLYFIN_LOADER_HTTP_DLNA_H
#define JELLYFIN_LOADER_HTTP_DLNA_H
#include <optional>
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/deviceprofileinfo.h"
#include "JellyfinQt/dto/deviceprofile.h"
#include "JellyfinQt/dto/deviceprofile.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin {
namespace Loader {
namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Get profile infos.
*/
class GetProfileInfosLoader : public Jellyfin::Support::HttpLoader<QList<DeviceProfileInfo>, GetProfileInfosParams> {
public:
explicit GetProfileInfosLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetProfileInfosParams& parameters) const override;
QUrlQuery query(const GetProfileInfosParams& parameters) const override;
QByteArray body(const GetProfileInfosParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Creates a profile.
*/
class CreateProfileLoader : public Jellyfin::Support::HttpLoader<void, CreateProfileParams> {
public:
explicit CreateProfileLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const CreateProfileParams& parameters) const override;
QUrlQuery query(const CreateProfileParams& parameters) const override;
QByteArray body(const CreateProfileParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets a single profile.
*/
class GetProfileLoader : public Jellyfin::Support::HttpLoader<DeviceProfile, GetProfileParams> {
public:
explicit GetProfileLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetProfileParams& parameters) const override;
QUrlQuery query(const GetProfileParams& parameters) const override;
QByteArray body(const GetProfileParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Deletes a profile.
*/
class DeleteProfileLoader : public Jellyfin::Support::HttpLoader<void, DeleteProfileParams> {
public:
explicit DeleteProfileLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const DeleteProfileParams& parameters) const override;
QUrlQuery query(const DeleteProfileParams& parameters) const override;
QByteArray body(const DeleteProfileParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a profile.
*/
class UpdateProfileLoader : public Jellyfin::Support::HttpLoader<void, UpdateProfileParams> {
public:
explicit UpdateProfileLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateProfileParams& parameters) const override;
QUrlQuery query(const UpdateProfileParams& parameters) const override;
QByteArray body(const UpdateProfileParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets the default profile.
*/
class GetDefaultProfileLoader : public Jellyfin::Support::HttpLoader<DeviceProfile, GetDefaultProfileParams> {
public:
explicit GetDefaultProfileLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetDefaultProfileParams& parameters) const override;
QUrlQuery query(const GetDefaultProfileParams& parameters) const override;
QByteArray body(const GetDefaultProfileParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader
} // NS Jellyfin
#endif // JELLYFIN_LOADER_HTTP_DLNA_H

View file

@ -47,6 +47,35 @@ namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Uploads a custom splashscreen.
The body is expected to the image contents base64 encoded.
*/
class UploadCustomSplashscreenLoader : public Jellyfin::Support::HttpLoader<void, UploadCustomSplashscreenParams> {
public:
explicit UploadCustomSplashscreenLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UploadCustomSplashscreenParams& parameters) const override;
QUrlQuery query(const UploadCustomSplashscreenParams& parameters) const override;
QByteArray body(const UploadCustomSplashscreenParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Delete a custom splashscreen.
*/
class DeleteCustomSplashscreenLoader : public Jellyfin::Support::HttpLoader<void, DeleteCustomSplashscreenParams> {
public:
explicit DeleteCustomSplashscreenLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const DeleteCustomSplashscreenParams& parameters) const override;
QUrlQuery query(const DeleteCustomSplashscreenParams& parameters) const override;
QByteArray body(const DeleteCustomSplashscreenParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Get item image infos.
*/
@ -159,34 +188,6 @@ protected:
QByteArray body(const DeleteUserImageParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Sets the user image.
*/
class PostUserImageByIndexLoader : public Jellyfin::Support::HttpLoader<void, PostUserImageByIndexParams> {
public:
explicit PostUserImageByIndexLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const PostUserImageByIndexParams& parameters) const override;
QUrlQuery query(const PostUserImageByIndexParams& parameters) const override;
QByteArray body(const PostUserImageByIndexParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Delete the user's image.
*/
class DeleteUserImageByIndexLoader : public Jellyfin::Support::HttpLoader<void, DeleteUserImageByIndexParams> {
public:
explicit DeleteUserImageByIndexLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const DeleteUserImageByIndexParams& parameters) const override;
QUrlQuery query(const DeleteUserImageByIndexParams& parameters) const override;
QByteArray body(const DeleteUserImageByIndexParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader

View file

@ -42,6 +42,7 @@
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
namespace Jellyfin {
// Forward declaration
@ -54,7 +55,7 @@ namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Creates an instant playlist based on a given song.
* @brief Creates an instant playlist based on a given album.
*/
class GetInstantMixFromAlbumLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromAlbumParams> {
@ -68,7 +69,7 @@ protected:
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Creates an instant playlist based on a given song.
* @brief Creates an instant playlist based on a given artist.
*/
class GetInstantMixFromArtistsLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromArtistsParams> {
@ -82,7 +83,21 @@ protected:
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Creates an instant playlist based on a given song.
* @brief Creates an instant playlist based on a given artist.
*/
class GetInstantMixFromArtists2Loader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromArtists2Params> {
public:
explicit GetInstantMixFromArtists2Loader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetInstantMixFromArtists2Params& parameters) const override;
QUrlQuery query(const GetInstantMixFromArtists2Params& parameters) const override;
QByteArray body(const GetInstantMixFromArtists2Params& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Creates an instant playlist based on a given item.
*/
class GetInstantMixFromItemLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromItemParams> {
@ -96,35 +111,35 @@ protected:
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Creates an instant playlist based on a given song.
* @brief Creates an instant playlist based on a given genre.
*/
class GetInstantMixFromMusicGenresLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromMusicGenresParams> {
class GetInstantMixFromMusicGenreByNameLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromMusicGenreByNameParams> {
public:
explicit GetInstantMixFromMusicGenresLoader(ApiClient *apiClient = nullptr);
explicit GetInstantMixFromMusicGenreByNameLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetInstantMixFromMusicGenresParams& parameters) const override;
QUrlQuery query(const GetInstantMixFromMusicGenresParams& parameters) const override;
QByteArray body(const GetInstantMixFromMusicGenresParams& parameters) const override;
QString path(const GetInstantMixFromMusicGenreByNameParams& parameters) const override;
QUrlQuery query(const GetInstantMixFromMusicGenreByNameParams& parameters) const override;
QByteArray body(const GetInstantMixFromMusicGenreByNameParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Creates an instant playlist based on a given song.
* @brief Creates an instant playlist based on a given genre.
*/
class GetInstantMixFromMusicGenreLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromMusicGenreParams> {
class GetInstantMixFromMusicGenreByIdLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromMusicGenreByIdParams> {
public:
explicit GetInstantMixFromMusicGenreLoader(ApiClient *apiClient = nullptr);
explicit GetInstantMixFromMusicGenreByIdLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetInstantMixFromMusicGenreParams& parameters) const override;
QUrlQuery query(const GetInstantMixFromMusicGenreParams& parameters) const override;
QByteArray body(const GetInstantMixFromMusicGenreParams& parameters) const override;
QString path(const GetInstantMixFromMusicGenreByIdParams& parameters) const override;
QUrlQuery query(const GetInstantMixFromMusicGenreByIdParams& parameters) const override;
QByteArray body(const GetInstantMixFromMusicGenreByIdParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Creates an instant playlist based on a given song.
* @brief Creates an instant playlist based on a given playlist.
*/
class GetInstantMixFromPlaylistLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetInstantMixFromPlaylistParams> {

View file

@ -50,14 +50,14 @@ using namespace Jellyfin::DTO;
* @brief Refreshes metadata for an item.
*/
class PostLoader : public Jellyfin::Support::HttpLoader<void, PostParams> {
class RefreshItemLoader : public Jellyfin::Support::HttpLoader<void, RefreshItemParams> {
public:
explicit PostLoader(ApiClient *apiClient = nullptr);
explicit RefreshItemLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const PostParams& parameters) const override;
QUrlQuery query(const PostParams& parameters) const override;
QByteArray body(const PostParams& parameters) const override;
QString path(const RefreshItemParams& parameters) const override;
QUrlQuery query(const RefreshItemParams& parameters) const override;
QByteArray body(const RefreshItemParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};

View file

@ -36,7 +36,8 @@
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
#include "JellyfinQt/dto/useritemdatadto.h"
#include "JellyfinQt/dto/useritemdatadto.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
namespace Jellyfin {
@ -64,17 +65,31 @@ protected:
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets items based on a query.
* @brief Get Item User Data.
*/
class GetItemsByUserIdLoader : public Jellyfin::Support::HttpLoader<BaseItemDtoQueryResult, GetItemsByUserIdParams> {
class GetItemUserDataLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, GetItemUserDataParams> {
public:
explicit GetItemsByUserIdLoader(ApiClient *apiClient = nullptr);
explicit GetItemUserDataLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetItemsByUserIdParams& parameters) const override;
QUrlQuery query(const GetItemsByUserIdParams& parameters) const override;
QByteArray body(const GetItemsByUserIdParams& parameters) const override;
QString path(const GetItemUserDataParams& parameters) const override;
QUrlQuery query(const GetItemUserDataParams& parameters) const override;
QByteArray body(const GetItemUserDataParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Update Item User Data.
*/
class UpdateItemUserDataLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, UpdateItemUserDataParams> {
public:
explicit UpdateItemUserDataLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateItemUserDataParams& parameters) const override;
QUrlQuery query(const UpdateItemUserDataParams& parameters) const override;
QByteArray body(const UpdateItemUserDataParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**

View file

@ -0,0 +1,143 @@
/*
* Sailfin: a Jellyfin client written using Qt
* Copyright (C) 2021 Chris Josten and the Sailfin Contributors.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE! PLEASE DO NOT EDIT THIS, AS YOUR EDITS WILL GET
* OVERWRITTEN AT SOME POINT!
*
* If there is a bug in this file, please fix the code generator used to generate this file found in
* core/openapigenerator.d.
*
* This file is generated based on Jellyfin's OpenAPI description, "openapi.json". Please update that
* file with a newer file if needed instead of manually updating the files.
*/
#ifndef JELLYFIN_LOADER_HTTP_LYRICS_H
#define JELLYFIN_LOADER_HTTP_LYRICS_H
#include <optional>
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/lyricdto.h"
#include "JellyfinQt/dto/lyricdto.h"
#include "JellyfinQt/dto/remotelyricinfodto.h"
#include "JellyfinQt/dto/lyricdto.h"
#include "JellyfinQt/dto/lyricdto.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin {
namespace Loader {
namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Gets an item's lyrics.
*/
class GetLyricsLoader : public Jellyfin::Support::HttpLoader<LyricDto, GetLyricsParams> {
public:
explicit GetLyricsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetLyricsParams& parameters) const override;
QUrlQuery query(const GetLyricsParams& parameters) const override;
QByteArray body(const GetLyricsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Upload an external lyric file.
*/
class UploadLyricsLoader : public Jellyfin::Support::HttpLoader<LyricDto, UploadLyricsParams> {
public:
explicit UploadLyricsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UploadLyricsParams& parameters) const override;
QUrlQuery query(const UploadLyricsParams& parameters) const override;
QByteArray body(const UploadLyricsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Deletes an external lyric file.
*/
class DeleteLyricsLoader : public Jellyfin::Support::HttpLoader<void, DeleteLyricsParams> {
public:
explicit DeleteLyricsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const DeleteLyricsParams& parameters) const override;
QUrlQuery query(const DeleteLyricsParams& parameters) const override;
QByteArray body(const DeleteLyricsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Search remote lyrics.
*/
class SearchRemoteLyricsLoader : public Jellyfin::Support::HttpLoader<QList<RemoteLyricInfoDto>, SearchRemoteLyricsParams> {
public:
explicit SearchRemoteLyricsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const SearchRemoteLyricsParams& parameters) const override;
QUrlQuery query(const SearchRemoteLyricsParams& parameters) const override;
QByteArray body(const SearchRemoteLyricsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Downloads a remote lyric.
*/
class DownloadRemoteLyricsLoader : public Jellyfin::Support::HttpLoader<LyricDto, DownloadRemoteLyricsParams> {
public:
explicit DownloadRemoteLyricsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const DownloadRemoteLyricsParams& parameters) const override;
QUrlQuery query(const DownloadRemoteLyricsParams& parameters) const override;
QByteArray body(const DownloadRemoteLyricsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets the remote lyrics.
*/
class GetRemoteLyricsLoader : public Jellyfin::Support::HttpLoader<LyricDto, GetRemoteLyricsParams> {
public:
explicit GetRemoteLyricsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetRemoteLyricsParams& parameters) const override;
QUrlQuery query(const GetRemoteLyricsParams& parameters) const override;
QByteArray body(const GetRemoteLyricsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader
} // NS Jellyfin
#endif // JELLYFIN_LOADER_HTTP_LYRICS_H

View file

@ -27,17 +27,15 @@
* file with a newer file if needed instead of manually updating the files.
*/
#ifndef JELLYFIN_LOADER_HTTP_IMAGEBYNAME_H
#define JELLYFIN_LOADER_HTTP_IMAGEBYNAME_H
#ifndef JELLYFIN_LOADER_HTTP_MEDIASEGMENTS_H
#define JELLYFIN_LOADER_HTTP_MEDIASEGMENTS_H
#include <optional>
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/imagebynameinfo.h"
#include "JellyfinQt/dto/imagebynameinfo.h"
#include "JellyfinQt/dto/imagebynameinfo.h"
#include "JellyfinQt/dto/mediasegmentdtoqueryresult.h"
namespace Jellyfin {
// Forward declaration
@ -50,45 +48,17 @@ namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Get all general images.
* @brief Gets all media segments based on an itemId.
*/
class GetGeneralImagesLoader : public Jellyfin::Support::HttpLoader<QList<ImageByNameInfo>, GetGeneralImagesParams> {
class GetItemSegmentsLoader : public Jellyfin::Support::HttpLoader<MediaSegmentDtoQueryResult, GetItemSegmentsParams> {
public:
explicit GetGeneralImagesLoader(ApiClient *apiClient = nullptr);
explicit GetItemSegmentsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetGeneralImagesParams& parameters) const override;
QUrlQuery query(const GetGeneralImagesParams& parameters) const override;
QByteArray body(const GetGeneralImagesParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Get all media info images.
*/
class GetMediaInfoImagesLoader : public Jellyfin::Support::HttpLoader<QList<ImageByNameInfo>, GetMediaInfoImagesParams> {
public:
explicit GetMediaInfoImagesLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetMediaInfoImagesParams& parameters) const override;
QUrlQuery query(const GetMediaInfoImagesParams& parameters) const override;
QByteArray body(const GetMediaInfoImagesParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Get all general images.
*/
class GetRatingImagesLoader : public Jellyfin::Support::HttpLoader<QList<ImageByNameInfo>, GetRatingImagesParams> {
public:
explicit GetRatingImagesLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetRatingImagesParams& parameters) const override;
QUrlQuery query(const GetRatingImagesParams& parameters) const override;
QByteArray body(const GetRatingImagesParams& parameters) const override;
QString path(const GetItemSegmentsParams& parameters) const override;
QUrlQuery query(const GetItemSegmentsParams& parameters) const override;
QByteArray body(const GetItemSegmentsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
@ -96,4 +66,4 @@ protected:
} // NS Loader
} // NS Jellyfin
#endif // JELLYFIN_LOADER_HTTP_IMAGEBYNAME_H
#endif // JELLYFIN_LOADER_HTTP_MEDIASEGMENTS_H

View file

@ -1,156 +0,0 @@
/*
* Sailfin: a Jellyfin client written using Qt
* Copyright (C) 2021 Chris Josten and the Sailfin Contributors.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE! PLEASE DO NOT EDIT THIS, AS YOUR EDITS WILL GET
* OVERWRITTEN AT SOME POINT!
*
* If there is a bug in this file, please fix the code generator used to generate this file found in
* core/openapigenerator.d.
*
* This file is generated based on Jellyfin's OpenAPI description, "openapi.json". Please update that
* file with a newer file if needed instead of manually updating the files.
*/
#ifndef JELLYFIN_LOADER_HTTP_NOTIFICATIONS_H
#define JELLYFIN_LOADER_HTTP_NOTIFICATIONS_H
#include <optional>
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/notificationresultdto.h"
#include "JellyfinQt/dto/notificationssummarydto.h"
#include "JellyfinQt/dto/nameidpair.h"
#include "JellyfinQt/dto/notificationtypeinfo.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin {
namespace Loader {
namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Gets a user's notifications.
*/
class GetNotificationsLoader : public Jellyfin::Support::HttpLoader<NotificationResultDto, GetNotificationsParams> {
public:
explicit GetNotificationsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetNotificationsParams& parameters) const override;
QUrlQuery query(const GetNotificationsParams& parameters) const override;
QByteArray body(const GetNotificationsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Sets notifications as read.
*/
class SetReadLoader : public Jellyfin::Support::HttpLoader<void, SetReadParams> {
public:
explicit SetReadLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const SetReadParams& parameters) const override;
QUrlQuery query(const SetReadParams& parameters) const override;
QByteArray body(const SetReadParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets a user's notification summary.
*/
class GetNotificationsSummaryLoader : public Jellyfin::Support::HttpLoader<NotificationsSummaryDto, GetNotificationsSummaryParams> {
public:
explicit GetNotificationsSummaryLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetNotificationsSummaryParams& parameters) const override;
QUrlQuery query(const GetNotificationsSummaryParams& parameters) const override;
QByteArray body(const GetNotificationsSummaryParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Sets notifications as unread.
*/
class SetUnreadLoader : public Jellyfin::Support::HttpLoader<void, SetUnreadParams> {
public:
explicit SetUnreadLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const SetUnreadParams& parameters) const override;
QUrlQuery query(const SetUnreadParams& parameters) const override;
QByteArray body(const SetUnreadParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Sends a notification to all admins.
*/
class CreateAdminNotificationLoader : public Jellyfin::Support::HttpLoader<void, CreateAdminNotificationParams> {
public:
explicit CreateAdminNotificationLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const CreateAdminNotificationParams& parameters) const override;
QUrlQuery query(const CreateAdminNotificationParams& parameters) const override;
QByteArray body(const CreateAdminNotificationParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets notification services.
*/
class GetNotificationServicesLoader : public Jellyfin::Support::HttpLoader<QList<NameIdPair>, GetNotificationServicesParams> {
public:
explicit GetNotificationServicesLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetNotificationServicesParams& parameters) const override;
QUrlQuery query(const GetNotificationServicesParams& parameters) const override;
QByteArray body(const GetNotificationServicesParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets notification types.
*/
class GetNotificationTypesLoader : public Jellyfin::Support::HttpLoader<QList<NotificationTypeInfo>, GetNotificationTypesParams> {
public:
explicit GetNotificationTypesLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetNotificationTypesParams& parameters) const override;
QUrlQuery query(const GetNotificationTypesParams& parameters) const override;
QByteArray body(const GetNotificationTypesParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader
} // NS Jellyfin
#endif // JELLYFIN_LOADER_HTTP_NOTIFICATIONS_H

View file

@ -36,7 +36,10 @@
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/playlistcreationresult.h"
#include "JellyfinQt/dto/playlistdto.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
#include "JellyfinQt/dto/playlistuserpermissions.h"
#include "JellyfinQt/dto/playlistuserpermissions.h"
namespace Jellyfin {
// Forward declaration
@ -62,32 +65,60 @@ protected:
QByteArray body(const CreatePlaylistParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a playlist.
*/
class UpdatePlaylistLoader : public Jellyfin::Support::HttpLoader<void, UpdatePlaylistParams> {
public:
explicit UpdatePlaylistLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdatePlaylistParams& parameters) const override;
QUrlQuery query(const UpdatePlaylistParams& parameters) const override;
QByteArray body(const UpdatePlaylistParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Get a playlist.
*/
class GetPlaylistLoader : public Jellyfin::Support::HttpLoader<PlaylistDto, GetPlaylistParams> {
public:
explicit GetPlaylistLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetPlaylistParams& parameters) const override;
QUrlQuery query(const GetPlaylistParams& parameters) const override;
QByteArray body(const GetPlaylistParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Adds items to a playlist.
*/
class AddToPlaylistLoader : public Jellyfin::Support::HttpLoader<void, AddToPlaylistParams> {
class AddItemToPlaylistLoader : public Jellyfin::Support::HttpLoader<void, AddItemToPlaylistParams> {
public:
explicit AddToPlaylistLoader(ApiClient *apiClient = nullptr);
explicit AddItemToPlaylistLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const AddToPlaylistParams& parameters) const override;
QUrlQuery query(const AddToPlaylistParams& parameters) const override;
QByteArray body(const AddToPlaylistParams& parameters) const override;
QString path(const AddItemToPlaylistParams& parameters) const override;
QUrlQuery query(const AddItemToPlaylistParams& parameters) const override;
QByteArray body(const AddItemToPlaylistParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Removes items from a playlist.
*/
class RemoveFromPlaylistLoader : public Jellyfin::Support::HttpLoader<void, RemoveFromPlaylistParams> {
class RemoveItemFromPlaylistLoader : public Jellyfin::Support::HttpLoader<void, RemoveItemFromPlaylistParams> {
public:
explicit RemoveFromPlaylistLoader(ApiClient *apiClient = nullptr);
explicit RemoveItemFromPlaylistLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const RemoveFromPlaylistParams& parameters) const override;
QUrlQuery query(const RemoveFromPlaylistParams& parameters) const override;
QByteArray body(const RemoveFromPlaylistParams& parameters) const override;
QString path(const RemoveItemFromPlaylistParams& parameters) const override;
QUrlQuery query(const RemoveItemFromPlaylistParams& parameters) const override;
QByteArray body(const RemoveItemFromPlaylistParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
@ -118,6 +149,62 @@ protected:
QByteArray body(const MoveItemParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Get a playlist's users.
*/
class GetPlaylistUsersLoader : public Jellyfin::Support::HttpLoader<QList<PlaylistUserPermissions>, GetPlaylistUsersParams> {
public:
explicit GetPlaylistUsersLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetPlaylistUsersParams& parameters) const override;
QUrlQuery query(const GetPlaylistUsersParams& parameters) const override;
QByteArray body(const GetPlaylistUsersParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Get a playlist user.
*/
class GetPlaylistUserLoader : public Jellyfin::Support::HttpLoader<PlaylistUserPermissions, GetPlaylistUserParams> {
public:
explicit GetPlaylistUserLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetPlaylistUserParams& parameters) const override;
QUrlQuery query(const GetPlaylistUserParams& parameters) const override;
QByteArray body(const GetPlaylistUserParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Modify a user of a playlist's users.
*/
class UpdatePlaylistUserLoader : public Jellyfin::Support::HttpLoader<void, UpdatePlaylistUserParams> {
public:
explicit UpdatePlaylistUserLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdatePlaylistUserParams& parameters) const override;
QUrlQuery query(const UpdatePlaylistUserParams& parameters) const override;
QByteArray body(const UpdatePlaylistUserParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Remove a user from a playlist's users.
*/
class RemoveUserFromPlaylistLoader : public Jellyfin::Support::HttpLoader<void, RemoveUserFromPlaylistParams> {
public:
explicit RemoveUserFromPlaylistLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const RemoveUserFromPlaylistParams& parameters) const override;
QUrlQuery query(const RemoveUserFromPlaylistParams& parameters) const override;
QByteArray body(const RemoveUserFromPlaylistParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader

View file

@ -48,6 +48,48 @@ namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Reports that a session has begun playing an item.
*/
class OnPlaybackStartLoader : public Jellyfin::Support::HttpLoader<void, OnPlaybackStartParams> {
public:
explicit OnPlaybackStartLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const OnPlaybackStartParams& parameters) const override;
QUrlQuery query(const OnPlaybackStartParams& parameters) const override;
QByteArray body(const OnPlaybackStartParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Reports that a session has stopped playing an item.
*/
class OnPlaybackStoppedLoader : public Jellyfin::Support::HttpLoader<void, OnPlaybackStoppedParams> {
public:
explicit OnPlaybackStoppedLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const OnPlaybackStoppedParams& parameters) const override;
QUrlQuery query(const OnPlaybackStoppedParams& parameters) const override;
QByteArray body(const OnPlaybackStoppedParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Reports a session's playback progress.
*/
class OnPlaybackProgressLoader : public Jellyfin::Support::HttpLoader<void, OnPlaybackProgressParams> {
public:
explicit OnPlaybackProgressLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const OnPlaybackProgressParams& parameters) const override;
QUrlQuery query(const OnPlaybackProgressParams& parameters) const override;
QByteArray body(const OnPlaybackProgressParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Reports playback has started within a session.
*/
@ -132,48 +174,6 @@ protected:
QByteArray body(const MarkUnplayedItemParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Reports that a user has begun playing an item.
*/
class OnPlaybackStartLoader : public Jellyfin::Support::HttpLoader<void, OnPlaybackStartParams> {
public:
explicit OnPlaybackStartLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const OnPlaybackStartParams& parameters) const override;
QUrlQuery query(const OnPlaybackStartParams& parameters) const override;
QByteArray body(const OnPlaybackStartParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Reports that a user has stopped playing an item.
*/
class OnPlaybackStoppedLoader : public Jellyfin::Support::HttpLoader<void, OnPlaybackStoppedParams> {
public:
explicit OnPlaybackStoppedLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const OnPlaybackStoppedParams& parameters) const override;
QUrlQuery query(const OnPlaybackStoppedParams& parameters) const override;
QByteArray body(const OnPlaybackStoppedParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Reports a user's playback progress.
*/
class OnPlaybackProgressLoader : public Jellyfin::Support::HttpLoader<void, OnPlaybackProgressParams> {
public:
explicit OnPlaybackProgressLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const OnPlaybackProgressParams& parameters) const override;
QUrlQuery query(const OnPlaybackProgressParams& parameters) const override;
QByteArray body(const OnPlaybackProgressParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader

View file

@ -160,20 +160,6 @@ protected:
QByteArray body(const GetPluginManifestParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates plugin security info.
*/
class UpdatePluginSecurityInfoLoader : public Jellyfin::Support::HttpLoader<void, UpdatePluginSecurityInfoParams> {
public:
explicit UpdatePluginSecurityInfoLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdatePluginSecurityInfoParams& parameters) const override;
QUrlQuery query(const UpdatePluginSecurityInfoParams& parameters) const override;
QByteArray body(const UpdatePluginSecurityInfoParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader

View file

@ -37,7 +37,6 @@
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/quickconnectresult.h"
#include "JellyfinQt/dto/quickconnectresult.h"
#include "JellyfinQt/dto/quickconnectstate.h"
namespace Jellyfin {
// Forward declaration
@ -49,102 +48,60 @@ namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Temporarily activates quick connect for five minutes.
*/
class ActivateLoader : public Jellyfin::Support::HttpLoader<void, ActivateParams> {
public:
explicit ActivateLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const ActivateParams& parameters) const override;
QUrlQuery query(const ActivateParams& parameters) const override;
QByteArray body(const ActivateParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Authorizes a pending quick connect request.
*/
class AuthorizeLoader : public Jellyfin::Support::HttpLoader<bool, AuthorizeParams> {
class AuthorizeQuickConnectLoader : public Jellyfin::Support::HttpLoader<bool, AuthorizeQuickConnectParams> {
public:
explicit AuthorizeLoader(ApiClient *apiClient = nullptr);
explicit AuthorizeQuickConnectLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const AuthorizeParams& parameters) const override;
QUrlQuery query(const AuthorizeParams& parameters) const override;
QByteArray body(const AuthorizeParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Enables or disables quick connect.
*/
class AvailableLoader : public Jellyfin::Support::HttpLoader<void, AvailableParams> {
public:
explicit AvailableLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const AvailableParams& parameters) const override;
QUrlQuery query(const AvailableParams& parameters) const override;
QByteArray body(const AvailableParams& parameters) const override;
QString path(const AuthorizeQuickConnectParams& parameters) const override;
QUrlQuery query(const AuthorizeQuickConnectParams& parameters) const override;
QByteArray body(const AuthorizeQuickConnectParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Attempts to retrieve authentication information.
*/
class ConnectLoader : public Jellyfin::Support::HttpLoader<QuickConnectResult, ConnectParams> {
class GetQuickConnectStateLoader : public Jellyfin::Support::HttpLoader<QuickConnectResult, GetQuickConnectStateParams> {
public:
explicit ConnectLoader(ApiClient *apiClient = nullptr);
explicit GetQuickConnectStateLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const ConnectParams& parameters) const override;
QUrlQuery query(const ConnectParams& parameters) const override;
QByteArray body(const ConnectParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Deauthorize all quick connect devices for the current user.
*/
class DeauthorizeLoader : public Jellyfin::Support::HttpLoader<qint32, DeauthorizeParams> {
public:
explicit DeauthorizeLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const DeauthorizeParams& parameters) const override;
QUrlQuery query(const DeauthorizeParams& parameters) const override;
QByteArray body(const DeauthorizeParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Initiate a new quick connect request.
*/
class InitiateLoader : public Jellyfin::Support::HttpLoader<QuickConnectResult, InitiateParams> {
public:
explicit InitiateLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const InitiateParams& parameters) const override;
QUrlQuery query(const InitiateParams& parameters) const override;
QByteArray body(const InitiateParams& parameters) const override;
QString path(const GetQuickConnectStateParams& parameters) const override;
QUrlQuery query(const GetQuickConnectStateParams& parameters) const override;
QByteArray body(const GetQuickConnectStateParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets the current quick connect state.
*/
class GetStatusLoader : public Jellyfin::Support::HttpLoader<QuickConnectState, GetStatusParams> {
class GetQuickConnectEnabledLoader : public Jellyfin::Support::HttpLoader<bool, GetQuickConnectEnabledParams> {
public:
explicit GetStatusLoader(ApiClient *apiClient = nullptr);
explicit GetQuickConnectEnabledLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetStatusParams& parameters) const override;
QUrlQuery query(const GetStatusParams& parameters) const override;
QByteArray body(const GetStatusParams& parameters) const override;
QString path(const GetQuickConnectEnabledParams& parameters) const override;
QUrlQuery query(const GetQuickConnectEnabledParams& parameters) const override;
QByteArray body(const GetQuickConnectEnabledParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Initiate a new quick connect request.
*/
class InitiateQuickConnectLoader : public Jellyfin::Support::HttpLoader<QuickConnectResult, InitiateQuickConnectParams> {
public:
explicit InitiateQuickConnectLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const InitiateQuickConnectParams& parameters) const override;
QUrlQuery query(const InitiateQuickConnectParams& parameters) const override;
QByteArray body(const InitiateQuickConnectParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};

View file

@ -51,14 +51,14 @@ using namespace Jellyfin::DTO;
* @brief Gets the search hint result.
*/
class GetLoader : public Jellyfin::Support::HttpLoader<SearchHintResult, GetParams> {
class GetSearchHintsLoader : public Jellyfin::Support::HttpLoader<SearchHintResult, GetSearchHintsParams> {
public:
explicit GetLoader(ApiClient *apiClient = nullptr);
explicit GetSearchHintsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetParams& parameters) const override;
QUrlQuery query(const GetParams& parameters) const override;
QByteArray body(const GetParams& parameters) const override;
QString path(const GetSearchHintsParams& parameters) const override;
QUrlQuery query(const GetSearchHintsParams& parameters) const override;
QByteArray body(const GetSearchHintsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};

View file

@ -37,7 +37,7 @@
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/nameidpair.h"
#include "JellyfinQt/dto/nameidpair.h"
#include "JellyfinQt/dto/sessioninfo.h"
#include "JellyfinQt/dto/sessioninfodto.h"
namespace Jellyfin {
// Forward declaration
@ -81,7 +81,7 @@ protected:
* @brief Gets a list of sessions.
*/
class GetSessionsLoader : public Jellyfin::Support::HttpLoader<QList<SessionInfo>, GetSessionsParams> {
class GetSessionsLoader : public Jellyfin::Support::HttpLoader<QList<SessionInfoDto>, GetSessionsParams> {
public:
explicit GetSessionsLoader(ApiClient *apiClient = nullptr);

View file

@ -0,0 +1,69 @@
/*
* Sailfin: a Jellyfin client written using Qt
* Copyright (C) 2021 Chris Josten and the Sailfin Contributors.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
* WARNING: THIS IS AN AUTOMATICALLY GENERATED FILE! PLEASE DO NOT EDIT THIS, AS YOUR EDITS WILL GET
* OVERWRITTEN AT SOME POINT!
*
* If there is a bug in this file, please fix the code generator used to generate this file found in
* core/openapigenerator.d.
*
* This file is generated based on Jellyfin's OpenAPI description, "openapi.json". Please update that
* file with a newer file if needed instead of manually updating the files.
*/
#ifndef JELLYFIN_LOADER_HTTP_TMDB_H
#define JELLYFIN_LOADER_HTTP_TMDB_H
#include <optional>
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/configimagetypes.h"
namespace Jellyfin {
// Forward declaration
class ApiClient;
}
namespace Jellyfin {
namespace Loader {
namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Gets the TMDb image configuration options.
*/
class TmdbClientConfigurationLoader : public Jellyfin::Support::HttpLoader<ConfigImageTypes, TmdbClientConfigurationParams> {
public:
explicit TmdbClientConfigurationLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const TmdbClientConfigurationParams& parameters) const override;
QUrlQuery query(const TmdbClientConfigurationParams& parameters) const override;
QByteArray body(const TmdbClientConfigurationParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader
} // NS Jellyfin
#endif // JELLYFIN_LOADER_HTTP_TMDB_H

View file

@ -27,8 +27,8 @@
* file with a newer file if needed instead of manually updating the files.
*/
#ifndef JELLYFIN_LOADER_HTTP_VIDEOHLS_H
#define JELLYFIN_LOADER_HTTP_VIDEOHLS_H
#ifndef JELLYFIN_LOADER_HTTP_TRICKPLAY_H
#define JELLYFIN_LOADER_HTTP_TRICKPLAY_H
#include <optional>
@ -51,4 +51,4 @@ using namespace Jellyfin::DTO;
} // NS Loader
} // NS Jellyfin
#endif // JELLYFIN_LOADER_HTTP_VIDEOHLS_H
#endif // JELLYFIN_LOADER_HTTP_TRICKPLAY_H

View file

@ -39,7 +39,6 @@
#include "JellyfinQt/dto/userdto.h"
#include "JellyfinQt/dto/authenticationresult.h"
#include "JellyfinQt/dto/authenticationresult.h"
#include "JellyfinQt/dto/authenticationresult.h"
#include "JellyfinQt/dto/forgotpasswordresult.h"
#include "JellyfinQt/dto/pinredeemresult.h"
#include "JellyfinQt/dto/userdto.h"
@ -70,6 +69,20 @@ protected:
QByteArray body(const GetUsersParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user.
*/
class UpdateUserLoader : public Jellyfin::Support::HttpLoader<void, UpdateUserParams> {
public:
explicit UpdateUserLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserParams& parameters) const override;
QUrlQuery query(const UpdateUserParams& parameters) const override;
QByteArray body(const UpdateUserParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets a user by Id.
*/
@ -98,76 +111,6 @@ protected:
QByteArray body(const DeleteUserParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user.
*/
class UpdateUserLoader : public Jellyfin::Support::HttpLoader<void, UpdateUserParams> {
public:
explicit UpdateUserLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserParams& parameters) const override;
QUrlQuery query(const UpdateUserParams& parameters) const override;
QByteArray body(const UpdateUserParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Authenticates a user.
*/
class AuthenticateUserLoader : public Jellyfin::Support::HttpLoader<AuthenticationResult, AuthenticateUserParams> {
public:
explicit AuthenticateUserLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const AuthenticateUserParams& parameters) const override;
QUrlQuery query(const AuthenticateUserParams& parameters) const override;
QByteArray body(const AuthenticateUserParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user configuration.
*/
class UpdateUserConfigurationLoader : public Jellyfin::Support::HttpLoader<void, UpdateUserConfigurationParams> {
public:
explicit UpdateUserConfigurationLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserConfigurationParams& parameters) const override;
QUrlQuery query(const UpdateUserConfigurationParams& parameters) const override;
QByteArray body(const UpdateUserConfigurationParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user's easy password.
*/
class UpdateUserEasyPasswordLoader : public Jellyfin::Support::HttpLoader<void, UpdateUserEasyPasswordParams> {
public:
explicit UpdateUserEasyPasswordLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserEasyPasswordParams& parameters) const override;
QUrlQuery query(const UpdateUserEasyPasswordParams& parameters) const override;
QByteArray body(const UpdateUserEasyPasswordParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user's password.
*/
class UpdateUserPasswordLoader : public Jellyfin::Support::HttpLoader<void, UpdateUserPasswordParams> {
public:
explicit UpdateUserPasswordLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserPasswordParams& parameters) const override;
QUrlQuery query(const UpdateUserPasswordParams& parameters) const override;
QByteArray body(const UpdateUserPasswordParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user policy.
*/
@ -210,6 +153,20 @@ protected:
QByteArray body(const AuthenticateWithQuickConnectParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user configuration.
*/
class UpdateUserConfigurationLoader : public Jellyfin::Support::HttpLoader<void, UpdateUserConfigurationParams> {
public:
explicit UpdateUserConfigurationLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserConfigurationParams& parameters) const override;
QUrlQuery query(const UpdateUserConfigurationParams& parameters) const override;
QByteArray body(const UpdateUserConfigurationParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Initiates the forgot password process for a local user.
*/
@ -266,6 +223,20 @@ protected:
QByteArray body(const CreateUserByNameParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user's password.
*/
class UpdateUserPasswordLoader : public Jellyfin::Support::HttpLoader<void, UpdateUserPasswordParams> {
public:
explicit UpdateUserPasswordLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserPasswordParams& parameters) const override;
QUrlQuery query(const UpdateUserPasswordParams& parameters) const override;
QByteArray body(const UpdateUserPasswordParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets a list of publicly visible users for display on a login screen.
*/

View file

@ -35,16 +35,16 @@
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/useritemdatadto.h"
#include "JellyfinQt/dto/useritemdatadto.h"
#include "JellyfinQt/dto/baseitemdto.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
#include "JellyfinQt/dto/baseitemdto.h"
#include "JellyfinQt/dto/baseitemdto.h"
#include "JellyfinQt/dto/baseitemdto.h"
#include "JellyfinQt/dto/baseitemdto.h"
#include "JellyfinQt/dto/useritemdatadto.h"
#include "JellyfinQt/dto/useritemdatadto.h"
#include "JellyfinQt/dto/useritemdatadto.h"
#include "JellyfinQt/dto/useritemdatadto.h"
#include "JellyfinQt/dto/baseitemdto.h"
#include "JellyfinQt/dto/baseitemdto.h"
#include "JellyfinQt/dto/baseitemdto.h"
namespace Jellyfin {
// Forward declaration
@ -56,34 +56,6 @@ namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Marks an item as a favorite.
*/
class MarkFavoriteItemLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, MarkFavoriteItemParams> {
public:
explicit MarkFavoriteItemLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const MarkFavoriteItemParams& parameters) const override;
QUrlQuery query(const MarkFavoriteItemParams& parameters) const override;
QByteArray body(const MarkFavoriteItemParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Unmarks item as a favorite.
*/
class UnmarkFavoriteItemLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, UnmarkFavoriteItemParams> {
public:
explicit UnmarkFavoriteItemLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UnmarkFavoriteItemParams& parameters) const override;
QUrlQuery query(const UnmarkFavoriteItemParams& parameters) const override;
QByteArray body(const UnmarkFavoriteItemParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets an item from a user's library.
*/
@ -126,34 +98,6 @@ protected:
QByteArray body(const GetLocalTrailersParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Deletes a user's saved personal rating for an item.
*/
class DeleteUserItemRatingLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, DeleteUserItemRatingParams> {
public:
explicit DeleteUserItemRatingLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const DeleteUserItemRatingParams& parameters) const override;
QUrlQuery query(const DeleteUserItemRatingParams& parameters) const override;
QByteArray body(const DeleteUserItemRatingParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user's rating for an item.
*/
class UpdateUserItemRatingLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, UpdateUserItemRatingParams> {
public:
explicit UpdateUserItemRatingLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserItemRatingParams& parameters) const override;
QUrlQuery query(const UpdateUserItemRatingParams& parameters) const override;
QByteArray body(const UpdateUserItemRatingParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Gets special features for an item.
*/
@ -196,6 +140,62 @@ protected:
QByteArray body(const GetRootFolderParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Marks an item as a favorite.
*/
class MarkFavoriteItemLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, MarkFavoriteItemParams> {
public:
explicit MarkFavoriteItemLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const MarkFavoriteItemParams& parameters) const override;
QUrlQuery query(const MarkFavoriteItemParams& parameters) const override;
QByteArray body(const MarkFavoriteItemParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Unmarks item as a favorite.
*/
class UnmarkFavoriteItemLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, UnmarkFavoriteItemParams> {
public:
explicit UnmarkFavoriteItemLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UnmarkFavoriteItemParams& parameters) const override;
QUrlQuery query(const UnmarkFavoriteItemParams& parameters) const override;
QByteArray body(const UnmarkFavoriteItemParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Deletes a user's saved personal rating for an item.
*/
class DeleteUserItemRatingLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, DeleteUserItemRatingParams> {
public:
explicit DeleteUserItemRatingLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const DeleteUserItemRatingParams& parameters) const override;
QUrlQuery query(const DeleteUserItemRatingParams& parameters) const override;
QByteArray body(const DeleteUserItemRatingParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Updates a user's rating for an item.
*/
class UpdateUserItemRatingLoader : public Jellyfin::Support::HttpLoader<UserItemDataDto, UpdateUserItemRatingParams> {
public:
explicit UpdateUserItemRatingLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const UpdateUserItemRatingParams& parameters) const override;
QUrlQuery query(const UpdateUserItemRatingParams& parameters) const override;
QByteArray body(const UpdateUserItemRatingParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader

View file

@ -35,8 +35,8 @@
#include "JellyfinQt/support/jsonconv.h"
#include "JellyfinQt/support/loader.h"
#include "JellyfinQt/loader/requesttypes.h"
#include "JellyfinQt/dto/specialviewoptiondto.h"
#include "JellyfinQt/dto/baseitemdtoqueryresult.h"
#include "JellyfinQt/dto/specialviewoptiondto.h"
namespace Jellyfin {
// Forward declaration
@ -48,20 +48,6 @@ namespace HTTP {
using namespace Jellyfin::DTO;
/**
* @brief Get user view grouping options.
*/
class GetGroupingOptionsLoader : public Jellyfin::Support::HttpLoader<QList<SpecialViewOptionDto>, GetGroupingOptionsParams> {
public:
explicit GetGroupingOptionsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetGroupingOptionsParams& parameters) const override;
QUrlQuery query(const GetGroupingOptionsParams& parameters) const override;
QByteArray body(const GetGroupingOptionsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Get user views.
*/
@ -76,6 +62,20 @@ protected:
QByteArray body(const GetUserViewsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
/**
* @brief Get user view grouping options.
*/
class GetGroupingOptionsLoader : public Jellyfin::Support::HttpLoader<QList<SpecialViewOptionDto>, GetGroupingOptionsParams> {
public:
explicit GetGroupingOptionsLoader(ApiClient *apiClient = nullptr);
protected:
QString path(const GetGroupingOptionsParams& parameters) const override;
QUrlQuery query(const GetGroupingOptionsParams& parameters) const override;
QByteArray body(const GetGroupingOptionsParams& parameters) const override;
QNetworkAccessManager::Operation operation() const override;
};
} // NS HTTP
} // NS Loader

File diff suppressed because it is too large Load diff