mirror of
https://github.com/nodemailer/wildduck.git
synced 2025-10-29 07:26:26 +08:00
added minSize and maxSize search parameters
This commit is contained in:
parent
c7d1c01ddd
commit
97c2ce77b6
5 changed files with 42 additions and 18 deletions
|
|
@ -1681,6 +1681,16 @@ paths:
|
|||
description: 'Partial match for the Subject: header line'
|
||||
schema:
|
||||
type: string
|
||||
- name: minSize
|
||||
in: query
|
||||
description: Minimal message size in bytes
|
||||
schema:
|
||||
type: number
|
||||
- name: maxSize
|
||||
in: query
|
||||
description: Maximal message size in bytes
|
||||
schema:
|
||||
type: number
|
||||
- name: limit
|
||||
in: query
|
||||
description: How many records to return
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ const libqp = require('libqp');
|
|||
const libbase64 = require('libbase64');
|
||||
const iconv = require('iconv-lite');
|
||||
const he = require('he');
|
||||
const htmlToText = require('html-to-text');
|
||||
const { htmlToText } = require('html-to-text');
|
||||
const crypto = require('crypto');
|
||||
|
||||
const MAX_HTML_PARSE_LENGTH = 2 * 1024 * 1024; // do not parse HTML messages larger than 2MB to plaintext
|
||||
|
|
@ -502,7 +502,7 @@ class Indexer {
|
|||
if (!alternative) {
|
||||
try {
|
||||
if (content && content.length < MAX_HTML_PARSE_LENGTH) {
|
||||
let text = htmlToText.fromString(content);
|
||||
let text = htmlToText(content);
|
||||
textContent.push(text.trim());
|
||||
}
|
||||
} catch (E) {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ const Joi = require('joi');
|
|||
const MongoPaging = require('mongo-cursor-pagination');
|
||||
const addressparser = require('nodemailer/lib/addressparser');
|
||||
const MailComposer = require('nodemailer/lib/mail-composer');
|
||||
const htmlToText = require('html-to-text');
|
||||
const { htmlToText } = require('html-to-text');
|
||||
const ObjectID = require('mongodb').ObjectID;
|
||||
const tools = require('../tools');
|
||||
const consts = require('../consts');
|
||||
|
|
@ -413,6 +413,8 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
from: Joi.string().trim().empty(''),
|
||||
to: Joi.string().trim().empty(''),
|
||||
subject: Joi.string().trim().empty(''),
|
||||
minSize: Joi.number().empty(''),
|
||||
maxSize: Joi.number().empty(''),
|
||||
attachments: booleanSchema,
|
||||
flagged: booleanSchema,
|
||||
unseen: booleanSchema,
|
||||
|
|
@ -465,6 +467,8 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
let filterFlagged = result.value.flagged;
|
||||
let filterUnseen = result.value.unseen;
|
||||
let filterSearchable = result.value.searchable;
|
||||
let filterMinSize = result.value.minSize;
|
||||
let filterMaxSize = result.value.maxSize;
|
||||
|
||||
let limit = result.value.limit;
|
||||
let page = result.value.page;
|
||||
|
|
@ -700,6 +704,16 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
filter.ha = true;
|
||||
}
|
||||
|
||||
if (filterMinSize) {
|
||||
filter.size = filter.size || {};
|
||||
filter.size.$gte = filterMinSize;
|
||||
}
|
||||
|
||||
if (filterMaxSize) {
|
||||
filter.size = filter.size || {};
|
||||
filter.size.$lte = filterMaxSize;
|
||||
}
|
||||
|
||||
if (orQuery.length) {
|
||||
filter.$or = orQuery;
|
||||
}
|
||||
|
|
@ -1766,7 +1780,7 @@ module.exports = (db, server, messageHandler, userHandler, storageHandler) => {
|
|||
if (data.html && !data.text) {
|
||||
try {
|
||||
// might explode on long or strange strings
|
||||
data.text = htmlToText.fromString(data.html);
|
||||
data.text = htmlToText(data.html);
|
||||
} catch (E) {
|
||||
// ignore
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ const log = require('npmlog');
|
|||
const libmime = require('libmime');
|
||||
const util = require('util');
|
||||
const MailComposer = require('nodemailer/lib/mail-composer');
|
||||
const htmlToText = require('html-to-text');
|
||||
const { htmlToText } = require('html-to-text');
|
||||
const Joi = require('joi');
|
||||
const ObjectID = require('mongodb').ObjectID;
|
||||
const tools = require('../tools');
|
||||
|
|
@ -386,7 +386,7 @@ module.exports = (db, server, messageHandler, userHandler) => {
|
|||
if (data.html && !data.text) {
|
||||
try {
|
||||
// might explode on long or strange strings
|
||||
data.text = htmlToText.fromString(data.html);
|
||||
data.text = htmlToText(data.html);
|
||||
} catch (E) {
|
||||
// ignore
|
||||
}
|
||||
|
|
|
|||
24
package.json
24
package.json
|
|
@ -16,10 +16,10 @@
|
|||
"author": "Andris Reinman",
|
||||
"license": "EUPL-1.2",
|
||||
"devDependencies": {
|
||||
"ajv": "7.0.3",
|
||||
"chai": "4.2.0",
|
||||
"ajv": "7.1.1",
|
||||
"chai": "4.3.0",
|
||||
"docsify-cli": "4.4.2",
|
||||
"eslint": "7.19.0",
|
||||
"eslint": "7.20.0",
|
||||
"eslint-config-nodemailer": "1.2.0",
|
||||
"eslint-config-prettier": "7.2.0",
|
||||
"grunt": "1.3.0",
|
||||
|
|
@ -28,9 +28,9 @@
|
|||
"grunt-mocha-test": "0.13.3",
|
||||
"grunt-shell-spawn": "0.4.0",
|
||||
"grunt-wait": "0.3.0",
|
||||
"imapflow": "1.0.51",
|
||||
"mailparser": "3.0.1",
|
||||
"mocha": "8.2.1",
|
||||
"imapflow": "1.0.53",
|
||||
"mailparser": "3.1.0",
|
||||
"mocha": "8.3.0",
|
||||
"request": "2.88.2",
|
||||
"supertest": "6.1.3"
|
||||
},
|
||||
|
|
@ -41,17 +41,17 @@
|
|||
"axios": "0.21.1",
|
||||
"base32.js": "0.1.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"bull": "3.20.0",
|
||||
"bull": "3.20.1",
|
||||
"gelf": "2.0.1",
|
||||
"generate-password": "1.6.0",
|
||||
"he": "1.2.0",
|
||||
"html-to-text": "6.0.0",
|
||||
"html-to-text": "7.0.0",
|
||||
"humanname": "0.2.2",
|
||||
"iconv-lite": "0.6.2",
|
||||
"ioredfour": "1.0.2-ioredis-03",
|
||||
"ioredis": "4.19.4",
|
||||
"ioredis": "4.22.0",
|
||||
"isemail": "3.2.0",
|
||||
"joi": "17.3.0",
|
||||
"joi": "17.4.0",
|
||||
"js-yaml": "4.0.0",
|
||||
"key-fingerprint": "1.1.0",
|
||||
"libbase64": "1.2.1",
|
||||
|
|
@ -60,10 +60,10 @@
|
|||
"mailsplit": "5.0.1",
|
||||
"mobileconfig": "2.3.1",
|
||||
"mongo-cursor-pagination": "7.3.1",
|
||||
"mongodb": "3.6.3",
|
||||
"mongodb": "3.6.4",
|
||||
"mongodb-extended-json": "1.11.0",
|
||||
"node-forge": "0.10.0",
|
||||
"nodemailer": "6.4.17",
|
||||
"nodemailer": "6.4.18",
|
||||
"npmlog": "4.1.2",
|
||||
"openpgp": "4.10.10",
|
||||
"pem": "1.14.4",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue