Commit Graph

2559 Commits (ca7eb7928439e3f42031677f7e7cbb1b1fdb4013)
 

Author SHA1 Message Date
Manos Pitsidianakis ca7eb79284
jmap: Implement deleting email
Finally!

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 39592ad02c
jmap: implement changing mailbox subscription
Finally!

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 6d0d968040
jmap: move EmailObject state to Store
State is per account, not per mailbox, so move it to the per-account
store.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 9865211076
CI: prepend printf commands with @
In Makefiles, prepending a command with @ will not print the command
being executed, only its result. Do this for `printf`s.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 4f927bbe64
nntp: properly return all nntp mailboxes
Previously only mailboxes specified in the configuration were fetched.
Now, all groups returned by `LIST ACTIVE` are examined with the
`is_subscribed` function.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 5915f125c3
backends: use IsSubscribedFn in method signatures
Despite having the IsSubscribedFn struct wrapper for closures that check
if a mailbox is subscribed or not, backend methods were still using
  Box<dyn Fn(... types. Switch to using the wrapper newtype everywhere.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis cd2e4bf3a4
melib/utils: vendor urn crate
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis a6c7621ce3
jscontact: add {created,updated} fields
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
2 weeks ago
Manos Pitsidianakis 7dee32ae88
contacts: refactor Card to its own module
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 32f7e50fd4
Add version migration support
Add infrastructure for custom logic migration support between versions,
allowing breaking changes in for example configuration to be handled by
the application instead of the user.

The current version will be stored in ${XDG_DATA_HOME}/meli/.version

If at launch the versions do not match, the application will examine
whether there are any migrations in the range
previous_version..=current_version, and if they are applicable to the
user's case, it will ask the user to perform them interactively.

Support for reverting migrations is also added.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 49dcbc5e58
terminal: Extend Ask default actions, prompts
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 2069b4da09
errors: impl From<xdg::BaseDirectoriesError>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 8af003abd0
Rename addressbook stuff to "contacts"
Wasn't a nice name to begin with.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 593ed22ba1
pgp: perform gpgme's sign+encrypt manually
gpgme's sign and encrypt API doesn't seem to work properly; it only
encrypts for some reason. Do it manually which according to RFC 3156 -
MIME Security with OpenPGP is to sign first then encrypt the whole
thing.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis e032acfab7
view: pass filtered body to Composer as reply text
When replying to an e-mail, pass the filtered e-mail text to the
composer. This way, processed text like decrypted PGP e-mail is shown in
the reply context of a reply as the user expects.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis e0cfe8e4d7
Fix compilation for 32-bit architectures
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 2001b4dd06
Make `subscribed_mailboxes` conf val optional
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 1b201bf611
Remove GlobMatch trait, replace usage with Fnmatch
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis be3b3ef89b
melib/utils: add fnmatch(3) interface
Meant for use with mailbox path globbing.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 7f0157a966
compose: make dialogs bigger in height
Otherwise they might be hidden in small screens.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 7e800a8f3f
CI: move manifest_lints.yaml actions to Makefile.manifest-lints
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 598a70f9df
CI: move lints.yaml actions to Makefile.lint
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 1b3f2732b2
CI: Move build.yaml actions to Makefile.build
So that they can easily be performed locally with

make -f .gitea/Makefile.build

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis e6fa7093bf
view/envelope: trim headers values to 3 lines maximum
Prevent large header values (e.g. big list of recipients in To/Cc) take
big part of the view. Allow the full value to be visible when the
`expand_headers` option is toggled on.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 0b6988b7cf
gpgme: add always trust flag to encrypt op
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 23395491db
compose/pgp: add encrypt_for_self flag
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis c82341f3af
File: try trimming filename if ENAMETOOLONG
Commit 8f0e1d6640 added human-readable
identifiers in temp draft files but neglected to handle cases where
those identifiers were too darn long.

Fixes: 8f0e1d664 ("Add human-readable identifiers in temp draft files")
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis b1f24cbe95
view/filters: forward events on child filters
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis a69122f8b0
pgp: use default sign/encrypt keys when no keys are selected
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
4 weeks ago
Manos Pitsidianakis 7cfcbb7ab1
Add patch_retrieve module
Allow patches to be retrieved from sources like lore.kernel.org or other
public-inbox instances.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 128b959f36
nntp: prepend Newsgroups header if missing on NntpType::submit()
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis b27bac7f85
nntp: use DEFLATE when available by default
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 6eeb4571b7
nntp: make all fields public
The backend structs are public, fields should be public too.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 9a9cd03d9d
nntp: add NntpType::article_message_id() method
Add a method to retrieve an article by message id.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 592ce15903
mbox: use Uuid::nil() as default envelope from
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis fc3308e428
melib: Add Mail::as_mbox() method
While at it, cleanup Debug impl to prevent printing huge byte arrays.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis b33433e457
Don't create backends as Box<dyn MailBackend>, but as Box<Self>
It's unnecessary and makes it difficult for an API consumer to turn a
backend back to its original type.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 5f120309f9
nntp: add select_group_by_name() method
Add NntpConnection::select_group_by_name() method.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 6bc0caf4e0
melib: remove redundant get_path_hash macro
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis d4636bcc70
nntp: interpret IMPLEMENTATION cap as metadata
When returning MailBackendCapabilities for an Nntp backend, interpret
the IMPLEMENTATION capability as server metadata.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis aaea3a5ab4
nntp: add timeout conf flag
To match IMAP and JMAP, add a configuration flag `timeout` to use for
server connections.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis b048c95a86
BUILD.md: add instructions for Android build
With termux's unofficial Rust toolchain package.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis f78884ce02
melib/nntp: fix an ancient FIXME
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 571ae390b8
pager.rs: don't set self dirty after filter selector
After generating a filter selector global dialog, there's no need to
set self as dirty.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 2ddd28ee85
main.rs: always send a JobFinished event to all components
JobFinished events were sent from account job handlers, but that means
the events would never be generated when using meli without accounts
e.g. with the `view` subcommand.

Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 7dbee81dad
view: fix nested filter jobs never being completed
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 46b2c3b1f7
Add listing.thread_layout config flag
Allows the user to set the default thread layout and takes the values
"auto" | "vertical" | "horizontal". The layout can always be changed at
runtime with the `listing.toggle_layout` shortcut.

Closes #484

Resolves: <https://git.meli-email.org/meli/meli/issues/484>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis d0c81749ee
conf::data_types: minor style and error msg fixups
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis ba3ad8ed18
listing: always show mail_view_divider
`mail_view_divider` was only drawn in the path where the sidebar was
visible.

Concerns #483

Fixes: 719e2eb271 ("listing: add customizable view divider like sidebar's")
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago
Manos Pitsidianakis 719e2eb271
listing: add customizable view divider like sidebar's
Closes #483

Resolves: <https://git.meli-email.org/meli/meli/issues/483>
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
1 month ago