kodi_client 0.6.0 → 0.6.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +2 -0
  3. data/kodi_client.gemspec +1 -1
  4. data/lib/kodi_client/extensions/chainable.rb +71 -0
  5. data/lib/kodi_client/extensions/comparable.rb +29 -0
  6. data/lib/kodi_client/extensions/creatable.rb +137 -0
  7. data/lib/kodi_client/extensions/iterable.rb +14 -0
  8. data/lib/kodi_client/kodi_error.rb +14 -0
  9. data/lib/kodi_client/kodi_method.rb +34 -0
  10. data/lib/kodi_client/{options.rb → kodi_options.rb} +1 -1
  11. data/lib/kodi_client/kodi_request.rb +16 -0
  12. data/lib/kodi_client/kodi_response.rb +21 -0
  13. data/lib/kodi_client/{method → methods}/addons.rb +9 -24
  14. data/lib/kodi_client/{method → methods}/application.rb +2 -5
  15. data/lib/kodi_client/methods/audio_library.rb +46 -0
  16. data/lib/kodi_client/{method → methods}/favourites.rb +2 -5
  17. data/lib/kodi_client/{method → methods}/files.rb +2 -6
  18. data/lib/kodi_client/{method → methods}/gui.rb +2 -5
  19. data/lib/kodi_client/{method → methods}/input.rb +2 -6
  20. data/lib/kodi_client/{method → methods}/player.rb +2 -7
  21. data/lib/kodi_client/{method → methods}/profiles.rb +2 -5
  22. data/lib/kodi_client/{method → methods}/system.rb +2 -6
  23. data/lib/kodi_client/types/addons/addon_content_type.rb +18 -0
  24. data/lib/kodi_client/types/addons/addon_dependency_type.rb +21 -0
  25. data/lib/kodi_client/types/addons/addon_details_type.rb +44 -0
  26. data/lib/kodi_client/types/addons/addon_extra_info_type.rb +20 -0
  27. data/lib/kodi_client/types/addons/addon_fields_type.rb +28 -0
  28. data/lib/kodi_client/types/addons/addon_types_type.rb +48 -0
  29. data/lib/kodi_client/types/addons/get_addon_returned_type.rb +21 -0
  30. data/lib/kodi_client/types/addons/get_addons_returned_type.rb +22 -0
  31. data/lib/kodi_client/types/application/property_name_type.rb +19 -0
  32. data/lib/kodi_client/types/application/property_value_type.rb +24 -0
  33. data/lib/kodi_client/types/application/version_type.rb +22 -0
  34. data/lib/kodi_client/types/audio/audio_album_release_type_type.rb +15 -0
  35. data/lib/kodi_client/types/audio/audio_contributor_type.rb +22 -0
  36. data/lib/kodi_client/types/audio/audio_details_base_type.rb +31 -0
  37. data/lib/kodi_client/types/audio/audio_details_media_type.rb +45 -0
  38. data/lib/kodi_client/types/audio/audio_fields_album_type.rb +51 -0
  39. data/lib/kodi_client/types/audio/details_album_type.rb +58 -0
  40. data/lib/kodi_client/types/audio/genre_type.rb +20 -0
  41. data/lib/kodi_client/types/audio/get_albums_returned_type.rb +22 -0
  42. data/lib/kodi_client/types/favourites/details_favourite_type.rb +24 -0
  43. data/lib/kodi_client/types/favourites/fields_favourite_type.rb +17 -0
  44. data/lib/kodi_client/types/favourites/get_favourite_returned_type.rb +22 -0
  45. data/lib/kodi_client/types/favourites/type_type.rb +18 -0
  46. data/lib/kodi_client/types/files/file_label_type.rb +20 -0
  47. data/lib/kodi_client/types/files/get_directory_returned_type.rb +22 -0
  48. data/lib/kodi_client/types/files/get_sources_returned_type.rb +22 -0
  49. data/lib/kodi_client/types/files/media_type.rb +18 -0
  50. data/lib/kodi_client/types/files/prepare_download_returned_type.rb +21 -0
  51. data/lib/kodi_client/types/global/direction_type.rb +17 -0
  52. data/lib/kodi_client/types/global/global_time_type.rb +22 -0
  53. data/lib/kodi_client/types/global/id_label_type.rb +20 -0
  54. data/lib/kodi_client/types/global/id_name_type.rb +20 -0
  55. data/lib/kodi_client/types/global/increment_decrement_type.rb +15 -0
  56. data/lib/kodi_client/types/global/next_prev_type.rb +17 -0
  57. data/lib/kodi_client/types/global/password_encryption_type.rb +16 -0
  58. data/lib/kodi_client/types/global/rotate_type.rb +15 -0
  59. data/lib/kodi_client/types/global/toggle_type.rb +16 -0
  60. data/lib/kodi_client/types/gui/gui_window_type.rb +124 -0
  61. data/lib/kodi_client/types/gui/property_name_type.rb +18 -0
  62. data/lib/kodi_client/types/gui/property_value_type.rb +26 -0
  63. data/lib/kodi_client/types/gui/stereoscopy_mode_type.rb +31 -0
  64. data/lib/kodi_client/types/input/input_action_type.rb +212 -0
  65. data/lib/kodi_client/{global_types/item_types.rb → types/items/item_details_base_type.rb} +5 -3
  66. data/lib/kodi_client/types/list/list_field_files_type.rb +83 -0
  67. data/lib/kodi_client/types/list/list_fields_all_type.rb +96 -0
  68. data/lib/kodi_client/types/list/list_item_all_type.rb +73 -0
  69. data/lib/kodi_client/types/list/list_item_base_type.rb +138 -0
  70. data/lib/kodi_client/types/list/list_item_file_type.rb +68 -0
  71. data/lib/kodi_client/types/list/list_limits_returned_type.rb +23 -0
  72. data/lib/kodi_client/types/list/list_limits_type.rb +19 -0
  73. data/lib/kodi_client/types/list/list_sort_method_type.rb +54 -0
  74. data/lib/kodi_client/types/list/list_sort_type.rb +22 -0
  75. data/lib/kodi_client/types/list/sort_order_type.rb +15 -0
  76. data/lib/kodi_client/types/media/media_artwork_type.rb +22 -0
  77. data/lib/kodi_client/types/media/media_details_base_type.rb +28 -0
  78. data/lib/kodi_client/types/media/media_type_type.rb +16 -0
  79. data/lib/kodi_client/types/player/audio_stream_type.rb +29 -0
  80. data/lib/kodi_client/types/player/player_position_time_type.rb +22 -0
  81. data/lib/kodi_client/types/player/player_repeat_type.rb +17 -0
  82. data/lib/kodi_client/types/player/player_speed_type.rb +26 -0
  83. data/lib/kodi_client/types/player/player_type.rb +24 -0
  84. data/lib/kodi_client/types/player/player_type_type.rb +16 -0
  85. data/lib/kodi_client/types/player/player_view_mode_type.rb +23 -0
  86. data/lib/kodi_client/types/player/player_visibility_type.rb +16 -0
  87. data/lib/kodi_client/types/player/property_name_type.rb +38 -0
  88. data/lib/kodi_client/types/player/property_value_type.rb +60 -0
  89. data/lib/kodi_client/types/player/seek_jump_type.rb +17 -0
  90. data/lib/kodi_client/types/player/seek_returned_type.rb +23 -0
  91. data/lib/kodi_client/types/player/subtitle_type.rb +24 -0
  92. data/lib/kodi_client/types/player/video_stream_type.rb +26 -0
  93. data/lib/kodi_client/types/player/view_mode_type.rb +22 -0
  94. data/lib/kodi_client/types/player/zoom_type.rb +15 -0
  95. data/lib/kodi_client/types/profiles/details_profile_type.rb +24 -0
  96. data/lib/kodi_client/types/profiles/fields_profile_type.rb +15 -0
  97. data/lib/kodi_client/types/profiles/get_profiles_returned_type.rb +22 -0
  98. data/lib/kodi_client/types/profiles/profile_password_type.rb +20 -0
  99. data/lib/kodi_client/{global_types/pvr_type.rb → types/pvr/channel_type_type.rb} +2 -6
  100. data/lib/kodi_client/types/system/property_name_type.rb +17 -0
  101. data/lib/kodi_client/{global_types/system_types.rb → types/system/property_value_type.rb} +2 -16
  102. data/lib/kodi_client/types/video/stream_details_type.rb +24 -0
  103. data/lib/kodi_client/types/video/video_cast_type.rb +22 -0
  104. data/lib/kodi_client/types/video/video_details_base_type.rb +29 -0
  105. data/lib/kodi_client/types/video/video_details_file_type.rb +37 -0
  106. data/lib/kodi_client/types/video/video_details_item_type.rb +32 -0
  107. data/lib/kodi_client/types/video/video_details_media_type.rb +28 -0
  108. data/lib/kodi_client/types/video/video_resume_type.rb +20 -0
  109. data/lib/kodi_client.rb +137 -23
  110. metadata +107 -33
  111. data/lib/kodi_client/Chainable.rb +0 -49
  112. data/lib/kodi_client/global_types/addon_types.rb +0 -194
  113. data/lib/kodi_client/global_types/application_types.rb +0 -61
  114. data/lib/kodi_client/global_types/audio_types.rb +0 -88
  115. data/lib/kodi_client/global_types/favourites_types.rb +0 -70
  116. data/lib/kodi_client/global_types/files_types.rb +0 -82
  117. data/lib/kodi_client/global_types/global_types.rb +0 -106
  118. data/lib/kodi_client/global_types/gui_types.rb +0 -191
  119. data/lib/kodi_client/global_types/input_types.rb +0 -216
  120. data/lib/kodi_client/global_types/list_types.rb +0 -569
  121. data/lib/kodi_client/global_types/media_types.rb +0 -55
  122. data/lib/kodi_client/global_types/player_type.rb +0 -319
  123. data/lib/kodi_client/global_types/profiles_types.rb +0 -80
  124. data/lib/kodi_client/global_types/video_types.rb +0 -145
  125. data/lib/kodi_client/kodi_module.rb +0 -87
  126. data/lib/kodi_client/util/comparable.rb +0 -20
  127. data/lib/kodi_client/util/creatable.rb +0 -52
  128. data/lib/kodi_client/util/iterable.rb +0 -11
@@ -1,194 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'kodi_client/global_types/item_types'
4
- require 'kodi_client/util/comparable'
5
- require 'kodi_client/util/iterable'
6
- require 'kodi_client/util/creatable'
7
-
8
- module KodiClient
9
- module Types
10
- module Addons
11
-
12
- # Addon Types https://kodi.wiki/view/JSON-RPC_API/v12#Addon.Types
13
- module AddonTypes
14
- extend Iterable
15
-
16
- UNKNOWN = 'unknown'
17
- KODI_ADSP = 'kodi.adsp'
18
- KODI_AUDIODECODER = 'kodi.audiodecoder'
19
- KODI_CONTEXT_ITEM = 'kodi.context.item'
20
- KODI_GAME_CONTROLLER = 'kodi.game.controller'
21
- KODI_INPUTSTREAM = 'kodi.inputstream'
22
- KODI_PERIPHERAL = 'kodi.peripheral'
23
- KODI_RESOURCE_IMAGES = 'kodi.resource.images'
24
- KODI_RESOURCE_LANGUAGE = 'kodi.resource.language'
25
- KODI_RESOURCE_UISOUNDS = 'kodi.resource.uisounds'
26
- XBMC_ADDON_AUDIO = 'xbmc.addon.audio'
27
- XBMC_ADDON_EXECUTABLE = 'xbmc.addon.executable'
28
- XBMC_ADDON_IMAGE = 'xbmc.addon.image'
29
- XBMC_ADDON_REPOSITORY = 'xbmc.addon.repository'
30
- XBMC_ADDON_VIDEO = 'xbmc.addon.video'
31
- XBMC_AUDIOENCODER = 'xbmc.audioencoder'
32
- XBMC_GUI_SKIN = 'xbmc.gui.skin'
33
- XBMC_METADATA_SCRAPER_ALBUMS = 'xbmc.metadata.scraper.albums'
34
- XBMC_METADATA_SCRAPER_ARTISTS = 'xbmc.metadata.scraper.artists'
35
- XBMC_METADATA_SCRAPER_LIBRARY = 'xbmc.metadata.scraper.library'
36
- XBMC_METADATA_SCRAPER_MOVIES = 'xbmc.metadata.scraper.movies'
37
- XBMC_METADATA_SCRAPER_MUSICVIDEOS = 'xbmc.metadata.scraper.musicvideos'
38
- XBMC_METADATA_SCRAPER_TVSHOWS = 'xbmc.metadata.scraper.episodes'
39
- XBMC_PLAYER_MUSICVIZ = 'xbmc.player.musicviz'
40
- XBMC_PVRCLIENT = 'xbmc.pvrclient'
41
- XBMC_PYTHON_LIBRARY = 'xbmc.python.library'
42
- XBMC_PYTHON_LYRICS = 'xbmc.python.lyrics'
43
- XBMC_PYTHON_MODULE = 'xbmc.python.module'
44
- XBMC_PYTHON_PLUGINSOURCE = 'xbmc.python.pluginsource'
45
- XBMC_PYTHON_SCRIPT = 'xbmc.python.script'
46
- XBMC_PYTHON_WEATHER = 'xbmc.python.weather'
47
- XBMC_SERVICE = 'xbmc.service'
48
- XBMC_SUBTITLE_MODULE = 'xbmc.subtitle.module'
49
- XBMC_UI_SCREENSAVER = 'xbmc.ui.screensaver'
50
- XBMC_WEBINTERFACE = 'xbmc.webinterface'
51
- end
52
-
53
- # Addon.Content https://kodi.wiki/view/JSON-RPC_API/v12#Addon.Content
54
- module AddonContent
55
- extend Iterable
56
-
57
- UNKNOWN = 'unknown'
58
- AUDIO = 'audio'
59
- EXECUTABLE = 'executable'
60
- IMAGE = 'image'
61
- VIDEO = 'video'
62
- end
63
-
64
- # Addon.Fields https://kodi.wiki/view/JSON-RPC_API/v12#Addon.Content
65
- module AddonFields
66
- extend Iterable
67
-
68
- AUTHOR = 'author'
69
- BROKEN = 'broken'
70
- DEPENDENCIES = 'dependencies'
71
- DESCRIPTION = 'description'
72
- DISCLAIMER = 'disclaimer'
73
- ENABLED = 'enabled'
74
- EXTRAINFO = 'extrainfo'
75
- FANART = 'fanart'
76
- INSTALLED = 'installed'
77
- NAME = 'name'
78
- PATH = 'path'
79
- RATING = 'rating'
80
- SUMMARY = 'summary'
81
- THUMBNAIL = 'thumbnail'
82
- VERSION = 'version'
83
- end
84
-
85
- # represents addon dependency
86
- class AddonDependency
87
- include Comparable
88
- extend Creatable
89
-
90
- attr_reader :addon_id, :optional, :version
91
-
92
- def initialize(addon_id, optional, version)
93
- @addon_id = addon_id
94
- @optional = optional
95
- @version = version
96
- end
97
- end
98
-
99
- # represents addon extra info
100
- class AddonExtraInfo
101
- include Comparable
102
- extend Creatable
103
-
104
- attr_reader :key, :value
105
-
106
- def initialize(key, value)
107
- @key = key
108
- @value = value
109
- end
110
- end
111
-
112
- # represents addon details
113
- class AddonDetails
114
- include Comparable
115
- include Items::ItemDetailsBase
116
- extend Creatable
117
-
118
- attr_reader :addon_id, :author, :broken, :dependencies, :description, :disclaimer, :enabled, :extra_info,
119
- :fan_art, :installed, :name, :path, :rating, :summary, :thumbnail, :type, :version
120
-
121
- def self.create(hash)
122
- return nil if hash.nil?
123
-
124
- dependencies = AddonDependency.create_list(hash['dependencies'])
125
- extra_info = AddonExtraInfo.create_list(hash['extrainfo'])
126
-
127
- new(hash['addonid'], hash['author'], hash['broken'], dependencies, hash['description'], hash['disclaimer'],
128
- hash['enabled'], extra_info, hash['fanart'], hash['installed'], hash['name'], hash['path'],
129
- hash['rating'], hash['summary'], hash['thumbnail'], hash['type'], hash['version'],
130
- *hash_to_arr(hash, ['label']))
131
- end
132
-
133
- def initialize(addon_id, author, broken, dependencies, description, disclaimer, enabled, extra_info,
134
- fan_art, installed, name, path, rating, summary, thumbnail, type, version, label)
135
- @addon_id = addon_id
136
- @author = author
137
- @broken = broken
138
- @dependencies = dependencies
139
- @description = description
140
- @disclaimer = disclaimer
141
- @enabled = enabled
142
- @extra_info = extra_info
143
- @fan_art = fan_art
144
- @installed = installed
145
- @name = name
146
- @path = path
147
- @rating = rating
148
- @summary = summary
149
- @thumbnail = thumbnail
150
- @type = type
151
- @version = version
152
- item_details_base(label)
153
- end
154
- end
155
-
156
- # getAddons return
157
- class Addons
158
- include Comparable
159
-
160
- attr_reader :addons, :limits
161
-
162
- def self.create(hash)
163
- return nil if hash.nil?
164
-
165
- addons = AddonDetails.create_list(hash['addons'])
166
- limits = List::ListLimitsReturned.create(hash['limits'])
167
- new(addons, limits)
168
- end
169
-
170
- def initialize(addons, limits)
171
- @addons = addons
172
- @limits = limits
173
- end
174
- end
175
-
176
- # getAddon return
177
- class Addon
178
- include Comparable
179
-
180
- attr_reader :addon
181
-
182
- def self.create(hash)
183
- return nil if hash.nil?
184
-
185
- new(AddonDetails.create(hash['addon']))
186
- end
187
-
188
- def initialize(addon)
189
- @addon = addon
190
- end
191
- end
192
- end
193
- end
194
- end
@@ -1,61 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'kodi_client/util/comparable'
4
- require 'kodi_client/util/iterable'
5
- require 'kodi_client/util/creatable'
6
-
7
- module KodiClient
8
- module Types
9
- module Application
10
-
11
- # Application.Property.Name https://kodi.wiki/view/JSON-RPC_API/v12#Application.Property.Name
12
- module PropertyName
13
- extend Iterable
14
-
15
- VOLUME = 'volume'
16
- MUTED = 'muted'
17
- NAME = 'name'
18
- VERSION = 'version'
19
- SORT_TOKENS = 'sorttokens'
20
- LANGUAGE = 'language'
21
- end
22
-
23
- # Application.Property.Value https://kodi.wiki/view/JSON-RPC_API/v12#Application.Property.Value
24
- class PropertyValue
25
- include Comparable
26
- extend Creatable
27
-
28
- attr_reader :name, :version, :muted, :volume
29
-
30
- def self.create(hash)
31
- return null if hash.nil?
32
-
33
- version = Version.create(hash['version'])
34
- new(hash['name'], version, hash['muted'], hash['volume'])
35
- end
36
-
37
- def initialize(name, version, muted, volume)
38
- @name = name
39
- @version = version
40
- @muted = muted
41
- @volume = volume
42
- end
43
- end
44
-
45
- # represent application properties version
46
- class Version
47
- include Comparable
48
- extend Creatable
49
-
50
- attr_reader :major, :minor, :revision, :tag
51
-
52
- def initialize(major, minor, revision, tag)
53
- @major = major
54
- @minor = minor
55
- @revision = revision
56
- @tag = tag
57
- end
58
- end
59
- end
60
- end
61
- end
@@ -1,88 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'kodi_client/global_types/media_types'
4
- require 'kodi_client/util/comparable'
5
- require 'kodi_client/util/iterable'
6
- require 'kodi_client/util/creatable'
7
-
8
- module KodiClient
9
- module Types
10
- module Audio
11
-
12
- # Audio.Contributor https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Contributors
13
- class AudioContributor
14
- include Comparable
15
- extend Creatable
16
-
17
- attr_reader :artist_id, :name, :role, :role_id
18
-
19
- def initialize(artist_id, name, role, role_id)
20
- @artist_id = artist_id
21
- @name = name
22
- @role = role
23
- @role_id = role_id
24
- end
25
- end
26
-
27
- # Audio.Album.ReleaseType https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Album.ReleaseType
28
- module AudioAlbumReleaseType
29
- extend Iterable
30
-
31
- ALBUM = 'album'
32
- SINGLE = 'single'
33
- end
34
-
35
- # Audio.Details.Base https://kodi.wiki/view/JSON-RPC_API/v12#Audio.Details.Base
36
- module AudioDetailsBase
37
- include Media::MediaDetailsBase
38
-
39
- attr_reader :art, :date_added, :genre
40
-
41
- def audio_details_base_by_hash(hash)
42
- audio_details_base(Types::Media::MediaArtwork.create(hash['art']), hash['date_added'], hash['genre'],
43
- *Creatable.hash_to_arr(hash, %w[fan_art thumbnail label]))
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_by_hash(hash)
62
- audio_details_media(hash['artist'], hash['artistid'], hash['displayartist'], hash['musicbrainzalbumartistid'],
63
- hash['originaldate'], hash['rating'], hash['releasedate'], hash['sortartist'],
64
- hash['title'], hash['userrating'], hash['votes'], hash['year'],
65
- *Creatable.hash_to_arr(hash, %w[art date_added genre fan_art thumbnail label]))
66
- end
67
-
68
- def audio_details_media(artist, artist_id, display_artist, musicbrainz_album_artist_id, original_date,
69
- rating, release_date, sort_artist, title, user_rating, votes, year,
70
- art, date_added, genre, fan_art, thumbnail, label)
71
- @artist = artist
72
- @artist_id = artist_id
73
- @display_artist = display_artist
74
- @musicbrainz_album_artist_id = musicbrainz_album_artist_id
75
- @original_date = original_date
76
- @rating = rating
77
- @release_date = release_date
78
- @sort_artist = sort_artist
79
- @title = title
80
- @user_rating = user_rating
81
- @votes = votes
82
- @year = year
83
- audio_details_base(art, date_added, genre, fan_art, thumbnail, label)
84
- end
85
- end
86
- end
87
- end
88
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'kodi_client/util/comparable'
4
- require 'kodi_client/util/iterable'
5
- require 'kodi_client/util/creatable'
6
- require 'kodi_client/global_types/list_types'
7
-
8
- module KodiClient
9
- module Types
10
- module Favourites
11
-
12
- # Favourite.Type https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Type
13
- module Type
14
- extend Iterable
15
-
16
- MEDIA = 'media'
17
- WINDOW = 'window'
18
- SCRIPT = 'script'
19
- ANDROID_APP = 'androidapp'
20
- UNKNOWN = 'unknown'
21
- end
22
-
23
- # Favourite.Fields.Favourite https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Fields.Favourite
24
- module FieldsFavourite
25
- extend Iterable
26
-
27
- WINDOW = 'window'
28
- WINDOW_PARAMETER = 'windowparameter'
29
- THUMBNAIL = 'thumbnail'
30
- PATH = 'path'
31
- end
32
-
33
- # Favourite.Details.Favourite https://kodi.wiki/view/JSON-RPC_API/v12#Favourite.Details.Favourite
34
- class DetailsFavourite
35
- include Comparable
36
- extend Creatable
37
-
38
- attr_reader :path, :thumbnail, :title, :type, :window, :window_parameter
39
-
40
- def initialize(path, thumbnail, title, type, window, window_parameter)
41
- @path = path
42
- @thumbnail = thumbnail
43
- @title = title
44
- @type = type
45
- @window = window
46
- @window_parameter = window_parameter
47
- end
48
- end
49
-
50
- # return type for Favourites.GetFavourites
51
- class GetFavouriteReturned
52
- include Comparable
53
- extend Creatable
54
-
55
- attr_reader :favourites, :limits
56
-
57
- def self.create(hash)
58
- favourites = DetailsFavourite.create_list(hash['favourites'])
59
- limits = Types::List::ListLimitsReturned.create(hash['limits'])
60
- new(favourites, limits)
61
- end
62
-
63
- def initialize(favourites, limits)
64
- @favourites = favourites
65
- @limits = limits
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,82 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'kodi_client/util/comparable'
4
- require 'kodi_client/util/iterable'
5
- require 'kodi_client/util/creatable'
6
- require 'kodi_client/global_types/list_types'
7
-
8
- module KodiClient
9
- module Types
10
- module Files
11
-
12
- # Files.Media https://kodi.wiki/view/JSON-RPC_API/v12#Files.Media
13
- module Media
14
- extend Iterable
15
-
16
- VIDEO = 'video'
17
- MUSIC = 'music'
18
- PICTURES = 'pictures'
19
- FILES = 'files'
20
- PROGRAMS = 'programs'
21
- end
22
-
23
- # return value for GetDirectory
24
- class GetDirectoryReturned
25
- include Comparable
26
- extend Creatable
27
-
28
- attr_reader :files, :limits
29
-
30
- def self.create(hash)
31
- return nil if hash.nil?
32
-
33
- files = Types::List::ListItemFile.create_list(hash['files'])
34
- limits = Types::List::ListLimitsReturned.create(hash['limits'])
35
-
36
- new(files, limits)
37
- end
38
-
39
- def initialize(files, limits)
40
- @files = files
41
- @limits = limits
42
- end
43
- end
44
-
45
- # return value for GetSources
46
- class GetSourcesReturned
47
- include Comparable
48
- extend Creatable
49
-
50
- attr_reader :sources, :limits
51
-
52
- def self.create(hash)
53
- return nil if hash.nil?
54
-
55
- sources = Types::List::FileLabel.create_list(hash['sources'])
56
- limits = Types::List::ListLimitsReturned.create(hash['limits'])
57
-
58
- new(sources, limits)
59
- end
60
-
61
- def initialize(sources, limits)
62
- @sources = sources
63
- @limits = limits
64
- end
65
- end
66
-
67
- # return value for GetPrepareDownload
68
- class PrepareDownloadReturned
69
- include Comparable
70
- extend Creatable
71
-
72
- attr_reader :details, :mode, :protocol
73
-
74
- def initialize(details, mode, protocol)
75
- @details = details
76
- @mode = mode
77
- @protocol = protocol
78
- end
79
- end
80
- end
81
- end
82
- end
@@ -1,106 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'kodi_client/util/comparable'
4
- require 'kodi_client/util/iterable'
5
- require 'kodi_client/util/creatable'
6
-
7
- module KodiClient
8
- module Types
9
- module Global
10
-
11
- # Global.Toggle https://kodi.wiki/view/JSON-RPC_API/v12#Global.Toggle
12
- module Toggle
13
- extend Iterable
14
-
15
- TOGGLE = 'toggle'
16
- TRUE = true
17
- FALSE = false
18
- end
19
-
20
- # rotate for clockwise and counter clockwise
21
- module Rotate
22
- extend Iterable
23
-
24
- CLOCKWISE = 'clockwise'
25
- COUNTER_CLOCKWISE = 'counterclockwise'
26
- end
27
-
28
- # direction for left, right, up, down
29
- module Direction
30
- extend Iterable
31
-
32
- LEFT = 'left'
33
- RIGHT = 'right'
34
- UP = 'up'
35
- DOWN = 'down'
36
- end
37
-
38
- # enum for prev/next
39
- module NextPrev
40
- extend Iterable
41
-
42
- NEXT = 'next'
43
- PREV = 'previous'
44
- ON = 'on'
45
- OFF = 'off'
46
- end
47
-
48
- # Global.IncrementDecrement https://kodi.wiki/view/JSON-RPC_API/v12#Global.IncrementDecrement
49
- module IncrementDecrement
50
- extend Iterable
51
-
52
- INCREMENT = 'increment'
53
- DECREMENT = 'decrement'
54
- end
55
-
56
- # id/label type
57
- class IdLabel
58
- include Comparable
59
- extend Creatable
60
-
61
- attr_reader :id, :label
62
-
63
- def initialize(id, label)
64
- @id = id
65
- @label = label
66
- end
67
- end
68
-
69
- # id/name type
70
- class IdName
71
- include Comparable
72
- extend Creatable
73
-
74
- attr_reader :id, :name
75
-
76
- def initialize(id, name)
77
- @id = id
78
- @name = name
79
- end
80
- end
81
-
82
- # Global.Time https://kodi.wiki/view/JSON-RPC_API/v12#Global.Time
83
- class GlobalTime
84
- include Comparable
85
- extend Creatable
86
-
87
- attr_reader :hours, :minutes, :seconds, :milliseconds
88
-
89
- def initialize(hours, minutes, seconds, milliseconds)
90
- @hours = hours
91
- @minutes = minutes
92
- @seconds = seconds
93
- @milliseconds = milliseconds
94
- end
95
- end
96
-
97
- # available Password Encryptions
98
- module PasswordEncryption
99
- extend Iterable
100
-
101
- NONE = 'none'
102
- MD5 = 'md5'
103
- end
104
- end
105
- end
106
- end