From 4662212bdcd1a6b7ba7d35a4797d562dcbb07f42 Mon Sep 17 00:00:00 2001 From: "Fanani M. Ihsan" Date: Sun, 12 Jun 2016 16:35:02 +0700 Subject: [PATCH] add function to get attendance record --- zk/attendance.py | 12 ++++++++++++ zk/base.py | 10 ++++++++-- zk/user.py | 5 ++++- 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 zk/attendance.py diff --git a/zk/attendance.py b/zk/attendance.py new file mode 100644 index 0000000..b609383 --- /dev/null +++ b/zk/attendance.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +class Attendance(object): + def __init__(self, user_id, timestamp, status): + self.user_id = user_id + self.timestamp = timestamp + self.status = status + + def __str__(self): + return self.user_id + + def __repr__(self): + return ': {}'.format(self.user_id) diff --git a/zk/base.py b/zk/base.py index 7735230..62637ef 100644 --- a/zk/base.py +++ b/zk/base.py @@ -5,6 +5,7 @@ from socket import socket, AF_INET, SOCK_DGRAM from zk import const from zk.exception import ZKErrorResponse, ZKNetworkError +from zk.attendance import Attendance from zk.user import User class ZK(object): @@ -466,10 +467,15 @@ class ZK(object): attendance_data = ''.join(attendance_data) attendance_data = attendance_data[14:] while len(attendance_data) >= 38: - uid, sparator, timestamp, status, space = unpack( '24sc4sc10s', attendance_data.ljust(40)[:40]) - uid = uid.strip('\x00|\x01\x10x') + user_id, sparator, timestamp, status, space = unpack( '24sc4sc10s', attendance_data.ljust(40)[:40]) + + user_id = user_id.strip('\x00|\x01\x10x') timestamp = self.__decode_time(timestamp) status = int(status.encode("hex"), 16) + + attendance = Attendance(user_id, timestamp, status) + attendances.append(attendance) + attendance_data = attendance_data[40:] else: raise ZKErrorResponse("Invalid response") diff --git a/zk/user.py b/zk/user.py index db01650..66a5e6d 100644 --- a/zk/user.py +++ b/zk/user.py @@ -9,5 +9,8 @@ class User(object): self.group_id = group_id self.user_id = user_id - def __str__(self): + def __repr__(self): return self.name + + def __repr__(self): + return ': {}'.format(self.name) \ No newline at end of file