aboutsummaryrefslogtreecommitdiff
path: root/src/IRCBuffer.py
diff options
context:
space:
mode:
authorGravatar jesopo2020-01-17 14:19:30 +0000
committerGravatar jesopo2020-01-17 14:19:30 +0000
commitf8b509ef94a9dff01f4d7e860b20ebecbc3aff24 (patch)
treeefd4d2c13ed4673891f6f0ee90e2a92f0caffce6 /src/IRCBuffer.py
parentmake `++asd++` count only as `++` on `++help` (diff)
signature
give ever BufferLine an ID (IRCv3 msgid or uuid4())
Diffstat (limited to 'src/IRCBuffer.py')
-rw-r--r--src/IRCBuffer.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/IRCBuffer.py b/src/IRCBuffer.py
index 3e8f5aa9..dbd59b3b 100644
--- a/src/IRCBuffer.py
+++ b/src/IRCBuffer.py
@@ -5,6 +5,7 @@ MAX_LINES = 64
@dataclasses.dataclass
class BufferLine(object):
+ id: str
sender: str
message: str
action: bool
@@ -44,6 +45,7 @@ class Buffer(object):
else:
for line in self._lines:
yield line
+
def find(self, pattern: typing.Union[str, typing.Pattern[str]], **kwargs
) -> typing.Optional[BufferLineMatch]:
from_self = kwargs.get("from_self", True)
@@ -64,6 +66,12 @@ class Buffer(object):
return BufferLineMatch(line, match.group(0))
return None
+ def find_id(self, id: str) -> typing.Optional[BufferLine]:
+ for line in self._lines:
+ if line.id == id:
+ return line
+ return None
+
def find_from(self, nickname: str) -> typing.Optional[BufferLine]:
lines = self.find_many_from(nickname, 1)
if lines: