Compare commits

...
27 Commits
Author SHA1 Message Date
Kevin FronczakandGitHub 295833efbf Merge pull request #254 from fronzbot/master
Merge changes.rst
2020-05-08 17:37:10 -04:00
Kevin FronczakandGitHub 5e98f59cdb Update for release 0.15.0 2020-05-08 17:35:54 -04:00
Kevin FronczakandGitHub 77649e0991 Merge pull request #253 from fronzbot/dev
v0.15.0
2020-05-08 17:28:18 -04:00
Kevin FronczakandGitHub 5c9ced057b Merge pull request #251 from fronzbot/dependabot/pip/restructuredtext-lint-1.3.0
Bump restructuredtext-lint from 1.0.1 to 1.3.0
2020-05-08 17:26:01 -04:00
dependabot-preview[bot]andGitHub 7a2b3b9967 Bump restructuredtext-lint from 1.0.1 to 1.3.0
Bumps [restructuredtext-lint](https://github.com/twolfson/restructuredtext-lint) from 1.0.1 to 1.3.0.
- [Release notes](https://github.com/twolfson/restructuredtext-lint/releases)
- [Changelog](https://github.com/twolfson/restructuredtext-lint/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/twolfson/restructuredtext-lint/compare/1.0.1...1.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-08 21:24:01 +00:00
Kevin FronczakandGitHub 4582600900 Merge pull request #252 from fronzbot/dependabot/pip/pygments-2.6.1
Bump pygments from 2.2.0 to 2.6.1
2020-05-08 17:22:54 -04:00
dependabot-preview[bot]andGitHub 78ec104392 Bump pygments from 2.2.0 to 2.6.1
Bumps [pygments](https://github.com/pygments/pygments) from 2.2.0 to 2.6.1.
- [Release notes](https://github.com/pygments/pygments/releases)
- [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
- [Commits](https://github.com/pygments/pygments/compare/2.2.0...2.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-08 21:03:32 +00:00
Kevin FronczakandGitHub f15f00e8c5 Merge pull request #250 from fronzbot/dependabot/pip/pytest-sugar-0.9.3
Bump pytest-sugar from 0.9.2 to 0.9.3
2020-05-08 17:02:23 -04:00
Kevin FronczakandGitHub e953a2f918 Version bump 2020-05-08 17:02:07 -04:00
Kevin FronczakandGitHub 9d6075c0f7 Merge branch 'dev' into dependabot/pip/pytest-sugar-0.9.3 2020-05-08 16:58:37 -04:00
Kevin FronczakandGitHub 90ad0c7cc9 Merge pull request #249 from fronzbot/dependabot/pip/pytest-timeout-1.3.4
Bump pytest-timeout from 1.3.3 to 1.3.4
2020-05-08 16:57:52 -04:00
dependabot-preview[bot]andGitHub 62a74db683 Bump pytest-sugar from 0.9.2 to 0.9.3
Bumps [pytest-sugar](https://github.com/Teemu/pytest-sugar) from 0.9.2 to 0.9.3.
- [Release notes](https://github.com/Teemu/pytest-sugar/releases)
- [Changelog](https://github.com/Teemu/pytest-sugar/blob/master/CHANGES.rst)
- [Commits](https://github.com/Teemu/pytest-sugar/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-08 08:14:08 +00:00
dependabot-preview[bot]andGitHub 12b5dfdfd7 Bump pytest-timeout from 1.3.3 to 1.3.4
Bumps [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) from 1.3.3 to 1.3.4.
- [Release notes](https://github.com/pytest-dev/pytest-timeout/releases)
- [Commits](https://github.com/pytest-dev/pytest-timeout/compare/1.3.3...1.3.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-08 08:13:45 +00:00
Kevin FronczakandGitHub 255812defc Merge pull request #246 from fronzbot/pin-requirements
Pin test requirements
2020-05-07 09:07:12 -04:00
Kevin FronczakandGitHub 7b2e015eed Pin test requirements 2020-05-07 09:04:42 -04:00
Kevin FronczakandGitHub a8605bd91f Dev version bump 2020-05-06 18:05:32 -04:00
Kevin FronczakandGitHub e3f9f4b0c1 Merge pull request #245 from fronzbot/add-device-id-param
Add device id param
2020-05-06 18:00:43 -04:00
Kevin Fronczak ec476bb9d6 quick codecov threshold fix...maybe 2020-05-06 11:19:45 -04:00
Kevin Fronczak 60cbcb7717 Update login methods to ensure platform is refreshed 2020-05-06 11:12:56 -04:00
Kevin Fronczak 4b11a8b16a Add ability to have unique device name per application 2020-05-06 10:59:01 -04:00
Kevin FronczakandGitHub dfb90b8c86 Dev version bump 2020-05-06 10:43:09 -04:00
Kevin FronczakandGitHub 2f0cec2724 Merge pull request #243 from fronzbot/dependabot/pip/pylint-2.5.2
Bump pylint from 2.5.1 to 2.5.2
2020-05-06 10:42:29 -04:00
Kevin FronczakandGitHub 887a1d0a2b Merge pull request #244 from fronzbot/fix-typos
Fix typos
2020-05-06 10:42:11 -04:00
Kevin FronczakandGitHub 1d65d558e8 Fix typo 2020-05-06 10:39:34 -04:00
Kevin FronczakandGitHub d49a1fe36c Fix typo, remove Python Version info 2020-05-06 10:37:25 -04:00
dependabot-preview[bot]andGitHub 33f0e16e7a Bump pylint from 2.5.1 to 2.5.2
Bumps [pylint](https://github.com/PyCQA/pylint) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/PyCQA/pylint/releases)
- [Changelog](https://github.com/PyCQA/pylint/blob/master/ChangeLog)
- [Commits](https://github.com/PyCQA/pylint/compare/pylint-2.5.1...pylint-2.5.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-06 08:37:35 +00:00
Kevin FronczakandGitHub deba0cbba6 Merge pull request #225 from fronzbot/dev
0.14.3
2020-04-22 10:22:48 -04:00
8 changed files with 73 additions and 24 deletions
+25
View File
@@ -3,6 +3,31 @@ Changelog
A list of changes between each release
0.15.0 (2020-05-08)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**Breaking Changes:**
- Removed support for Python 3.5 (3.6 is now the minimum supported version)
- Deprecated ``Blink.login()`` method. Please only use the ``Blink.start()`` method for logging in.
**New Functions**
- Add ``device_id`` override when logging in (for debug and to differentiate applications) (`#245 <https://github.com/fronzbot/blinkpy/pull/245>`__)
This can be used by instantiating the Blink class with the ``device_id`` parameter.
**All Changes:**
- Fix setup.py use of internal pip structure (`#233 <https://github.com/fronzbot/blinkpy/pull/233>`__)
- Update python-slugify requirement from ~=3.0.2 to ~=4.0.0 (`#234 <https://github.com/fronzbot/blinkpy/pull/234>`__)
- Update python-dateutil requirement from ~=2.8.0 to ~=2.8.1 (`#230 <https://github.com/fronzbot/blinkpy/pull/230>`__)
- Bump requests from 2.22.0 to 2.23.0 (`#231 <https://github.com/fronzbot/blinkpy/pull/231>`__)
- Refactor login logic in preparation for 2FA (`#241 <https://github.com/fronzbot/blinkpy/pull/241>`__)
- Add 2FA Support (`#242 <https://github.com/fronzbot/blinkpy/pull/242>`__) (fixes (`#210 <https://github.com/fronzbot/blinkpy/pull/210>`__))
- Re-set key_required and available variables after setup (`#245 <https://github.com/fronzbot/blinkpy/pull/245>`__)
- Perform system refresh after setup (`#245 <https://github.com/fronzbot/blinkpy/pull/245>`__)
- Fix typos (`#244 <https://github.com/fronzbot/blinkpy/pull/244>`__)
0.14.3 (2020-04-22)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Add time check on recorded videos before determining motion
+4 -7
View File
@@ -1,6 +1,6 @@
blinkpy |Build Status| |Coverage Status| |Docs| |PyPi Version| |Python Version| |Codestyle|
blinkpy |Build Status| |Coverage Status| |Docs| |PyPi Version| |Codestyle|
=============================================================================================
A Python library for the Blink Camera system
A Python library for the Blink Camera system (Python 3.6+)
Like the library? Consider buying me a cup of coffee!
@@ -53,7 +53,7 @@ The simplest way to use this package from a terminal is to call ``Blink.start()`
blink = blinkpy.Blink(username='YOUR USER NAME', password='YOUR PASSWORD', refresh_rate=30)
blink.start()
At startup, you may ne prompted for a verification key. Just enter this in the command-line prompt. If you just receive a verification email asking to validate access for your device, enter nothing at this prompt. To avoid any command-line interaction, call the ``Blink`` class with the ``no_prompt=True`` flag. Instead, once you receive the verification email, call the following functions:
At startup, you may be prompted for a verification key. Just enter this in the command-line prompt. If you just receive a verification email asking to validate access for your device, enter nothing at this prompt. To avoid any command-line interaction, call the ``Blink`` class with the ``no_prompt=True`` flag. Instead, once you receive the verification email, call the following functions:
.. code:: python
@@ -129,10 +129,7 @@ Example usage, which downloads all videos recorded since July 4th, 2018 at 9:34a
.. |PyPi Version| image:: https://img.shields.io/pypi/v/blinkpy.svg
:target: https://pypi.python.org/pypi/blinkpy
.. |Docs| image:: https://readthedocs.org/projects/blinkpy/badge/?version=latest
:target: http://blinkpy.readthedocs.io/en/latest/?badge=latest
.. |Python Version| image:: https://img.shields.io/pypi/pyversions/blinkpy.svg
:target: https://img.shields.io/pypi/pyversions/blinkpy.svg
:target: http://blinkpy.readthedocs.io/en/latest/?badge=latest
.. |Donate| image:: https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif
:target: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=UR6Z2B8GXYUCC
.. |Codestyle| image:: https://img.shields.io/badge/code%20style-black-000000.svg
+11 -3
View File
@@ -12,7 +12,14 @@ MIN_THROTTLE_TIME = 2
def request_login(
blink, url, username, password, notification_key, uid, is_retry=False
blink,
url,
username,
password,
notification_key,
uid,
is_retry=False,
device_id="Blinkpy",
):
"""
Login request.
@@ -22,8 +29,9 @@ def request_login(
:param username: Blink username.
:param password: Blink password.
:param notification_key: Randomly genereated key.
:param uid: Randomoly genreated unique id key.
:param uid: Randomly generated unique id key.
:param is_retry: Is this part of a re-authorization attempt?
:param device_id: Name of application to send at login.
"""
headers = {"Host": DEFAULT_URL, "Content-Type": "application/json"}
data = dumps(
@@ -35,7 +43,7 @@ def request_login(
"app_version": "6.0.7 (520300) #afb0be72a",
"client_name": "Computer",
"client_type": "android",
"device_identifier": "Blinkpy",
"device_identifier": device_id,
"device_name": "Blinkpy",
"os_version": "5.1.1",
"reauth": "true",
+15 -6
View File
@@ -58,6 +58,7 @@ class Blink:
legacy_subdomain=False,
no_prompt=False,
persist_key=None,
device_id="Blinkpy",
):
"""
Initialize Blink system.
@@ -71,21 +72,26 @@ class Blink:
:param refresh_rate: Refresh rate of blink information.
Defaults to 15 (seconds)
:param motion_interval: How far back to register motion in minutes.
Defaults to last refresh time.
Useful for preventing motion_detected property
from de-asserting too quickly.
Defaults to last refresh time.
Useful for preventing motion_detected property
from de-asserting too quickly.
:param legacy_subdomain: Set to TRUE to use old 'rest.region'
endpoints (only use if you are having
api issues).
endpoints (only use if you are having
api issues).
:param no_prompt: Set to TRUE if using an implementation that needs to
suppress command-line output.
suppress command-line output.
:param persist_key: Location of persistant identifier.
:param device_id: Identifier for the application. Default is 'Blinkpy'.
This is used when logging in and should be changed to
fit the implementation (ie. "Home Assistant" in a
Home Assistant integration).
"""
self.login_handler = LoginHandler(
username=username,
password=password,
cred_file=cred_file,
persist_key=persist_key,
device_id=device_id,
)
self._token = None
self._auth_header = None
@@ -151,6 +157,8 @@ class Blink:
sync_module.start()
self.sync[network_name] = sync_module
self.cameras = self.merge_cameras()
self.available = self.refresh()
self.key_required = False
def login(self):
"""Perform server login. DEPRECATED."""
@@ -163,6 +171,7 @@ class Blink:
"""Retrieve the authentication token from Blink."""
self.login_response = self.login_handler.login(self)
if not self.login_response:
self.available = False
return False
self.setup_params(self.login_response)
if self.login_handler.check_key_required(self):
+1 -1
View File
@@ -4,7 +4,7 @@ import os
MAJOR_VERSION = 0
MINOR_VERSION = 15
PATCH_VERSION = "0-rc.0"
PATCH_VERSION = 0
__version__ = "{}.{}.{}".format(MAJOR_VERSION, MINOR_VERSION, PATCH_VERSION)
+11 -1
View File
@@ -13,7 +13,14 @@ _LOGGER = logging.getLogger(__name__)
class LoginHandler:
"""Class to handle login communication."""
def __init__(self, username=None, password=None, cred_file=None, persist_key=None):
def __init__(
self,
username=None,
password=None,
cred_file=None,
persist_key=None,
device_id="Blinkpy",
):
"""
Initialize login handler.
@@ -21,11 +28,13 @@ class LoginHandler:
:param password: Blink password
:param cred_file: JSON formatted credential file.
:param persist_key: File location of persistant key.
:param device_id: Name of application to send at login.
"""
self.login_url = None
self.login_urls = const.LOGIN_URLS
self.cred_file = cred_file
self.persist_key = persist_key
self.device_id = device_id
self.data = {
"username": username,
"password": password,
@@ -113,6 +122,7 @@ class LoginHandler:
self.data["notification_key"],
self.data["uid"],
is_retry=False,
device_id=self.device_id,
)
if self.validate_response(url, response):
+1 -1
View File
@@ -4,7 +4,7 @@ coverage:
status:
project:
default:
threshold: "2%"
threshold: 2%
comment: true
require_ci_to_pass: yes
+5 -5
View File
@@ -2,11 +2,11 @@ black==19.10b0
coverage==5.1
flake8==3.7.9
flake8-docstrings==1.5.0
pylint==2.5.1
pylint==2.5.2
pydocstyle==5.0.2
pytest==5.4.1
pytest-cov==2.8.1
pytest-sugar>=0.9.2
pytest-timeout>=1.3.3
restructuredtext-lint>=1.0.1
pygments>=2.2.0
pytest-sugar==0.9.3
pytest-timeout==1.3.4
restructuredtext-lint==1.3.0
pygments==2.6.1