Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | db: implement an email message cachemsg_cache | Anton Khirnov | 2021-05-13 |
| | | | | | Not in master because it doesn't seem to be the bottleneck, didn't check whether the difference is measurable. | ||
* | utils/cached_property: replace with the stdlib implementation | Anton Khirnov | 2021-05-13 |
| | |||
* | db/message: stop loading the email in the constructor | Anton Khirnov | 2021-05-13 |
| | | | | | | | The last bit of code in the constructor accessing the email was the chunk parsing the author. Move it to the author accessor, and also make it use the 'From' header value loaded from the Notmuch message (which is stored in the database). | ||
* | db/message: turn _email and body into cached properties | Anton Khirnov | 2021-05-13 |
| | | | | | Does not really change much for now, since the email is still loaded in the constructor, but will allow optimization later. | ||
* | db/message: remove get_email() | Anton Khirnov | 2021-05-13 |
| | | | | | It has no more callers left. The email object should no longer be accessed directly. | ||
* | commands/thread:ReplyCommand: stop calling get_email() | Anton Khirnov | 2021-05-13 |
| | |||
* | commands/thread:ReplyCommand: use the message headers object in ↵ | Anton Khirnov | 2021-05-13 |
| | | | | determine_sender() | ||
* | commands/thread:ReplyCommand: use the message headers object for building reply | Anton Khirnov | 2021-05-13 |
| | |||
* | commands/thread:ReplyCommand: simplify list-reply logic | Anton Khirnov | 2021-05-13 |
| | |||
* | commands/thread:ReplyCommand: factor out list-reply logic | Anton Khirnov | 2021-05-13 |
| | |||
* | commands/thread:ReplyCommand: use the headers object for accessing List-Id | Anton Khirnov | 2021-05-13 |
| | |||
* | commands/thread:ReplyCommand: factor out building reply subject | Anton Khirnov | 2021-05-13 |
| | |||
* | commands/thread: use the headers object for building reply subject | Anton Khirnov | 2021-05-13 |
| | |||
* | settings/manager: handle future dates in _pretty_datetime() | Anton Khirnov | 2021-05-10 |
| | |||
* | buffers/thread: cosmetics, vertical alignment | Anton Khirnov | 2021-04-01 |
| | |||
* | buffers/thread: sanitize thread subject in info | Anton Khirnov | 2021-04-01 |
| | |||
* | widgets/thread: disregard whitespace-only alternatives | Anton Khirnov | 2021-03-18 |
| | |||
* | db/manager: optimize database modifications | Anton Khirnov | 2021-03-18 |
| | | | | | | | Add only tags that are not present on the message, remove only tags that are present. Otherwise the no-op modification results in an actual db write, even though nothing changes. | ||
* | commands/thread: use MimeTree properties instead of accessing email directly | Anton Khirnov | 2021-03-16 |
| | |||
* | settings/manager: remove newlines from headers during sanitization | Anton Khirnov | 2021-03-01 |
| | |||
* | commands/search: fix sort order in RefineCommand | Anton Khirnov | 2021-02-22 |
| | |||
* | commands/thread:ReplyCommand: drop unnecessary call to parseaddr() | Anton Khirnov | 2021-02-10 |
| | |||
* | commands/thread:ReplyCommand: drop unnecessary instance variable | Anton Khirnov | 2021-02-10 |
| | |||
* | commands/thread: stop calling get_email in ForwardCommand | Anton Khirnov | 2021-02-10 |
| | | | | Serialize the message and deserialize it again to avoid modifying it. | ||
* | commands/thread: stop calling get_email in BounceCommand | Anton Khirnov | 2021-02-10 |
| | | | | Serialize the message and deserialize it again to avoid modifying it. | ||
* | commands/thread: remove unused import | Anton Khirnov | 2021-02-10 |
| | |||
* | Add common message text sanitization. | Anton Khirnov | 2021-02-10 |
| | |||
* | Cosmetics, clean up imports | Anton Khirnov | 2021-02-10 |
| | |||
* | widgets/search: display the number of matching messages in the thread | Anton Khirnov | 2021-02-10 |
| | |||
* | buffers/search: do not pass dbman into IterWalker | Anton Khirnov | 2021-02-10 |
| | | | | | Use functools.partial to keep the widget construction logic out of IterWalker, since it should not handle such details. | ||
* | db/message: handle text MIME with invalid charsets | Anton Khirnov | 2021-02-08 |
| | |||
* | commands/thread: refactor applying the tag command | Anton Khirnov | 2021-02-07 |
| | | | | Do all the changes in one batch rather than separately. | ||
* | commands/search: refactor applying the tag command | Anton Khirnov | 2021-02-07 |
| | | | | Apply toggle as a single db write rather than two. | ||
* | db/manager: rewrite db write operation API | Anton Khirnov | 2021-02-07 |
| | | | | Allows to apply multiple operations together as a single unit. | ||
* | db/manager: use only one worker thread for write operations | Anton Khirnov | 2021-02-05 |
| | | | | | There is no point in having more, as the database cannot have more than one writer at any moment. | ||
* | commands/thread: add --thread option to tagging commands | Anton Khirnov | 2021-02-04 |
| | | | | | Makes the command affect the whole thread, rather than just those messages matching the query. | ||
* | settings/manager: do not report an exception when hooks file is missing | Anton Khirnov | 2021-02-04 |
| | | | | | | That is a normal situation, just log an info message. Raise an exception when the hooks file exists but cannot be loaded. | ||
* | buffers/namedqueries: add a hook for sorting queries | Anton Khirnov | 2021-02-04 |
| | |||
* | commands/thread: drop the select command | Anton Khirnov | 2021-02-03 |
| | | | | | | It no longer makes sense since the buffer has been split into two windows. Replace it with a new 'openattachment' command for opening attachments. | ||
* | Fix access to Attachment filename. | Anton Khirnov | 2021-02-01 |
| | |||
* | mail/attachment: add methods forgotten in 309fb25e | Anton Khirnov | 2021-02-01 |
| | |||
* | buffers/search: fix handling malformed queries | Anton Khirnov | 2021-01-31 |
| | |||
* | buffers/search: remove unused variable | Anton Khirnov | 2021-01-31 |
| | |||
* | Add forgotten __init__.py files | Anton Khirnov | 2021-01-31 |
| | |||
* | db: use symbolic constants for sort orders | Anton Khirnov | 2021-01-31 |
| | |||
* | db: drop unused module-level imports | Anton Khirnov | 2021-01-30 |
| | |||
* | db/manager: handle notmuch exceptions in count_* | Anton Khirnov | 2021-01-30 |
| | |||
* | mail/envelope: document Envolope.attach_file() | Anton Khirnov | 2021-01-30 |
| | |||
* | db/attachment: move to mail/ | Anton Khirnov | 2021-01-30 |
| | | | | It has nothing whatsoever to do with the database. | ||
* | db/attachment: simplify the Attachment class | Anton Khirnov | 2021-01-30 |
| | | | | | Make it a plain container around raw data and a few bits of metadata, rather than around a whole MIME part. |