kodi_client 0.6.3 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -0
- data/README.md +1 -0
- data/kodi_client.gemspec +2 -2
- data/lib/kodi_client/extensions/chainable.rb +73 -0
- data/lib/kodi_client/extensions/comparable.rb +29 -0
- data/lib/kodi_client/extensions/creatable.rb +132 -0
- data/lib/kodi_client/extensions/iterable.rb +14 -0
- data/lib/kodi_client/kodi_error.rb +14 -0
- data/lib/kodi_client/kodi_method.rb +34 -0
- data/lib/kodi_client/{options.rb → kodi_options.rb} +1 -1
- data/lib/kodi_client/kodi_request.rb +16 -0
- data/lib/kodi_client/kodi_response.rb +21 -0
- data/lib/kodi_client/{method → methods}/addons.rb +6 -6
- data/lib/kodi_client/{method → methods}/application.rb +2 -2
- data/lib/kodi_client/methods/audio_library.rb +334 -0
- data/lib/kodi_client/{method → methods}/favourites.rb +2 -2
- data/lib/kodi_client/{method → methods}/files.rb +6 -10
- data/lib/kodi_client/{method → methods}/gui.rb +2 -2
- data/lib/kodi_client/{method → methods}/input.rb +2 -2
- data/lib/kodi_client/{method → methods}/player.rb +2 -2
- data/lib/kodi_client/{method → methods}/profiles.rb +5 -7
- data/lib/kodi_client/{method → methods}/system.rb +2 -2
- data/lib/kodi_client/methods/video_library.rb +18 -0
- data/lib/kodi_client/types/addons/addon_content_type.rb +18 -0
- data/lib/kodi_client/types/addons/addon_dependency_type.rb +21 -0
- data/lib/kodi_client/types/addons/addon_details_type.rb +44 -0
- data/lib/kodi_client/types/addons/addon_extra_info_type.rb +20 -0
- data/lib/kodi_client/types/addons/addon_fields_type.rb +28 -0
- data/lib/kodi_client/types/addons/addon_types_type.rb +48 -0
- data/lib/kodi_client/types/addons/get_addon_returned_type.rb +21 -0
- data/lib/kodi_client/types/addons/get_addons_returned_type.rb +22 -0
- data/lib/kodi_client/types/application/property_name_type.rb +19 -0
- data/lib/kodi_client/types/application/property_value_type.rb +24 -0
- data/lib/kodi_client/types/application/version_type.rb +22 -0
- data/lib/kodi_client/types/audio/audio_album_release_type_type.rb +15 -0
- data/lib/kodi_client/types/audio/audio_artist_role_type.rb +21 -0
- data/lib/kodi_client/types/audio/audio_contributor_type.rb +22 -0
- data/lib/kodi_client/types/audio/audio_details_album_type.rb +58 -0
- data/lib/kodi_client/types/audio/audio_details_artist_type.rb +53 -0
- data/lib/kodi_client/types/audio/audio_details_base_type.rb +30 -0
- data/lib/kodi_client/types/audio/audio_details_media_type.rb +50 -0
- data/lib/kodi_client/types/audio/audio_details_role_type.rb +25 -0
- data/lib/kodi_client/types/audio/audio_details_song_type.rb +72 -0
- data/lib/kodi_client/types/audio/audio_fields_album_type.rb +50 -0
- data/lib/kodi_client/types/audio/audio_fields_artist_type.rb +39 -0
- data/lib/kodi_client/types/audio/audio_fields_role_type.rb +15 -0
- data/lib/kodi_client/types/audio/audio_fields_song_type.rb +61 -0
- data/lib/kodi_client/types/audio/available_art_type.rb +21 -0
- data/lib/kodi_client/types/audio/genre_type.rb +20 -0
- data/lib/kodi_client/types/audio/get_albums_returned_type.rb +22 -0
- data/lib/kodi_client/types/audio/get_artists_returned_type.rb +23 -0
- data/lib/kodi_client/types/audio/get_genres_returned_type.rb +24 -0
- data/lib/kodi_client/types/audio/get_roles_returned_type.rb +25 -0
- data/lib/kodi_client/types/audio/get_songs_returned_type.rb +25 -0
- data/lib/kodi_client/types/audio/get_sources_return_type.rb +25 -0
- data/lib/kodi_client/types/audio/property_name_type.rb +25 -0
- data/lib/kodi_client/types/audio/property_value_type.rb +33 -0
- data/lib/kodi_client/types/favourites/details_favourite_type.rb +24 -0
- data/lib/kodi_client/types/favourites/fields_favourite_type.rb +17 -0
- data/lib/kodi_client/types/favourites/get_favourite_returned_type.rb +22 -0
- data/lib/kodi_client/types/favourites/type_type.rb +18 -0
- data/lib/kodi_client/types/files/file_label_type.rb +20 -0
- data/lib/kodi_client/types/files/get_directory_returned_type.rb +22 -0
- data/lib/kodi_client/types/files/get_sources_returned_type.rb +22 -0
- data/lib/kodi_client/types/files/media_type.rb +18 -0
- data/lib/kodi_client/types/files/prepare_download_returned_type.rb +21 -0
- data/lib/kodi_client/types/global/direction_type.rb +17 -0
- data/lib/kodi_client/types/global/global_time_type.rb +22 -0
- data/lib/kodi_client/types/global/id_label_type.rb +20 -0
- data/lib/kodi_client/types/global/id_name_type.rb +20 -0
- data/lib/kodi_client/types/global/increment_decrement_type.rb +15 -0
- data/lib/kodi_client/types/global/next_prev_type.rb +17 -0
- data/lib/kodi_client/types/global/password_encryption_type.rb +16 -0
- data/lib/kodi_client/types/global/rotate_type.rb +15 -0
- data/lib/kodi_client/types/global/toggle_type.rb +16 -0
- data/lib/kodi_client/types/gui/gui_window_type.rb +124 -0
- data/lib/kodi_client/types/gui/property_name_type.rb +18 -0
- data/lib/kodi_client/types/gui/property_value_type.rb +26 -0
- data/lib/kodi_client/types/gui/stereoscopy_mode_type.rb +31 -0
- data/lib/kodi_client/types/input/input_action_type.rb +212 -0
- data/lib/kodi_client/types/{item_types.rb → items/item_details_base_type.rb} +2 -4
- data/lib/kodi_client/types/library/library_details_genre_type.rb +27 -0
- data/lib/kodi_client/types/library/library_details_source_type.rb +26 -0
- data/lib/kodi_client/types/library/library_fields_genre_type.rb +17 -0
- data/lib/kodi_client/types/library/library_fields_source_type.rb +17 -0
- data/lib/kodi_client/types/list/list_field_files_type.rb +83 -0
- data/lib/kodi_client/types/list/list_fields_all_type.rb +96 -0
- data/lib/kodi_client/types/list/list_item_all_type.rb +70 -0
- data/lib/kodi_client/types/list/list_item_base_type.rb +141 -0
- data/lib/kodi_client/types/list/list_item_file_type.rb +66 -0
- data/lib/kodi_client/types/list/list_limits_returned_type.rb +23 -0
- data/lib/kodi_client/types/list/list_limits_type.rb +23 -0
- data/lib/kodi_client/types/list/list_sort_method_type.rb +54 -0
- data/lib/kodi_client/types/list/list_sort_type.rb +28 -0
- data/lib/kodi_client/types/list/sort_order_type.rb +15 -0
- data/lib/kodi_client/types/media/media_artwork_type.rb +26 -0
- data/lib/kodi_client/types/media/media_details_base_type.rb +29 -0
- data/lib/kodi_client/types/media/media_type_type.rb +16 -0
- data/lib/kodi_client/types/player/audio_stream_type.rb +29 -0
- data/lib/kodi_client/types/player/player_position_time_type.rb +22 -0
- data/lib/kodi_client/types/player/player_repeat_type.rb +17 -0
- data/lib/kodi_client/types/player/player_speed_type.rb +26 -0
- data/lib/kodi_client/types/player/player_type.rb +24 -0
- data/lib/kodi_client/types/player/player_type_type.rb +16 -0
- data/lib/kodi_client/types/player/player_view_mode_type.rb +23 -0
- data/lib/kodi_client/types/player/player_visibility_type.rb +16 -0
- data/lib/kodi_client/types/player/property_name_type.rb +38 -0
- data/lib/kodi_client/types/player/property_value_type.rb +60 -0
- data/lib/kodi_client/types/player/seek_jump_type.rb +17 -0
- data/lib/kodi_client/types/player/seek_returned_type.rb +23 -0
- data/lib/kodi_client/types/player/subtitle_type.rb +24 -0
- data/lib/kodi_client/types/player/video_stream_type.rb +26 -0
- data/lib/kodi_client/types/player/view_mode_type.rb +22 -0
- data/lib/kodi_client/types/player/zoom_type.rb +15 -0
- data/lib/kodi_client/types/profiles/details_profile_type.rb +24 -0
- data/lib/kodi_client/types/profiles/fields_profile_type.rb +15 -0
- data/lib/kodi_client/types/profiles/get_profiles_returned_type.rb +22 -0
- data/lib/kodi_client/types/profiles/profile_password_type.rb +20 -0
- data/lib/kodi_client/types/{pvr_type.rb → pvr/channel_type_type.rb} +2 -4
- data/lib/kodi_client/types/system/property_name_type.rb +17 -0
- data/lib/kodi_client/types/{system_types.rb → system/property_value_type.rb} +2 -13
- data/lib/kodi_client/types/video/stream_details_type.rb +24 -0
- data/lib/kodi_client/types/video/video_cast_type.rb +22 -0
- data/lib/kodi_client/types/video/video_content_type_type.rb +18 -0
- data/lib/kodi_client/types/video/video_details_base_type.rb +29 -0
- data/lib/kodi_client/types/video/video_details_file_type.rb +37 -0
- data/lib/kodi_client/types/video/video_details_item_type.rb +32 -0
- data/lib/kodi_client/types/video/video_details_media_type.rb +28 -0
- data/lib/kodi_client/types/video/video_resume_type.rb +20 -0
- data/lib/kodi_client.rb +160 -49
- metadata +132 -38
- data/lib/kodi_client/Chainable.rb +0 -48
- data/lib/kodi_client/kodi_module.rb +0 -80
- data/lib/kodi_client/method/audio_library.rb +0 -46
- data/lib/kodi_client/types/addon_types.rb +0 -177
- data/lib/kodi_client/types/application_types.rb +0 -52
- data/lib/kodi_client/types/audio_types.rb +0 -221
- data/lib/kodi_client/types/favourites_types.rb +0 -61
- data/lib/kodi_client/types/files_types.rb +0 -63
- data/lib/kodi_client/types/global_types.rb +0 -102
- data/lib/kodi_client/types/gui_types.rb +0 -179
- data/lib/kodi_client/types/input_types.rb +0 -214
- data/lib/kodi_client/types/list_types.rb +0 -542
- data/lib/kodi_client/types/media_types.rb +0 -53
- data/lib/kodi_client/types/player_type.rb +0 -294
- data/lib/kodi_client/types/profiles_types.rb +0 -65
- data/lib/kodi_client/types/video_types.rb +0 -150
- data/lib/kodi_client/util/comparable.rb +0 -20
- data/lib/kodi_client/util/creatable.rb +0 -106
- data/lib/kodi_client/util/iterable.rb +0 -11
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# Audio.Fields.Song https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Fields.Song
|
|
7
|
+
module AudioFieldsSong
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
TITLE = 'title'
|
|
11
|
+
ARTIST = 'artist'
|
|
12
|
+
ALBUM_ARTIST = 'albumartist'
|
|
13
|
+
GENRE = 'genre'
|
|
14
|
+
YEAR = 'year'
|
|
15
|
+
RATING = 'rating'
|
|
16
|
+
ALBUM = 'album'
|
|
17
|
+
TRACK = 'track'
|
|
18
|
+
DURATION = 'duration'
|
|
19
|
+
COMMENT = 'comment'
|
|
20
|
+
LYRICS = 'lyrics'
|
|
21
|
+
MUSICBRAINZ_TRACK_ID = 'musicbrainztrackid'
|
|
22
|
+
MUSICBRAINZ_ARTIST_ID = 'musicbrainzartistid'
|
|
23
|
+
MUSICBRAINZ_ALBUM_ID = 'musicbrainzalbumid'
|
|
24
|
+
MUSICBRAINZ_ALBUM_ARTIST_ID = 'musicbrainzalbumartistid'
|
|
25
|
+
PLAY_COUNT = 'playcount'
|
|
26
|
+
FAN_ART = 'fanart'
|
|
27
|
+
THUMBNAIL = 'thumbnail'
|
|
28
|
+
FILE = 'file'
|
|
29
|
+
ALBUM_ID = 'albumid'
|
|
30
|
+
LAST_PLAYED = 'lastplayed'
|
|
31
|
+
DISC = 'disc'
|
|
32
|
+
GENRE_ID = 'genreid'
|
|
33
|
+
ARTIST_ID = 'artistid'
|
|
34
|
+
DISPLAY_ARTIST = 'displayartist'
|
|
35
|
+
ALBUM_ARTIST_ID = 'albumartistid'
|
|
36
|
+
ALBUM_RELEASE_TYPE = 'albumreleasetype'
|
|
37
|
+
DATE_ADDED = 'dateadded'
|
|
38
|
+
VOTES = 'votes'
|
|
39
|
+
USER_RATING = 'userrating'
|
|
40
|
+
MOOD = 'mood'
|
|
41
|
+
CONTRIBUTORS = 'contributors'
|
|
42
|
+
DISPLAY_COMPOSER = 'displaycomposer'
|
|
43
|
+
DISPLAY_CONDUCTOR = 'displayconductor'
|
|
44
|
+
DISPLAY_ORCHESTRA = 'displayorchestra'
|
|
45
|
+
DISPLAY_LYRICIST = 'displaylyricist'
|
|
46
|
+
SORT_ARTIST = 'sortartist'
|
|
47
|
+
ART = 'art'
|
|
48
|
+
SOURCE_ID = 'sourceid'
|
|
49
|
+
DISC_TITLE = 'disctitle'
|
|
50
|
+
RELEASE_DATE = 'releasedate'
|
|
51
|
+
ORIGINAL_DATE = 'originaldate'
|
|
52
|
+
BPM = 'bpm'
|
|
53
|
+
SAMPLE_RATE = 'samplerate'
|
|
54
|
+
BITRATE = 'bitrate'
|
|
55
|
+
CHANNELS = 'channels'
|
|
56
|
+
DATE_MODIFIED = 'datemodified'
|
|
57
|
+
DATE_NEW = 'datenew'
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# AudioLibrary.GetAvailableArt https://kodi.wiki/view/JSON-RPC_API/v12#AudioLibrary.GetAvailableArt
|
|
7
|
+
class AvailableArt
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :art_type, :preview_url, :url
|
|
12
|
+
|
|
13
|
+
def initialize(art_type, preview_url, url)
|
|
14
|
+
@art_type = art_type
|
|
15
|
+
@preview_url = preview_url
|
|
16
|
+
@url = url
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# Audio.Details.Genres https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Details.Genres
|
|
7
|
+
class Genre
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :genre_id, :title
|
|
12
|
+
|
|
13
|
+
def initialize(genre_id, title)
|
|
14
|
+
@genre_id = genre_id
|
|
15
|
+
@title = title
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# return type for AudioLibrary.GetAlbums
|
|
7
|
+
class GetAlbumsReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :albums, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['albums', AudioDetailsAlbum, true], ['limits', List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(albums, limits)
|
|
16
|
+
@albums = albums
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# return type for AudioLibrary.GetAlbums
|
|
7
|
+
class GetArtistsReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :artists, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['artists', AudioDetailsArtist, true], ['limits', List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(artists, limits)
|
|
16
|
+
@artists = artists
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# return type for AudioLibrary.GetGenres
|
|
7
|
+
class GetGenresReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :genres, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['genres', Library::LibraryDetailsGenre, true], ['limits', List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(genres, limits)
|
|
16
|
+
@genres = genres
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# return type for AudioLibrary.GetRoles
|
|
7
|
+
class GetRolesReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :roles, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['roles', AudioDetailsRole, true], ['limits', List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(roles, limits)
|
|
16
|
+
@roles = roles
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# return type for AudioLibrary.GetSongs
|
|
7
|
+
class GetSongsReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :songs, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['songs', Audio::AudioDetailsSong, true], ['limits', List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(songs, limits)
|
|
16
|
+
@songs = songs
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# return type for AudioLibrary.GetSources
|
|
7
|
+
class GetSourcesReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :sources, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['sources', Library::AudioDetailsSource, true], ['limits', List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(sources, limits)
|
|
16
|
+
@sources = sources
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# Audio.Property.Name https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Property.Name
|
|
7
|
+
module PropertyName
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
MISSING_ARTIST_ID = 'missingartistid'
|
|
11
|
+
LIBRARY_LAST_UPDATED ='librarylastupdated'
|
|
12
|
+
LIBRARY_LAST_CLEANED = 'librarylastcleaned'
|
|
13
|
+
ARTIST_LINKS_UPDATED = 'artistlinksupdated'
|
|
14
|
+
SONGS_LAST_ADDED = 'songslastadded'
|
|
15
|
+
ALBUMS_LAST_ADDED = 'albumslastadded'
|
|
16
|
+
ARTISTS_LAST_ADDED = 'artistslastadded'
|
|
17
|
+
GENRES_LAST_ADDED = 'genreslastadded'
|
|
18
|
+
SONGS_MODIFIED = 'songsmodified'
|
|
19
|
+
ALBUMS_MODIFIED = 'albumsmodified'
|
|
20
|
+
ARTISTS_MODIFIED = 'artistsmodified'
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Audio
|
|
6
|
+
# Audio.Property.Value https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Property.Value
|
|
7
|
+
class PropertyValue
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :albums_last_added, :albums_modified, :artist_links_updated, :artists_last_added,
|
|
12
|
+
:artists_modified, :genres_last_added, :library_last_cleaned, :library_last_updated,
|
|
13
|
+
:missing_artist_id, :songs_last_added, :songs_modified
|
|
14
|
+
|
|
15
|
+
def initialize(albums_last_added, albums_modified, artist_links_updated, artists_last_added, artists_modified,
|
|
16
|
+
genres_last_added, library_last_cleaned, library_last_updated, missing_artist_id,
|
|
17
|
+
songs_last_added, songs_modified)
|
|
18
|
+
@albums_last_added = albums_last_added
|
|
19
|
+
@albums_modified = albums_modified
|
|
20
|
+
@artist_links_updated = artist_links_updated
|
|
21
|
+
@artists_last_added = artists_last_added
|
|
22
|
+
@artists_modified = artists_modified
|
|
23
|
+
@genres_last_added = genres_last_added
|
|
24
|
+
@library_last_cleaned = library_last_cleaned
|
|
25
|
+
@library_last_updated = library_last_updated
|
|
26
|
+
@missing_artist_id = missing_artist_id
|
|
27
|
+
@songs_last_added = songs_last_added
|
|
28
|
+
@songs_modified = songs_modified
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Favourites
|
|
6
|
+
# Favourite.Details.Favourite https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Details.Favourite
|
|
7
|
+
class DetailsFavourite
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :path, :thumbnail, :title, :type, :window, :window_parameter
|
|
12
|
+
|
|
13
|
+
def initialize(path, thumbnail, title, type, window, window_parameter)
|
|
14
|
+
@path = path
|
|
15
|
+
@thumbnail = thumbnail
|
|
16
|
+
@title = title
|
|
17
|
+
@type = type
|
|
18
|
+
@window = window
|
|
19
|
+
@window_parameter = window_parameter
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Favourites
|
|
6
|
+
# Favourite.Fields.Favourite https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Fields.Favourite
|
|
7
|
+
module FieldsFavourite
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
WINDOW = 'window'
|
|
11
|
+
WINDOW_PARAMETER = 'windowparameter'
|
|
12
|
+
THUMBNAIL = 'thumbnail'
|
|
13
|
+
PATH = 'path'
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Favourites
|
|
6
|
+
# return type for Favourites.GetFavourites
|
|
7
|
+
class GetFavouriteReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :favourites, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['favourites', DetailsFavourite, true], ['limits', Types::List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(favourites, limits)
|
|
16
|
+
@favourites = favourites
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Favourites
|
|
6
|
+
# Favourite.Type https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Type
|
|
7
|
+
module Type
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
MEDIA = 'media'
|
|
11
|
+
WINDOW = 'window'
|
|
12
|
+
SCRIPT = 'script'
|
|
13
|
+
ANDROID_APP = 'androidapp'
|
|
14
|
+
UNKNOWN = 'unknown'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Files
|
|
6
|
+
# File/Label tuple
|
|
7
|
+
class FileLabel
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :file, :label
|
|
12
|
+
|
|
13
|
+
def initialize(file, label)
|
|
14
|
+
@file = file
|
|
15
|
+
@label = label
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Files
|
|
6
|
+
# return value for GetDirectory
|
|
7
|
+
class GetDirectoryReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :files, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['files', List::ListItemFile, true], ['limits', List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(files, limits)
|
|
16
|
+
@files = files
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Files
|
|
6
|
+
# return value for GetSources
|
|
7
|
+
class GetSourcesReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :sources, :limits
|
|
12
|
+
|
|
13
|
+
type_mapping ['sources', Files::FileLabel, true], ['limits', List::ListLimitsReturned]
|
|
14
|
+
|
|
15
|
+
def initialize(sources, limits)
|
|
16
|
+
@sources = sources
|
|
17
|
+
@limits = limits
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Files
|
|
6
|
+
# Files.Media https://kodi.wiki/view/JSON-RPC_API/v12#Files.Media
|
|
7
|
+
module Media
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
VIDEO = 'video'
|
|
11
|
+
MUSIC = 'music'
|
|
12
|
+
PICTURES = 'pictures'
|
|
13
|
+
FILES = 'files'
|
|
14
|
+
PROGRAMS = 'programs'
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Files
|
|
6
|
+
# return value for GetPrepareDownload
|
|
7
|
+
class PrepareDownloadReturned
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :details, :mode, :protocol
|
|
12
|
+
|
|
13
|
+
def initialize(details, mode, protocol)
|
|
14
|
+
@details = details
|
|
15
|
+
@mode = mode
|
|
16
|
+
@protocol = protocol
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Global
|
|
6
|
+
# direction for left, right, up, down
|
|
7
|
+
module Direction
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
LEFT = 'left'
|
|
11
|
+
RIGHT = 'right'
|
|
12
|
+
UP = 'up'
|
|
13
|
+
DOWN = 'down'
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Global
|
|
6
|
+
# Global.Time https://kodi.wiki/view/JSON-RPC_API/v12#Global.Time
|
|
7
|
+
class GlobalTime
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :hours, :minutes, :seconds, :milliseconds
|
|
12
|
+
|
|
13
|
+
def initialize(hours, minutes, seconds, milliseconds)
|
|
14
|
+
@hours = hours
|
|
15
|
+
@minutes = minutes
|
|
16
|
+
@seconds = seconds
|
|
17
|
+
@milliseconds = milliseconds
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Global
|
|
6
|
+
# id/label type
|
|
7
|
+
class IdLabel
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :id, :label
|
|
12
|
+
|
|
13
|
+
def initialize(id, label)
|
|
14
|
+
@id = id
|
|
15
|
+
@label = label
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Global
|
|
6
|
+
# id/name type
|
|
7
|
+
class IdName
|
|
8
|
+
include Extensions::Comparable
|
|
9
|
+
extend Extensions::Creatable
|
|
10
|
+
|
|
11
|
+
attr_reader :id, :name
|
|
12
|
+
|
|
13
|
+
def initialize(id, name)
|
|
14
|
+
@id = id
|
|
15
|
+
@name = name
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Global
|
|
6
|
+
# Global.IncrementDecrement https://kodi.wiki/view/JSON-RPC_API/v12#Global.IncrementDecrement
|
|
7
|
+
module IncrementDecrement
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
INCREMENT = 'increment'
|
|
11
|
+
DECREMENT = 'decrement'
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Global
|
|
6
|
+
# enum for prev/next
|
|
7
|
+
module NextPrev
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
NEXT = 'next'
|
|
11
|
+
PREV = 'previous'
|
|
12
|
+
ON = 'on'
|
|
13
|
+
OFF = 'off'
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Global
|
|
6
|
+
# rotate for clockwise and counter clockwise
|
|
7
|
+
module Rotate
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
CLOCKWISE = 'clockwise'
|
|
11
|
+
COUNTER_CLOCKWISE = 'counterclockwise'
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KodiClient
|
|
4
|
+
module Types
|
|
5
|
+
module Global
|
|
6
|
+
# Global.Toggle https://kodi.wiki/view/JSON-RPC_API/v12#Global.Toggle
|
|
7
|
+
module Toggle
|
|
8
|
+
extend Extensions::Iterable
|
|
9
|
+
|
|
10
|
+
TOGGLE = 'toggle'
|
|
11
|
+
TRUE = true
|
|
12
|
+
FALSE = false
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|