def _filter_rule(self, metadata: list[str]):
        """
        This function is used to filter the rules based on the last run date or the start time of the feed.

        Args:
          metadata: list of rule metadata as provided by the feed.
        """
        ## Add the first run of the feed, creates_date of metadata is used to filter the rules.
        if not self.last_run:
            for meta in metadata:
                if "created_at" in meta:
                    _, date_create = meta.split(" ")
                    start_time = yeti_config.get("etopen", "start_time")
                    try:
                        d_start_time = datetime.datetime.strptime(
                            start_time, "%Y-%m-%d"
                        )
                        logging.debug(f"start_time: {d_start_time}")
                        return d_start_time < datetime.datetime.strptime(
                            date_create, "%Y_%m_%d"
                        )
                    except ValueError:
                        raise ValueError(
                            f"Invalid start_time format {start_time}, please use the format %Y-%m-%d"
                        )
        else:
            ## Add the last run of the feed, updated_at of metadata is used to filter the rules.
            for meta in metadata:
                if "updated_at" in meta:
                    _, date_update = meta.split(" ")
                    date_filtering = datetime.datetime.strptime(
                        date_update, "%Y_%m_%d"
                    ).replace(tzinfo=timezone.utc)
                    return self.last_run < date_filtering
        return False

        This function is used to filter the rules based on the last run date or the start time of the feed.

        Args:
          metadata: list of rule metadata as provided by the feed.
        
plugins/feeds/public/et_open.py