| Commit message (Collapse) | Author | Age |
... | |
|
|
|
| |
It has nothing whatsoever to do with the database.
|
|
|
|
|
| |
Make it a plain container around raw data and a few bits of metadata,
rather than around a whole MIME part.
|
|
|
|
| |
It has nothing to do with the database.
|
|
|
|
|
|
|
|
|
|
| |
email.mime is a part of the old API, which does not mix well with the
new one (i.e. when email.policy.SMTP is used), specifically when
non-ASCII headers are used.
Additionally, clean the APIs that accept either EmailMessage or a str to
only expect EmailMessage. Supporting both just adds confusion and
complexity.
|
| |
|
|
|
|
| |
It is only used inside one function.
|
| |
|
|
|
|
|
|
| |
We should not try to guess anything, just use the platform encoding.
Remove helper.try_decode(), as it has no more callers.
|
|
|
|
|
|
|
| |
It does not actually save any code. The new code also uses a shell as is
documented.
Remove call_cmd(), as it no longer has any callers.
|
|
|
|
|
|
|
| |
It does not actually save any code. The new code also uses a shell as is
documented.
Remove call_cmd_async(), as it no longer has any callers.
|
|
|
|
|
|
|
|
|
|
|
| |
Add a class that encapsulates the handler and is responsible for
managing the temporary file, if one is needed.
Use this class for both rendering inline content and displaying
attachments externally.
External attachments are now wrapped in an asyncio task that is added to
a pool of tasks managed by ui.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
It just adds unnecessary type confusion.
In most places where it is used, the types are always str, so it does
nothing. In the few others, the encoding/decoding is better handled
explicitly.
|
| |
|
| |
|
|
|
|
| |
Should produce better results in most situations.
|
| |
|
|
|
|
|
| |
This is a temporary hack, it should properly be handled consistently in
future Message serializing API.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Those are tags like attachment, signed, sent, etc., which are set
automatically based on message properties and are typically not changed
manually.
Such designated tags are not affected by the retag operation.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This is not implemented in notmuch2 and does not really belong in alot.
It can be done better through the notmuch utility.
|
| |
|
| |
|
|
|
|
| |
This code only wants the messages themselves, not the widgets.
|
| |
|
|
|
|
|
|
|
|
|
| |
Do not recreate all the widgets on every update, just update the widget
contents.
Make the statusbar update async, since some calls to get_info() can take
a long time (especially noticeable for counting threads for searches
with many results).
|
|
|
|
| |
It is only ever called from here, separating them makes little sense.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of allowing the callers to access the email part directly,
introduce a new class for representing the MIME tree structure. All
interaction with the message content should now happen through this
class (some instances of direct access still remain and will be removed
later).
Encrypted/signed parts are now also handled through this structure
rather than using a fragile hack of attaching the decrypted message to
the encrypted one and using fake headers to signal
encryption/signatures.
Message body rendering is now done by walking through the whole MIME
tree and considering all the parts for rendering rather than picking one
specific part.
|
| |
|
|
|
|
|
|
| |
This also prevents it from modifying the message as it previously did
with add_tags. As a consequence, tags are now added to the beginning of
the message rather than at the end of header.
|
|
|
|
|
|
|
| |
It has no relation to database, so helper seems like a better place for
it.
As there is nothing left in db/utils, it is removed.
|
|
|
|
|
| |
They are only used in a single file, so there is no point in keeping
them elsewhere.
|
|
|
|
|
| |
It is only called from there, so there is no reason to keep it
elsewhere.
|
|
|
|
|
| |
It is used in only one place and does something so extremely simple it
does not need to be a special imported function.
|
|
|
|
|
|
|
|
| |
It is almost entirely unnecessary - python's email messages decode the
headers themselves. Do the "normalization" bit directly in the single
place where it is done, though properly there should be more thorough
message text sanitization somewhere (most likely in our message
wrapper).
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The top part displayes the thread structure, the bottom half the message
body. This makes more sense then displaying the message inside the tree
structure and makes it easier to implement features such as folding a
part of the message body.
Drop commands related to folding, since that functionality does not
exist anymore.
|
| |
|
| |
|
|
|
|
| |
This is more correct.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Their API is misdesigned - forces the use of trees for nontree objects
and mixes data relationships with display properties. The result is a
mess that is hard to understand/maintain/extend.
Replace the use of urwidtrees with urwid Pile and ListBox. This
temporarily removes tree-style indentation and decorations for thread
buffers. That will be reimplemented in following commits.
|
|
|
|
|
| |
It should be cleaner and easier to use, and eventually replace the
custom tree walker in the thread display buffer.
|