From 998d8c177110ae8dc33338f51a269f0e6daa41f4 Mon Sep 17 00:00:00 2001 From: stephanerosi Date: Tue, 17 Apr 2018 11:50:26 +0200 Subject: [PATCH] Implement play media to set a channel based on (by priority): (#13934) - exact channel number - exact channel name - similar channel name temp --- .../components/media_player/webostv.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/homeassistant/components/media_player/webostv.py b/homeassistant/components/media_player/webostv.py index ae9d259a47c..d7682a611b9 100644 --- a/homeassistant/components/media_player/webostv.py +++ b/homeassistant/components/media_player/webostv.py @@ -344,6 +344,42 @@ class LgWebOSDevice(MediaPlayerDevice): self._current_source = source_dict['label'] self._client.set_input(source_dict['id']) + def play_media(self, media_type, media_id, **kwargs): + """Play a piece of media.""" + _LOGGER.debug( + "Call play media type <%s>, Id <%s>", media_type, media_id) + + if media_type == MEDIA_TYPE_CHANNEL: + _LOGGER.debug("Searching channel...") + partial_match_channel_id = None + + for channel in self._client.get_channels(): + _LOGGER.debug( + "Checking channel number <%s>, name <%s>, id <%s>...", + channel['channelNumber'], + channel['channelName'], + channel['channelId']) + if media_id == channel['channelNumber']: + _LOGGER.debug( + "Perfect match on channel number: switching!") + self._client.set_channel(channel['channelId']) + return + elif media_id.lower() == channel['channelName'].lower(): + _LOGGER.debug( + "Perfect match on channel name: switching!") + self._client.set_channel(channel['channelId']) + return + elif media_id.lower() in channel['channelName'].lower(): + _LOGGER.debug( + "Partial match on channel name: saving it...") + partial_match_channel_id = channel['channelId'] + + if partial_match_channel_id is not None: + _LOGGER.debug( + "Using partial match on channel name: switching!") + self._client.set_channel(partial_match_channel_id) + return + def media_play(self): """Send play command.""" self._playing = True