mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 14:17:45 +00:00
Move imports in apple_tv component (#27356)
* Move imports in apple_tv component * Fix pylint
This commit is contained in:
parent
77490a3246
commit
7e91677362
@ -3,13 +3,15 @@ import asyncio
|
|||||||
import logging
|
import logging
|
||||||
from typing import Sequence, TypeVar, Union
|
from typing import Sequence, TypeVar, Union
|
||||||
|
|
||||||
|
from pyatv import AppleTVDevice, connect_to_apple_tv, scan_for_apple_tvs
|
||||||
|
from pyatv.exceptions import DeviceAuthenticationError
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.components.discovery import SERVICE_APPLE_TV
|
from homeassistant.components.discovery import SERVICE_APPLE_TV
|
||||||
from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_NAME
|
from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_NAME
|
||||||
from homeassistant.helpers import discovery
|
from homeassistant.helpers import discovery
|
||||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||||
import homeassistant.helpers.config_validation as cv
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -80,7 +82,6 @@ def request_configuration(hass, config, atv, credentials):
|
|||||||
|
|
||||||
async def configuration_callback(callback_data):
|
async def configuration_callback(callback_data):
|
||||||
"""Handle the submitted configuration."""
|
"""Handle the submitted configuration."""
|
||||||
from pyatv import exceptions
|
|
||||||
|
|
||||||
pin = callback_data.get("pin")
|
pin = callback_data.get("pin")
|
||||||
|
|
||||||
@ -93,7 +94,7 @@ def request_configuration(hass, config, atv, credentials):
|
|||||||
title=NOTIFICATION_AUTH_TITLE,
|
title=NOTIFICATION_AUTH_TITLE,
|
||||||
notification_id=NOTIFICATION_AUTH_ID,
|
notification_id=NOTIFICATION_AUTH_ID,
|
||||||
)
|
)
|
||||||
except exceptions.DeviceAuthenticationError as ex:
|
except DeviceAuthenticationError as ex:
|
||||||
hass.components.persistent_notification.async_create(
|
hass.components.persistent_notification.async_create(
|
||||||
"Authentication failed! Did you enter correct PIN?<br /><br />"
|
"Authentication failed! Did you enter correct PIN?<br /><br />"
|
||||||
"Details: {0}".format(ex),
|
"Details: {0}".format(ex),
|
||||||
@ -112,11 +113,10 @@ def request_configuration(hass, config, atv, credentials):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def scan_for_apple_tvs(hass):
|
async def scan_apple_tvs(hass):
|
||||||
"""Scan for devices and present a notification of the ones found."""
|
"""Scan for devices and present a notification of the ones found."""
|
||||||
import pyatv
|
|
||||||
|
|
||||||
atvs = await pyatv.scan_for_apple_tvs(hass.loop, timeout=3)
|
atvs = await scan_for_apple_tvs(hass.loop, timeout=3)
|
||||||
|
|
||||||
devices = []
|
devices = []
|
||||||
for atv in atvs:
|
for atv in atvs:
|
||||||
@ -149,7 +149,7 @@ async def async_setup(hass, config):
|
|||||||
entity_ids = service.data.get(ATTR_ENTITY_ID)
|
entity_ids = service.data.get(ATTR_ENTITY_ID)
|
||||||
|
|
||||||
if service.service == SERVICE_SCAN:
|
if service.service == SERVICE_SCAN:
|
||||||
hass.async_add_job(scan_for_apple_tvs, hass)
|
hass.async_add_job(scan_apple_tvs, hass)
|
||||||
return
|
return
|
||||||
|
|
||||||
if entity_ids:
|
if entity_ids:
|
||||||
@ -207,7 +207,6 @@ async def async_setup(hass, config):
|
|||||||
|
|
||||||
async def _setup_atv(hass, hass_config, atv_config):
|
async def _setup_atv(hass, hass_config, atv_config):
|
||||||
"""Set up an Apple TV."""
|
"""Set up an Apple TV."""
|
||||||
import pyatv
|
|
||||||
|
|
||||||
name = atv_config.get(CONF_NAME)
|
name = atv_config.get(CONF_NAME)
|
||||||
host = atv_config.get(CONF_HOST)
|
host = atv_config.get(CONF_HOST)
|
||||||
@ -218,9 +217,9 @@ async def _setup_atv(hass, hass_config, atv_config):
|
|||||||
if host in hass.data[DATA_APPLE_TV]:
|
if host in hass.data[DATA_APPLE_TV]:
|
||||||
return
|
return
|
||||||
|
|
||||||
details = pyatv.AppleTVDevice(name, host, login_id)
|
details = AppleTVDevice(name, host, login_id)
|
||||||
session = async_get_clientsession(hass)
|
session = async_get_clientsession(hass)
|
||||||
atv = pyatv.connect_to_apple_tv(details, hass.loop, session=session)
|
atv = connect_to_apple_tv(details, hass.loop, session=session)
|
||||||
if credentials:
|
if credentials:
|
||||||
await atv.airplay.load_credentials(credentials)
|
await atv.airplay.load_credentials(credentials)
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
"""Support for Apple TV media player."""
|
"""Support for Apple TV media player."""
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
import pyatv.const as atv_const
|
||||||
|
|
||||||
from homeassistant.components.media_player import MediaPlayerDevice
|
from homeassistant.components.media_player import MediaPlayerDevice
|
||||||
from homeassistant.components.media_player.const import (
|
from homeassistant.components.media_player.const import (
|
||||||
MEDIA_TYPE_MUSIC,
|
MEDIA_TYPE_MUSIC,
|
||||||
@ -112,22 +114,21 @@ class AppleTvDevice(MediaPlayerDevice):
|
|||||||
return STATE_OFF
|
return STATE_OFF
|
||||||
|
|
||||||
if self._playing:
|
if self._playing:
|
||||||
from pyatv import const
|
|
||||||
|
|
||||||
state = self._playing.play_state
|
state = self._playing.play_state
|
||||||
if state in (
|
if state in (
|
||||||
const.PLAY_STATE_IDLE,
|
atv_const.PLAY_STATE_IDLE,
|
||||||
const.PLAY_STATE_NO_MEDIA,
|
atv_const.PLAY_STATE_NO_MEDIA,
|
||||||
const.PLAY_STATE_LOADING,
|
atv_const.PLAY_STATE_LOADING,
|
||||||
):
|
):
|
||||||
return STATE_IDLE
|
return STATE_IDLE
|
||||||
if state == const.PLAY_STATE_PLAYING:
|
if state == atv_const.PLAY_STATE_PLAYING:
|
||||||
return STATE_PLAYING
|
return STATE_PLAYING
|
||||||
if state in (
|
if state in (
|
||||||
const.PLAY_STATE_PAUSED,
|
atv_const.PLAY_STATE_PAUSED,
|
||||||
const.PLAY_STATE_FAST_FORWARD,
|
atv_const.PLAY_STATE_FAST_FORWARD,
|
||||||
const.PLAY_STATE_FAST_BACKWARD,
|
atv_const.PLAY_STATE_FAST_BACKWARD,
|
||||||
const.PLAY_STATE_STOPPED,
|
atv_const.PLAY_STATE_STOPPED,
|
||||||
):
|
):
|
||||||
# Catch fast forward/backward here so "play" is default action
|
# Catch fast forward/backward here so "play" is default action
|
||||||
return STATE_PAUSED
|
return STATE_PAUSED
|
||||||
@ -156,14 +157,13 @@ class AppleTvDevice(MediaPlayerDevice):
|
|||||||
def media_content_type(self):
|
def media_content_type(self):
|
||||||
"""Content type of current playing media."""
|
"""Content type of current playing media."""
|
||||||
if self._playing:
|
if self._playing:
|
||||||
from pyatv import const
|
|
||||||
|
|
||||||
media_type = self._playing.media_type
|
media_type = self._playing.media_type
|
||||||
if media_type == const.MEDIA_TYPE_VIDEO:
|
if media_type == atv_const.MEDIA_TYPE_VIDEO:
|
||||||
return MEDIA_TYPE_VIDEO
|
return MEDIA_TYPE_VIDEO
|
||||||
if media_type == const.MEDIA_TYPE_MUSIC:
|
if media_type == atv_const.MEDIA_TYPE_MUSIC:
|
||||||
return MEDIA_TYPE_MUSIC
|
return MEDIA_TYPE_MUSIC
|
||||||
if media_type == const.MEDIA_TYPE_TV:
|
if media_type == atv_const.MEDIA_TYPE_TV:
|
||||||
return MEDIA_TYPE_TVSHOW
|
return MEDIA_TYPE_TVSHOW
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
Loading…
x
Reference in New Issue
Block a user