2020-06-07 22:46:24 +00:00
|
|
|
|
using Roadie.Library.Models.ThirdPartyApi.Subsonic;
|
2018-11-19 23:51:58 +00:00
|
|
|
|
using System.Threading.Tasks;
|
2019-06-30 22:14:36 +00:00
|
|
|
|
using User = Roadie.Library.Models.Users.User;
|
2018-11-19 23:51:58 +00:00
|
|
|
|
|
|
|
|
|
namespace Roadie.Api.Services
|
2018-11-15 15:10:29 +00:00
|
|
|
|
{
|
|
|
|
|
public interface ISubsonicService
|
|
|
|
|
{
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> AddChatMessageAsync(Request request, User roadieUser);
|
2018-11-25 21:15:51 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<SubsonicAuthenticateResponse>> AuthenticateAsync(Request request);
|
2018-11-23 04:18:48 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> CreateBookmarkAsync(Request request, User roadieUser, int position, string comment);
|
2018-11-25 21:15:51 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> CreatePlaylistAsync(Request request, User roadieUser, string name, string[] songIds, string playlistId = null);
|
2018-11-24 17:52:15 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> DeleteBookmarkAsync(Request request, User roadieUser);
|
2018-11-25 21:15:51 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> DeletePlaylistAsync(Request request, User roadieUser);
|
2018-11-24 17:52:15 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetAlbumAsync(Request request, User roadieUser);
|
2018-11-21 18:19:38 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetAlbumInfoAsync(Request request, User roadieUser, AlbumInfoVersion version);
|
2018-11-23 04:18:48 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetAlbumListAsync(Request request, User roadieUser, AlbumListVersions version);
|
2018-11-21 06:34:53 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetArtistAsync(Request request, User roadieUser);
|
2018-11-23 04:18:48 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetArtistInfoAsync(Request request, int? count, bool includeNotPresent, ArtistInfoVersion version);
|
2018-11-21 18:19:38 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetArtistsAsync(Request request, User roadieUser);
|
2018-11-21 18:19:38 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetBookmarksAsync(Request request, User roadieUser);
|
2018-11-24 17:52:15 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetChatMessagesAsync(Request request, User roadieUser, long? since);
|
2018-11-25 21:15:51 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicFileOperationResult<Library.Models.Image>> GetCoverArtAsync(Request request, int? size);
|
2018-11-21 06:34:53 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetGenresAsync(Request request);
|
2018-11-19 23:51:58 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetIndexesAsync(Request request, User roadieUser, long? ifModifiedSince = null);
|
2018-11-21 06:34:53 +00:00
|
|
|
|
|
2018-11-22 13:48:32 +00:00
|
|
|
|
SubsonicOperationResult<Response> GetLicense(Request request);
|
2018-11-21 18:19:38 +00:00
|
|
|
|
|
2018-11-22 13:48:32 +00:00
|
|
|
|
SubsonicOperationResult<Response> GetLyrics(Request request, string artistId, string title);
|
2018-11-19 23:51:58 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetMusicDirectoryAsync(Request request, User roadieUser);
|
2018-11-19 23:51:58 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetMusicFoldersAsync(Request request);
|
2018-11-21 18:19:38 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetNowPlayingAsync(Request request, User roadieUser);
|
2018-11-25 21:15:51 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetPlaylistAsync(Request request, User roadieUser);
|
2018-11-19 23:51:58 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetPlaylistsAsync(Request request, User roadieUser, string filterToUserName);
|
2018-11-19 23:51:58 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetPlayQueueAsync(Request request, User roadieUser);
|
2018-11-25 23:34:17 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetPodcastsAsync(Request request);
|
2018-11-20 04:47:12 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetRandomSongsAsync(Request request, User roadieUser);
|
2018-11-20 14:36:07 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetSimliarSongsAsync(Request request, User roadieUser, SimilarSongsVersion version, int? count = 50);
|
2018-11-23 04:18:48 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetSongAsync(Request request, User roadieUser);
|
2018-11-23 04:18:48 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetSongsByGenreAsync(Request request, User roadieUser);
|
2018-11-23 04:18:48 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetStarredAsync(Request request, User roadieUser, StarredVersion version);
|
2018-11-21 18:19:38 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetTopSongsAsync(Request request, User roadieUser, int? count = 50);
|
2018-11-23 04:18:48 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> GetUserAsync(Request request, string username);
|
2018-11-21 18:19:38 +00:00
|
|
|
|
|
2018-11-22 13:48:32 +00:00
|
|
|
|
SubsonicOperationResult<Response> GetVideos(Request request);
|
|
|
|
|
|
|
|
|
|
SubsonicOperationResult<Response> Ping(Request request);
|
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> SavePlayQueueAsync(Request request, User roadieUser, string current, long? position);
|
2018-11-25 23:34:17 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> SearchAsync(Request request, User roadieUser, SearchVersion version);
|
2019-01-08 22:40:26 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> SetRatingAsync(Request request, User roadieUser, short rating);
|
2018-11-25 16:57:17 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> ToggleStarAsync(Request request, User roadieUser, bool star, string[] albumIds = null, string[] artistIds = null);
|
2018-11-25 21:15:51 +00:00
|
|
|
|
|
2020-06-07 22:46:24 +00:00
|
|
|
|
Task<SubsonicOperationResult<Response>> UpdatePlaylistAsync(Request request, User roadieUser, string playlistId,
|
2019-06-30 22:14:36 +00:00
|
|
|
|
string name = null, string comment = null, bool? isPublic = null, string[] songIdsToAdd = null,
|
|
|
|
|
int[] songIndexesToRemove = null);
|
2018-11-15 15:10:29 +00:00
|
|
|
|
}
|
2018-11-16 03:37:00 +00:00
|
|
|
|
}
|