From 205ae4b7a63dc3a01ef264729e6b9bf707491ca2 Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Sat, 28 Jul 2012 15:46:41 -0400 Subject: [PATCH] Implement read_signatures(). --- earwigbot/tasks/drn_clerkbot.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/earwigbot/tasks/drn_clerkbot.py b/earwigbot/tasks/drn_clerkbot.py index 088c1dd..94771a1 100644 --- a/earwigbot/tasks/drn_clerkbot.py +++ b/earwigbot/tasks/drn_clerkbot.py @@ -328,8 +328,14 @@ class DRNClerkBot(Task): return self.build_talk_notice(self.STATUS_REVIEW) def read_signatures(self, text): - raise NotImplementedError() # TODO - return [(username, timestamp_datetime)...] + regex = r"\[\[(?:User(?:\stalk)?\:|Special\:Contributions\/)(.*?)(?:\||\]\]).{,256}?(\d{2}:\d{2},\s\d{2}\s\w+\s\d{4}\s\(UTC\))" + matches = re.findall(regex, text, re.U) + signatures = [] + for userlink, stamp in matches: + username = userlink.split("/", 1)[0].replace("_", " ") + timestamp = datetime.strptime("%H:%M, %d %B %Y (UTC)", stamp) + signatures.append((username, timestamp)) + return signatures def get_signatures_from_db(self, conn, case): query = "SELECT signature_username, signature_timestamp FROM signature WHERE signature_case = ?"