File indexing completed on 2024-03-24 05:47:44

0001 # -*- coding: UTF-8 -*-
0002 
0003 """
0004 Remove previous fields (C{#|...}) from messages.
0005 
0006 Documented in C{doc/user/sieving.docbook}.
0007 
0008 @author: Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>
0009 @license: GPLv3
0010 """
0011 
0012 from pology import _, n_
0013 from pology.report import report
0014 
0015 
0016 def setup_sieve (p):
0017 
0018     p.set_desc(_("@info sieve discription",
0019     "Remove previous fields (#| ...) from messages."
0020     ))
0021 
0022     p.add_param("all", bool,
0023                 desc=_("@info sieve parameter discription",
0024     "Remove previous fields from all messages "
0025     "(by default previous fields are not removed from fuzzy messages)."
0026     ))
0027 
0028 
0029 class Sieve (object):
0030 
0031     def __init__ (self, params):
0032 
0033         self.p = params
0034 
0035         self.ncleared = 0
0036 
0037 
0038     def process (self, msg, cat):
0039 
0040         if self.p.all or "fuzzy" not in msg.flag: # also for obsolete
0041             modcount = msg.modcount
0042             msg.msgctxt_previous = None
0043             msg.msgid_previous = None
0044             msg.msgid_plural_previous = None
0045             if modcount < msg.modcount:
0046                 self.ncleared += 1
0047 
0048 
0049     def finalize (self):
0050 
0051         if self.ncleared > 0:
0052             msg = n_("@info:progress",
0053                      "Cleared previous fields from %(num)d message.",
0054                      "Cleared previous fields from %(num)d messages.",
0055                      num=self.ncleared)
0056             report("===== " + msg)
0057