Ver código fonte

Upgrade dependencies, fix build

alex wennerberg 4 meses atrás
pai
commit
2b6e7a58cb
4 arquivos alterados com 35 adições e 21 exclusões
  1. 29 10
      Cargo.lock
  2. 1 1
      Cargo.toml
  3. 2 2
      src/config.rs
  4. 3 8
      src/models.rs

+ 29 - 10
Cargo.lock

@@ -4,9 +4,15 @@ version = 3
 
 [[package]]
 name = "anyhow"
-version = "1.0.56"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "crabmail"
@@ -20,11 +26,20 @@ dependencies = [
  "urlencoding",
 ]
 
+[[package]]
+name = "encoding_rs"
+version = "0.8.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
+dependencies = [
+ "cfg-if",
+]
+
 [[package]]
 name = "linkify"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccbcd666d915aa3ae3c3774999a9e20b2776a018309b8159d07df062b91f45e8"
+checksum = "28d9967eb7d0bc31c39c6f52e8fce42991c0cd1f7a2078326f0b7a399a584c8d"
 dependencies = [
  "memchr",
 ]
@@ -36,8 +51,12 @@ source = "git+https://github.com/alexwennerberg/mail-builder#f276c3625316cafb570
 
 [[package]]
 name = "mail-parser"
-version = "0.4.8"
-source = "git+https://github.com/stalwartlabs/mail-parser#0064d3443a67c2f50e462e6c2339505463980d8e"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4158a1c18963244e083888b21465846dfb68d6170850ed1ab4742edd57c9d47"
+dependencies = [
+ "encoding_rs",
+]
 
 [[package]]
 name = "memchr"
@@ -47,12 +66,12 @@ checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
 
 [[package]]
 name = "once_cell"
-version = "1.10.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "urlencoding"
-version = "2.1.0"
+version = "2.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68b90931029ab9b034b300b797048cf23723400aa757e8a2bfb9d748102f9821"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"

+ 1 - 1
Cargo.toml

@@ -12,6 +12,6 @@ anyhow = "1.0.52"
 linkify = "0.8.0" 
 # using my fork just to upstream patches faster.
 mail-builder = {git = "https://github.com/alexwennerberg/mail-builder"}
-mail-parser = { git = "https://github.com/stalwartlabs/mail-parser", default-features=false, tag = "0.8.2" }
+mail-parser = "0.8.2"
 once_cell = "1.9.0"
 urlencoding = "2.1.0"

+ 2 - 2
src/config.rs

@@ -10,7 +10,7 @@
 // NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
 // OF THIS SOFTWARE.
 
-use once_cell::sync::OnceCell;
+use std::sync::OnceLock;
 use std::fs::File;
 use std::io::{self, BufRead};
 use std::path::{Path, PathBuf};
@@ -66,7 +66,7 @@ impl Subsection {
     }
 }
 
-pub static INSTANCE: OnceCell<Config> = OnceCell::new();
+pub static INSTANCE: OnceLock<Config> = OnceLock::new();
 
 impl Config {
     pub fn global() -> &'static Config {

+ 3 - 8
src/models.rs

@@ -2,7 +2,7 @@ use crate::config::{Config, Subsection};
 use crate::threading::{Msg, ThreadIdx};
 use mail_builder::headers::date::Date;
 use mail_builder::MessageBuilder;
-use mail_parser::{Addr, DateTime, HeaderValue, Message, RfcHeader};
+use mail_parser::{Addr, DateTime, HeaderValue, MimeHeaders, Message, RfcHeader};
 use std::borrow::Cow;
 use std::path::PathBuf;
 
@@ -254,13 +254,8 @@ impl StrMessage {
             .unwrap_or(Cow::Borrowed("[No message body]"));
 
         // life is a nightmare
-        let flowed = msg
-            .text_part(0)
-            .and_then(|x| x.headers.get(&RfcHeader::ContentType))
-            .and_then(|x| x.as_content_type_ref())
-            .and_then(|x| x.attributes.as_ref())
-            .and_then(|x| x.get("format"))
-            .map_or(false, |x| x == "flowed");
+        let flowed = msg.content_type()
+            .map_or(false, |x| x.c_type == "flowed");
         StrMessage {
             id: id.to_owned(),
             subject: subject.to_owned(),