pablosambuco / caststatusserver

Web app for playing status and basic control of all the chromecast devices in your local network
MIT License
1 stars 0 forks source link

Tener en cuenta el metadataType (https://developers.google.com/cast/docs/referen... #15

Open github-actions[bot] opened 3 years ago

github-actions[bot] commented 3 years ago

Tener en cuenta el metadataType (https://developers.google.com/cast/docs/reference/messages#MediaStatus)

con este dato se puede decidir què atributos buscar y simplificar el diccionario de estados

Tambien estaria muy bien determinar que comandos estan permitidos (atributo supportedMediaCommands) para enviar al frontend que botones deben estar disponibles

0: GenericMediaMetadata: title, subtitle, images

1: MovieMediaMetadata: title, subtitle, images, studio

2: TvShowMediaMetadata: seriesTitle, subtitle, season, episode, images

3: MusicTrackMediaMetadata: title, albumName, artist, images

4: PhotoMediaMetadata: title, artist, location

https://github.com/pablosambuco/CastStatusServer/blob/9f08a84b97099cc5c19ed83f41c0d4f65ab5b224/caststatusserver.py#L329

    }
    return lookup[key]

def get_attribs(listener_type, status):
    """Parse de los atributos del estado

    Args:
        listener_type (string): tipo de listener que detecta el cambio
        status (MediaStatus): Objeto con el estado actual
    """
    # TODO Tener en cuenta el metadataType (https://developers.google.com/cast/docs/reference/messages#MediaStatus)
    #  con este dato se puede decidir què atributos buscar y simplificar el diccionario de estados
    #  Tambien estaria muy bien determinar que comandos estan permitidos (atributo supportedMediaCommands) para enviar al frontend que botones deben estar disponibles
    #  0: GenericMediaMetadata: title, subtitle, images
    #  1: MovieMediaMetadata: title, subtitle, images, studio
    #  2: TvShowMediaMetadata: seriesTitle, subtitle, season, episode, images
    #  3: MusicTrackMediaMetadata: title, albumName, artist, images
    #  4: PhotoMediaMetadata: title, artist, location
    #
    #  MediaStatus: playerState, supportedMediaCommands, volume
    try:
        status_image = status.images[0].url
    except AttributeError:
        status_image = None
    except KeyError:
        status_image = None

    lookup = {}
    if listener_type == "media":
        lookup = {
            "volume_level": "{:.2f}".format(status.volume_level),
            "title": status.title,
            "subtitle": status.media_metadata.get("subtitle"),
            "series_title": status.series_title,
            "season": status.season,
            "episode": status.episode,
            "artist": status.artist,
            "album_name": status.album_name,
            "player_state": status.player_state,
            "track": status.track,
            "images": status_image,
        }
    elif listener_type == "status":
        lookup = {
            "volume_level": "{:.2f}".format(status.volume_level),
            "volume_muted": status.volume_muted,
            "status_text": status.status_text,
            "icon_url": status.icon_url,
        }

    return lookup
 No newline at end of file

b283b575fb2608fe82e7e7e759447ceb746cf2f3

github-actions[bot] commented 2 years ago

Closed in b796bd89760b38c172c6384fe84119f6157ffe78