From 396932a6191d811b392a287fb546cf972c97a26f Mon Sep 17 00:00:00 2001 From: Eis99 Date: Sat, 19 Nov 2016 18:31:09 +0800 Subject: [PATCH 01/30] Rewrite wx.py --- handle/wx.py | 48 +++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index 93c51d4..0d4382d 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -23,11 +23,49 @@ def wx_proc_msg(self, body): content = wechat.message.content if len(content.replace(' ', '')) == 0: return wechat.response_none() - reply = auto_reply.reply(content) - if reply is not None: - return wechat.response_text(content=reply) - else: - return wechat.response_none() + li = content.lower().split() + if li[0] == "borrow": + if len(li) == 1: + return wechat.response_text(content="Camera:\n7D:101\n6D:102\n5D:103\n280:104\nBMCC:105\nLens:\n16-35:201\n24-105:202\n70-200F4:203\n70-200F2.8:204\n35:205\nStorgeCard:\n280-card-01:301\n280-card-02:302\n280-card-03:303\n280-card-04:304\nSD-01:305\nSD-02:306\nSD-03:307\nSD-04:308\nSD-05:309\nBattery:\n280-LargeBattery-01:401\n280-LargeBattery-02:402\n280-SmallBattery:403\nTripod:\nt1:501\nt2:502\nt3:503\n") + else: + shebei = li[1] + shebeiList = [] + status = 0 + with open('list.csv', 'rb') as csvfile: + reader = csv.reader(csvfile, delimiter=' ') + for row in reader: + rowString = ' '.join(row) + if shebei in rowString: + rowString = rowString[:-1] + rowString = rowString + "0" + status = 1 + shebeiList.append(rowString.split()) + csvfile.close() + os.remove('list.csv') + csvfile = open('list.csv', 'wb') + writer = csv.writer(csvfile, delimiter=' ') + print("rows:") + print(shebeiList) + writer.writerows(shebeiList) + csvfile.close() + if status == 1: + return wechat.response_text(content="succeed") + else: + return wechat.response_text(content="failed") + + + + + + + + # if fileOne == open('shebei.csv', 'rwb'): + # fileOneReader = csv.reader(fileOne, delimiter=' ') + # fileOneWriter = csv.writer() + print("success!") + print(content) + + return wechat.response_text(content="hello") if isinstance(wechat.message, ImageMessage): picurl = wechat.message.picurl # PicUrl media_id = wechat.message.media_id # MediaId From ff9f0089343da14305020a5374e0360b72479ea6 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Sat, 19 Nov 2016 18:37:44 +0800 Subject: [PATCH 02/30] Test01 --- handle/wx.py | 1 + 1 file changed, 1 insertion(+) diff --git a/handle/wx.py b/handle/wx.py index 0d4382d..c68258c 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -29,6 +29,7 @@ def wx_proc_msg(self, body): return wechat.response_text(content="Camera:\n7D:101\n6D:102\n5D:103\n280:104\nBMCC:105\nLens:\n16-35:201\n24-105:202\n70-200F4:203\n70-200F2.8:204\n35:205\nStorgeCard:\n280-card-01:301\n280-card-02:302\n280-card-03:303\n280-card-04:304\nSD-01:305\nSD-02:306\nSD-03:307\nSD-04:308\nSD-05:309\nBattery:\n280-LargeBattery-01:401\n280-LargeBattery-02:402\n280-SmallBattery:403\nTripod:\nt1:501\nt2:502\nt3:503\n") else: shebei = li[1] + print(shebei) shebeiList = [] status = 0 with open('list.csv', 'rb') as csvfile: From 02065fa181c0b8941af758f4c478b54a25c3d297 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Sat, 19 Nov 2016 18:56:25 +0800 Subject: [PATCH 03/30] Update wx.py --- handle/wx.py | 166 --------------------------------------------------- 1 file changed, 166 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index c68258c..8b13789 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -1,167 +1 @@ -# -*- coding: utf-8 -*- -import tornado.escape -import tornado.web -from config import * -from wechat_sdk.messages import * - - -class WX(tornado.web.RequestHandler): - def wx_proc_msg(self, body): - try: - wechat.parse_data(body) - except ParseError: - print '[ERROR] Parse message failed.' - return - id = wechat.message.id # MsgId - target = wechat.message.target # ToUserName - source = wechat.message.source # FromUserName - time = wechat.message.time # CreateTime - type = wechat.message.type # MsgType - raw = wechat.message.raw # raw text - if isinstance(wechat.message, TextMessage): - content = wechat.message.content - if len(content.replace(' ', '')) == 0: - return wechat.response_none() - li = content.lower().split() - if li[0] == "borrow": - if len(li) == 1: - return wechat.response_text(content="Camera:\n7D:101\n6D:102\n5D:103\n280:104\nBMCC:105\nLens:\n16-35:201\n24-105:202\n70-200F4:203\n70-200F2.8:204\n35:205\nStorgeCard:\n280-card-01:301\n280-card-02:302\n280-card-03:303\n280-card-04:304\nSD-01:305\nSD-02:306\nSD-03:307\nSD-04:308\nSD-05:309\nBattery:\n280-LargeBattery-01:401\n280-LargeBattery-02:402\n280-SmallBattery:403\nTripod:\nt1:501\nt2:502\nt3:503\n") - else: - shebei = li[1] - print(shebei) - shebeiList = [] - status = 0 - with open('list.csv', 'rb') as csvfile: - reader = csv.reader(csvfile, delimiter=' ') - for row in reader: - rowString = ' '.join(row) - if shebei in rowString: - rowString = rowString[:-1] - rowString = rowString + "0" - status = 1 - shebeiList.append(rowString.split()) - csvfile.close() - os.remove('list.csv') - csvfile = open('list.csv', 'wb') - writer = csv.writer(csvfile, delimiter=' ') - print("rows:") - print(shebeiList) - writer.writerows(shebeiList) - csvfile.close() - if status == 1: - return wechat.response_text(content="succeed") - else: - return wechat.response_text(content="failed") - - - - - - - - # if fileOne == open('shebei.csv', 'rwb'): - # fileOneReader = csv.reader(fileOne, delimiter=' ') - # fileOneWriter = csv.writer() - print("success!") - print(content) - - return wechat.response_text(content="hello") - if isinstance(wechat.message, ImageMessage): - picurl = wechat.message.picurl # PicUrl - media_id = wechat.message.media_id # MediaId - if isinstance(wechat.message, VoiceMessage): - media_id = wechat.message.media_id # MediaId - format = wechat.message.format # Format - recognition = wechat.message.recognition # Recognition - if isinstance(wechat.message, VideoMessage) or isinstance(wechat.message, ShortVideoMessage): - media_id = wechat.message.media_id # MediaId - thumb_media_id = wechat.message.thumb_media_id # ThumbMediaId - if isinstance(wechat.message, LocationMessage): - location = wechat.message.location # Tuple(X, Y),(Location_X, Location_Y) - scale = wechat.message.scale # Scale - label = wechat.message.label # Label - if isinstance(wechat.message, LinkMessage): - title = wechat.message.title # Title - description = wechat.message.description # Description - url = wechat.message.url # Url - if isinstance(wechat.message, EventMessage): - if wechat.message.type == 'subscribe': # subscribe - key = wechat.message.key # EventKey - ticket = wechat.message.ticket # Ticket - mongo.upsert_user(source) - return wechat.response_text(content=u'''欢迎关注''') - elif wechat.message.type == 'unsubscribe': # unsubscribe - mongo.delete_user(source) - return None - elif wechat.message.type == 'scan': # scan - key = wechat.message.key # EventKey - ticket = wechat.message.ticket # Ticket - elif wechat.message.type == 'location': # location - latitude = wechat.message.latitude # Latitude - longitude = wechat.message.longitude # Longitude - precision = wechat.message.precision # Precision - elif wechat.message.type == 'click': # menu click - key = wechat.message.key # EventKey - if key == 'HOST_ADD': - host_count = mongo.host_count(source) - if host_count >= max_host_count: - return wechat.response_text(content=u'添加主机失败,已达到最大主机数目') - host_id = mongo.insert_host(source) - return wechat.response_text(content=u'添加主机成功,主机ID:' + host_id) - elif key == 'HOST_DELETE': - hosts = mongo.query_hosts(source) - if hosts is None or len(hosts) == 0: - return wechat.response_text(content=u'您还尚未添加任何主机') - resp = u'选择需要删除的主机:\n' - for i in range(len(hosts)): - resp += u'''%s\n''' % (hosts[i]['id'], hosts[i]['id']) - return wechat.response_text(content=resp) - elif key == 'HOST_STATUS': - return wechat.response_text(content=u'''点击查看主机状态''' % source) - elif key == 'HOST_COMMAND': - return wechat.response_text(content=u'''进入命令页''' % source) - elif key == 'MINE_PROFILE': - return wechat.response_text(content=u'个人信息') - elif key == 'MINE_HOSTS': - hosts = mongo.query_hosts(source) - if hosts is None or len(hosts) == 0: - return wechat.response_text(content=u'您还尚未添加任何主机') - resp = u'您的所有主机:\n' - for i in range(len(hosts)): - resp += u'%s %s\n' % (hosts[i]['id'], hosts[i]['time']) - return wechat.response_text(content=resp) - elif wechat.message.type == 'view': # menu link view - key = wechat.message.key # EventKey - return wechat.response_text(key, escape=True) - elif wechat.message.type == 'templatesendjobfinish': # template - status = wechat.message.status # Status - elif wechat.message.type in ['scancode_push', 'scancode_waitmsg', 'pic_sysphoto', 'pic_photo_or_album', 'pic_weixin', 'location_select']: # others - key = wechat.message.key # EventKey - return wechat.response_text(content=u'知道了') - - def get(self): - signature = self.get_argument('signature', 'default') - timestamp = self.get_argument('timestamp', 'default') - nonce = self.get_argument('nonce', 'default') - echostr = self.get_argument('echostr', 'default') - if signature != 'default' and timestamp != 'default' and nonce != 'default' and echostr != 'default' \ - and wechat.check_signature(signature, timestamp, nonce): - self.write(echostr) - else: - self.write('Page Not Available') - - def post(self): - signature = self.get_argument('signature', 'default') - timestamp = self.get_argument('timestamp', 'default') - nonce = self.get_argument('nonce', 'default') - # check if the data is sent by WeChat server - if signature != 'default' and timestamp != 'default' and nonce != 'default' \ - and wechat.check_signature(signature, timestamp, nonce): - body = self.request.body.decode('utf-8') - try: - result = self.wx_proc_msg(body) - if result is not None: - self.write(result) - except IOError, e: - return From fc0c10e094f4018ba50c12087a3dc941d6ddf440 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Sat, 19 Nov 2016 18:59:31 +0800 Subject: [PATCH 04/30] Create conf.json --- conf.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 conf.json diff --git a/conf.json b/conf.json new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/conf.json @@ -0,0 +1 @@ + From dcb28f584fdae2d605d074f9684add7128600db2 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Sat, 19 Nov 2016 19:00:40 +0800 Subject: [PATCH 05/30] Update wx.py --- handle/wx.py | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) diff --git a/handle/wx.py b/handle/wx.py index 8b13789..d37697a 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -1 +1,168 @@ +# -*- coding: utf-8 -*- +import tornado.escape +import tornado.web + +from config import * +from wechat_sdk.messages import * + + +class WX(tornado.web.RequestHandler): + def wx_proc_msg(self, body): + try: + wechat.parse_data(body) + except ParseError: + print '[ERROR] Parse message failed.' + return + id = wechat.message.id # MsgId + target = wechat.message.target # ToUserName + source = wechat.message.source # FromUserName + time = wechat.message.time # CreateTime + type = wechat.message.type # MsgType + raw = wechat.message.raw # raw text + if isinstance(wechat.message, TextMessage): + content = wechat.message.content + if len(content.replace(' ', '')) == 0: + return wechat.response_none() + li = content.lower().split() + if li[0] == "borrow": + if len(li) == 1: + return wechat.response_text(content="Camera:\n7D:101\n6D:102\n5D:103\n280:104\nBMCC:105\nLens:\n16-35:201\n24-105:202\n70-200F4:203\n70-200F2.8:204\n35:205\nStorgeCard:\n280-card-01:301\n280-card-02:302\n280-card-03:303\n280-card-04:304\nSD-01:305\nSD-02:306\nSD-03:307\nSD-04:308\nSD-05:309\nBattery:\n280-LargeBattery-01:401\n280-LargeBattery-02:402\n280-SmallBattery:403\nTripod:\nt1:501\nt2:502\nt3:503\n") + else: + shebei = li[1] + print(shebei) + shebeiList = [] + status = 0 + with open('list.csv', 'rb') as csvfile: + reader = csv.reader(csvfile, delimiter=' ') + for row in reader: + rowString = ' '.join(row) + if shebei in rowString: + rowString = rowString[:-1] + rowString = rowString + "0" + status = 1 + shebeiList.append(rowString.split()) + csvfile.close() + os.remove('list.csv') + csvfile = open('list.csv', 'wb') + writer = csv.writer(csvfile, delimiter=' ') + print("rows:") + print(shebeiList) + writer.writerows(shebeiList) + csvfile.close() + if status == 1: + return wechat.response_text(content="succeed") + else: + return wechat.response_text(content="failed") + + + + + + + + # if fileOne == open('shebei.csv', 'rwb'): + # fileOneReader = csv.reader(fileOne, delimiter=' ') + # fileOneWriter = csv.writer() + print("success!") + print(content) + + return wechat.response_text(content="hello") + if isinstance(wechat.message, ImageMessage): + picurl = wechat.message.picurl # PicUrl + media_id = wechat.message.media_id # MediaId + if isinstance(wechat.message, VoiceMessage): + media_id = wechat.message.media_id # MediaId + format = wechat.message.format # Format + recognition = wechat.message.recognition # Recognition + if isinstance(wechat.message, VideoMessage) or isinstance(wechat.message, ShortVideoMessage): + media_id = wechat.message.media_id # MediaId + thumb_media_id = wechat.message.thumb_media_id # ThumbMediaId + if isinstance(wechat.message, LocationMessage): + location = wechat.message.location # Tuple(X, Y),(Location_X, Location_Y) + scale = wechat.message.scale # Scale + label = wechat.message.label # Label + if isinstance(wechat.message, LinkMessage): + title = wechat.message.title # Title + description = wechat.message.description # Description + url = wechat.message.url # Url + if isinstance(wechat.message, EventMessage): + if wechat.message.type == 'subscribe': # subscribe + key = wechat.message.key # EventKey + ticket = wechat.message.ticket # Ticket + mongo.upsert_user(source) + return wechat.response_text(content=u'''欢迎关注''') + elif wechat.message.type == 'unsubscribe': # unsubscribe + mongo.delete_user(source) + return None + elif wechat.message.type == 'scan': # scan + key = wechat.message.key # EventKey + ticket = wechat.message.ticket # Ticket + elif wechat.message.type == 'location': # location + latitude = wechat.message.latitude # Latitude + longitude = wechat.message.longitude # Longitude + precision = wechat.message.precision # Precision + elif wechat.message.type == 'click': # menu click + key = wechat.message.key # EventKey + if key == 'HOST_ADD': + host_count = mongo.host_count(source) + if host_count >= max_host_count: + return wechat.response_text(content=u'添加主机失败,已达到最大主机数目') + host_id = mongo.insert_host(source) + return wechat.response_text(content=u'添加主机成功,主机ID:' + host_id) + elif key == 'HOST_DELETE': + hosts = mongo.query_hosts(source) + if hosts is None or len(hosts) == 0: + return wechat.response_text(content=u'您还尚未添加任何主机') + resp = u'选择需要删除的主机:\n' + for i in range(len(hosts)): + resp += u'''%s\n''' % (hosts[i]['id'], hosts[i]['id']) + return wechat.response_text(content=resp) + elif key == 'HOST_STATUS': + return wechat.response_text(content=u'''点击查看主机状态''' % source) + elif key == 'HOST_COMMAND': + return wechat.response_text(content=u'''进入命令页''' % source) + elif key == 'MINE_PROFILE': + return wechat.response_text(content=u'个人信息') + elif key == 'MINE_HOSTS': + hosts = mongo.query_hosts(source) + if hosts is None or len(hosts) == 0: + return wechat.response_text(content=u'您还尚未添加任何主机') + resp = u'您的所有主机:\n' + for i in range(len(hosts)): + resp += u'%s %s\n' % (hosts[i]['id'], hosts[i]['time']) + return wechat.response_text(content=resp) + elif wechat.message.type == 'view': # menu link view + key = wechat.message.key # EventKey + return wechat.response_text(key, escape=True) + elif wechat.message.type == 'templatesendjobfinish': # template + status = wechat.message.status # Status + elif wechat.message.type in ['scancode_push', 'scancode_waitmsg', 'pic_sysphoto', 'pic_photo_or_album', 'pic_weixin', 'location_select']: # others + key = wechat.message.key # EventKey + return wechat.response_text(content=u'知道了') + + def get(self): + signature = self.get_argument('signature', 'default') + timestamp = self.get_argument('timestamp', 'default') + nonce = self.get_argument('nonce', 'default') + echostr = self.get_argument('echostr', 'default') + if signature != 'default' and timestamp != 'default' and nonce != 'default' and echostr != 'default' \ + and wechat.check_signature(signature, timestamp, nonce): + self.write(echostr) + else: + self.write('Page Not Available') + + def post(self): + signature = self.get_argument('signature', 'default') + timestamp = self.get_argument('timestamp', 'default') + nonce = self.get_argument('nonce', 'default') + # check if the data is sent by WeChat server + if signature != 'default' and timestamp != 'default' and nonce != 'default' \ + and wechat.check_signature(signature, timestamp, nonce): + body = self.request.body.decode('utf-8') + try: + result = self.wx_proc_msg(body) + if result is not None: + self.write(result) + except IOError, e: + return From 3e84499fbee1088c551b41de71222c01417e4c2e Mon Sep 17 00:00:00 2001 From: Eis99 Date: Sat, 19 Nov 2016 19:24:05 +0800 Subject: [PATCH 06/30] Change --- handle/wx.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index d37697a..1a6b0ad 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -24,6 +24,7 @@ def wx_proc_msg(self, body): if len(content.replace(' ', '')) == 0: return wechat.response_none() li = content.lower().split() + print(li) if li[0] == "borrow": if len(li) == 1: return wechat.response_text(content="Camera:\n7D:101\n6D:102\n5D:103\n280:104\nBMCC:105\nLens:\n16-35:201\n24-105:202\n70-200F4:203\n70-200F2.8:204\n35:205\nStorgeCard:\n280-card-01:301\n280-card-02:302\n280-card-03:303\n280-card-04:304\nSD-01:305\nSD-02:306\nSD-03:307\nSD-04:308\nSD-05:309\nBattery:\n280-LargeBattery-01:401\n280-LargeBattery-02:402\n280-SmallBattery:403\nTripod:\nt1:501\nt2:502\nt3:503\n") @@ -32,14 +33,16 @@ def wx_proc_msg(self, body): print(shebei) shebeiList = [] status = 0 - with open('list.csv', 'rb') as csvfile: - reader = csv.reader(csvfile, delimiter=' ') - for row in reader: - rowString = ' '.join(row) - if shebei in rowString: - rowString = rowString[:-1] - rowString = rowString + "0" - status = 1 + csvfile = open('list.csv', 'rb'): + reader = csv.reader(csvfile, delimiter=' ') + print(reader) + for row in reader: + print(row) + rowString = ' '.join(row) + if shebei in rowString: + rowString = rowString[:-1] + rowString = rowString + "0" + status = 1 shebeiList.append(rowString.split()) csvfile.close() os.remove('list.csv') From 993f4abb20d538f4c0e80685f42fea2c09e9397f Mon Sep 17 00:00:00 2001 From: Eis99 Date: Sat, 19 Nov 2016 19:24:47 +0800 Subject: [PATCH 07/30] Create list.csv --- handle/list.csv | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 handle/list.csv diff --git a/handle/list.csv b/handle/list.csv new file mode 100644 index 0000000..582b481 --- /dev/null +++ b/handle/list.csv @@ -0,0 +1,25 @@ +101 1 +102 1 +103 1 +104 1 +105 1 +201 1 +202 1 +203 1 +204 1 +205 1 +301 1 +302 1 +303 1 +304 1 +305 1 +306 1 +307 1 +308 1 +309 1 +401 1 +402 1 +403 1 +501 1 +502 1 +503 1 From 43d60349027fedf61aa701b79c2ce0cab05881dd Mon Sep 17 00:00:00 2001 From: Eis99 Date: Sat, 19 Nov 2016 20:39:20 +0800 Subject: [PATCH 08/30] error in csv Todo: change to mysql --- handle/wx.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index 1a6b0ad..c28b671 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -1,6 +1,9 @@ # -*- coding: utf-8 -*- import tornado.escape import tornado.web +import csv +import os + from config import * from wechat_sdk.messages import * @@ -31,13 +34,17 @@ def wx_proc_msg(self, body): else: shebei = li[1] print(shebei) + print(shebei) + print(shebei) + print(shebei) shebeiList = [] status = 0 - csvfile = open('list.csv', 'rb'): + csvfile = open('list.csv', 'rb') + print("open file successfully") reader = csv.reader(csvfile, delimiter=' ') print(reader) for row in reader: - print(row) + print row rowString = ' '.join(row) if shebei in rowString: rowString = rowString[:-1] @@ -168,4 +175,3 @@ def post(self): self.write(result) except IOError, e: return - From c1df7f9fcd2708ca71f8a7fe9a18ab37d535f39b Mon Sep 17 00:00:00 2001 From: Eis99 Date: Wed, 23 Nov 2016 23:16:11 +0800 Subject: [PATCH 09/30] add 2 files --- handle/DBProcess.py | 116 ++++++++++++++++++++++++++++++++++++++++++++ handle/list.csv | 30 ++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 handle/DBProcess.py create mode 100644 handle/list.csv diff --git a/handle/DBProcess.py b/handle/DBProcess.py new file mode 100644 index 0000000..75a0a11 --- /dev/null +++ b/handle/DBProcess.py @@ -0,0 +1,116 @@ +# coding: utf-8 +import csv + + +def checkDB(): + + DBResult = [] + + with open('list.csv', 'rb') as csvfile: + reader = csv.reader(csvfile, delimiter=' ') + for row in reader: + if row[1] == '0': + DBResult.append(row) + elif row[1] == '1': + DBResult.append(row) + elif row[1] == '*': + DBResult.append(row) + else: + return 2 #list.csv error,the status flag must be 1, 0 or * + #print DBResult + return DBResult + + +def changeDB(arg, num): #Caution!!! arg and num are all String! + + newCSVList = [] + oldCSVList = checkDB() + if oldCSVList == 2: + return 2 #list.csv error,the status flag must be 1, 0 or * + + for i in range(len(oldCSVList)): + if oldCSVList[i][0] == num: + newRow = oldCSVList[i] + newRow[1] = arg + newCSVList.append(newRow) + else: + newCSVList.append(oldCSVList[i]) + #rewrite the list.csv + with open('list.csv', 'wb') as csvfile: + writer = csv.writer(csvfile, delimiter=' ') + writer.writerows(newCSVList) + + return 0 + + +def borrowEquipment(num):#Caution!!! num is a string! + DBList = checkDB() + if DBList == 2: + return 2 + + order = 999 #the order of the equipment in the DBList + + for i in range(len(DBList)): + if DBList[i][0] == num: + order = i + break + + if order == 999: + return 'The equipment number does not exsist' + + if DBList[order][1] == '0': + return 'The equipment has been lent out.' #if the equipment has been lent out, return this to show the error + elif DBList[order][1] == '1': + if changeDB('0', num) == 0: + return 'Succeed!' # succeed + else: + return 2 #list.csv error(the status flag must be 1, 0 or *), return 2 to show the error + + +def returnEquipment(num):#Caution!!! num is a string! + DBList = checkDB() + if DBList == 2: + return 2 #list.csv error,the status flag must be 1, 0 or * + + order = 999 #the order of the equipment in the DBList + + for i in range(len(DBList)): + if DBList[i][0] == num: + order = i + break + if order == 999: + return 'The equipment number does not exsist' + + if DBList[order][1] == '1': + return 'The equipment hasn\'t been lent out.' #if the equipment has not been lent out, return this to show the error + if DBList[order][1] == '0': + if changeDB('1', num) == 0: + return 'Succeed!' # succeed + + +def showEquipment(): + DBList = checkDB() + if DBList == 2: + return 2 #list.csv error,the status flag must be 1, 0 or * + + returnString = '' + for i in range(len(DBList)): + if DBList[i][1] == '1': + returnString += DBList[i][2] + returnString += ' Available\n' + elif DBList[i][1] == '0': + returnString += DBList[i][2] + returnString += ' Unavailable\n' + else: + returnString += '***' + returnString += DBList[i][2] + returnString += '***\n' + + return returnString + +#print(checkDB()) +#print(borrowEquipment('101')) +#print(checkDB()) +#print(returnEquipment('101')) +#print(checkDB()) +#print(showEquipment()) diff --git a/handle/list.csv b/handle/list.csv new file mode 100644 index 0000000..68c0c6b --- /dev/null +++ b/handle/list.csv @@ -0,0 +1,30 @@ +*** * Camera +101 1 7D +102 1 6D +103 1 5D +104 1 280 +*** * Lens +105 1 BMCC +201 1 16-35 +202 1 24-105 +203 1 70-200F4 +204 1 70-200F2.8 +205 1 35 +*** * StorgeCard +301 1 280-card-01 +302 1 280-card-02 +303 1 280-card-03 +304 1 280-card-04 +305 1 SD-01 +306 1 SD-02 +307 1 SD-03 +308 1 SD-04 +309 1 SD-05 +*** * Battery +401 1 280-LargeBattery-01 +402 1 280-LargeBattery-02 +403 1 280-SmallBattery +*** * Tripod +501 1 Tripod-01 +502 1 Tripod-02 +503 1 Tripod-03 From 208a1e06e3cfad6cfd73ff8c0082a92657df002e Mon Sep 17 00:00:00 2001 From: Eis99 Date: Wed, 23 Nov 2016 23:30:40 +0800 Subject: [PATCH 10/30] Finish --- handle/wx.py | 61 +++++++++++----------------------------------------- 1 file changed, 12 insertions(+), 49 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index c28b671..7237e92 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -1,8 +1,7 @@ # -*- coding: utf-8 -*- import tornado.escape import tornado.web -import csv -import os +import DBProcess from config import * @@ -28,55 +27,19 @@ def wx_proc_msg(self, body): return wechat.response_none() li = content.lower().split() print(li) - if li[0] == "borrow": + if li[0] == 'borrow': if len(li) == 1: - return wechat.response_text(content="Camera:\n7D:101\n6D:102\n5D:103\n280:104\nBMCC:105\nLens:\n16-35:201\n24-105:202\n70-200F4:203\n70-200F2.8:204\n35:205\nStorgeCard:\n280-card-01:301\n280-card-02:302\n280-card-03:303\n280-card-04:304\nSD-01:305\nSD-02:306\nSD-03:307\nSD-04:308\nSD-05:309\nBattery:\n280-LargeBattery-01:401\n280-LargeBattery-02:402\n280-SmallBattery:403\nTripod:\nt1:501\nt2:502\nt3:503\n") + return wechat.response_text(content=DBProcess.showEquipment) + elif len(li) == 2: + return wechat.response_text(content=DBProcess.borrowEquipment(li[1])) else: - shebei = li[1] - print(shebei) - print(shebei) - print(shebei) - print(shebei) - shebeiList = [] - status = 0 - csvfile = open('list.csv', 'rb') - print("open file successfully") - reader = csv.reader(csvfile, delimiter=' ') - print(reader) - for row in reader: - print row - rowString = ' '.join(row) - if shebei in rowString: - rowString = rowString[:-1] - rowString = rowString + "0" - status = 1 - shebeiList.append(rowString.split()) - csvfile.close() - os.remove('list.csv') - csvfile = open('list.csv', 'wb') - writer = csv.writer(csvfile, delimiter=' ') - print("rows:") - print(shebeiList) - writer.writerows(shebeiList) - csvfile.close() - if status == 1: - return wechat.response_text(content="succeed") - else: - return wechat.response_text(content="failed") - - - - - - - - # if fileOne == open('shebei.csv', 'rwb'): - # fileOneReader = csv.reader(fileOne, delimiter=' ') - # fileOneWriter = csv.writer() - print("success!") - print(content) - - return wechat.response_text(content="hello") + return wechat.response_text(content="Wrong Command!") + if li[0] == 'return': + if len(li) == 2: + return wechat.response_text(content=DBProcess.returnEquipment(li[1])) + else: + return wechat.response_text(content="Wrong Command!") + return wechat.response_text(content="Wrong Command!") if isinstance(wechat.message, ImageMessage): picurl = wechat.message.picurl # PicUrl media_id = wechat.message.media_id # MediaId From c1297c14814b0c02dd39469e27b7f430a2ea7963 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Wed, 23 Nov 2016 23:41:43 +0800 Subject: [PATCH 11/30] Small error --- handle/wx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handle/wx.py b/handle/wx.py index 7237e92..e2671fa 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -29,7 +29,7 @@ def wx_proc_msg(self, body): print(li) if li[0] == 'borrow': if len(li) == 1: - return wechat.response_text(content=DBProcess.showEquipment) + return wechat.response_text(content=DBProcess.showEquipment()) elif len(li) == 2: return wechat.response_text(content=DBProcess.borrowEquipment(li[1])) else: From 612c92845aaa004fdf255a571486bb6b93f00d2d Mon Sep 17 00:00:00 2001 From: Eis99 Date: Wed, 23 Nov 2016 23:42:30 +0800 Subject: [PATCH 12/30] Add test code --- handle/DBProcess.py | 50 ++++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/handle/DBProcess.py b/handle/DBProcess.py index 75a0a11..6d1912f 100644 --- a/handle/DBProcess.py +++ b/handle/DBProcess.py @@ -3,9 +3,9 @@ def checkDB(): - + DBResult = [] - + with open('list.csv', 'rb') as csvfile: reader = csv.reader(csvfile, delimiter=' ') for row in reader: @@ -17,17 +17,17 @@ def checkDB(): DBResult.append(row) else: return 2 #list.csv error,the status flag must be 1, 0 or * - #print DBResult + print DBResult return DBResult - - + + def changeDB(arg, num): #Caution!!! arg and num are all String! - + newCSVList = [] oldCSVList = checkDB() if oldCSVList == 2: return 2 #list.csv error,the status flag must be 1, 0 or * - + for i in range(len(oldCSVList)): if oldCSVList[i][0] == num: newRow = oldCSVList[i] @@ -39,25 +39,25 @@ def changeDB(arg, num): #Caution!!! arg and num are all String! with open('list.csv', 'wb') as csvfile: writer = csv.writer(csvfile, delimiter=' ') writer.writerows(newCSVList) - + return 0 - - + + def borrowEquipment(num):#Caution!!! num is a string! DBList = checkDB() if DBList == 2: return 2 - + order = 999 #the order of the equipment in the DBList - + for i in range(len(DBList)): if DBList[i][0] == num: order = i break - + if order == 999: - return 'The equipment number does not exsist' - + return 'The equipment number does not exsist' + if DBList[order][1] == '0': return 'The equipment has been lent out.' #if the equipment has been lent out, return this to show the error elif DBList[order][1] == '1': @@ -65,34 +65,34 @@ def borrowEquipment(num):#Caution!!! num is a string! return 'Succeed!' # succeed else: return 2 #list.csv error(the status flag must be 1, 0 or *), return 2 to show the error - - + + def returnEquipment(num):#Caution!!! num is a string! DBList = checkDB() if DBList == 2: return 2 #list.csv error,the status flag must be 1, 0 or * - + order = 999 #the order of the equipment in the DBList - + for i in range(len(DBList)): if DBList[i][0] == num: order = i break if order == 999: - return 'The equipment number does not exsist' - + return 'The equipment number does not exsist' + if DBList[order][1] == '1': return 'The equipment hasn\'t been lent out.' #if the equipment has not been lent out, return this to show the error if DBList[order][1] == '0': if changeDB('1', num) == 0: return 'Succeed!' # succeed - + def showEquipment(): DBList = checkDB() if DBList == 2: return 2 #list.csv error,the status flag must be 1, 0 or * - + returnString = '' for i in range(len(DBList)): if DBList[i][1] == '1': @@ -105,9 +105,9 @@ def showEquipment(): returnString += '***' returnString += DBList[i][2] returnString += '***\n' - + return returnString - + #print(checkDB()) #print(borrowEquipment('101')) #print(checkDB()) From bc106266ef4e9dbeb4843e452c8c5be08502b852 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 14:25:09 +0800 Subject: [PATCH 13/30] move the code from DBProcess to wx --- handle/DBProcess.py | 12 ++--- handle/wx.py | 110 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 112 insertions(+), 10 deletions(-) diff --git a/handle/DBProcess.py b/handle/DBProcess.py index 6d1912f..a044ca4 100644 --- a/handle/DBProcess.py +++ b/handle/DBProcess.py @@ -108,9 +108,9 @@ def showEquipment(): return returnString -#print(checkDB()) -#print(borrowEquipment('101')) -#print(checkDB()) -#print(returnEquipment('101')) -#print(checkDB()) -#print(showEquipment()) +# print(checkDB()) +# print(borrowEquipment('101')) +# print(checkDB()) +# print(returnEquipment('101')) +# print(checkDB()) +# print(showEquipment()) diff --git a/handle/wx.py b/handle/wx.py index e2671fa..1ee7fd8 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import tornado.escape import tornado.web -import DBProcess +import csv from config import * @@ -29,14 +29,14 @@ def wx_proc_msg(self, body): print(li) if li[0] == 'borrow': if len(li) == 1: - return wechat.response_text(content=DBProcess.showEquipment()) + return wechat.response_text(content=showEquipment()) elif len(li) == 2: - return wechat.response_text(content=DBProcess.borrowEquipment(li[1])) + return wechat.response_text(content=borrowEquipment(li[1])) else: return wechat.response_text(content="Wrong Command!") if li[0] == 'return': if len(li) == 2: - return wechat.response_text(content=DBProcess.returnEquipment(li[1])) + return wechat.response_text(content=returnEquipment(li[1])) else: return wechat.response_text(content="Wrong Command!") return wechat.response_text(content="Wrong Command!") @@ -138,3 +138,105 @@ def post(self): self.write(result) except IOError, e: return + + def checkDB(): + + DBResult = [] + + with open('list.csv', 'rb') as csvfile: + reader = csv.reader(csvfile, delimiter=' ') + for row in reader: + if row[1] == '0': + DBResult.append(row) + elif row[1] == '1': + DBResult.append(row) + elif row[1] == '*': + DBResult.append(row) + else: + return 2 #list.csv error,the status flag must be 1, 0 or * + print DBResult + return DBResult + + def changeDB(arg, num): #Caution!!! arg and num are all String! + + newCSVList = [] + oldCSVList = checkDB() + if oldCSVList == 2: + return 2 #list.csv error,the status flag must be 1, 0 or * + + for i in range(len(oldCSVList)): + if oldCSVList[i][0] == num: + newRow = oldCSVList[i] + newRow[1] = arg + newCSVList.append(newRow) + else: + newCSVList.append(oldCSVList[i]) + #rewrite the list.csv + with open('list.csv', 'wb') as csvfile: + writer = csv.writer(csvfile, delimiter=' ') + writer.writerows(newCSVList) + + return 0 + + def borrowEquipment(num):#Caution!!! num is a string! + DBList = checkDB() + if DBList == 2: + return 2 + + order = 999 #the order of the equipment in the DBList + + for i in range(len(DBList)): + if DBList[i][0] == num: + order = i + break + + if order == 999: + return 'The equipment number does not exsist' + + if DBList[order][1] == '0': + return 'The equipment has been lent out.' #if the equipment has been lent out, return this to show the error + elif DBList[order][1] == '1': + if changeDB('0', num) == 0: + return 'Succeed!' # succeed + else: + return 2 #list.csv error(the status flag must be 1, 0 or *), return 2 to show the error + + def returnEquipment(num):#Caution!!! num is a string! + DBList = checkDB() + if DBList == 2: + return 2 #list.csv error,the status flag must be 1, 0 or * + + order = 999 #the order of the equipment in the DBList + + for i in range(len(DBList)): + if DBList[i][0] == num: + order = i + break + if order == 999: + return 'The equipment number does not exsist' + + if DBList[order][1] == '1': + return 'The equipment hasn\'t been lent out.' #if the equipment has not been lent out, return this to show the error + if DBList[order][1] == '0': + if changeDB('1', num) == 0: + return 'Succeed!' # succeed + + def showEquipment(): + DBList = checkDB() + if DBList == 2: + return 2 #list.csv error,the status flag must be 1, 0 or * + + returnString = '' + for i in range(len(DBList)): + if DBList[i][1] == '1': + returnString += DBList[i][2] + returnString += ' Available\n' + elif DBList[i][1] == '0': + returnString += DBList[i][2] + returnString += ' Unavailable\n' + else: + returnString += '***' + returnString += DBList[i][2] + returnString += '***\n' + + return returnString From d6b81045ebac86e9bc6c187c2c0a01f7a96965cb Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 14:33:44 +0800 Subject: [PATCH 14/30] Fix bugs --- handle/wx.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index 1ee7fd8..46d33db 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -29,14 +29,14 @@ def wx_proc_msg(self, body): print(li) if li[0] == 'borrow': if len(li) == 1: - return wechat.response_text(content=showEquipment()) + return wechat.response_text(content=self.showEquipment()) elif len(li) == 2: - return wechat.response_text(content=borrowEquipment(li[1])) + return wechat.response_text(content=self.borrowEquipment(li[1])) else: return wechat.response_text(content="Wrong Command!") if li[0] == 'return': if len(li) == 2: - return wechat.response_text(content=returnEquipment(li[1])) + return wechat.response_text(content=self.returnEquipment(li[1])) else: return wechat.response_text(content="Wrong Command!") return wechat.response_text(content="Wrong Command!") From 56e6e2c6956898f9b99362e2730b3f80985aaf95 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 14:39:49 +0800 Subject: [PATCH 15/30] ... --- handle/wx.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index 46d33db..de251e8 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -2,6 +2,7 @@ import tornado.escape import tornado.web import csv +import DBProcess from config import * @@ -29,14 +30,17 @@ def wx_proc_msg(self, body): print(li) if li[0] == 'borrow': if len(li) == 1: - return wechat.response_text(content=self.showEquipment()) + text = DBProcess.showEquipment() + return wechat.response_text(content=text) elif len(li) == 2: - return wechat.response_text(content=self.borrowEquipment(li[1])) + text = DBProcess.borrowEquipment(li[1]) + return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") if li[0] == 'return': if len(li) == 2: - return wechat.response_text(content=self.returnEquipment(li[1])) + text = DBProcess.returnEquipment(li[1]) + return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") return wechat.response_text(content="Wrong Command!") From 346375ae3b238762ce0d3a8d0aab2525bb1cc643 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 14:47:22 +0800 Subject: [PATCH 16/30] .. --- handle/wx.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index de251e8..c900b0b 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -28,18 +28,24 @@ def wx_proc_msg(self, body): return wechat.response_none() li = content.lower().split() print(li) - if li[0] == 'borrow': + if li[0] == u'borrow': if len(li) == 1: text = DBProcess.showEquipment() + if text == 2: + return wechat.response_text(content="list.csv error") return wechat.response_text(content=text) elif len(li) == 2: text = DBProcess.borrowEquipment(li[1]) + if text == 2: + return wechat.response_text(content="list.csv error") return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") - if li[0] == 'return': + if li[0] == u'return': if len(li) == 2: text = DBProcess.returnEquipment(li[1]) + if text == 2: + return wechat.response_text(content="list.csv error") return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") @@ -144,10 +150,8 @@ def post(self): return def checkDB(): - - DBResult = [] - - with open('list.csv', 'rb') as csvfile: + DBResult = [] + with open('list.csv', 'rb') as csvfile: reader = csv.reader(csvfile, delimiter=' ') for row in reader: if row[1] == '0': @@ -157,7 +161,7 @@ def checkDB(): elif row[1] == '*': DBResult.append(row) else: - return 2 #list.csv error,the status flag must be 1, 0 or * + return 2 print DBResult return DBResult From 6f8b6db4a5d3c62bc7ff6a2e2aa50fea64343cd0 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 14:53:42 +0800 Subject: [PATCH 17/30] Unicode bugs --- handle/wx.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index c900b0b..7145f6c 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -26,9 +26,9 @@ def wx_proc_msg(self, body): content = wechat.message.content if len(content.replace(' ', '')) == 0: return wechat.response_none() - li = content.lower().split() + li = content.lower().encode('utf-8').split() print(li) - if li[0] == u'borrow': + if li[0] == 'borrow': if len(li) == 1: text = DBProcess.showEquipment() if text == 2: @@ -41,7 +41,7 @@ def wx_proc_msg(self, body): return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") - if li[0] == u'return': + if li[0] == 'return': if len(li) == 2: text = DBProcess.returnEquipment(li[1]) if text == 2: From cec0fd88fc41c80fc8e403ad0b5a836e475b545b Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 15:06:06 +0800 Subject: [PATCH 18/30] . --- handle/wx.py | 58 +++++++++++++++++++++++++++++++++++++++++----------- list.csv | 30 +++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 12 deletions(-) create mode 100644 list.csv diff --git a/handle/wx.py b/handle/wx.py index 7145f6c..4876ed6 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -30,10 +30,34 @@ def wx_proc_msg(self, body): print(li) if li[0] == 'borrow': if len(li) == 1: - text = DBProcess.showEquipment() - if text == 2: - return wechat.response_text(content="list.csv error") - return wechat.response_text(content=text) + DBResult = [] + with open('list.csv', 'rb') as csvfile: + reader = csv.reader(csvfile, delimiter=' ') + for row in reader: + print row + if row[1] == '0': + DBResult.append(row) + elif row[1] == '1': + DBResult.append(row) + elif row[1] == '*': + DBResult.append(row) + else: + return wechat.response_text(content="list.csv error")#list.csv error,the status flag must be 1, 0 or * + + + returnString = '' + for i in range(len(DBResult)): + if DBList[i][1] == '1': + returnString += DBResult[i][2] + returnString += ' Available\n' + elif DBList[i][1] == '0': + returnString += DBResult[i][2] + returnString += ' Unavailable\n' + else: + returnString += '***' + returnString += DBResult[i][2] + returnString += '***\n' + return wechat.response_text(content=returnString.decode('utf-8')) elif len(li) == 2: text = DBProcess.borrowEquipment(li[1]) if text == 2: @@ -230,21 +254,31 @@ def returnEquipment(num):#Caution!!! num is a string! return 'Succeed!' # succeed def showEquipment(): - DBList = checkDB() - if DBList == 2: + DBResult = [] + with open('list.csv', 'rb') as csvfile: + reader = csv.reader(csvfile, delimiter=' ') + for row in reader: + if row[1] == '0': + DBResult.append(row) + elif row[1] == '1': + DBResult.append(row) + elif row[1] == '*': + DBResult.append(row) + else: + DBResult = [2] + + if DBResult == [2]: return 2 #list.csv error,the status flag must be 1, 0 or * returnString = '' - for i in range(len(DBList)): + for i in range(len(DBResult)): if DBList[i][1] == '1': - returnString += DBList[i][2] + returnString += DBResult[i][2] returnString += ' Available\n' elif DBList[i][1] == '0': - returnString += DBList[i][2] + returnString += DBResult[i][2] returnString += ' Unavailable\n' else: returnString += '***' - returnString += DBList[i][2] + returnString += DBResult[i][2] returnString += '***\n' - - return returnString diff --git a/list.csv b/list.csv new file mode 100644 index 0000000..163f64f --- /dev/null +++ b/list.csv @@ -0,0 +1,30 @@ +*** * Camera +101 1 7D +102 1 6D +103 1 5D +104 1 280 +*** * Lens +105 1 BMCC +201 1 16-35 +202 1 24-105 +203 1 70-200F4 +204 1 70-200F2.8 +205 1 35 +*** * StorgeCard +301 1 280-card-01 +302 1 280-card-02 +303 1 280-card-03 +304 1 280-card-04 +305 1 SD-01 +306 1 SD-02 +307 1 SD-03 +308 1 SD-04 +309 1 SD-05 +*** * Battery +401 1 280-LargeBattery-01 +402 1 280-LargeBattery-02 +403 1 280-SmallBattery +*** * Tripod +501 1 Tripod-01 +502 1 Tripod-02 +503 1 Tripod-03 From 1a812d2533c746d523932ccb6a338b03d9b7b485 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 15:13:26 +0800 Subject: [PATCH 19/30] ... --- handle/wx.py | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index 4876ed6..4fc16c4 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -32,31 +32,31 @@ def wx_proc_msg(self, body): if len(li) == 1: DBResult = [] with open('list.csv', 'rb') as csvfile: - reader = csv.reader(csvfile, delimiter=' ') - for row in reader: + reader = csv.reader(csvfile, delimiter=' ') + for row in reader: print row - if row[1] == '0': - DBResult.append(row) - elif row[1] == '1': - DBResult.append(row) - elif row[1] == '*': - DBResult.append(row) - else: - return wechat.response_text(content="list.csv error")#list.csv error,the status flag must be 1, 0 or * + if row[1] == '0': + DBResult.append(row) + elif row[1] == '1': + DBResult.append(row) + elif row[1] == '*': + DBResult.append(row) + else: + return wechat.response_text(content="list.csv error")#list.csv error,the status flag must be 1, 0 or * - returnString = '' - for i in range(len(DBResult)): - if DBList[i][1] == '1': - returnString += DBResult[i][2] - returnString += ' Available\n' - elif DBList[i][1] == '0': - returnString += DBResult[i][2] - returnString += ' Unavailable\n' - else: - returnString += '***' - returnString += DBResult[i][2] - returnString += '***\n' + returnString = '' + for i in range(len(DBResult)): + if DBList[i][1] == '1': + returnString += DBResult[i][2] + returnString += ' Available\n' + elif DBList[i][1] == '0': + returnString += DBResult[i][2] + returnString += ' Unavailable\n' + else: + returnString += '***' + returnString += DBResult[i][2] + returnString += '***\n' return wechat.response_text(content=returnString.decode('utf-8')) elif len(li) == 2: text = DBProcess.borrowEquipment(li[1]) From 765e4dd86e689911de90150bdab79e55162f910c Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 15:16:52 +0800 Subject: [PATCH 20/30] indent --- handle/wx.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index 4fc16c4..058b84b 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -46,17 +46,17 @@ def wx_proc_msg(self, body): returnString = '' - for i in range(len(DBResult)): - if DBList[i][1] == '1': - returnString += DBResult[i][2] - returnString += ' Available\n' - elif DBList[i][1] == '0': - returnString += DBResult[i][2] - returnString += ' Unavailable\n' - else: - returnString += '***' - returnString += DBResult[i][2] - returnString += '***\n' + for i in range(len(DBResult)): + if DBList[i][1] == '1': + returnString += DBResult[i][2] + returnString += ' Available\n' + elif DBList[i][1] == '0': + returnString += DBResult[i][2] + returnString += ' Unavailable\n' + else: + returnString += '***' + returnString += DBResult[i][2] + returnString += '***\n' return wechat.response_text(content=returnString.decode('utf-8')) elif len(li) == 2: text = DBProcess.borrowEquipment(li[1]) From d2bc86b0e82211bc603a596d949d062a5c651ca5 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 15:18:57 +0800 Subject: [PATCH 21/30] Small bugs --- handle/wx.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index 058b84b..de68286 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -47,10 +47,10 @@ def wx_proc_msg(self, body): returnString = '' for i in range(len(DBResult)): - if DBList[i][1] == '1': + if DBResult[i][1] == '1': returnString += DBResult[i][2] returnString += ' Available\n' - elif DBList[i][1] == '0': + elif DBResult[i][1] == '0': returnString += DBResult[i][2] returnString += ' Unavailable\n' else: From cd0b5d2aa9ce6f2605de5fa2e8426ae0d2560e93 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 15:22:07 +0800 Subject: [PATCH 22/30] finally --- handle/wx.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/handle/wx.py b/handle/wx.py index de68286..b0bf890 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -49,9 +49,13 @@ def wx_proc_msg(self, body): for i in range(len(DBResult)): if DBResult[i][1] == '1': returnString += DBResult[i][2] + returnString += ':' + returnString += DBResult[i][0] returnString += ' Available\n' elif DBResult[i][1] == '0': returnString += DBResult[i][2] + returnString += ':' + returnString += DBResult[i][0] returnString += ' Unavailable\n' else: returnString += '***' From 97febc9ab59f5a45c88306168d59fc840b2f61d9 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 15:50:29 +0800 Subject: [PATCH 23/30] Add log --- handle/wx.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index b0bf890..93216bb 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -34,7 +34,6 @@ def wx_proc_msg(self, body): with open('list.csv', 'rb') as csvfile: reader = csv.reader(csvfile, delimiter=' ') for row in reader: - print row if row[1] == '0': DBResult.append(row) elif row[1] == '1': @@ -66,6 +65,9 @@ def wx_proc_msg(self, body): text = DBProcess.borrowEquipment(li[1]) if text == 2: return wechat.response_text(content="list.csv error") + with open('log.csv', 'ab') as csvfile: + writer = csv.writer(csvfile, delimiter=' ') + writer.writerow(source, 'borrow', [li[1], time]) return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") @@ -74,9 +76,27 @@ def wx_proc_msg(self, body): text = DBProcess.returnEquipment(li[1]) if text == 2: return wechat.response_text(content="list.csv error") + with open('log.csv', 'ab') as csvfile: + writer = csv.writer(csvfile, delimiter=' ') + writer.writerow(source, 'return', [li[1], time]) return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") + if li[0] == 'log': + strList = [] + str = '' + i = 0 + with open('log.csv', 'rb') as csvfile: + reader = csv.reader(csvfile, delimiter=' ') + for row in reader: + strList += row + strList = strList[-15:-1] + for s in strList: + str += s.join('-') + str += '/n' + + return wechat.response_text(content=str) + return wechat.response_text(content="Wrong Command!") if isinstance(wechat.message, ImageMessage): picurl = wechat.message.picurl # PicUrl @@ -190,7 +210,6 @@ def checkDB(): DBResult.append(row) else: return 2 - print DBResult return DBResult def changeDB(arg, num): #Caution!!! arg and num are all String! From 65c0167f09a985a3fa5a7dacf259e1bbe33f4bc3 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 15:57:02 +0800 Subject: [PATCH 24/30] ... --- handle/wx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handle/wx.py b/handle/wx.py index 93216bb..20a668e 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -87,7 +87,7 @@ def wx_proc_msg(self, body): str = '' i = 0 with open('log.csv', 'rb') as csvfile: - reader = csv.reader(csvfile, delimiter=' ') + reader = csv.reader(csvfile, delimiter=' ') for row in reader: strList += row strList = strList[-15:-1] From 9919374c978ea8ab003f9317cee479acc7f9fb11 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 15:59:59 +0800 Subject: [PATCH 25/30] Small bugs --- handle/wx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handle/wx.py b/handle/wx.py index 20a668e..8fe5e11 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -67,7 +67,7 @@ def wx_proc_msg(self, body): return wechat.response_text(content="list.csv error") with open('log.csv', 'ab') as csvfile: writer = csv.writer(csvfile, delimiter=' ') - writer.writerow(source, 'borrow', [li[1], time]) + writer.writerow([source, 'borrow', li[1], time]) return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") From 26b90b19371dc67e2e9b9e73e20dde281e2a1948 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 16:02:41 +0800 Subject: [PATCH 26/30] ... --- handle/wx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handle/wx.py b/handle/wx.py index 8fe5e11..72c69a5 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -78,7 +78,7 @@ def wx_proc_msg(self, body): return wechat.response_text(content="list.csv error") with open('log.csv', 'ab') as csvfile: writer = csv.writer(csvfile, delimiter=' ') - writer.writerow(source, 'return', [li[1], time]) + writer.writerow([source, 'return', li[1], time]) return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") From 3adeb3382c7dee6dc8660933150605b533c4d18c Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 16:37:59 +0800 Subject: [PATCH 27/30] Log time --- handle/wx.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/handle/wx.py b/handle/wx.py index 72c69a5..ff75e90 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -3,6 +3,7 @@ import tornado.web import csv import DBProcess +import datetime from config import * @@ -28,7 +29,7 @@ def wx_proc_msg(self, body): return wechat.response_none() li = content.lower().encode('utf-8').split() print(li) - if li[0] == 'borrow': + if li[0] == 'borrow' or li[0] == 'check': if len(li) == 1: DBResult = [] with open('list.csv', 'rb') as csvfile: @@ -67,18 +68,18 @@ def wx_proc_msg(self, body): return wechat.response_text(content="list.csv error") with open('log.csv', 'ab') as csvfile: writer = csv.writer(csvfile, delimiter=' ') - writer.writerow([source, 'borrow', li[1], time]) + writer.writerow([source, li[2], 'borrow', li[1], datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")]) return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") if li[0] == 'return': - if len(li) == 2: + if len(li) == 3: text = DBProcess.returnEquipment(li[1]) if text == 2: return wechat.response_text(content="list.csv error") with open('log.csv', 'ab') as csvfile: writer = csv.writer(csvfile, delimiter=' ') - writer.writerow([source, 'return', li[1], time]) + writer.writerow([li[3], 'return', li[1], time, ]) return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") @@ -89,11 +90,13 @@ def wx_proc_msg(self, body): with open('log.csv', 'rb') as csvfile: reader = csv.reader(csvfile, delimiter=' ') for row in reader: - strList += row - strList = strList[-15:-1] + strList.append(row) + if len(strList) > 16: + strList = strList[-15:-1] + for s in strList: str += s.join('-') - str += '/n' + str += '\n' return wechat.response_text(content=str) From 87f351ecc6277ff42485fbb63c0a5e096fa720b5 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 16:52:43 +0800 Subject: [PATCH 28/30] Bugs --- handle/list.csv | 2 +- handle/wx.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/handle/list.csv b/handle/list.csv index 163f64f..296fdd4 100644 --- a/handle/list.csv +++ b/handle/list.csv @@ -10,7 +10,7 @@ 203 1 70-200F4 204 1 70-200F2.8 205 1 35 -*** * StorgeCard +*** * StorageCard 301 1 280-card-01 302 1 280-card-02 303 1 280-card-03 diff --git a/handle/wx.py b/handle/wx.py index ff75e90..c8c776f 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -30,7 +30,7 @@ def wx_proc_msg(self, body): li = content.lower().encode('utf-8').split() print(li) if li[0] == 'borrow' or li[0] == 'check': - if len(li) == 1: + if li[0] == 'check': DBResult = [] with open('list.csv', 'rb') as csvfile: reader = csv.reader(csvfile, delimiter=' ') @@ -62,7 +62,7 @@ def wx_proc_msg(self, body): returnString += DBResult[i][2] returnString += '***\n' return wechat.response_text(content=returnString.decode('utf-8')) - elif len(li) == 2: + elif len(li) == 3: text = DBProcess.borrowEquipment(li[1]) if text == 2: return wechat.response_text(content="list.csv error") @@ -79,7 +79,7 @@ def wx_proc_msg(self, body): return wechat.response_text(content="list.csv error") with open('log.csv', 'ab') as csvfile: writer = csv.writer(csvfile, delimiter=' ') - writer.writerow([li[3], 'return', li[1], time, ]) + writer.writerow([source, li[2], 'return', li[1], datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")]) return wechat.response_text(content=text) else: return wechat.response_text(content="Wrong Command!") @@ -95,7 +95,7 @@ def wx_proc_msg(self, body): strList = strList[-15:-1] for s in strList: - str += s.join('-') + str += s[1:].join('-') str += '\n' return wechat.response_text(content=str) From 6d627df6232475cd7c8ae5aca4629118f6dea949 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 17:04:28 +0800 Subject: [PATCH 29/30] Join --- handle/wx.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/handle/wx.py b/handle/wx.py index c8c776f..28382f6 100644 --- a/handle/wx.py +++ b/handle/wx.py @@ -95,7 +95,7 @@ def wx_proc_msg(self, body): strList = strList[-15:-1] for s in strList: - str += s[1:].join('-') + str += '-'.join(s[1:]) str += '\n' return wechat.response_text(content=str) From 057456c742056cb2c4c6051673795303d2771576 Mon Sep 17 00:00:00 2001 From: Eis99 Date: Thu, 24 Nov 2016 17:07:43 +0800 Subject: [PATCH 30/30] delete a print sentence --- handle/DBProcess.py | 1 - 1 file changed, 1 deletion(-) diff --git a/handle/DBProcess.py b/handle/DBProcess.py index a044ca4..819f2a6 100644 --- a/handle/DBProcess.py +++ b/handle/DBProcess.py @@ -17,7 +17,6 @@ def checkDB(): DBResult.append(row) else: return 2 #list.csv error,the status flag must be 1, 0 or * - print DBResult return DBResult