Source code for plexapi.mixins.watchlist

[docs] class WatchlistMixin: """ Mixin for Plex objects that can be added to a user's watchlist. """
[docs] def onWatchlist(self, account=None): """ Returns True if the item is on the user's watchlist. Also see :func:`~plexapi.myplex.MyPlexAccount.onWatchlist`. Parameters: account (:class:`~plexapi.myplex.MyPlexAccount`, optional): Account to check item on the watchlist. Note: This is required if you are not connected to a Plex server instance using the admin account. """ try: account = account or self._server.myPlexAccount() except AttributeError: account = self._server return account.onWatchlist(self)
[docs] def addToWatchlist(self, account=None): """ Add this item to the specified user's watchlist. Also see :func:`~plexapi.myplex.MyPlexAccount.addToWatchlist`. Parameters: account (:class:`~plexapi.myplex.MyPlexAccount`, optional): Account to add item to the watchlist. Note: This is required if you are not connected to a Plex server instance using the admin account. """ try: account = account or self._server.myPlexAccount() except AttributeError: account = self._server account.addToWatchlist(self) return self
[docs] def removeFromWatchlist(self, account=None): """ Remove this item from the specified user's watchlist. Also see :func:`~plexapi.myplex.MyPlexAccount.removeFromWatchlist`. Parameters: account (:class:`~plexapi.myplex.MyPlexAccount`, optional): Account to remove item from the watchlist. Note: This is required if you are not connected to a Plex server instance using the admin account. """ try: account = account or self._server.myPlexAccount() except AttributeError: account = self._server account.removeFromWatchlist(self) return self
[docs] def streamingServices(self, account=None): """ Return a list of :class:`~plexapi.media.Availability` objects for the available streaming services for this item. Parameters: account (:class:`~plexapi.myplex.MyPlexAccount`, optional): Account used to retrieve availability. Note: This is required if you are not connected to a Plex server instance using the admin account. """ try: account = account or self._server.myPlexAccount() except AttributeError: account = self._server ratingKey = self.guid.rsplit('/', 1)[-1] data = account.query(f"{account.METADATA}/library/metadata/{ratingKey}/availabilities") return self.findItems(data)