Adds Arper, cleans up other stuff.
[python_utils.git] / smart_home / device.py
1 #!/usr/bin/env python3
2
3 import re
4 from typing import List, Optional
5
6
7 class Device(object):
8     def __init__(
9             self,
10             name: str,
11             mac: str,
12             keywords: Optional[List[str]],
13     ):
14         self.name = name
15         self.mac = mac
16         self.keywords = keywords
17         if keywords is not None:
18             self.kws = keywords.split()
19         else:
20             self.kws = []
21
22     def get_name(self) -> str:
23         return self.name
24
25     def get_mac(self) -> str:
26         return self.mac
27
28     def get_ip(self) -> str:
29         pass
30
31     def get_keywords(self) -> Optional[List[str]]:
32         return self.kws
33
34     def has_keyword(self, keyword: str) -> bool:
35         for kw in self.kws:
36             if kw == keyword:
37                 return True
38         return False
39
40     def get_on_limit_seconds(self) -> Optional[int]:
41         for kw in self.kws:
42             m = re.search(r"timeout:(\d+)", kw)
43             if m is not None:
44                 return int(m.group(1)) * 60
45         return None