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.
Files changed (151) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/README.md +1 -0
  4. data/kodi_client.gemspec +2 -2
  5. data/lib/kodi_client/extensions/chainable.rb +73 -0
  6. data/lib/kodi_client/extensions/comparable.rb +29 -0
  7. data/lib/kodi_client/extensions/creatable.rb +132 -0
  8. data/lib/kodi_client/extensions/iterable.rb +14 -0
  9. data/lib/kodi_client/kodi_error.rb +14 -0
  10. data/lib/kodi_client/kodi_method.rb +34 -0
  11. data/lib/kodi_client/{options.rb → kodi_options.rb} +1 -1
  12. data/lib/kodi_client/kodi_request.rb +16 -0
  13. data/lib/kodi_client/kodi_response.rb +21 -0
  14. data/lib/kodi_client/{method → methods}/addons.rb +6 -6
  15. data/lib/kodi_client/{method → methods}/application.rb +2 -2
  16. data/lib/kodi_client/methods/audio_library.rb +334 -0
  17. data/lib/kodi_client/{method → methods}/favourites.rb +2 -2
  18. data/lib/kodi_client/{method → methods}/files.rb +6 -10
  19. data/lib/kodi_client/{method → methods}/gui.rb +2 -2
  20. data/lib/kodi_client/{method → methods}/input.rb +2 -2
  21. data/lib/kodi_client/{method → methods}/player.rb +2 -2
  22. data/lib/kodi_client/{method → methods}/profiles.rb +5 -7
  23. data/lib/kodi_client/{method → methods}/system.rb +2 -2
  24. data/lib/kodi_client/methods/video_library.rb +18 -0
  25. data/lib/kodi_client/types/addons/addon_content_type.rb +18 -0
  26. data/lib/kodi_client/types/addons/addon_dependency_type.rb +21 -0
  27. data/lib/kodi_client/types/addons/addon_details_type.rb +44 -0
  28. data/lib/kodi_client/types/addons/addon_extra_info_type.rb +20 -0
  29. data/lib/kodi_client/types/addons/addon_fields_type.rb +28 -0
  30. data/lib/kodi_client/types/addons/addon_types_type.rb +48 -0
  31. data/lib/kodi_client/types/addons/get_addon_returned_type.rb +21 -0
  32. data/lib/kodi_client/types/addons/get_addons_returned_type.rb +22 -0
  33. data/lib/kodi_client/types/application/property_name_type.rb +19 -0
  34. data/lib/kodi_client/types/application/property_value_type.rb +24 -0
  35. data/lib/kodi_client/types/application/version_type.rb +22 -0
  36. data/lib/kodi_client/types/audio/audio_album_release_type_type.rb +15 -0
  37. data/lib/kodi_client/types/audio/audio_artist_role_type.rb +21 -0
  38. data/lib/kodi_client/types/audio/audio_contributor_type.rb +22 -0
  39. data/lib/kodi_client/types/audio/audio_details_album_type.rb +58 -0
  40. data/lib/kodi_client/types/audio/audio_details_artist_type.rb +53 -0
  41. data/lib/kodi_client/types/audio/audio_details_base_type.rb +30 -0
  42. data/lib/kodi_client/types/audio/audio_details_media_type.rb +50 -0
  43. data/lib/kodi_client/types/audio/audio_details_role_type.rb +25 -0
  44. data/lib/kodi_client/types/audio/audio_details_song_type.rb +72 -0
  45. data/lib/kodi_client/types/audio/audio_fields_album_type.rb +50 -0
  46. data/lib/kodi_client/types/audio/audio_fields_artist_type.rb +39 -0
  47. data/lib/kodi_client/types/audio/audio_fields_role_type.rb +15 -0
  48. data/lib/kodi_client/types/audio/audio_fields_song_type.rb +61 -0
  49. data/lib/kodi_client/types/audio/available_art_type.rb +21 -0
  50. data/lib/kodi_client/types/audio/genre_type.rb +20 -0
  51. data/lib/kodi_client/types/audio/get_albums_returned_type.rb +22 -0
  52. data/lib/kodi_client/types/audio/get_artists_returned_type.rb +23 -0
  53. data/lib/kodi_client/types/audio/get_genres_returned_type.rb +24 -0
  54. data/lib/kodi_client/types/audio/get_roles_returned_type.rb +25 -0
  55. data/lib/kodi_client/types/audio/get_songs_returned_type.rb +25 -0
  56. data/lib/kodi_client/types/audio/get_sources_return_type.rb +25 -0
  57. data/lib/kodi_client/types/audio/property_name_type.rb +25 -0
  58. data/lib/kodi_client/types/audio/property_value_type.rb +33 -0
  59. data/lib/kodi_client/types/favourites/details_favourite_type.rb +24 -0
  60. data/lib/kodi_client/types/favourites/fields_favourite_type.rb +17 -0
  61. data/lib/kodi_client/types/favourites/get_favourite_returned_type.rb +22 -0
  62. data/lib/kodi_client/types/favourites/type_type.rb +18 -0
  63. data/lib/kodi_client/types/files/file_label_type.rb +20 -0
  64. data/lib/kodi_client/types/files/get_directory_returned_type.rb +22 -0
  65. data/lib/kodi_client/types/files/get_sources_returned_type.rb +22 -0
  66. data/lib/kodi_client/types/files/media_type.rb +18 -0
  67. data/lib/kodi_client/types/files/prepare_download_returned_type.rb +21 -0
  68. data/lib/kodi_client/types/global/direction_type.rb +17 -0
  69. data/lib/kodi_client/types/global/global_time_type.rb +22 -0
  70. data/lib/kodi_client/types/global/id_label_type.rb +20 -0
  71. data/lib/kodi_client/types/global/id_name_type.rb +20 -0
  72. data/lib/kodi_client/types/global/increment_decrement_type.rb +15 -0
  73. data/lib/kodi_client/types/global/next_prev_type.rb +17 -0
  74. data/lib/kodi_client/types/global/password_encryption_type.rb +16 -0
  75. data/lib/kodi_client/types/global/rotate_type.rb +15 -0
  76. data/lib/kodi_client/types/global/toggle_type.rb +16 -0
  77. data/lib/kodi_client/types/gui/gui_window_type.rb +124 -0
  78. data/lib/kodi_client/types/gui/property_name_type.rb +18 -0
  79. data/lib/kodi_client/types/gui/property_value_type.rb +26 -0
  80. data/lib/kodi_client/types/gui/stereoscopy_mode_type.rb +31 -0
  81. data/lib/kodi_client/types/input/input_action_type.rb +212 -0
  82. data/lib/kodi_client/types/{item_types.rb → items/item_details_base_type.rb} +2 -4
  83. data/lib/kodi_client/types/library/library_details_genre_type.rb +27 -0
  84. data/lib/kodi_client/types/library/library_details_source_type.rb +26 -0
  85. data/lib/kodi_client/types/library/library_fields_genre_type.rb +17 -0
  86. data/lib/kodi_client/types/library/library_fields_source_type.rb +17 -0
  87. data/lib/kodi_client/types/list/list_field_files_type.rb +83 -0
  88. data/lib/kodi_client/types/list/list_fields_all_type.rb +96 -0
  89. data/lib/kodi_client/types/list/list_item_all_type.rb +70 -0
  90. data/lib/kodi_client/types/list/list_item_base_type.rb +141 -0
  91. data/lib/kodi_client/types/list/list_item_file_type.rb +66 -0
  92. data/lib/kodi_client/types/list/list_limits_returned_type.rb +23 -0
  93. data/lib/kodi_client/types/list/list_limits_type.rb +23 -0
  94. data/lib/kodi_client/types/list/list_sort_method_type.rb +54 -0
  95. data/lib/kodi_client/types/list/list_sort_type.rb +28 -0
  96. data/lib/kodi_client/types/list/sort_order_type.rb +15 -0
  97. data/lib/kodi_client/types/media/media_artwork_type.rb +26 -0
  98. data/lib/kodi_client/types/media/media_details_base_type.rb +29 -0
  99. data/lib/kodi_client/types/media/media_type_type.rb +16 -0
  100. data/lib/kodi_client/types/player/audio_stream_type.rb +29 -0
  101. data/lib/kodi_client/types/player/player_position_time_type.rb +22 -0
  102. data/lib/kodi_client/types/player/player_repeat_type.rb +17 -0
  103. data/lib/kodi_client/types/player/player_speed_type.rb +26 -0
  104. data/lib/kodi_client/types/player/player_type.rb +24 -0
  105. data/lib/kodi_client/types/player/player_type_type.rb +16 -0
  106. data/lib/kodi_client/types/player/player_view_mode_type.rb +23 -0
  107. data/lib/kodi_client/types/player/player_visibility_type.rb +16 -0
  108. data/lib/kodi_client/types/player/property_name_type.rb +38 -0
  109. data/lib/kodi_client/types/player/property_value_type.rb +60 -0
  110. data/lib/kodi_client/types/player/seek_jump_type.rb +17 -0
  111. data/lib/kodi_client/types/player/seek_returned_type.rb +23 -0
  112. data/lib/kodi_client/types/player/subtitle_type.rb +24 -0
  113. data/lib/kodi_client/types/player/video_stream_type.rb +26 -0
  114. data/lib/kodi_client/types/player/view_mode_type.rb +22 -0
  115. data/lib/kodi_client/types/player/zoom_type.rb +15 -0
  116. data/lib/kodi_client/types/profiles/details_profile_type.rb +24 -0
  117. data/lib/kodi_client/types/profiles/fields_profile_type.rb +15 -0
  118. data/lib/kodi_client/types/profiles/get_profiles_returned_type.rb +22 -0
  119. data/lib/kodi_client/types/profiles/profile_password_type.rb +20 -0
  120. data/lib/kodi_client/types/{pvr_type.rb → pvr/channel_type_type.rb} +2 -4
  121. data/lib/kodi_client/types/system/property_name_type.rb +17 -0
  122. data/lib/kodi_client/types/{system_types.rb → system/property_value_type.rb} +2 -13
  123. data/lib/kodi_client/types/video/stream_details_type.rb +24 -0
  124. data/lib/kodi_client/types/video/video_cast_type.rb +22 -0
  125. data/lib/kodi_client/types/video/video_content_type_type.rb +18 -0
  126. data/lib/kodi_client/types/video/video_details_base_type.rb +29 -0
  127. data/lib/kodi_client/types/video/video_details_file_type.rb +37 -0
  128. data/lib/kodi_client/types/video/video_details_item_type.rb +32 -0
  129. data/lib/kodi_client/types/video/video_details_media_type.rb +28 -0
  130. data/lib/kodi_client/types/video/video_resume_type.rb +20 -0
  131. data/lib/kodi_client.rb +160 -49
  132. metadata +132 -38
  133. data/lib/kodi_client/Chainable.rb +0 -48
  134. data/lib/kodi_client/kodi_module.rb +0 -80
  135. data/lib/kodi_client/method/audio_library.rb +0 -46
  136. data/lib/kodi_client/types/addon_types.rb +0 -177
  137. data/lib/kodi_client/types/application_types.rb +0 -52
  138. data/lib/kodi_client/types/audio_types.rb +0 -221
  139. data/lib/kodi_client/types/favourites_types.rb +0 -61
  140. data/lib/kodi_client/types/files_types.rb +0 -63
  141. data/lib/kodi_client/types/global_types.rb +0 -102
  142. data/lib/kodi_client/types/gui_types.rb +0 -179
  143. data/lib/kodi_client/types/input_types.rb +0 -214
  144. data/lib/kodi_client/types/list_types.rb +0 -542
  145. data/lib/kodi_client/types/media_types.rb +0 -53
  146. data/lib/kodi_client/types/player_type.rb +0 -294
  147. data/lib/kodi_client/types/profiles_types.rb +0 -65
  148. data/lib/kodi_client/types/video_types.rb +0 -150
  149. data/lib/kodi_client/util/comparable.rb +0 -20
  150. data/lib/kodi_client/util/creatable.rb +0 -106
  151. 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,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module KodiClient
4
+ module Types
5
+ module Global
6
+ # available Password Encryptions
7
+ module PasswordEncryption
8
+ extend Extensions::Iterable
9
+
10
+ NONE = 'none'
11
+ MD5 = 'md5'
12
+ end
13
+ end
14
+ end
15
+ end
16
+
@@ -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