From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id ODaSBC/qA2GFbgEAgWs5BA (envelope-from ) for ; Fri, 30 Jul 2021 14:01:51 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id mEsSAC/qA2G2DgAAbx9fmQ (envelope-from ) for ; Fri, 30 Jul 2021 12:01:51 +0000 Received: from mail.notmuchmail.org (nmbug.tethera.net [144.217.243.247]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 51EACCA2D for ; Fri, 30 Jul 2021 14:01:50 +0200 (CEST) Received: from nmbug.tethera.net (localhost [127.0.0.1]) by mail.notmuchmail.org (Postfix) with ESMTP id B468F291D0; Fri, 30 Jul 2021 08:01:39 -0400 (EDT) X-Greylist: delayed 458 seconds by postgrey-1.36 at nmbug; Tue, 17 Nov 2020 14:25:05 EST Received: from knopi.disroot.org (knopi.disroot.org [178.21.23.139]) by mail.notmuchmail.org (Postfix) with ESMTPS id 33CE520088 for ; Tue, 17 Nov 2020 14:25:05 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 9398A5347F for ; Tue, 17 Nov 2020 20:19:20 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at disroot.org Received: from knopi.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 2YaeZ64tMmX7 for ; Tue, 17 Nov 2020 20:19:17 +0100 (CET) From: "Jorge P. de Morais Neto" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1605640755; bh=9YE0mvALW4HvavpxIpuxWt6wlMXutip8MBuPJeDzRDY=; h=From:To:Subject:Date; b=UQMa8K8FAMVIq4Dyy9zMa5MA43jCwBSPznU1FxagO3MZbGs3DfVi0WebXSz7/OIMm wa3h9oSvJKWcylCvqLvHBm3B6u1cs4KdZqXYZzeKa4s3eCuFcpoA877mAUusHja3+X AxYgU6rEqkOpnC829439nHcKKeU6V5ZMtOW/4oYrRfWo6OSkDxLK73mFSYxkGlHSKS wz3exuPSw+i4eUcKrDe6Z2EAcdC0Pp6utQs7+N9V0zaCwjckOGkc2WNAMM1YC6naJS r7w6dEn3+Q346wbvoLWm6FcV/zap6l1638O/Rxksx5wQ5rmesdL43S+MjSXLflrg24 uG1jfkr9qMDPA== To: notmuch@notmuchmail.org Subject: Corrupted database (notmuch 0.31, Emacs 27.1.50, afew 3.0.1, OfflineIMAP, Python) Importance: high Mail-Followup-To: notmuch@notmuchmail.org Date: Tue, 17 Nov 2020 16:19:10 -0300 Message-ID: <87lfezpz9t.fsf@disroot.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-MailFrom: jorge+list@disroot.org X-Mailman-Rule-Hits: max-size X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-notmuch.notmuchmail.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; news-moderation; no-subject; suspicious-header Message-ID-Hash: MPXLCMRLU36IUJXC2J2QLMZC32JD7AVT X-Message-ID-Hash: MPXLCMRLU36IUJXC2J2QLMZC32JD7AVT X-Mailman-Approved-At: Fri, 30 Jul 2021 12:01:31 -0400 X-Mailman-Version: 3.2.1 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1627646510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type:list-id: list-help:list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=32AWdm1E0R7bg65nKgX7zyoom/EBWm/mrLm3TZ81Hzw=; b=el6GyAyfN/YKERqRkV3QaHzgu8EDqdiXAHwaSYntdb7U2MNyBLJY5HYJANFXDT8w0hiVj0 iQD91BHO1pJBJ/JCTmwg6OOH4V8DnrHFWdblumtvtrZgtKsPlr7AOBc9dExGInlRaY8/Ns dKZ3xNSOXmR4Twz2tQb+KmO0CCHx4rU8xIj9iAzAdZJbVNSy1L2bInko6JcdUQ1zjUU6iI S2gKs2AUIE8BQn7Zq1S4mnreqi8ZwsfeO6BWDU2hAOgay+ycJAQRZJDpHLzudJ9sar589d UdLQ16EtHAmVwi3IiRlmX2rYVA2jumN6GHC89SNU2ILkONwJuHobg3c1VAsi+A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1627646510; a=rsa-sha256; cv=none; b=hv9CNiLSSp70fEWOUdQWtJlBPqsPsxgFkKeKksIuCIEv1X7aECSJrNXTO4+KUGxnd/TDFi HbYAXU6fiJ1tGw9GvTtcaQvbGfGqxFuVLLHh2ubYFXsGAU63LJLWsljjZtoN0AJp5fIyFk Gkojw7+ymkpOHj31Fd7jE49O1YAbyYHjV7j+WnGncfKrJO7s8Y12QEFrI1nPmSEoON9HQr xZrbAQOhaTXI8Pnetpe1ZKi26GlbOqZUDFp69D5OvYGyKMfawAFa8EWiLCPPRhrXKpg8S7 6agM2MrCJa15dkw5CYkfZbMyaXG7CfFPTgpYFje9SUGlbKRig/SGbiVFkKRW4g== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=disroot.org header.s=mail header.b=UQMa8K8F; dmarc=fail reason="SPF not aligned (relaxed)" header.from=disroot.org (policy=quarantine); spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 144.217.243.247 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Spam-Score: 6.00 X-Spam: Yes Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=disroot.org header.s=mail header.b=UQMa8K8F; dmarc=fail reason="SPF not aligned (relaxed)" header.from=disroot.org (policy=quarantine); spf=pass (aspmx1.migadu.com: domain of notmuch-bounces@notmuchmail.org designates 144.217.243.247 as permitted sender) smtp.mailfrom=notmuch-bounces@notmuchmail.org X-Migadu-Queue-Id: 51EACCA2D X-Spam-Score: 6.00 X-Migadu-Spam: Yes X-Migadu-Scanner: scn1.migadu.com X-TUID: j9X6NeBgUIZW --=-=-= Content-Type: text/plain Hi. I use Notmuch 0.31.2 on Emacs 27.1.50 (manually compiled on 2020-11-02) with matching version-pinned MELPA Stable Notmuch package on updated Debian buster. I have enabled buster-proposed-updates, buster-updates and buster-backports. I manually backport notmuch according to . I use OfflineIMAP 7.3.3 (Python 2 pip), afew 3.0.1 (pip3), Bogofilter 1.2.4 (buster) and a custom Python 3 script based on the ~notmuch~ module. Yesterday (when still on Notmuch 0.31) I noticed that, when I tagged a message or thread, the fido-mode completion offered many weird candidate tags that shouldn't exist in the database. Also, on the Notmuch Hello screen the ~All tags~ section would error out. I then dumped the database (~notmuch dump~) and noticed many lines associating weird tags to weird message ids. In almost every case, both the weird tags and the weird Message-Id contained uncommon characters, often ASCII control characters. One of the weird lines was " -- id:8"---specifying a message with Messaged-ID "8" and no tags. I tried ~notmuch show id:8~ and got an internal error---something like "message with document ID has no thread ID". I then upgraded Notmuch to 0.31.2 and compacted the database but the error persisted. I then manually cleaned up the database dump, deleted the ~/offlineimap/Jorge-Disroot/.notmuch/xapian/ directory, invoked ~notmuch new~, and ~notmuch restore~. I checked my backups from 2020-11-09 (no corruption) and 2011-11-16. That latest backup was from before I /noticed/ the corruption, but it was affected too. I then diffed backup 2020-11-09 with backup 2020-11-16; and then backup 2020-11-16 with the current dump. The diffs suggest that the error involved only the addition of invalid information; I suspect and hope that valid information was not lost. I attached my post-new Bash script and the Python 3 script it invokes. So you can see the weird lines I mentioned, I also attached the xz-compressed output of the command: diff -u notmuch_dump--manually_fixed notmuch_dump--corrupted > diff_notmuch_dump__manually_fixed--corrupted I have also saved the binary corrupted database. If you want to see it, then tell me and I may upload it to Disroot's Lufi instance. It should probably be shown to as few people as possible for the sake of my privacy. Finally, my notmuch config includes the following directives (the other directives are probably irrelevant to you): [new] tags=new ignore= [search] exclude_tags=deleted;spam;trash [maildir] synchronize_flags=true Regards --=-=-= Content-Type: application/x-xz Content-Disposition: attachment; filename=diff_notmuch_dump__manually_fixed--corrupted.xz Content-Transfer-Encoding: base64 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 Z/sCAAAAAARZWg== --=-=-= Content-Type: application/x-shellscript Content-Disposition: inline; filename=post-new Content-Transfer-Encoding: base64 Content-Description: Notmuch post-new hook IyEvYmluL2Jhc2gKCnRpbWUgc2ltcGxlbXVjaC5weSAtdiBmaWx0ZXIKCiMgTG9jYWwgVmFyaWFi bGVzOgojIGlzcGVsbC1sb2NhbC1kaWN0aW9uYXJ5OiAiZW5fVVMiCiMgRW5kOgo= --=-=-= Content-Type: text/x-python; charset=utf-8 Content-Disposition: inline; filename=simplemuch.py Content-Transfer-Encoding: quoted-printable Content-Description: My custom Python script for Notmuch filtering, Bogofilter spam-filtering and new message notification #!/usr/bin/env python3 """Mail filter (including anti-spam) and notifier for Notmuch. Track messages classified as spam (or ham) by Bogofilter via '.bf_spam' (resp. '.bf_ham' ) tags. Since afew removes the `new' tag, when notifying mail we track new messages with a temporary tag (option '--tmp' of `filter' subcommand) which we assume not to preexist in the database. These tags and that added by the user to spam messages can be customized via command-line options or, from Python, by modifying module-level constants or by via function arguments. This script is potentially affected by environment variables, files and directories that affect afew, Bogofilter, Notmuch or (obviously) Python3, including: 1. `NOTMUCH_CONFIG' =E2=80=93 location of Notmuch configuration file =E2=80= =93 and that file itself. 2. `BOGOFILTER_DIR' =E2=80=93 location of Bogofilter's database directory = =E2=80=93 and that directory itself. 3. afew configuration. WISH: Accept customizable "new" flags (currently we assume "new"). """ # WISH: Finish documenting the exceptions possibly raised by each function import logging import sys import time from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser, Namespa= ce from functools import partial from logging import handlers from subprocess import PIPE, STDOUT, Popen, run from typing import Any, Callable, Iterable, Optional, Tuple, Union from notmuch import Database, Message # https://wiki.archlinux.org/index.php/Desktop_notifications#Python import gi # isort:skip gi.require_version('Notify', '0.7') # pylint: disable=3Dwrong-import-position from gi.repository import Notify # noqa: E402 isort:skip Tags =3D Union[str, Iterable[str]] LOG =3D logging.getLogger(__name__) FILTER_ACTIONS =3D {'spam', 'general', 'notify'} # Defaults for command-line options BF_HAM =3D '.bf_ham' BF_SPAM =3D '.bf_spam' USER_SPAM =3D 'spam' TMP =3D '_simplemuch_tmp' class SimplemuchError(Exception): """Base class for simplemuch exception classes""" class NotmuchDatabaseNeedsUpgradeError(SimplemuchError): """needs_upgrade() returned True.""" # WISH Capture more information, e.g. return code and command line class BogofilterError(SimplemuchError): """Error from Bogofilter""" # def teste_mypy(i: int) -> None: # return i + '' def alert(summary: str, body: str, *args: Any, fun: Callable[..., None] =3D LOG.warning) -> None: """Show desktop notification -- `summary', `body' -- and log. Logs with fun(body, *args). """ if fun in (LOG.exception, LOG.error): kwargs =3D {'icon': 'dialog-error'} elif fun in (LOG.warn, LOG.warning): kwargs =3D {'icon': 'dialog-warning'} else: kwargs =3D {} Notify.Notification.new(summary, body % args, **kwargs).show() fun(body, *args) def safe_open_db_rw() -> Database: """Open Notmuch database for reading and writing and return it. Before returning, check if the database needs upgrade; if so, raise NotmuchDatabaseNeedsUpgradeError. """ nm_db =3D Database(mode=3DDatabase.MODE.READ_WRITE) if nm_db.needs_upgrade(): raise NotmuchDatabaseNeedsUpgradeError( 'Notmuch database needs upgrade. Exiting without action.\n' 'WISH Implement correct database upgrading') return nm_db def update(nm_db: Database, args: Namespace, query: str, opr: str) -> Tuple[int, float]: """Call bogofilter on messages matching `query', change their tags. Call `bogofilter' with command-line option `opr' (plus -bl) and feed it (via stdin) the filenames of messages matching Notmuch query `query'. For each such message, apply the corresponding tag change (according to `args.bf_spam' and `args.bf_ham'). `opr' must be in set('SsNn') (see bogofilter(1) for the meaning). Return the number of messages operated on and the elapsed time. This function is potentially affected by environment variables, files and directories that affect Bogofilter or Notmuch. TODO Handle bogofilter errors """ start =3D time.time() assert opr in set('SsNn') tag_ =3D args.bf_spam if opr in 'sS' else args.bf_ham if opr in 'sn': def tag(msg: Message) -> None: msg.add_tag(tag_) else: def tag(msg: Message) -> None: msg.remove_tag(tag_) num =3D 0 with Popen(('bogofilter', '-bl' + opr), stdin=3DPIPE, text=3DTrue, bufsize=3D1) as bogo: assert bogo.stdin # Placate mypy for msg in nm_db.create_query(query).search_messages(): bogo.stdin.write(msg.get_filename() + '\n') tag(msg) num +=3D 1 if bogo.returncode: raise BogofilterError(f'Bogofilter returned {bogo.returncode}') return num, time.time() - start def train(args: Namespace) -> None: """Train Bogofilter on the Notmuch database. According to how the user classified the given message (spam or ham), update Simplemuch tags (`args.bf_spam' and `args.bf_ham') and Bogofilter's database. We assume the user classified a message as spam if it is tagged `args.user_spam'; and he classified it as ham if it has been read but not tagged `args.user_spam'. Therefore we assume that: 1. Messages tagged `args.user_spam' are in fact spam. 2. Spammy read messages are tagged `args.user_spam'. 3. Messages tagged `args.bf_spam' are also tagged `args.user_spam', unless they are false positives. A problematic scenario is when the user reads spam in webmail but forgets to tag it as spam in Notmuch. This function is potentially affected by environment variables, files and directories that affect Bogofilter or Notmuch. """ with safe_open_db_rw() as nm_db: def train_(query: str, opr: str, obj: str) -> None: assert opr in set('SsNn') opr_ =3D 'Register' if opr in 'sn' else 'Unregister' end =3D f'{opr_}ed %d {obj} in %.3gs' LOG.info('%s %s', opr_, obj) num, dur =3D update(nm_db, args, query, opr) LOG.info(end, num, dur) bf_spam, bf_ham, user_spam =3D args.bf_spam, args.bf_ham, args.user= _spam train_(f'is:{user_spam} NOT is:{bf_spam}', 's', 'spam') train_(f'is:{bf_spam} NOT is:{user_spam}', 'S', '(false) spam') train_(f'NOT (is:{user_spam} is:unread is:{bf_ham})', 'n', 'ham') train_(f'is:{user_spam} AND is:{bf_ham}', 'N', '(false) ham') def count(nm_db: Database, query: str, exclude: Tags =3D ()) -> int: """Return Xapian=E2=80=99s best guess as to how many messages match `qu= ery'. `exclude', if provided, must contain tags to exclude from the count by default. A given tag will not be excluded if it appears explicitly in `query'. May raise: - `NullPointerError' if the query creation failed (e.g. too little memory). - `NotInitializedError' if the underlying db was not initialized. This function is potentially affected by environment variables, files and directories that affect Notmuch. WISH Find out and document what "best guess" means; this wording is from the documentation of notmuch Python bindings. """ query_ =3D nm_db.create_query(query) if isinstance(exclude, str): query_.exclude_tag(exclude) else: for tag in exclude: query_.exclude_tag(tag) return query_.count_messages() def filter_spam(nm_db: Database, query: str, ham: Optional[str] =3D None, spam: Optional[str] =3D None) -> None: """Filter (Bogofilter) the messages matching Notmuch query `query'. If Bogofilter classifies a given message as Spam/Ham then tag it `spam'/`ham' (defaulting to `BF_SPAM'/`BF_HAM'). This function is potentially affected by environment variables, files and directories that affect Bogofilter or Notmuch. """ tag =3D dict(H=3Dham or BF_HAM, S=3Dspam or BF_SPAM) with Popen(('bogofilter', '-blT'), stdin=3DPIPE, stdout=3DPIPE, text=3D= True, bufsize=3D1) as bogo: assert bogo.stdin and bogo.stdout # Placate mypy for msg in nm_db.create_query(query).search_messages(): bogo.stdin.write(msg.get_filename() + '\n') code =3D bogo.stdout.readline().split()[-2] if code !=3D 'U': msg.add_tag(tag[code]) msg_id =3D msg.get_message_id() LOG.debug('Message %s marked %s', msg_id, tag[code]) def tag_search(nm_db: Database, query: str, add: Tags =3D (), remove: Tags =3D ()) -> None: """Add/remove tags from messages matching Notmuch `query'. `nm_db' must be open for reading and writing. `query' should be a Notmuch query on whose results we should act. Operate atomically on the set of messages matching `query'. May raise: - `XapianError' =E2=80=93 see documentation of `begin_atomic()' and `end_atomic()' methods of `Database' - `NullPointerError' if notmuch query creation failed (e.g. too little memory) or `search_messages()' failed - `NotInitializedError' if the underlying db was not initialized - `NullPointerError' if a given tag is NULL - `TagTooLongError' if the length of a given tag exceeds notmuch.Message.NOTMUCH_TAG_MAX) - `ReadOnlyDatabaseError' if the database was opened in read-only mode - `NotInitializedError' if message has not been initialized This function is potentially affected by environment variables, files and directories that affect Notmuch. """ nm_db.begin_atomic() for msg in nm_db.create_query(query).search_messages(): if isinstance(add, str): msg.add_tag(add) else: for tag in add: msg.add_tag(tag) if isinstance(remove, str): msg.remove_tag(remove) else: for tag in remove: msg.remove_tag(tag) nm_db.end_atomic() def filter_notify(args: Namespace) -> None: """Filter mail (afew, Bogofilter and Notmuch) and notify. - `args.req' must be a container with elements of FILTER_ACTIONS we should act on (requested actions). - If \"args.req['spam']\" is True then `args.query' must be a string representing a Notmuch query (on whose results the spam filter will work) and `args.bf_ham', `args.bf_spam' must be the tags to add to messages that Bogofilter classifies as ham (resp. spam). - If `args.req' includes 'notify', we internally use a temporary tag =E2=80=93 args.tmp =E2=80=93 that we assume not to preexist in the No= tmuch database. This function is potentially affected by environment variables, files and directories that affect afew, Bogofilter or Notmuch. TODO Document the required Notmuch saved queries. TODO Document the DKIM filtering. """ if args.req['general'] or args.req['notify'] or args.req['spam']: with safe_open_db_rw() as nm_db: if args.req['spam']: filter_spam(nm_db, args.query, args.bf_ham, args.bf_spam) if args.req['general'] or args.req['notify']: # Afew will remove 'new' tag_search(nm_db, 'is:new', args.tmp) tmp_count =3D count(nm_db, f'is:{args.tmp}') pipe =3D partial(run, stdout=3DPIPE, text=3DTrue) try: if args.req['general'] or args.req['notify']: exclude =3D pipe( ('notmuch', 'config', 'get', 'search.exclude_tags'), check=3DTrue).stdout.rstrip('\n').split('\n') if args.req['general']: afew =3D pipe(('afew', '-tnv'), check=3DTrue, stderr=3DSTDOUT) LOG.info('\n%s', afew.stdout) exclude_dkim =3D '(%s)' % ' OR '.join( (f'is:{tag}' for tag in exclude + ['/dkim-.*/'])) # problem =3D ('1584638185559.1b10c882-e1e1-4993-8f01-bdbcb3b4a= fe2@' # '302036m.grancursosonline.com.br') dkim_query =3D f'(is:{args.tmp} -{exclude_dkim})' afew =3D pipe(('afew', '-tv', '-eDKIMValidityFilter', dkim_quer= y), stderr=3DSTDOUT) if afew.returncode: alert('DKIM filter error', 'afew DKIMValidityFilter returned %d:\n%s', afew.returncode, afew.stdout) else: LOG.info('\n%s', afew.stdout) if args.req['general'] or args.req['notify']: with safe_open_db_rw() as nm_db: if args.req['notify']: p_count =3D partial(count, nm_db, exclude=3Dexclude) tmp_notify =3D f'is:{args.tmp} query:simplemuch_notify' notify =3D p_count(tmp_notify) if notify: unread =3D p_count("query:simplemuch_unread") inbox_unread =3D p_count("query:simplemuch_INBOX_un= read") flagged =3D p_count("query:simplemuch_flagged") body =3D (f'\ Inbox: {unread} unread ({inbox_unread} INBOX), {flagged} flagged\n' + '\n'.join(msg.get_header('Subject') for msg= in nm_db.create_query( tmp_notify).search_messages())) summary =3D f'{notify} new messages.' Notify.Notification.new( summary, body, 'mail-message-new').show() tag_search(nm_db, 'is:' + args.tmp, remove=3Dargs.tmp) tmp_count =3D 0 finally: if (args.req['notify'] or args.req['general']) and tmp_count: body_fmt =3D '%d messages left tagged %s' alert('Dirty messages', body_fmt, tmp_count, args.tmp) # Commented out since I don't know a simple way to obtain the location of t= he # Bogofilter directory. It may not be `(~/.bogofilter)': see Bogofilter # man page section `ENVIRONMENT'. Maybe the `-x' flag can help. # def clean(db, args): # """Remove Bogofilter tags from all messages and remove `(~/.bogofilte= r)'""" # if not shutil.rmtree.avoids_symlink_attacks: # print("Warning: this `shutil.rmtree' is susceptible to symlink at= tacks.") # while True: # reply =3D input(prompt=3D # f"""Remove Bogofilter database directory and, from all Notmuch email mess= ages, # {args.bf_spam} and {args.bf_ham} tags? [y/N] """).lower() # if 'no'.startswith(reply): # return False # if 'yes'.startswith(reply): # shutil.rmtree(os.path.expanduser('~/.bogofilter')) # tag_search(db, f'is:{args.bf_spam}', remove=3D'f{args.bf_spam= }') # tag_search(db, f'is:{args.bf_ham}', remove=3Df'{args.bf_ham}') # return True # print( # 'Please provide a valid answer: "yes", "no" or a prefix, ' # 'case-insensitive', file=3Dsys.stderr) def parse_command_line() -> Namespace: """Parse sys.argv into a Namespace object""" parser =3D ArgumentParser( description=3D__doc__, formatter_class=3DArgumentDefaultsHelpFormatter) parser.add_argument( '--version', action=3D'version', version=3D'Simplemuch alpha') parser.add_argument('-v', '--verbose', action=3D'store_true', help=3D'Output log messages also to stderr') parser.add_argument( '--bf_spam', default=3DBF_SPAM, metavar=3D'TAG', help=3D'Tag for bogofilter-flagged spam') parser.add_argument( '--bf_ham', default=3DBF_HAM, metavar=3D'TAG', help=3D'Tag for bogofilter-flagged ham') parser.add_argument( '--user_spam', default=3DUSER_SPAM, metavar=3D'TAG', help=3D'Tag for user-flagged spam') parser.add_argument( '--loglevel', default=3D'INFO', help=3D"""\ Severity threshold for logging; logging messages less severe are discarded. For the allowed values see https://docs.python.org/3/howto/logging.html""") subparsers =3D parser.add_subparsers( title=3D'Subcommands', required=3DTrue, description=3D'Specify exac= tly one') parser_filter =3D subparsers.add_parser( 'filter', help=3D"""Filter mail. By default (see `--skip'), filter= out spam, then do general mail filtering (with afew) and then, dependin= g on the new messages, notify.""") parser_filter.add_argument( '--skip', choices=3DFILTER_ACTIONS, nargs=3D'+', help=3D'Actions to= skip', default=3D()) # WISH: append a random suffix parser_filter.add_argument( '--tmp', metavar=3D'TEMPORARY_TAG', default=3DTMP, help=3D'Temporary tag for internal use; assumed by this script' ' not to preexist in the database') parser_filter.add_argument( 'query', nargs=3D'?', default=3D'is:new', help=3D'The Notmuch query whose result will be spam-filtered') parser_filter.set_defaults(func=3Dfilter_notify) parser_train =3D subparsers.add_parser( 'train', help=3D"""Train bogofilter. We assume the user classified a message as spam if it is tagged `args.user_spam'; and he classified a message as ham if it has been read but not tagged `args.user_spam'. Therefore we assume that: 1. Messages tagged `args.user_spam' are in fact spam. 2. Spammy read messages are tagged `args.user_spam'. 3. Messages tagged `args.bf_spam' are also tagged `args.user_spam', unless they are false positives. A problematic scenario is when the user reads spam in webmail but forgets to tag it spam in Notmuch.""") parser_train.set_defaults(func=3Dtrain) # parser_clean =3D subparsers.add_parser( # 'clean', # help=3D"Remove Bogofilter tags from all messages and remove " # "`(~/.bogofilter)'") # parser_clean.set_defaults(func=3Dclean) args =3D parser.parse_args() args.req =3D {a: args.func is filter_notify and a not in args.skip for a in FILTER_ACTIONS} # Requested actions return args def main() -> None: """Run as script: set up logging, parse sys.argv, execute.""" # WISH Maybe change the type of socket. See SysLogHandler documentation handler1 =3D handlers.SysLogHandler( address=3D'/dev/log', facility=3Dhandlers.SysLogHandler.LOG_MAIL) formatter =3D logging.Formatter( '%(module)s[%(process)d].%(funcName)s: %(levelname)s: %(message)s') handler1.setFormatter(formatter) LOG.addHandler(handler1) try: args =3D parse_command_line() # https://www.python.org/dev/peps/pep-0008/#programming-recommendat= ions except: # noqa: E722 LOG.exception( 'Exception occurred while parsing command line ("%s")', sys.arg= v) raise try: if args.verbose: handler2 =3D logging.StreamHandler() handler2.setFormatter(formatter) LOG.addHandler(handler2) level_num =3D getattr(logging, args.loglevel.upper(), None) if not isinstance(level_num, int): raise ValueError('Invalid log level: %s' % args.loglevel) LOG.setLevel(level_num) if args.req['notify']: # WISH Compute name from sys.argv[0], like argparse? Notify.init('Simplemuch') args.func(args) except: # noqa: E722 alert('Exception occurred', 'Command line: "%s"; parsed: %s', sys.a= rgv, args, fun=3DLOG.exception) raise if __name__ =3D=3D '__main__': main() # Local Variables: # ispell-local-dictionary: "en_US" # End: --=-=-= Content-Type: text/plain -- - - If an email of mine arrives at your spam box, please notify me. - Please adopt free/libre formats like PDF, ODF, Org, LaTeX, Opus, WebM and 7z. - Free/libre software for Replicant, LineageOS and Android: https://f-droid.org - [[https://www.gnu.org/philosophy/free-sw.html][What is free software?]] --=-=-= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline --=-=-=--