From fcdfb62d0f9ca9773da57e20286b8623c2c866f5 Mon Sep 17 00:00:00 2001 From: mms Date: Mon, 25 Nov 2024 00:11:05 +0100 Subject: feat: mailig list rule --- filters/mailing_lists_filter.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 filters/mailing_lists_filter.rb (limited to 'filters') diff --git a/filters/mailing_lists_filter.rb b/filters/mailing_lists_filter.rb new file mode 100644 index 0000000..872a817 --- /dev/null +++ b/filters/mailing_lists_filter.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +module Chotto + # Adds "list" and "list/" tags to messages from mailing list + # Baed on RFC 2919 + module MailingListsFilter + def self.list_id_from_header(value) + value.match(/<(.*)>/)[1].gsub(' ', '') + end + end +end + +MAILING_LIST_FILTER = lambda do + Chotto.rule_set 'mailing_lists' do + messages.filter('NOT tag:lists').each do |msg| + list_id = Chotto::MailingListsFilter.list_id_from_header(msg.list_id) + msg.tags = ['unread', 'inbox', 'lists', "lists/#{list_id}"] + msg.save! + end + end +end -- cgit v1.2.3