From 45f18510227f6379521d357f14cc4fcca0067892 Mon Sep 17 00:00:00 2001 From: Jonathan Norris Date: Tue, 2 Dec 2025 08:07:54 +0100 Subject: [PATCH] fix: adding fix for newline after < in german gmails --- lib/regex.ts | 7 +++---- .../fixtures/email_gmail_split_line_from_german.txt | 13 +++++++++++++ test/test.js | 11 +++++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 test/fixtures/email_gmail_split_line_from_german.txt diff --git a/lib/regex.ts b/lib/regex.ts index 1d094bb..cef1029 100644 --- a/lib/regex.ts +++ b/lib/regex.ts @@ -34,14 +34,13 @@ class RegexList { /^-*\s*(On\s.+\s.+\n?wrote:{0,1})\s{0,1}-*$/m, // On DATE, NAME wrote: /^-*\s*(Le\s.+\s.+\n?écrit\s?:{0,1})\s{0,1}-*$/m, // Le DATE, NAME a écrit : /^-*\s*(El\s.+\s.+\n?escribió:{0,1})\s{0,1}-*$/m, // El DATE, NAME escribió: - /^-*\s*(Il\s.+\s.+\n?scritto:{0,1})\s{0,1}-*$/m, // Il DATE, NAME ha scritto: - /^-*\s*(Em\s.+\s.+\n?escreveu:{0,1})\s{0,1}-*$/m, // Em DATE, NAME ha escreveu: - /^\s*(Am\s.+\s)\n?\n?schrieb.+\s?(\[|<).+(\]|>):$/m, // Am DATE schrieb NAME : + /^-*\s*(Il\s.+\s.+\n?scritto:{0,1})\s{0,1}-*$/m, // Il DATE, NAME ha scritto: + /^-*\s*(Em\s.+\s.+\n?escreveu:{0,1})\s{0,1}-*$/m, // Em DATE, NAME ha escreveu: /^\s*(Op\s[\s\S]+?\n?schreef[\s\S]+:)$/m, // Il DATE, schreef NAME : /^\s*((W\sdniu|Dnia)\s[\s\S]+?(pisze|napisał(\(a\))?):)$/mu, // W dniu DATE, NAME pisze|napisał: /^\s*(Den\s.+\s\n?skrev\s.+:)$/m, // Den DATE skrev NAME : /^\s*(pe\s.+\s.+\n?kirjoitti:)$/m, // pe DATE NAME kirjoitti: - /^\s*(Am\s.+\sum\s.+\s\n?schrieb\s.+:)$/m, // Am DATE um TIME schrieb NAME: + /^\s*(Am\s.+\s\n?\n?schrieb.+\s?((\[|<)\n?.+(\]|>))?):$/m, // Am DATE schrieb NAME : OR Am DATE um TIME schrieb NAME : (with optional newline after <) /^\s*(ср\,\s.+\n? г\. в\s.+,\s.+[\[|<].+[\]|>]:)$/m, // ср, DATE г. в TIME, NAME : /^(在[\s\S]+写道:)$/m, // > 在 DATE, TIME, NAME 写道: /^(20[0-9]{2}\..+\s작성:)$/m, // DATE TIME NAME 작성: diff --git a/test/fixtures/email_gmail_split_line_from_german.txt b/test/fixtures/email_gmail_split_line_from_german.txt new file mode 100644 index 0000000..b0212c3 --- /dev/null +++ b/test/fixtures/email_gmail_split_line_from_german.txt @@ -0,0 +1,13 @@ +Fusce bibendum, quam hendrerit sagittis tempor, dui turpis tempus erat, pharetra sodales ante sem sit amet metus. +Nulla malesuada, orci non vulputate lobortis, massa felis pharetra ex, convallis consectetur ex libero eget ante. +Nam vel turpis posuere, rhoncus ligula in, venenatis orci. Duis interdum venenatis ex a rutrum. +Duis ut libero eu lectus consequat consequat ut vel lorem. Vestibulum convallis lectus urna, +et mollis ligula rutrum quis. Fusce sed odio id arcu varius aliquet nec nec nibh. + +Am Fr., 28. Nov. 2025 um 15:57 Uhr schrieb Test Mailer < +testing@testing.com>: + +> Test +> Respond +> +> \ No newline at end of file diff --git a/test/test.js b/test/test.js index 6c8aa0e..5a68281 100644 --- a/test/test.js +++ b/test/test.js @@ -456,6 +456,17 @@ export function test_email_gmail(test) { test.done(); } +export function test_email_gmail_split_line_german(test) { + let email = get_email("email_gmail_split_line_from_german"); + + let fragments = email.getFragments(); + + test.equal(COMMON_FIRST_FRAGMENT, fragments[0].toString().trim()); + test.equal(2, fragments.length); + + test.done(); +} + export function text_email_reply_header(test) { let email = get_email("email_reply_header");