kodi_client 0.4.5 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/kodi_client.gemspec +2 -2
- data/lib/kodi_client/global_types/system_types.rb +39 -0
- data/lib/kodi_client/method/system.rb +58 -0
- data/lib/kodi_client.rb +4 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d7046ba7c1c40c4302d7563b33a8805b83b3275069697af432b2880a59daf05
|
4
|
+
data.tar.gz: 340843f609031566aee613714f5a0e52b65add52bee208141e6ef3eee8fe929c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3af04fc11780d040693c50348d3ce5aded43cb67ae8ae8487498d4a9d66f6d3286b684716798d57e70bc6f58128ba4022d9fae35af635ce6ce016a7663e53c74
|
7
|
+
data.tar.gz: de5b32cc6ad5c54b3efd5bc0e75544c66444a2c566d097fd13244122019da1dc3435df15a649d0a4ebda1e8171e5f4afd6865fc2d092fcfddbe351587a67d5c3
|
data/README.md
CHANGED
data/kodi_client.gemspec
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = 'kodi_client'
|
5
|
-
spec.version = '0.
|
5
|
+
spec.version = '0.5.0'
|
6
6
|
spec.authors = ['Christian Feier']
|
7
7
|
spec.email = ['christian.feier@gmail.com']
|
8
8
|
|
9
9
|
spec.summary = 'A work-in-progress client for Kodi JSON API v2.'
|
10
|
-
spec.description = 'A client for the Kodi JSON API v12, currently implemented methods are addons, application,
|
10
|
+
spec.description = 'A client for the Kodi JSON API v12, currently implemented methods are addons, application, favourites, gui, input, player and system (more will be added with the time). For more information how to use it and how to activate Remote Control in Kodi, please check the github page https://github.com/cfe86/RubyKodiClient'
|
11
11
|
spec.homepage = 'https://github.com/cfe86/RubyKodiClient'
|
12
12
|
spec.license = 'MIT'
|
13
13
|
spec.required_ruby_version = '>= 2.5.0'
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'kodi_client/util/iterable'
|
4
|
+
require 'kodi_client/util/comparable'
|
5
|
+
|
6
|
+
module KodiClient
|
7
|
+
module Types
|
8
|
+
module System
|
9
|
+
|
10
|
+
# System.Property.Name https://kodi.wiki/view/JSON-RPC_API/v12#System.Property.Name
|
11
|
+
module PropertyName
|
12
|
+
extend Iterable
|
13
|
+
|
14
|
+
CAN_SHUTDOWN = 'canshutdown'
|
15
|
+
CAN_SUSPEND = 'cansuspend'
|
16
|
+
CAN_HIBERNATE = 'canhibernate'
|
17
|
+
CAN_REBOOT = 'canreboot'
|
18
|
+
end
|
19
|
+
|
20
|
+
# System.Property.Value https://kodi.wiki/view/JSON-RPC_API/v12#System.Property.Value
|
21
|
+
class PropertyValue
|
22
|
+
include Comparable
|
23
|
+
|
24
|
+
attr_reader :can_hibernate, :can_reboot, :can_shutdown, :can_suspend
|
25
|
+
|
26
|
+
def initialize(hash)
|
27
|
+
@can_hibernate = hash['canhibernate']
|
28
|
+
@can_reboot = hash['canreboot']
|
29
|
+
@can_shutdown = hash['canshutdown']
|
30
|
+
@can_suspend = hash['cansuspend']
|
31
|
+
end
|
32
|
+
|
33
|
+
def ==(other)
|
34
|
+
compare(self, other)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'kodi_client/global_types/gui_types'
|
4
|
+
require 'kodi_client/kodi_module'
|
5
|
+
require 'kodi_client/global_types/system_types'
|
6
|
+
|
7
|
+
module KodiClient
|
8
|
+
module Modules
|
9
|
+
# contains all Kodi System methods
|
10
|
+
class System < KodiModule
|
11
|
+
|
12
|
+
EJECT_OPTICAL_DRIVE = 'System.EjectOpticalDrive'
|
13
|
+
GET_PROPERTIES = 'System.GetProperties'
|
14
|
+
HIBERNATE = 'System.Hibernate'
|
15
|
+
REBOOT = 'System.Reboot'
|
16
|
+
SHUTDOWN = 'System.Shutdown'
|
17
|
+
SUSPEND = 'System.Suspend'
|
18
|
+
|
19
|
+
def eject_optical_drive(kodi_id = 1)
|
20
|
+
request = KodiRequest.new(kodi_id, EJECT_OPTICAL_DRIVE, {})
|
21
|
+
json = invoke_api(request)
|
22
|
+
KodiResponse.new(json)
|
23
|
+
end
|
24
|
+
|
25
|
+
def get_properties(properties = Types::System::PropertyName.all_properties, kodi_id = 1)
|
26
|
+
request = KodiRequest.new(kodi_id, GET_PROPERTIES, { 'properties' => properties })
|
27
|
+
json = invoke_api(request)
|
28
|
+
result = json['result'].nil? ? nil : Types::System::PropertyValue.new(json['result'])
|
29
|
+
json['result'] = result
|
30
|
+
KodiResponse.new(json)
|
31
|
+
end
|
32
|
+
|
33
|
+
def hibernate(kodi_id = 1)
|
34
|
+
request = KodiRequest.new(kodi_id, HIBERNATE, {})
|
35
|
+
json = invoke_api(request)
|
36
|
+
KodiResponse.new(json)
|
37
|
+
end
|
38
|
+
|
39
|
+
def reboot(kodi_id = 1)
|
40
|
+
request = KodiRequest.new(kodi_id, REBOOT, {})
|
41
|
+
json = invoke_api(request)
|
42
|
+
KodiResponse.new(json)
|
43
|
+
end
|
44
|
+
|
45
|
+
def shutdown(kodi_id = 1)
|
46
|
+
request = KodiRequest.new(kodi_id, SHUTDOWN, {})
|
47
|
+
json = invoke_api(request)
|
48
|
+
KodiResponse.new(json)
|
49
|
+
end
|
50
|
+
|
51
|
+
def suspend(kodi_id = 1)
|
52
|
+
request = KodiRequest.new(kodi_id, SUSPEND, {})
|
53
|
+
json = invoke_api(request)
|
54
|
+
KodiResponse.new(json)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/kodi_client.rb
CHANGED
@@ -10,6 +10,7 @@ require 'kodi_client/method/favourites'
|
|
10
10
|
require 'kodi_client/method/gui'
|
11
11
|
require 'kodi_client/method/input'
|
12
12
|
require 'kodi_client/method/player'
|
13
|
+
require 'kodi_client/method/system'
|
13
14
|
|
14
15
|
|
15
16
|
# client for Kodi rest api https://kodi.wiki/view/JSON-RPC_API/v12
|
@@ -20,7 +21,7 @@ module KodiClient
|
|
20
21
|
class Client
|
21
22
|
include Chainable
|
22
23
|
|
23
|
-
attr_reader :addons, :application, :gui, :player, :input, :favourites
|
24
|
+
attr_reader :addons, :application, :gui, :player, :input, :favourites, :system
|
24
25
|
|
25
26
|
def initialize
|
26
27
|
@addons = KodiClient::Modules::Addons.new
|
@@ -29,6 +30,7 @@ module KodiClient
|
|
29
30
|
@gui = KodiClient::Modules::GUI.new
|
30
31
|
@input = KodiClient::Modules::Input.new
|
31
32
|
@player = KodiClient::Modules::Player.new
|
33
|
+
@system = KodiClient::Modules::System.new
|
32
34
|
end
|
33
35
|
|
34
36
|
def apply_options(options)
|
@@ -38,6 +40,7 @@ module KodiClient
|
|
38
40
|
@input.apply_options(options)
|
39
41
|
@player.apply_options(options)
|
40
42
|
@favourites.apply_options(options)
|
43
|
+
@system.apply_options(options)
|
41
44
|
end
|
42
45
|
end
|
43
46
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kodi_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Feier
|
@@ -25,8 +25,8 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 5.0.4
|
27
27
|
description: A client for the Kodi JSON API v12, currently implemented methods are
|
28
|
-
addons, application,
|
29
|
-
the time). For more information how to use it and how to activate Remote Control
|
28
|
+
addons, application, favourites, gui, input, player and system (more will be added
|
29
|
+
with the time). For more information how to use it and how to activate Remote Control
|
30
30
|
in Kodi, please check the github page https://github.com/cfe86/RubyKodiClient
|
31
31
|
email:
|
32
32
|
- christian.feier@gmail.com
|
@@ -55,6 +55,7 @@ files:
|
|
55
55
|
- lib/kodi_client/global_types/media_types.rb
|
56
56
|
- lib/kodi_client/global_types/player_type.rb
|
57
57
|
- lib/kodi_client/global_types/pvr_type.rb
|
58
|
+
- lib/kodi_client/global_types/system_types.rb
|
58
59
|
- lib/kodi_client/global_types/video_types.rb
|
59
60
|
- lib/kodi_client/kodi_module.rb
|
60
61
|
- lib/kodi_client/method/addons.rb
|
@@ -63,6 +64,7 @@ files:
|
|
63
64
|
- lib/kodi_client/method/gui.rb
|
64
65
|
- lib/kodi_client/method/input.rb
|
65
66
|
- lib/kodi_client/method/player.rb
|
67
|
+
- lib/kodi_client/method/system.rb
|
66
68
|
- lib/kodi_client/options.rb
|
67
69
|
- lib/kodi_client/util/comparable.rb
|
68
70
|
- lib/kodi_client/util/iterable.rb
|