8 Commits

Author SHA1 Message Date
b78c503b31 Shipping v0.4.1 2019-10-30 20:35:02 +01:00
b0caa42ca2 Fix data on callback function 2019-10-30 20:33:07 +01:00
e69b2dfab9 Shipping v0.4.0 2019-10-29 22:46:15 +01:00
0368c17321 Add tracker setter for some useful properties 2019-10-29 22:44:29 +01:00
f168ad9e47 Shipping v0.3.0 2019-10-29 21:58:12 +01:00
3e53a339ba Update example and some tweak 2019-10-29 21:51:41 +01:00
c548a789a8 Add support of socket 2019-10-28 22:18:32 +01:00
1660b1eb3a Shipping v0.2.0 2019-10-27 01:47:19 +02:00
5 changed files with 127 additions and 33 deletions

View File

@@ -4,69 +4,92 @@
import time import time
import datetime import datetime
logging.config.fileConfig('logging.conf')
from georideapilib.objects import GeorideAccount from georideapilib.objects import GeorideAccount
import georideapilib.api as GeorideApi import georideapilib.api as GeorideApi
from georideapilib.socket import GeorideSocket
from threading import Thread
_LOGGER = logging.getLogger('example')
def example(): def example():
""" simple example function """ """ simple example function """
token = "<your_token>"# pylint: disable=C0301 # token = "<your_token>"# pylint: disable=C0301
"""account = GeorideAccount(0, "<your_email>", False, token)""" # account = GeorideAccount(0, "<your_email>", False, token)
account = GeorideApi.get_authorisation_token("<your_email>", "<your_password>") account = GeorideApi.get_authorisation_token("<your_email>", "<your_password>")
print("token 1: ", account.auth_token) print("token 1: ", account.auth_token)
_LOGGER.info("token 1: %s", account.auth_token)
# pylint: disable=W0105 # pylint: disable=W0105
def locked_locked(data):
_LOGGER.info("Locke received")
def connect_socket(account):
socket = GeorideSocket()
socket.subscribe_locked(locked_locked)
socket.init()
socket.connect(account.auth_token)
time.sleep(10)
socket.disconnect()
thread = Thread(target=connect_socket, args=(account))
thread.start()
""" """
account.auth_token = GeorideApi.renew_token(account.auth_token) account.auth_token = GeorideApi.renewToken(account.auth_token)
print("token 2: ", account.auth_token) print("token 2: ", account.auth_token)
""" # pylint: disable=W0105 """ # pylint: disable=W0105
user = GeorideApi.get_user(account.auth_token) user = GeorideApi.get_user(account.auth_token)
print("User: ", user.first_name) _LOGGER.info("User: %s", user.first_name)
trackers = GeorideApi.get_trackers(account.auth_token) trackers = GeorideApi.get_trackers(account.auth_token)
tracker = trackers[0] tracker = trackers[0]
print("Tracker name: ", tracker.tracker_name) _LOGGER.info("Tracker name: %s", tracker.tracker_name)
trips = GeorideApi.get_trips(account.auth_token, tracker.tracker_id, "2019-10-10", "2019-10-24") trips = GeorideApi.get_trips(account.auth_token, tracker.tracker_id, "2019-10-10", "2019-10-24")
trip = trips[0] trip = trips[0]
trip_date = datetime.datetime.strptime("2019-10-10T06:45:34.000Z", '%Y-%m-%dT%H:%M:%S.%fZ') trip_date = datetime.datetime.strptime("2019-10-10T06:45:34.000Z", '%Y-%m-%dT%H:%M:%S.%fZ')
print("Trip date: {}, from: {}, to: {}".format(trip_date, trip.nice_start_address, _LOGGER.info("Trip date: %s, from: %s, to: %s", trip_date, trip.nice_start_address,
trip.nice_end_address)) trip.nice_end_address)
positions = GeorideApi.get_positions(account.auth_token, tracker.tracker_id, positions = GeorideApi.get_positions(account.auth_token, tracker.tracker_id,
"2019-10-10", "2019-10-24") "2019-10-10", "2019-10-24")
position = positions[0] position = positions[0]
print("Position speed: {}, lon: {}, lat: {}".format(position.speed, position.longitude, _LOGGER.info("Position speed: %s, lon: %s, lat: %s", position.speed, position.longitude,
position.latitude)) position.latitude)
trip_shared = GeorideApi.share_a_trip_by_date(account.auth_token, tracker.tracker_id, trip_shared = GeorideApi.share_a_trip_by_date(account.auth_token, tracker.tracker_id,
"2019-10-10", "2019-10-24") "2019-10-10", "2019-10-24")
print("tripShared url: {}, id: {}".format(trip_shared.url, trip_shared.share_id)) _LOGGER.info("tripShared url: %s, id: %s", trip_shared.url, trip_shared.share_id)
time.sleep(10) time.sleep(10)
have_been_locked = GeorideApi.lock_tracker(account.auth_token, tracker.tracker_id) have_been_locked = GeorideApi.lock_tracker(account.auth_token, tracker.tracker_id)
print("Tracker have been locked: ", have_been_locked) _LOGGER.info("Tracker have been locked: %s", have_been_locked)
time.sleep(10) time.sleep(10)
have_been_unlocked = GeorideApi.unlock_tracker(account.auth_token, tracker.tracker_id) have_been_unlocked = GeorideApi.unlock_tracker(account.auth_token, tracker.tracker_id)
print("Tracker have been unlocked: ", have_been_unlocked) _LOGGER.info("Tracker have been unlocked: %s", have_been_unlocked)
time.sleep(10) time.sleep(10)
is_locked = GeorideApi.toogle_lock_tracker(account.auth_token, tracker.tracker_id) is_locked = GeorideApi.toogle_lock_tracker(account.auth_token, tracker.tracker_id)
print("Tracker is locked: ", is_locked) _LOGGER.info("Tracker is locked: %s", is_locked)
time.sleep(10) time.sleep(10)
trackers = GeorideApi.get_trackers(account.auth_token) trackers = GeorideApi.get_trackers(account.auth_token)
tracker = trackers[0] tracker = trackers[0]
print("Tracker name: ", tracker.tracker_name, " is locked: ", tracker.is_locked) _LOGGER.info("Tracker name: %s is locked: %s", tracker.tracker_name, tracker.is_locked)
""" """
GeorideApi.revokeToken(account.auth_token) GeorideApi.revokeToken(account.auth_token)
""" # pylint: disable=W0105 """ # pylint: disable=W0105
example() example()

View File

@@ -297,6 +297,11 @@ class GeorideTracker: # pylint: disable=R0904,R0902
""" fixtime """ """ fixtime """
return self._fixtime return self._fixtime
@fixtime.setter
def fixtime(self, fixtime):
""" fixtime """
self._fixtime = fixtime
@property @property
def role(self): def role(self):
""" role """ """ role """
@@ -347,11 +352,21 @@ class GeorideTracker: # pylint: disable=R0904,R0902
""" speed """ """ speed """
return self._speed return self._speed
@speed.setter
def speed(self, speed):
""" speed """
self._speed = speed
@property @property
def moving(self): def moving(self):
""" moving """ """ moving """
return self._moving return self._moving
@moving.setter
def moving(self, moving):
""" moving """
self._moving = moving
@property @property
def position_id(self): def position_id(self):
""" position_id """ """ position_id """
@@ -362,11 +377,21 @@ class GeorideTracker: # pylint: disable=R0904,R0902
""" latitude """ """ latitude """
return self._latitude return self._latitude
@latitude.setter
def latitude(self, latitude):
""" latitude """
self._latitude = latitude
@property @property
def longitude(self): def longitude(self):
""" longitude """ """ longitude """
return self._longitude return self._longitude
@longitude.setter
def longitude(self, longitude):
""" longitude """
self._longitude = longitude
@property @property
def altitude(self): def altitude(self):
""" altitude """ """ altitude """
@@ -382,16 +407,31 @@ class GeorideTracker: # pylint: disable=R0904,R0902
""" locked_latitude """ """ locked_latitude """
return self._locked_latitude return self._locked_latitude
@locked_latitude.setter
def locked_latitude(self, locked_latitude):
""" locked_latitude """
self._locked_latitude = locked_latitude
@property @property
def locked_longitude(self): def locked_longitude(self):
""" locked_longitude """ """ locked_longitude """
return self._locked_longitude return self._locked_longitude
@locked_longitude.setter
def locked_longitude(self, locked_longitude):
""" locked_longitude """
self._locked_longitude = locked_longitude
@property @property
def is_locked(self): def is_locked(self):
""" is_locked """ """ is_locked """
return self._is_locked return self._is_locked
@is_locked.setter
def is_locked(self, is_locked):
""" is_locked """
self._is_locked = is_locked
@property @property
def can_see_position(self): def can_see_position(self):
""" can_see_position """ """ can_see_position """
@@ -442,6 +482,11 @@ class GeorideTracker: # pylint: disable=R0904,R0902
""" status """ """ status """
return self._status return self._status
@status.setter
def status(self, status):
""" status """
self._status = status
@staticmethod @staticmethod
def from_json(json): def from_json(json):
"""return new object fromjson""" """return new object fromjson"""

View File

@@ -5,12 +5,8 @@ import socketio
from georideapilib.api import GEORIDE_API_HOST from georideapilib.api import GEORIDE_API_HOST
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
_LOGGER.setLevel(logging.DEBUG)
# create console handler and set level to debug
CH = logging.StreamHandler()
CH.setLevel(logging.DEBUG)
sio = socketio.Client(reconnection=True) sio = socketio.Client(reconnection=True) # pylint: disable=C0103
@sio.on('connect') @sio.on('connect')
def on_connect(): def on_connect():
@@ -65,50 +61,51 @@ class GeorideSocket():
@sio.on('message') @sio.on('message')
def on_message(data): def on_message(data):
""" on_message """ """ on_message """
_LOGGER.debug('Message recieved: %s', data) _LOGGER.debug('Message received: %s', data)
if self._on_message_callback is not None: if self._on_message_callback is not None:
self._on_message_callback() self._on_message_callback(data)
@sio.on('device') @sio.on('device')
def on_device(data): def on_device(data):
""" on_device """ """ on_device """
_LOGGER.debug('Device recieved: %s', data) _LOGGER.debug('Device received: %s', data)
if self._on_device_callback is not None: if self._on_device_callback is not None:
self._on_device_callback() self._on_device_callback(data)
@sio.on('position') @sio.on('position')
def on_position(data): def on_position(data):
""" on_position """ """ on_position """
_LOGGER.debug('Position recieved:%s', data) _LOGGER.debug('Position received:%s', data)
if self._on_position_callback is not None: if self._on_position_callback is not None:
self._on_position_callback() self._on_position_callback(data)
@sio.on('alarm') @sio.on('alarm')
def on_alarm(data): def on_alarm(data):
""" on_alarm """ """ on_alarm """
_LOGGER.debug('Alarm recieved: %s', data) _LOGGER.debug('Alarm received: %s', data)
if self._on_alarm_callback is not None: if self._on_alarm_callback is not None:
self._on_alarm_callback(data) self._on_alarm_callback(data)
@sio.on('refreshTrackersInstruction') @sio.on('refreshTrackersInstruction')
def on_refresh_tracker(): def on_refresh_tracker():
""" on_refresh_tracker """ """ on_refresh_tracker """
_LOGGER.debug('Refresh tracker recieved') _LOGGER.debug('Refresh tracker received')
if self._on_refresh_tracker_callback is not None: if self._on_refresh_tracker_callback is not None:
self._on_refresh_tracker_callback() self._on_refresh_tracker_callback()
@sio.on('lockedPosition') @sio.on('lockedPosition')
def on_locked(data): def on_locked(data):
""" on_locked """ """ on_locked """
_LOGGER.debug('Locked recieved: %s', data) _LOGGER.debug('Locked received: %s', data)
if self._on_locked_callback is not None: if self._on_locked_callback is not None:
self._on_locked_callback() self._on_locked_callback(data)
else:
_LOGGER.debug('Lallback is none')
self._initialised = True self._initialised = True
def connect(self, auth_token): def connect(self, auth_token):
""" connect to the georide socket""" """ connect to the georide socket"""
_LOGGER.info("Start conection")
if self._initialised is not False: if self._initialised is not False:
sio.connect(GEORIDE_API_HOST, headers={'token': auth_token}) sio.connect(GEORIDE_API_HOST, headers={'token': auth_token})
sio.wait() sio.wait()

29
logging.conf Normal file
View File

@@ -0,0 +1,29 @@
[loggers]
keys=root,example
[handlers]
keys=consoleHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_example]
level=DEBUG
handlers=consoleHandler
qualname=simpleExample
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=

View File

@@ -19,7 +19,7 @@ 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.3.0', version='0.4.1',
description='Lib to control georide tracker devices with their rest api', description='Lib to control georide tracker devices with their rest api',
author='Matthieu DUVAL', author='Matthieu DUVAL',
author_email='georideapilib@duval-dev.fr', author_email='georideapilib@duval-dev.fr',