From d75a1d7341e07a0bf4e1ba5fbf11b751c8f96bbf Mon Sep 17 00:00:00 2001 From: Matěj Cepl Date: Sun, 2 Jun 2024 21:56:45 +0200 Subject: feat: delayed closing of tickets. Delaying should hopefully help todo.sr.ht to process all previous changes before the tickets are closed. --- import_issues.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/import_issues.py b/import_issues.py index 1b7c538..eee6ce6 100755 --- a/import_issues.py +++ b/import_issues.py @@ -145,6 +145,8 @@ logging.basicConfig( ID_RE = re.compile(r"^[0-9]+$") +tickets_to_be_closed = [] + def get_labels(tracker: str) -> list[dict[str, str]]: """ @@ -386,17 +388,15 @@ def file_missing_ticket( issue_count += 1 - # TODO Send these emails at the end, so that there isn't such a need for the - # previous issue to be processed promptly. - close_ticket( - smtp=smtp, - delay=delay, - mode=mode, - tracker=tracker, - frm=frm, - issue_id=issue_count, - closed_at=None, - is_closed=False, # Save one line of text. + tickets_to_be_closed.append( + ( + smtp, + delay, + mode, + tracker, + frm, + issue_count, + ) ) @@ -742,6 +742,19 @@ def run( is_closed=(issue_json["state"] == "closed"), ) + log.info("Delayed closing issues.") + for ticket in tickets_to_be_closed: + close_ticket( + smtp=ticket[0], + delay=ticket[1], + mode=ticket[2], + tracker=ticket[3], + frm=ticket[4], + issue_id=ticket[5], + closed_at=None, + is_closed=False, + ) + def main(): parser = argparse.ArgumentParser( -- cgit