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.
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
@@ -1,177 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'kodi_client/types/item_types'
4
- require 'kodi_client/types/list_types'
5
-
6
- module KodiClient
7
- module Types
8
- module Addons
9
-
10
- # Addon Types https://kodi.wiki/view/JSON-RPC_API/v12#Addon.Types
11
- module AddonTypes
12
- extend Iterable
13
-
14
- UNKNOWN = 'unknown'
15
- KODI_ADSP = 'kodi.adsp'
16
- KODI_AUDIODECODER = 'kodi.audiodecoder'
17
- KODI_CONTEXT_ITEM = 'kodi.context.item'
18
- KODI_GAME_CONTROLLER = 'kodi.game.controller'
19
- KODI_INPUTSTREAM = 'kodi.inputstream'
20
- KODI_PERIPHERAL = 'kodi.peripheral'
21
- KODI_RESOURCE_IMAGES = 'kodi.resource.images'
22
- KODI_RESOURCE_LANGUAGE = 'kodi.resource.language'
23
- KODI_RESOURCE_UISOUNDS = 'kodi.resource.uisounds'
24
- XBMC_ADDON_AUDIO = 'xbmc.addon.audio'
25
- XBMC_ADDON_EXECUTABLE = 'xbmc.addon.executable'
26
- XBMC_ADDON_IMAGE = 'xbmc.addon.image'
27
- XBMC_ADDON_REPOSITORY = 'xbmc.addon.repository'
28
- XBMC_ADDON_VIDEO = 'xbmc.addon.video'
29
- XBMC_AUDIOENCODER = 'xbmc.audioencoder'
30
- XBMC_GUI_SKIN = 'xbmc.gui.skin'
31
- XBMC_METADATA_SCRAPER_ALBUMS = 'xbmc.metadata.scraper.albums'
32
- XBMC_METADATA_SCRAPER_ARTISTS = 'xbmc.metadata.scraper.artists'
33
- XBMC_METADATA_SCRAPER_LIBRARY = 'xbmc.metadata.scraper.library'
34
- XBMC_METADATA_SCRAPER_MOVIES = 'xbmc.metadata.scraper.movies'
35
- XBMC_METADATA_SCRAPER_MUSICVIDEOS = 'xbmc.metadata.scraper.musicvideos'
36
- XBMC_METADATA_SCRAPER_TVSHOWS = 'xbmc.metadata.scraper.episodes'
37
- XBMC_PLAYER_MUSICVIZ = 'xbmc.player.musicviz'
38
- XBMC_PVRCLIENT = 'xbmc.pvrclient'
39
- XBMC_PYTHON_LIBRARY = 'xbmc.python.library'
40
- XBMC_PYTHON_LYRICS = 'xbmc.python.lyrics'
41
- XBMC_PYTHON_MODULE = 'xbmc.python.module'
42
- XBMC_PYTHON_PLUGINSOURCE = 'xbmc.python.pluginsource'
43
- XBMC_PYTHON_SCRIPT = 'xbmc.python.script'
44
- XBMC_PYTHON_WEATHER = 'xbmc.python.weather'
45
- XBMC_SERVICE = 'xbmc.service'
46
- XBMC_SUBTITLE_MODULE = 'xbmc.subtitle.module'
47
- XBMC_UI_SCREENSAVER = 'xbmc.ui.screensaver'
48
- XBMC_WEBINTERFACE = 'xbmc.webinterface'
49
- end
50
-
51
- # Addon.Content https://kodi.wiki/view/JSON-RPC_API/v12#Addon.Content
52
- module AddonContent
53
- extend Iterable
54
-
55
- UNKNOWN = 'unknown'
56
- AUDIO = 'audio'
57
- EXECUTABLE = 'executable'
58
- IMAGE = 'image'
59
- VIDEO = 'video'
60
- end
61
-
62
- # Addon.Fields https://kodi.wiki/view/JSON-RPC_API/v12#Addon.Content
63
- module AddonFields
64
- extend Iterable
65
-
66
- AUTHOR = 'author'
67
- BROKEN = 'broken'
68
- DEPENDENCIES = 'dependencies'
69
- DESCRIPTION = 'description'
70
- DISCLAIMER = 'disclaimer'
71
- ENABLED = 'enabled'
72
- EXTRAINFO = 'extrainfo'
73
- FANART = 'fanart'
74
- INSTALLED = 'installed'
75
- NAME = 'name'
76
- PATH = 'path'
77
- RATING = 'rating'
78
- SUMMARY = 'summary'
79
- THUMBNAIL = 'thumbnail'
80
- VERSION = 'version'
81
- end
82
-
83
- # represents addon dependency
84
- class AddonDependency
85
- include Comparable
86
- extend Creatable
87
-
88
- attr_reader :addon_id, :optional, :version
89
-
90
- def initialize(addon_id, optional, version)
91
- @addon_id = addon_id
92
- @optional = optional
93
- @version = version
94
- end
95
- end
96
-
97
- # represents addon extra info
98
- class AddonExtraInfo
99
- include Comparable
100
- extend Creatable
101
-
102
- attr_reader :key, :value
103
-
104
- def initialize(key, value)
105
- @key = key
106
- @value = value
107
- end
108
- end
109
-
110
- # represents addon details
111
- class AddonDetails
112
- include Comparable
113
- include Items::ItemDetailsBase
114
- extend Creatable
115
-
116
- attr_reader :addon_id, :author, :broken, :dependencies, :description, :disclaimer, :enabled, :extra_info,
117
- :fan_art, :installed, :name, :path, :rating, :summary, :thumbnail, :type, :version
118
-
119
- fields_to_map %w[addon_id author broken dependencies description disclaimer enabled extra_info fan_art
120
- installed name path rating summary thumbnail type version label]
121
-
122
- type_mapping ['dependencies', AddonDependency, true], ['extrainfo', AddonExtraInfo, true]
123
-
124
- def initialize(addon_id, author, broken, dependencies, description, disclaimer, enabled, extra_info,
125
- fan_art, installed, name, path, rating, summary, thumbnail, type, version, label)
126
- @addon_id = addon_id
127
- @author = author
128
- @broken = broken
129
- @dependencies = dependencies
130
- @description = description
131
- @disclaimer = disclaimer
132
- @enabled = enabled
133
- @extra_info = extra_info
134
- @fan_art = fan_art
135
- @installed = installed
136
- @name = name
137
- @path = path
138
- @rating = rating
139
- @summary = summary
140
- @thumbnail = thumbnail
141
- @type = type
142
- @version = version
143
- item_details_base(label)
144
- end
145
- end
146
-
147
- # getAddons return
148
- class Addons
149
- include Comparable
150
- extend Creatable
151
-
152
- attr_reader :addons, :limits
153
-
154
- type_mapping ['addons', AddonDetails, true], ['limits', List::ListLimitsReturned]
155
-
156
- def initialize(addons, limits)
157
- @addons = addons
158
- @limits = limits
159
- end
160
- end
161
-
162
- # getAddon return
163
- class Addon
164
- include Comparable
165
- extend Creatable
166
-
167
- attr_reader :addon
168
-
169
- type_mapping ['addon', AddonDetails]
170
-
171
- def initialize(addon)
172
- @addon = addon
173
- end
174
- end
175
- end
176
- end
177
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KodiClient
4
- module Types
5
- module Application
6
-
7
- # Application.Property.Name https://kodi.wiki/view/JSON-RPC_API/v12#Application.Property.Name
8
- module PropertyName
9
- extend Iterable
10
-
11
- VOLUME = 'volume'
12
- MUTED = 'muted'
13
- NAME = 'name'
14
- VERSION = 'version'
15
- SORT_TOKENS = 'sorttokens'
16
- LANGUAGE = 'language'
17
- end
18
-
19
- # represent application properties version
20
- class Version
21
- include Comparable
22
- extend Creatable
23
-
24
- attr_reader :major, :minor, :revision, :tag
25
-
26
- def initialize(major, minor, revision, tag)
27
- @major = major
28
- @minor = minor
29
- @revision = revision
30
- @tag = tag
31
- end
32
- end
33
-
34
- # Application.Property.Value https://kodi.wiki/view/JSON-RPC_API/v12#Application.Property.Value
35
- class PropertyValue
36
- include Comparable
37
- extend Creatable
38
-
39
- attr_reader :name, :version, :muted, :volume
40
-
41
- type_mapping ['version', Version]
42
-
43
- def initialize(name, version, muted, volume)
44
- @name = name
45
- @version = version
46
- @muted = muted
47
- @volume = volume
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,221 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KodiClient
4
- module Types
5
- module Audio
6
-
7
- # Audio.Contributor https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Contributors
8
- class AudioContributor
9
- include Comparable
10
- extend Creatable
11
-
12
- attr_reader :artist_id, :name, :role, :role_id
13
-
14
- def initialize(artist_id, name, role, role_id)
15
- @artist_id = artist_id
16
- @name = name
17
- @role = role
18
- @role_id = role_id
19
- end
20
- end
21
-
22
- # Audio.Album.ReleaseType https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Album.ReleaseType
23
- module AudioAlbumReleaseType
24
- extend Iterable
25
-
26
- ALBUM = 'album'
27
- SINGLE = 'single'
28
- end
29
-
30
- # Audio.Details.Base https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Details.Base
31
- module AudioDetailsBase
32
- include Media::MediaDetailsBase
33
-
34
- attr_reader :art, :date_added, :genre
35
-
36
- def audio_details_base_mappings
37
- mappings = { 'art' => Creatable::CreateMap.new(Types::Media::MediaArtwork) }
38
- mappings.merge(media_details_base_mappings)
39
- end
40
-
41
- def audio_details_base_by_hash(hash)
42
- audio_details_base(*Creatable.hash_to_arr(hash, %w[art date_added genre fan_art thumbnail label]),
43
- audio_details_base_mappings)
44
- end
45
-
46
- def audio_details_base(art, date_added, genre, fan_art, thumbnail, label)
47
- @art = art
48
- @date_added = date_added
49
- @genre = genre
50
- media_details_base(fan_art, thumbnail, label)
51
- end
52
- end
53
-
54
- # Audio.Details.Media https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Details.Media
55
- module AudioDetailsMedia
56
- include AudioDetailsBase
57
-
58
- attr_reader :artist, :artist_id, :display_artist, :musicbrainz_album_artist_id, :original_date, :rating,
59
- :release_date, :sort_artist, :title, :user_rating, :votes, :year
60
-
61
- def audio_details_media_mappings
62
- audio_details_base_mappings
63
- end
64
-
65
- def audio_details_media_by_hash(hash)
66
- audio_details_media(*Creatable.hash_to_arr(hash, %w[artist artist_id display_artist
67
- musicbrainz_album_artist_id original_date rating
68
- release_date sort_artist title user_rating votes year art
69
- date_added genre fan_art thumbnail label],
70
- audio_details_base_mappings))
71
- end
72
-
73
- def audio_details_media(artist, artist_id, display_artist, musicbrainz_album_artist_id, original_date,
74
- rating, release_date, sort_artist, title, user_rating, votes, year,
75
- art, date_added, genre, fan_art, thumbnail, label)
76
- @artist = artist
77
- @artist_id = artist_id
78
- @display_artist = display_artist
79
- @musicbrainz_album_artist_id = musicbrainz_album_artist_id
80
- @original_date = original_date
81
- @rating = rating
82
- @release_date = release_date
83
- @sort_artist = sort_artist
84
- @title = title
85
- @user_rating = user_rating
86
- @votes = votes
87
- @year = year
88
- audio_details_base(art, date_added, genre, fan_art, thumbnail, label)
89
- end
90
- end
91
-
92
- # Audio.Fields.Album https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Fields.Album
93
- module AudioFieldsAlbum
94
- extend Iterable
95
-
96
- #album id
97
- ALBUM_DURATION = 'albumduration'
98
- ALBUM_LABEL = 'albumlabel'
99
- ALBUM_STATUS = 'albumstatus'
100
- ART = 'art'
101
- ARTIST = 'artist'
102
- ARTIST_ID = 'artistid'
103
- COMPILATION = 'compilation'
104
- DATE_ADDED = 'dateadded'
105
- DATE_MODIFIED = 'datemodified'
106
- DATE_NEW = 'datenew'
107
- DESCRIPTION = 'description'
108
- DISPLAY_ARTIST = 'displayartist'
109
- FAN_ART = 'fanart'
110
- GENRE = 'genre'
111
- IS_BOX_SET = 'isboxset'
112
- LAST_PLAYED = 'lastplayed'
113
- MOOD = 'mood'
114
- MUSICBRAINZ_ALBUM_ARTIST_ID = 'musicbrainzalbumartistid'
115
- MUSICBRAINZ_ALBUM_ID = 'musicbrainzalbumid'
116
- MUSICBRAINZ_RELEASE_GROUP_ID = 'musicbrainzreleasegroupid'
117
- ORIGINAL_DATE = 'originaldate'
118
- PLAY_COUNT = 'playcount'
119
- RATING = 'rating'
120
- RELEASE_DATE = 'releasedate'
121
- RELEASE_TYPE = 'releasetype'
122
- SONG_GENRES = 'songgenres'
123
- SORT_ARTIST = 'sortartist'
124
- SOURCE_ID = 'sourceid'
125
- STYLE = 'style'
126
- THEME = 'theme'
127
- THUMBNAIL = 'thumbnail'
128
- TITLE = 'title'
129
- TOTAL_DISCS = 'totaldiscs'
130
- TYPE = 'type'
131
- USER_RATING = 'userrating'
132
- VOTES = 'votes'
133
- YEAR = 'year'
134
- end
135
-
136
- # Audio.Details.Genres https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Details.Genres
137
- class Genre
138
- include Comparable
139
- extend Creatable
140
-
141
- attr_reader :genre_id, :title
142
-
143
- def initialize(genre_id, title)
144
- @genre_id = genre_id
145
- @title = title
146
- end
147
- end
148
-
149
- # Audio.Details.Album https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Details.Album
150
- class DetailsAlbum
151
- include AudioDetailsMedia
152
- include Comparable
153
- extend Creatable
154
-
155
- attr_reader :album_duration, :album_id, :album_label, :album_status, :compilation, :date_modified, :date_new,
156
- :description, :is_box_set, :last_played, :mood, :musicbrainz_album_id, :musicbrainz_release_group_id,
157
- :play_count, :release_type, :song_genres, :source_id, :style, :theme, :total_discs, :type
158
-
159
- fields_to_map %w[album_duration album_id album_label album_status art artist artist_id compilation date_added
160
- date_modified date_new description display_artist fan_art genre is_box_set label last_played
161
- mood musicbrainz_album_artist_id musicbrainz_album_id musicbrainz_release_group_id
162
- original_date play_count rating release_date release_type song_genres sort_artist source_id
163
- style theme thumbnail title total_discs type user_rating votes year]
164
-
165
- type_mapping ['songgenres', Genre, true], ['art', Types::Media::MediaArtwork]
166
-
167
- def initialize(album_duration, album_id, album_label, album_status, art, artist, artist_id, compilation,
168
- date_added, date_modified, date_new, description, display_artist, fan_art, genre, is_box_set,
169
- label, last_played, mood, musicbrainz_album_artist_id, musicbrainz_album_id,
170
- musicbrainz_release_group_id, original_date, play_count, rating, release_date, release_type,
171
- song_genres, sort_artist, source_id, style, theme, thumbnail, title, total_discs, type,
172
- user_rating, votes, year)
173
- @album_duration = album_duration
174
- @album_id = album_id
175
- @album_label = album_label
176
- @album_status = album_status
177
- @compilation = compilation
178
- @date_modified = date_modified
179
- @date_new = date_new
180
- @description = description
181
- @is_box_set = is_box_set
182
- @last_played = last_played
183
- @mood = mood
184
- @musicbrainz_album_id = musicbrainz_album_id
185
- @musicbrainz_release_group_id = musicbrainz_release_group_id
186
- @play_count = play_count
187
- @release_type = release_type
188
- @song_genres = song_genres
189
- @source_id = source_id
190
- @style = style
191
- @theme = theme
192
- @total_discs = total_discs
193
- @type = type
194
- audio_details_media(artist, artist_id, display_artist, musicbrainz_album_artist_id, original_date,
195
- rating, release_date, sort_artist, title, user_rating, votes, year,
196
- art, date_added, genre, fan_art, thumbnail, label)
197
- end
198
- end
199
-
200
- # return type for AudioLibrary.GetAlbums
201
- class GetAlbumsReturned
202
- include Comparable
203
- extend Creatable
204
-
205
- attr_reader :albums, :limits
206
-
207
- def self.lazy_type_mapping
208
- {
209
- 'albums' => Creatable::CreateMap.new(DetailsAlbum, true),
210
- 'limits' => Creatable::CreateMap.new(List::ListLimitsReturned)
211
- }
212
- end
213
-
214
- def initialize(albums, limits)
215
- @albums = albums
216
- @limits = limits
217
- end
218
- end
219
- end
220
- end
221
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KodiClient
4
- module Types
5
- module Favourites
6
-
7
- # Favourite.Type https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Type
8
- module Type
9
- extend Iterable
10
-
11
- MEDIA = 'media'
12
- WINDOW = 'window'
13
- SCRIPT = 'script'
14
- ANDROID_APP = 'androidapp'
15
- UNKNOWN = 'unknown'
16
- end
17
-
18
- # Favourite.Fields.Favourite https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Fields.Favourite
19
- module FieldsFavourite
20
- extend Iterable
21
-
22
- WINDOW = 'window'
23
- WINDOW_PARAMETER = 'windowparameter'
24
- THUMBNAIL = 'thumbnail'
25
- PATH = 'path'
26
- end
27
-
28
- # Favourite.Details.Favourite https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Details.Favourite
29
- class DetailsFavourite
30
- include Comparable
31
- extend Creatable
32
-
33
- attr_reader :path, :thumbnail, :title, :type, :window, :window_parameter
34
-
35
- def initialize(path, thumbnail, title, type, window, window_parameter)
36
- @path = path
37
- @thumbnail = thumbnail
38
- @title = title
39
- @type = type
40
- @window = window
41
- @window_parameter = window_parameter
42
- end
43
- end
44
-
45
- # return type for Favourites.GetFavourites
46
- class GetFavouriteReturned
47
- include Comparable
48
- extend Creatable
49
-
50
- attr_reader :favourites, :limits
51
-
52
- type_mapping ['favourites', DetailsFavourite, true], ['limits', Types::List::ListLimitsReturned]
53
-
54
- def initialize(favourites, limits)
55
- @favourites = favourites
56
- @limits = limits
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,63 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KodiClient
4
- module Types
5
- module Files
6
-
7
- # Files.Media https://kodi.wiki/view/JSON-RPC_API/v12#Files.Media
8
- module Media
9
- extend Iterable
10
-
11
- VIDEO = 'video'
12
- MUSIC = 'music'
13
- PICTURES = 'pictures'
14
- FILES = 'files'
15
- PROGRAMS = 'programs'
16
- end
17
-
18
- # return value for GetDirectory
19
- class GetDirectoryReturned
20
- include Comparable
21
- extend Creatable
22
-
23
- attr_reader :files, :limits
24
-
25
- type_mapping ['files', List::ListItemFile, true], ['limits', List::ListLimitsReturned]
26
-
27
- def initialize(files, limits)
28
- @files = files
29
- @limits = limits
30
- end
31
- end
32
-
33
- # return value for GetSources
34
- class GetSourcesReturned
35
- include Comparable
36
- extend Creatable
37
-
38
- attr_reader :sources, :limits
39
-
40
- type_mapping ['sources', List::FileLabel, true], ['limits', List::ListLimitsReturned]
41
-
42
- def initialize(sources, limits)
43
- @sources = sources
44
- @limits = limits
45
- end
46
- end
47
-
48
- # return value for GetPrepareDownload
49
- class PrepareDownloadReturned
50
- include Comparable
51
- extend Creatable
52
-
53
- attr_reader :details, :mode, :protocol
54
-
55
- def initialize(details, mode, protocol)
56
- @details = details
57
- @mode = mode
58
- @protocol = protocol
59
- end
60
- end
61
- end
62
- end
63
- end
@@ -1,102 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module KodiClient
4
- module Types
5
- module Global
6
-
7
- # Global.Toggle https://kodi.wiki/view/JSON-RPC_API/v12#Global.Toggle
8
- module Toggle
9
- extend Iterable
10
-
11
- TOGGLE = 'toggle'
12
- TRUE = true
13
- FALSE = false
14
- end
15
-
16
- # rotate for clockwise and counter clockwise
17
- module Rotate
18
- extend Iterable
19
-
20
- CLOCKWISE = 'clockwise'
21
- COUNTER_CLOCKWISE = 'counterclockwise'
22
- end
23
-
24
- # direction for left, right, up, down
25
- module Direction
26
- extend Iterable
27
-
28
- LEFT = 'left'
29
- RIGHT = 'right'
30
- UP = 'up'
31
- DOWN = 'down'
32
- end
33
-
34
- # enum for prev/next
35
- module NextPrev
36
- extend Iterable
37
-
38
- NEXT = 'next'
39
- PREV = 'previous'
40
- ON = 'on'
41
- OFF = 'off'
42
- end
43
-
44
- # Global.IncrementDecrement https://kodi.wiki/view/JSON-RPC_API/v12#Global.IncrementDecrement
45
- module IncrementDecrement
46
- extend Iterable
47
-
48
- INCREMENT = 'increment'
49
- DECREMENT = 'decrement'
50
- end
51
-
52
- # id/label type
53
- class IdLabel
54
- include Comparable
55
- extend Creatable
56
-
57
- attr_reader :id, :label
58
-
59
- def initialize(id, label)
60
- @id = id
61
- @label = label
62
- end
63
- end
64
-
65
- # id/name type
66
- class IdName
67
- include Comparable
68
- extend Creatable
69
-
70
- attr_reader :id, :name
71
-
72
- def initialize(id, name)
73
- @id = id
74
- @name = name
75
- end
76
- end
77
-
78
- # Global.Time https://kodi.wiki/view/JSON-RPC_API/v12#Global.Time
79
- class GlobalTime
80
- include Comparable
81
- extend Creatable
82
-
83
- attr_reader :hours, :minutes, :seconds, :milliseconds
84
-
85
- def initialize(hours, minutes, seconds, milliseconds)
86
- @hours = hours
87
- @minutes = minutes
88
- @seconds = seconds
89
- @milliseconds = milliseconds
90
- end
91
- end
92
-
93
- # available Password Encryptions
94
- module PasswordEncryption
95
- extend Iterable
96
-
97
- NONE = 'none'
98
- MD5 = 'md5'
99
- end
100
- end
101
- end
102
- end