Ejemplo n.º 1
0
 def medias(self, days = 7):
     library = ArloMediaLibrary(self._session);
     
     try:
         return library.load(self, days);
     except (AttributeError, IndexError):
         return [];
Ejemplo n.º 2
0
 def last_video(self):
     """Return the last <ArloVideo> object from camera."""
     library = ArloMediaLibrary(self._session, preload=False)
     try:
         return library.load(only_cameras=[self], limit=1)[0]
     except IndexError:
         return None
Ejemplo n.º 3
0
    def videos(self, days=180):
        """
        Return all <ArloVideo> objects from camera given days range

        :param days: number of days to retrieve
        """
        library = ArloMediaLibrary(self._session, preload=False)
        try:
            return library.load(only_cameras=[self], days=days)
        except (AttributeError, IndexError):
            return []
Ejemplo n.º 4
0
    def test_load_method(self, mock):
        """Test PyArlo ArloMediaLibrary.load() method."""
        from pyarlo import PyArlo
        from pyarlo.media import ArloMediaLibrary

        mock.post(LOGIN_ENDPOINT,
                  text=load_fixture('pyarlo_authentication.json'))
        mock.get(DEVICES_ENDPOINT, text=load_fixture('pyarlo_devices.json'))
        mock.post(LIBRARY_ENDPOINT, text=load_fixture('pyarlo_videos.json'))

        arlo = PyArlo(USERNAME, PASSWORD, preload=False)
        library = ArloMediaLibrary(arlo, preload=False)
        camera = arlo.lookup_camera_by_id('48B14C1299999')
        videos = library.load(days=1, limit=3, only_cameras=camera)
        self.assertEqual(len(videos), 2)
Ejemplo n.º 5
0
    def __init__(self,
                 username=None,
                 password=None,
                 preload=True,
                 days=PRELOAD_DAYS):
        """Create a PyArlo object.

        :param username: Arlo user email
        :param password: Arlo user password
        :param preload: Boolean to preload video library.
        :param days: If preload, number of days to lookup.

        :returns PyArlo base object
        """
        self.authenticated = None
        self.country_code = None
        self.date_created = None
        self.userid = None
        self.__token = None
        self.__headers = None
        self.__params = None

        # set username and password
        self.__password = password
        self.__username = username
        self.session = requests.Session()
        self.__base_stations = []

        # login user
        self.login()

        # pylint: disable=invalid-name
        self.ArloMediaLibrary = ArloMediaLibrary(self,
                                                 preload=preload,
                                                 days=days)
Ejemplo n.º 6
0
    def __init__(self, username=None, password=None):
        """Create a PyArlo object.

        :param username: Arlo user email
        :param password: Arlo user password

        :returns PyArlo base object
        """
        self.authenticated = None
        self.country_code = None
        self.date_created = None
        self.userid = None
        self.__token = None
        self.__headers = None
        self.__params = None

        # set username and password
        self.__password = password
        self.__username = username
        self.session = requests.Session()

        # login user
        if self.login() != True:
            raise ValueError('Failed to login to Arlo');

        # pylint: disable=invalid-name
        self.ArloMediaLibrary = ArloMediaLibrary(self)
Ejemplo n.º 7
0
    def videos(self, days=None):
        """
        Return all <ArloVideo> objects from camera given days range

        :param days: number of days to retrieve
        """
        if days is None:
            days = self._min_days_vdo_cache
        library = ArloMediaLibrary(self._session, preload=False)
        try:
            return library.load(only_cameras=[self], days=days)
        except (AttributeError, IndexError):
            # make sure we are returning an empty list istead of None
            # returning an empty list, cache will be forced only when calling
            # the update method. Changing this can impact badly
            # in the Home Assistant performance
            return []
Ejemplo n.º 8
0
 def last_snapshot(self):
     library = ArloMediaLibrary(self._session);
     return library.load(self, 1, latest = True, filter = FILTER_SNAPSHOT_ONLY);
Ejemplo n.º 9
0
 def last_video(self):
     library = ArloMediaLibrary(self._session);
     return library.load(self, 1, latest = True, filter = FILTER_VIDEO_ONLY);