kodi_client 0.6.3 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|