from datetime import datetime import dateutil.parser import demistomock as demisto # noqa: F401 import pytz from CommonServerPython import * # noqa: F401 utc = pytz.UTC class FieldNotFound(Exception): pass def get_duration_html(): try: incident_id = demisto.incident().get("id", {}) context = demisto.executeCommand("getContext", {"id": incident_id}) first_date = demisto.get(context[0]["Contents"]["context"], "EmailCampaign.firstIncidentDate") if not first_date: raise FieldNotFound if isinstance(first_date, list): first_date = first_date[-1] now = datetime.now().replace(tzinfo=utc) parsed_first_date: datetime = dateutil.parser.isoparse(first_date).replace(tzinfo=utc) diff = now - parsed_first_date return f"""
🕙 {diff.days} : {(diff.seconds // 3600) % 24} : {(diff.seconds // 60) % 60}
Days Hours Minutes
""" except FieldNotFound: return '
Duration is not available.
' except Exception as e: return_error(f"Error calculating duration\n{e!s}") """ ENTRY POINT """ if __name__ in ("__main__", "__builtin__", "builtins"): demisto.results({"ContentsFormat": formats["html"], "Type": entryTypes["note"], "Contents": get_duration_html()})