minor refactoring

This commit is contained in:
ducklet 2020-11-07 19:55:34 +01:00
parent e7009406c6
commit 81a176eb0c
2 changed files with 16 additions and 11 deletions

View file

@ -17,11 +17,8 @@ class Fallbackdict(dict):
super().__init__() super().__init__()
self._default = default self._default = default
def get(self, key, default=None): def __missing__(self, key):
return super().get(key, self._default if default is None else default) return self._default
def __getitem__(self, key):
return super().get(key, self._default)
class Config: class Config:

View file

@ -29,7 +29,7 @@ class Job:
return 2 * x * random() - x return 2 * x * random() - x
class Tokens(tuple): class Tokens(Tuple[str]):
def get(self, pos, default=None): def get(self, pos, default=None):
try: try:
return self[pos] return self[pos]
@ -68,11 +68,15 @@ class Message:
text: str text: str
room: nio.rooms.MatrixRoom room: nio.rooms.MatrixRoom
event: nio.events.room_events.RoomMessageText event: nio.events.room_events.RoomMessageText
tokens: Tokens = None tokens: Tokens = (
words: Tokens = None None # The text split up into clean tokens, to be used for command handlers.
is_for_me: bool = False )
command: Optional[str] = None words: Tokens = (
args: Optional[Tokens] = None None # A subset of the message tokens excluding any command keyword.
)
is_for_me: bool = False # Wether the user addressed the bot using its name.
command: Optional[str] = None # The command keyword issued by the user, if any.
args: Optional[Tokens] = None # args will always be set if command is set
@property @property
def sender_name(self) -> str: def sender_name(self) -> str:
@ -87,6 +91,10 @@ class Message:
# "A group is an unnamed room with no canonical alias." # "A group is an unnamed room with no canonical alias."
return self.room.is_group and self.room.member_count == 2 return self.room.is_group and self.room.member_count == 2
# @property
# def words(self) -> Tokens:
# return self.args or self.tokens
def __post_init__(self): def __post_init__(self):
self.tokens = Tokens.from_str(self.text) self.tokens = Tokens.from_str(self.text)
self.words = self.tokens self.words = self.tokens