forked from platypush/platypush
More features on the Kodi plugin
This commit is contained in:
parent
5b5fdd0933
commit
4fce1dd2e1
1 changed files with 78 additions and 18 deletions
|
@ -158,7 +158,7 @@ class MediaKodiPlugin(Plugin):
|
||||||
return (result.get('result'), result.get('error'))
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def back(self, *args, **kwargs):
|
def back_btn(self, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Simulate a back input event
|
Simulate a back input event
|
||||||
"""
|
"""
|
||||||
|
@ -225,20 +225,25 @@ class MediaKodiPlugin(Plugin):
|
||||||
return (result.get('result'), result.get('error'))
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def mute(self, *args, **kwargs):
|
def toggle_mute(self, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Mute the application
|
Mute/unmute the application
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().Application.SetMute(mute=True)
|
muted = self._get_kodi().Application.GetProperties(
|
||||||
|
properties=['muted']).get('result', {}).get('muted')
|
||||||
|
|
||||||
|
result = self._get_kodi().Application.SetMute(mute=not muted)
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def unmute(self, *args, **kwargs):
|
def is_muted(self, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Unmute the application
|
Return the muted status of the application
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().Application.SetMute(mute=False)
|
result = self._get_kodi().Application.GetProperties(properties=['muted'])
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def scan_video_library(self, *args, **kwargs):
|
def scan_video_library(self, *args, **kwargs):
|
||||||
|
@ -246,7 +251,8 @@ class MediaKodiPlugin(Plugin):
|
||||||
Scan the video library
|
Scan the video library
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().VideoLibrary.Scan()
|
result = self._get_kodi().VideoLibrary.Scan()
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def scan_audio_library(self, *args, **kwargs):
|
def scan_audio_library(self, *args, **kwargs):
|
||||||
|
@ -254,7 +260,8 @@ class MediaKodiPlugin(Plugin):
|
||||||
Scan the audio library
|
Scan the audio library
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().AudioLibrary.Scan()
|
result = self._get_kodi().AudioLibrary.Scan()
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def clean_video_library(self, *args, **kwargs):
|
def clean_video_library(self, *args, **kwargs):
|
||||||
|
@ -262,7 +269,8 @@ class MediaKodiPlugin(Plugin):
|
||||||
Clean the video library
|
Clean the video library
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().VideoLibrary.Clean()
|
result = self._get_kodi().VideoLibrary.Clean()
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def clean_audio_library(self, *args, **kwargs):
|
def clean_audio_library(self, *args, **kwargs):
|
||||||
|
@ -270,7 +278,8 @@ class MediaKodiPlugin(Plugin):
|
||||||
Clean the audio library
|
Clean the audio library
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().AudioLibrary.Clean()
|
result = self._get_kodi().AudioLibrary.Clean()
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def quit(self, *args, **kwargs):
|
def quit(self, *args, **kwargs):
|
||||||
|
@ -278,7 +287,8 @@ class MediaKodiPlugin(Plugin):
|
||||||
Quit the application
|
Quit the application
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().Application.Quit()
|
result = self._get_kodi().Application.Quit()
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def get_songs(self, *args, **kwargs):
|
def get_songs(self, *args, **kwargs):
|
||||||
|
@ -286,7 +296,8 @@ class MediaKodiPlugin(Plugin):
|
||||||
Get the list of songs in the audio library
|
Get the list of songs in the audio library
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().Application.GetSongs()
|
result = self._get_kodi().Application.GetSongs()
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def get_artists(self, *args, **kwargs):
|
def get_artists(self, *args, **kwargs):
|
||||||
|
@ -294,7 +305,8 @@ class MediaKodiPlugin(Plugin):
|
||||||
Get the list of artists in the audio library
|
Get the list of artists in the audio library
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().Application.GetArtists()
|
result = self._get_kodi().Application.GetArtists()
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def get_albums(self, *args, **kwargs):
|
def get_albums(self, *args, **kwargs):
|
||||||
|
@ -302,15 +314,20 @@ class MediaKodiPlugin(Plugin):
|
||||||
Get the list of albums in the audio library
|
Get the list of albums in the audio library
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().Application.GetAlbums()
|
result = self._get_kodi().Application.GetAlbums()
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def set_fullscreen(self, fullscreen, *args, **kwargs):
|
def toggle_fullscreen(self, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
Set/unset fullscreen mode
|
Set/unset fullscreen mode
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return self._get_kodi().GUI.SetFullscreen()
|
fullscreen = self._get_kodi().GUI.GetProperties(
|
||||||
|
properties=['fullscreen']).get('result', {}).get('fullscreen')
|
||||||
|
|
||||||
|
result = self._get_kodi().GUI.SetFullscreen(fullscreen=not fullscreen)
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
@action
|
@action
|
||||||
def seek(self, position, player_id=None, *args, **kwargs):
|
def seek(self, position, player_id=None, *args, **kwargs):
|
||||||
|
@ -321,7 +338,50 @@ class MediaKodiPlugin(Plugin):
|
||||||
if not player_id:
|
if not player_id:
|
||||||
player_id = self._get_player_id()
|
player_id = self._get_player_id()
|
||||||
|
|
||||||
return self._get_kodi().Player.Seek(position)
|
result = self._get_kodi().Player.Seek(position)
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
|
@action
|
||||||
|
def back(self, delta_seconds=60, player_id=None, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Move the player execution backward by delta_seconds
|
||||||
|
|
||||||
|
:param delta_seconds: Backward seek duration (default: 60 seconds)
|
||||||
|
:type delta_seconds: int
|
||||||
|
"""
|
||||||
|
|
||||||
|
if not player_id:
|
||||||
|
player_id = self._get_player_id()
|
||||||
|
|
||||||
|
position = self._get_kodi().Player.GetProperties(
|
||||||
|
playerid=player_id, properties=['time']).get('result')
|
||||||
|
|
||||||
|
position = position.get('hours', 0)*3600 + \
|
||||||
|
position.get('minutes', 0)*60 + position.get('seconds', 0)
|
||||||
|
|
||||||
|
result = self._get_kodi().Player.Seek(position+delta_seconds)
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
|
@action
|
||||||
|
def forward(self, delta_seconds=60, player_id=None, *args, **kwargs):
|
||||||
|
"""
|
||||||
|
Move the player execution forward by delta_seconds
|
||||||
|
|
||||||
|
:param delta_seconds: Forward seek duration (default: 60 seconds)
|
||||||
|
:type delta_seconds: int
|
||||||
|
"""
|
||||||
|
|
||||||
|
if not player_id:
|
||||||
|
player_id = self._get_player_id()
|
||||||
|
|
||||||
|
position = self._get_kodi().Player.GetProperties(
|
||||||
|
playerid=player_id, properties=['time']).get('result')
|
||||||
|
|
||||||
|
position = position.get('hours', 0)*3600 + \
|
||||||
|
position.get('minutes', 0)*60 + position.get('seconds', 0)
|
||||||
|
|
||||||
|
result = self._get_kodi().Player.Seek(position-delta_seconds)
|
||||||
|
return (result.get('result'), result.get('error'))
|
||||||
|
|
||||||
|
|
||||||
# vim:sw=4:ts=4:et:
|
# vim:sw=4:ts=4:et:
|
||||||
|
|
Loading…
Reference in a new issue