#!/usr/bin/env python3 import re from typing import List, Optional import arper class Device(object): def __init__( self, name: str, mac: str, keywords: Optional[List[str]], ): self.name = name self.mac = mac self.keywords = keywords self.arper = arper.Arper() if keywords is not None: self.kws = keywords.split() else: self.kws = [] def get_name(self) -> str: return self.name def get_mac(self) -> str: return self.mac def get_ip(self) -> str: return self.arper.get_ip_by_mac(self.mac) def get_keywords(self) -> Optional[List[str]]: return self.kws def has_keyword(self, keyword: str) -> bool: for kw in self.kws: if kw == keyword: return True return False def get_on_limit_seconds(self) -> Optional[int]: for kw in self.kws: m = re.search(r"timeout:(\d+)", kw) if m is not None: return int(m.group(1)) * 60 return None