Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 733ef83127 | |||
| edf209272d | |||
| b53fdc07f8 | |||
| 9c7d2890da | |||
| d93bab0fcf | |||
| eb260b7a7e | |||
| e29e530d42 | |||
| 6db3afcd28 | |||
| 841740ec4c | |||
| 00c66320b5 | |||
| a01bb7bb7f | |||
| e85903bf8b |
3
.gitignore
vendored
3
.gitignore
vendored
@@ -3,4 +3,5 @@ __pycache__
|
|||||||
**/__pycache__
|
**/__pycache__
|
||||||
dist/
|
dist/
|
||||||
*.egg-info/
|
*.egg-info/
|
||||||
build/
|
build/
|
||||||
|
ressources/
|
||||||
@@ -28,10 +28,13 @@ def example():
|
|||||||
def locked_locked(data):
|
def locked_locked(data):
|
||||||
_LOGGER.info("Lock received")
|
_LOGGER.info("Lock received")
|
||||||
|
|
||||||
|
def refresh_tracker():
|
||||||
|
_LOGGER.info("Refresh tracker recieved")
|
||||||
|
|
||||||
def connect_socket(account):
|
def connect_socket(account):
|
||||||
socket = GeoRideSocket()
|
socket = GeoRideSocket()
|
||||||
socket.subscribe_locked(locked_locked)
|
socket.subscribe_locked(locked_locked)
|
||||||
|
socket.subscribe_refresh_tracker(refresh_tracker)
|
||||||
socket.init()
|
socket.init()
|
||||||
socket.connect(account.auth_token)
|
socket.connect(account.auth_token)
|
||||||
time.sleep(10)
|
time.sleep(10)
|
||||||
|
|||||||
@@ -13,7 +13,8 @@ from georideapilib.objects import (
|
|||||||
GeoRideUser,
|
GeoRideUser,
|
||||||
GeoRideTrackerTrip,
|
GeoRideTrackerTrip,
|
||||||
GeoRideTrackerPosition,
|
GeoRideTrackerPosition,
|
||||||
GeoRideSharedTrip
|
GeoRideSharedTrip,
|
||||||
|
GeoRideTrackerBeacon
|
||||||
)
|
)
|
||||||
|
|
||||||
from georideapilib.exception import (
|
from georideapilib.exception import (
|
||||||
@@ -128,7 +129,7 @@ def get_trackers(token):
|
|||||||
trackers.append(GeoRideTracker.from_json(json_tracker))
|
trackers.append(GeoRideTracker.from_json(json_tracker))
|
||||||
return trackers
|
return trackers
|
||||||
|
|
||||||
def get_tracker_beacon(token, tracker_id):
|
def get_tracker_beacons(token, tracker_id):
|
||||||
""" get user trackers """
|
""" get user trackers """
|
||||||
|
|
||||||
headers = {"Authorization": "Bearer " + token}
|
headers = {"Authorization": "Bearer " + token}
|
||||||
@@ -137,10 +138,13 @@ def get_tracker_beacon(token, tracker_id):
|
|||||||
headers=headers)
|
headers=headers)
|
||||||
|
|
||||||
response_data = response.json()
|
response_data = response.json()
|
||||||
|
trackers_beacons = []
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
return GeoRideTrackerBeacon.from_json(response_data)
|
for json_tracker_beacon in response_data:
|
||||||
else:
|
_LOGGER.debug(json_tracker_beacon)
|
||||||
return None
|
json_tracker_beacon['linked_tracker_id'] = tracker_id
|
||||||
|
trackers_beacons.append(GeoRideTrackerBeacon.from_json(json_tracker_beacon))
|
||||||
|
return trackers_beacons
|
||||||
|
|
||||||
def get_trips(token, tracker_id, from_date, to_date):
|
def get_trips(token, tracker_id, from_date, to_date):
|
||||||
""" return all trips between two dates """
|
""" return all trips between two dates """
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Georide objects implementation
|
Georide objects implementation
|
||||||
@author Matthieu DUVAL <matthieu@duval-dev.fr>
|
@author Matthieu DUVAL <matthieu@duval-dev.fr>
|
||||||
"""
|
"""
|
||||||
|
import time
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
|
||||||
@@ -288,6 +288,8 @@ class GeoRideTracker(metaclass=JsonMgtMetaClass): # pylint: disable=R0904,R0902
|
|||||||
self._has_beacon = has_beacon
|
self._has_beacon = has_beacon
|
||||||
self._has_outdated_beacons = has_outdated_beacons
|
self._has_outdated_beacons = has_outdated_beacons
|
||||||
self._ecall_activated = ecall_activated
|
self._ecall_activated = ecall_activated
|
||||||
|
self._is_siren_on = False
|
||||||
|
self._siren_last_on_date = time.time()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def tracker_id(self):
|
def tracker_id(self):
|
||||||
@@ -598,6 +600,28 @@ class GeoRideTracker(metaclass=JsonMgtMetaClass): # pylint: disable=R0904,R0902
|
|||||||
def is_in_eco(self):
|
def is_in_eco(self):
|
||||||
""" is_in_eco property """
|
""" is_in_eco property """
|
||||||
return self._is_in_eco
|
return self._is_in_eco
|
||||||
|
|
||||||
|
@is_in_eco.setter
|
||||||
|
def is_in_eco(self, is_in_eco):
|
||||||
|
""" is_in_eco setter """
|
||||||
|
self._is_in_eco = is_in_eco
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_siren_on(self):
|
||||||
|
""" is_siren_on property """
|
||||||
|
return self._is_siren_on
|
||||||
|
|
||||||
|
@is_siren_on.setter
|
||||||
|
def is_siren_on(self, is_siren_on):
|
||||||
|
""" is_siren_on setter """
|
||||||
|
if is_siren_on:
|
||||||
|
self._siren_last_on_date = time.time()
|
||||||
|
self._is_siren_on = is_siren_on
|
||||||
|
|
||||||
|
@property
|
||||||
|
def siren_last_on_date(self):
|
||||||
|
""" siren_last_on_date property """
|
||||||
|
return self._siren_last_on_date
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_calibrated(self):
|
def is_calibrated(self):
|
||||||
@@ -753,10 +777,11 @@ class GeoRideTracker(metaclass=JsonMgtMetaClass): # pylint: disable=R0904,R0902
|
|||||||
|
|
||||||
class GeoRideTrackerBeacon:
|
class GeoRideTrackerBeacon:
|
||||||
""" GeoRideTrackerBeacon representation """
|
""" GeoRideTrackerBeacon representation """
|
||||||
def __init__(self, beacon_id, name, created_at, updated_at, mac_address,
|
def __init__(self, beacon_id, linked_tracker_id, name, created_at, updated_at,
|
||||||
battery_level, last_battery_level_update, sleep_delay,
|
mac_address, battery_level, last_battery_level_update, sleep_delay,
|
||||||
is_updated, power):
|
is_updated, power):
|
||||||
self._beacon_id = beacon_id
|
self._beacon_id = beacon_id
|
||||||
|
self._linked_tracker_id = linked_tracker_id
|
||||||
self._name = name
|
self._name = name
|
||||||
self._created_at = created_at
|
self._created_at = created_at
|
||||||
self._updated_at = updated_at
|
self._updated_at = updated_at
|
||||||
@@ -766,6 +791,18 @@ class GeoRideTrackerBeacon:
|
|||||||
self._sleep_delay = sleep_delay
|
self._sleep_delay = sleep_delay
|
||||||
self._is_updated = is_updated
|
self._is_updated = is_updated
|
||||||
self._power = power
|
self._power = power
|
||||||
|
|
||||||
|
|
||||||
|
@property
|
||||||
|
def linked_tracker_id(self):
|
||||||
|
""" linked_tracker_id property """
|
||||||
|
return self._linked_tracker_id
|
||||||
|
|
||||||
|
@linked_tracker_id.setter
|
||||||
|
def linked_tracker_id(self, linked_tracker_id):
|
||||||
|
""" linked_tracker_id setter """
|
||||||
|
self._linked_tracker_id = linked_tracker_id
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def beacon_id(self):
|
def beacon_id(self):
|
||||||
"""beacon_id property"""
|
"""beacon_id property"""
|
||||||
@@ -821,6 +858,7 @@ class GeoRideTrackerBeacon:
|
|||||||
"""return new object from_json"""
|
"""return new object from_json"""
|
||||||
return GeoRideTrackerBeacon(
|
return GeoRideTrackerBeacon(
|
||||||
json['id'],
|
json['id'],
|
||||||
|
json['linked_tracker_id'],
|
||||||
json['name'],
|
json['name'],
|
||||||
json['createdAt'],
|
json['createdAt'],
|
||||||
json['updatedAt'],
|
json['updatedAt'],
|
||||||
@@ -830,8 +868,21 @@ class GeoRideTrackerBeacon:
|
|||||||
json['sleepDelay'],
|
json['sleepDelay'],
|
||||||
json['isUpdated'],
|
json['isUpdated'],
|
||||||
json['power'])
|
json['power'])
|
||||||
|
|
||||||
|
def update_all_data(self, tracker_beacon):
|
||||||
|
"""update all data of the tracker beacon from a new object"""
|
||||||
|
self._name = tracker_beacon.name
|
||||||
|
self._created_at = tracker_beacon.created_at
|
||||||
|
self._updated_at = tracker_beacon.updated_at
|
||||||
|
self._mac_address = tracker_beacon.mac_address
|
||||||
|
self._battery_level = tracker_beacon.battery_level
|
||||||
|
self._last_battery_level_update = tracker_beacon.last_battery_level_update
|
||||||
|
self._sleep_delay = tracker_beacon.sleep_delay
|
||||||
|
self._is_updated = tracker_beacon.is_updated
|
||||||
|
self._power = tracker_beacon.power
|
||||||
|
|
||||||
class GeoRideSubscription:
|
|
||||||
|
class GeoRideSubscription(metaclass=JsonMgtMetaClass):
|
||||||
""" Account object representation """
|
""" Account object representation """
|
||||||
def __init__(self, subscription_id, subscription_type, initial_date, next_payment_date,
|
def __init__(self, subscription_id, subscription_type, initial_date, next_payment_date,
|
||||||
status, paused_since, cancel_requested, price, first_name, last_name, card_information):
|
status, paused_since, cancel_requested, price, first_name, last_name, card_information):
|
||||||
@@ -905,34 +956,51 @@ class GeoRideSubscription:
|
|||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json):
|
def from_json(cls, json):
|
||||||
"""return new object from_json"""
|
"""return new object from_json"""
|
||||||
|
card_info = GeoRideSubscription_CardInfo.from_json(json['cardInformation']) if cls.json_field_protect(json, 'cardInformation', None) is not None else {}
|
||||||
return GeoRideSubscription(
|
return GeoRideSubscription(
|
||||||
json['id'],
|
json['id'],
|
||||||
json['type'],
|
json['type'],
|
||||||
json['initialDate'],
|
cls.json_field_protect(json, 'initialDate'),
|
||||||
json['nextPaymentDate'],
|
cls.json_field_protect(json, 'nextPaymentDate'),
|
||||||
json['status'],
|
cls.json_field_protect(json, 'status'),
|
||||||
json['pausedSince'],
|
cls.json_field_protect(json, 'pausedSince'),
|
||||||
json['cancelRequested'],
|
cls.json_field_protect(json, 'cancelRequested'),
|
||||||
json['price'],
|
cls.json_field_protect(json, 'price'),
|
||||||
json['firstName'],
|
cls.json_field_protect(json, 'firstName'),
|
||||||
json['lastName'],
|
cls.json_field_protect(json, 'lastName'),
|
||||||
GeoRideSubscription_CardInfo.from_json(json['cardInformation'])
|
card_info
|
||||||
)
|
)
|
||||||
|
|
||||||
class GeoRideSubscription_CardInfo:
|
class GeoRideSubscription_CardInfo(metaclass=JsonMgtMetaClass):
|
||||||
""" Account object representation """
|
""" Account object representation """
|
||||||
def __init__(self, last_digits, expiry, brand):
|
def __init__(self, last_digits, expiry, brand):
|
||||||
self._last_digits = last_digits
|
self._last_digits = last_digits
|
||||||
self._expiry = expiry
|
self._expiry = expiry
|
||||||
self._brand = brand
|
self._brand = brand
|
||||||
|
|
||||||
|
@property
|
||||||
|
def last_digits(self):
|
||||||
|
"""last_digits property"""
|
||||||
|
return self._last_digits
|
||||||
|
|
||||||
|
@property
|
||||||
|
def expiry(self):
|
||||||
|
"""expiry property"""
|
||||||
|
return self._expiry
|
||||||
|
|
||||||
|
@property
|
||||||
|
def brand(self):
|
||||||
|
"""brand property"""
|
||||||
|
return self._brand
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_json(cls, json):
|
def from_json(cls, json):
|
||||||
"""return new object from_json"""
|
"""return new object from_json"""
|
||||||
return GeoRideSubscription_CardInfo(
|
return GeoRideSubscription_CardInfo(
|
||||||
json['lastDigits'],
|
cls.json_field_protect(json, 'lastDigits'),
|
||||||
json['expiry'],
|
cls.json_field_protect(json, 'expiry'),
|
||||||
json['brand']
|
cls.json_field_protect(json, 'brand')
|
||||||
)
|
)
|
||||||
|
|
||||||
class GeoRideAccount:
|
class GeoRideAccount:
|
||||||
@@ -1043,96 +1111,4 @@ class GeoRideUser: # pylint: disable= R0902
|
|||||||
json['pushUserToken'],
|
json['pushUserToken'],
|
||||||
json['legal'],
|
json['legal'],
|
||||||
json['dateOfBirth']
|
json['dateOfBirth']
|
||||||
)
|
)
|
||||||
|
|
||||||
#TODO: remove in v0.8.0
|
|
||||||
class GeorideSharedTrip(GeoRideSharedTrip):
|
|
||||||
""" Shared trip object representation """
|
|
||||||
|
|
||||||
def __init_subclass__(cls, **kwargs):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init_subclass__(**kwargs)
|
|
||||||
_LOGGER.warning(
|
|
||||||
"GeorideSharedTrip is deprecated, modify %s to use GeoRideSharedTrip",
|
|
||||||
cls.__name__,
|
|
||||||
)
|
|
||||||
|
|
||||||
def __init__(self, *argv):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init__(*argv)
|
|
||||||
_LOGGER.warning("GeorideSharedTrip is deprecated, modify your code to use GeoRideSharedTrip")
|
|
||||||
|
|
||||||
class GeorideTrackerTrip(GeoRideTrackerTrip):
|
|
||||||
""" Trip object representation """
|
|
||||||
def __init_subclass__(cls, **kwargs):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init_subclass__(**kwargs)
|
|
||||||
_LOGGER.warning(
|
|
||||||
"GeorideTrackerTrip is deprecated, modify %s to use GeoRideTrackerTrip",
|
|
||||||
cls.__name__,
|
|
||||||
)
|
|
||||||
def __init__(self, *argv):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init__(*argv)
|
|
||||||
_LOGGER.warning("GeorideTrackerTrip is deprecated, modify your code to use GeoRideTrackerTrip")
|
|
||||||
|
|
||||||
class GeorideTrackerPosition(GeoRideTrackerPosition):
|
|
||||||
""" Trip object representation """
|
|
||||||
def __init_subclass__(cls, **kwargs):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init_subclass__(**kwargs)
|
|
||||||
_LOGGER.warning(
|
|
||||||
"GeorideTrackerPosition is deprecated, modify %s to use GeoRideTrackerPosition",
|
|
||||||
cls.__name__,
|
|
||||||
)
|
|
||||||
|
|
||||||
def __init__(self, *argv):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init__(*argv)
|
|
||||||
_LOGGER.warning("GeorideTrackerPosition is deprecated, modify your code to use GeoRideTrackerPosition")
|
|
||||||
|
|
||||||
class GeorideTracker(GeoRideTracker):
|
|
||||||
""" Trip object representation """
|
|
||||||
def __init_subclass__(cls, **kwargs):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init_subclass__(**kwargs)
|
|
||||||
_LOGGER.warning(
|
|
||||||
"GeorideTracker is deprecated, modify %s to use GeoRideTracker",
|
|
||||||
cls.__name__,
|
|
||||||
)
|
|
||||||
|
|
||||||
def __init__(self, *argv):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init__(*argv)
|
|
||||||
_LOGGER.warning("GeorideTracker is deprecated, modify your code to use GeoRideTracker")
|
|
||||||
|
|
||||||
|
|
||||||
class GeorideAccount(GeoRideAccount):
|
|
||||||
""" Trip object representation """
|
|
||||||
def __init_subclass__(cls, **kwargs):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init_subclass__(**kwargs)
|
|
||||||
_LOGGER.warning(
|
|
||||||
"GeorideAccount is deprecated, modify %s to use GeoRideAccount",
|
|
||||||
cls.__name__,
|
|
||||||
)
|
|
||||||
|
|
||||||
def __init__(self, *argv):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init__(*argv)
|
|
||||||
_LOGGER.warning("GeorideAccount is deprecated, modify your code to use GeoRideAccount")
|
|
||||||
|
|
||||||
class GeorideUser(GeoRideUser):
|
|
||||||
""" Trip object representation """
|
|
||||||
def __init_subclass__(cls, **kwargs):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init_subclass__(**kwargs)
|
|
||||||
_LOGGER.warning(
|
|
||||||
"GeorideUser is deprecated, modify %s to use GeoRideUser",
|
|
||||||
cls.__name__,
|
|
||||||
)
|
|
||||||
|
|
||||||
def __init__(self, *argv):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init__(*argv)
|
|
||||||
_LOGGER.warning("GeorideUser is deprecated, modify your code to use GeoRideUser")
|
|
||||||
@@ -112,19 +112,3 @@ class GeoRideSocket():
|
|||||||
def disconnect(self):
|
def disconnect(self):
|
||||||
"""disconnect from the georide socket"""
|
"""disconnect from the georide socket"""
|
||||||
sio.disconnect()
|
sio.disconnect()
|
||||||
|
|
||||||
|
|
||||||
#TODO: remove in v0.8.0
|
|
||||||
class GeorideSocket(GeoRideSocket):
|
|
||||||
""" Trip object representation """
|
|
||||||
def __init_subclass__(cls, **kwargs):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init_subclass__(**kwargs)
|
|
||||||
_LOGGER.warning(
|
|
||||||
"GeorideSocket is deprecated, modify %s to use GeoRideSocket",
|
|
||||||
cls.__name__,
|
|
||||||
)
|
|
||||||
def __init__(self, *argv):
|
|
||||||
"""Print deprecation warning."""
|
|
||||||
super().__init__(*argv)
|
|
||||||
_LOGGER.warning("GeorideSocket is deprecated, modify your code to use GeoRideSocket")
|
|
||||||
4
setup.py
4
setup.py
@@ -19,13 +19,13 @@ CURRENT_DIR = os.path.dirname(__file__)
|
|||||||
setup(
|
setup(
|
||||||
name='georideapilib',
|
name='georideapilib',
|
||||||
packages=['georideapilib'], # this must be the same as the name above
|
packages=['georideapilib'], # this must be the same as the name above
|
||||||
version='0.7.1',
|
version='0.8.4',
|
||||||
description='Lib to control GeoRide tracker devices with theire rest api',
|
description='Lib to control GeoRide tracker devices with theire rest api',
|
||||||
author='Matthieu DUVAL',
|
author='Matthieu DUVAL',
|
||||||
author_email='georideapilib@duval-dev.fr',
|
author_email='georideapilib@duval-dev.fr',
|
||||||
# use the URL to the github repo
|
# use the URL to the github repo
|
||||||
url='https://github.com/hacf/georide-api',
|
url='https://github.com/hacf/georide-api',
|
||||||
download_url='https://codeload.github.com/hacf/georide-api/tar.gz/0.7.1',
|
download_url='https://codeload.github.com/hacf/georide-api/tar.gz/0.8.1',
|
||||||
keywords=['rest', 'georide', 'api', 'grutier', 'GeoRide'], # arbitrary keywords
|
keywords=['rest', 'georide', 'api', 'grutier', 'GeoRide'], # arbitrary keywords
|
||||||
classifiers=[],
|
classifiers=[],
|
||||||
install_requires=["python-socketio[client]==4.6.1"],
|
install_requires=["python-socketio[client]==4.6.1"],
|
||||||
|
|||||||
Reference in New Issue
Block a user