Skip to content

Commit 332d601

Browse files
committed
Change exception catching logic.
1 parent cfbb10a commit 332d601

File tree

1 file changed

+25
-31
lines changed

1 file changed

+25
-31
lines changed

parsers/vlt_parser.py

+25-31
Original file line numberDiff line numberDiff line change
@@ -32,40 +32,34 @@ def vlt_parser(self):
3232
while True:
3333
try:
3434
self.tn = telnetlib.Telnet(HOST)
35+
str_all = str(self.tn.read_until(b'\r\r\n\r\n'))
36+
try:
37+
call_info = self.parse_string(str_all, STR_SEARCH)
38+
except (TypeError, ValueError) as e:
39+
self.write_log(FILE_ERR, 'Error parsing: ', e)
40+
else:
41+
if call_info is not None:
42+
result = TEXT + call_info[0] + ' ' + call_info[1]
43+
44+
self.CONTACTS_LOCK.acquire(1)
45+
for contact in self.contacts_book:
46+
if call_info[0] == contact.phone:
47+
caller = contact
48+
break
49+
else:
50+
caller = Contact(call_info[0])
51+
self.contacts_book.append(caller)
52+
self.save_contacts()
53+
self.CONTACTS_LOCK.release()
54+
55+
self.write_log(FILE_OUT, result + ' ' + str(caller))
56+
view_tk(result + '\n' + str(caller))
3557
except Exception as e:
3658
self.write_log(FILE_ERR, 'Connection to server is not available: ', e)
3759
sleep(5)
38-
else:
39-
while True:
40-
try:
41-
self.tn.sock_avail()
42-
except Exception as e:
43-
self.write_log(FILE_ERR, 'Connection is not active.', e)
44-
sleep(5)
45-
self.tn = telnetlib.Telnet(HOST)
46-
else:
47-
str_all = str(self.tn.read_until(b'\r\r\n\r\n'))
48-
try:
49-
call_info = self.parse_string(str_all, STR_SEARCH)
50-
except (TypeError, ValueError) as e:
51-
self.write_log(FILE_ERR, 'Error parsing: ', e)
52-
else:
53-
if call_info is not None:
54-
result = TEXT + call_info[0] + ' ' + call_info[1]
55-
56-
self.CONTACTS_LOCK.acquire(1)
57-
for contact in self.contacts_book:
58-
if call_info[0] == contact.phone:
59-
caller = contact
60-
break
61-
else:
62-
caller = Contact(call_info[0])
63-
self.contacts_book.append(caller)
64-
self.save_contacts()
65-
self.CONTACTS_LOCK.release()
66-
67-
self.write_log(FILE_OUT, result + ' ' + str(caller))
68-
view_tk(result + '\n' + str(caller))
60+
finally:
61+
if self.tn:
62+
self.tn.close()
6963

7064

7165
class VltParser(threading.Thread):

0 commit comments

Comments
 (0)