summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* db: implement an email message cachemsg_cacheAnton Khirnov2021-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 implementationAnton Khirnov2021-05-13
|
* db/message: stop loading the email in the constructorAnton Khirnov2021-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 propertiesAnton Khirnov2021-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 Khirnov2021-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 Khirnov2021-05-13
|
* commands/thread:ReplyCommand: use the message headers object in ↵Anton Khirnov2021-05-13
| | | | determine_sender()
* commands/thread:ReplyCommand: use the message headers object for building replyAnton Khirnov2021-05-13
|
* commands/thread:ReplyCommand: simplify list-reply logicAnton Khirnov2021-05-13
|
* commands/thread:ReplyCommand: factor out list-reply logicAnton Khirnov2021-05-13
|
* commands/thread:ReplyCommand: use the headers object for accessing List-IdAnton Khirnov2021-05-13
|
* commands/thread:ReplyCommand: factor out building reply subjectAnton Khirnov2021-05-13
|
* commands/thread: use the headers object for building reply subjectAnton Khirnov2021-05-13
|
* settings/manager: handle future dates in _pretty_datetime()Anton Khirnov2021-05-10
|
* buffers/thread: cosmetics, vertical alignmentAnton Khirnov2021-04-01
|
* buffers/thread: sanitize thread subject in infoAnton Khirnov2021-04-01
|
* widgets/thread: disregard whitespace-only alternativesAnton Khirnov2021-03-18
|
* db/manager: optimize database modificationsAnton Khirnov2021-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 directlyAnton Khirnov2021-03-16
|
* settings/manager: remove newlines from headers during sanitizationAnton Khirnov2021-03-01
|
* commands/search: fix sort order in RefineCommandAnton Khirnov2021-02-22
|
* commands/thread:ReplyCommand: drop unnecessary call to parseaddr()Anton Khirnov2021-02-10
|
* commands/thread:ReplyCommand: drop unnecessary instance variableAnton Khirnov2021-02-10
|
* commands/thread: stop calling get_email in ForwardCommandAnton Khirnov2021-02-10
| | | | Serialize the message and deserialize it again to avoid modifying it.
* commands/thread: stop calling get_email in BounceCommandAnton Khirnov2021-02-10
| | | | Serialize the message and deserialize it again to avoid modifying it.
* commands/thread: remove unused importAnton Khirnov2021-02-10
|
* Add common message text sanitization.Anton Khirnov2021-02-10
|
* Cosmetics, clean up importsAnton Khirnov2021-02-10
|
* widgets/search: display the number of matching messages in the threadAnton Khirnov2021-02-10
|
* buffers/search: do not pass dbman into IterWalkerAnton Khirnov2021-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 charsetsAnton Khirnov2021-02-08
|
* commands/thread: refactor applying the tag commandAnton Khirnov2021-02-07
| | | | Do all the changes in one batch rather than separately.
* commands/search: refactor applying the tag commandAnton Khirnov2021-02-07
| | | | Apply toggle as a single db write rather than two.
* db/manager: rewrite db write operation APIAnton Khirnov2021-02-07
| | | | Allows to apply multiple operations together as a single unit.
* db/manager: use only one worker thread for write operationsAnton Khirnov2021-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 commandsAnton Khirnov2021-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 missingAnton Khirnov2021-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 queriesAnton Khirnov2021-02-04
|
* commands/thread: drop the select commandAnton Khirnov2021-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 Khirnov2021-02-01
|
* mail/attachment: add methods forgotten in 309fb25eAnton Khirnov2021-02-01
|
* buffers/search: fix handling malformed queriesAnton Khirnov2021-01-31
|
* buffers/search: remove unused variableAnton Khirnov2021-01-31
|
* Add forgotten __init__.py filesAnton Khirnov2021-01-31
|
* db: use symbolic constants for sort ordersAnton Khirnov2021-01-31
|
* db: drop unused module-level importsAnton Khirnov2021-01-30
|
* db/manager: handle notmuch exceptions in count_*Anton Khirnov2021-01-30
|
* mail/envelope: document Envolope.attach_file()Anton Khirnov2021-01-30
|
* db/attachment: move to mail/Anton Khirnov2021-01-30
| | | | It has nothing whatsoever to do with the database.
* db/attachment: simplify the Attachment classAnton Khirnov2021-01-30
| | | | | Make it a plain container around raw data and a few bits of metadata, rather than around a whole MIME part.