mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-28 03:17:31 +09:00
156 lines
6 KiB
Text
156 lines
6 KiB
Text
/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nsISupports.idl"
|
|
#include "nsMsgSearchCore.idl"
|
|
#include "nsIMsgSearchValue.idl"
|
|
|
|
interface nsIMsgDBHdr;
|
|
interface nsIMsgDatabase;
|
|
interface nsIMsgSearchScopeTerm;
|
|
|
|
[scriptable, uuid(705a2b5a-5efc-495c-897a-bef1161cd3c0)]
|
|
interface nsIMsgSearchTerm : nsISupports {
|
|
attribute nsMsgSearchAttribValue attrib;
|
|
attribute nsMsgSearchOpValue op;
|
|
attribute nsIMsgSearchValue value;
|
|
|
|
attribute boolean booleanAnd;
|
|
attribute ACString arbitraryHeader;
|
|
/**
|
|
* Not to be confused with arbitraryHeader, which is a header in the
|
|
* rfc822 message. This is a property of the nsIMsgDBHdr, and may have
|
|
* nothing to do the message headers, e.g., gloda-id.
|
|
* value.str will be compared with nsIMsgHdr::GetProperty(hdrProperty).
|
|
*/
|
|
attribute ACString hdrProperty;
|
|
|
|
/// identifier for a custom id used for this term, if any.
|
|
attribute ACString customId;
|
|
|
|
attribute boolean beginsGrouping;
|
|
attribute boolean endsGrouping;
|
|
|
|
/**
|
|
* Match the value against one of the emails found in the incoming
|
|
* 2047-encoded string.
|
|
*/
|
|
boolean matchRfc822String(in ACString aString, in string charset);
|
|
/**
|
|
* Match the current header value against the incoming 2047-encoded string.
|
|
*
|
|
* This method will first apply the nsIMimeConverter decoding to the string
|
|
* (using the supplied parameters) and will then match the value against the
|
|
* decoded result.
|
|
*/
|
|
boolean matchRfc2047String(in ACString aString, in string charset, in boolean charsetOverride);
|
|
boolean matchDate(in PRTime aTime);
|
|
boolean matchStatus(in unsigned long aStatus);
|
|
boolean matchPriority(in nsMsgPriorityValue priority);
|
|
boolean matchAge(in PRTime days);
|
|
boolean matchSize(in unsigned long size);
|
|
boolean matchLabel(in nsMsgLabelValue aLabelValue);
|
|
boolean matchJunkStatus(in string aJunkScore);
|
|
/*
|
|
* Test search term match for junkpercent
|
|
*
|
|
* @param aJunkPercent junkpercent for message (0-100, 100 is junk)
|
|
* @return true if matches
|
|
*/
|
|
boolean matchJunkPercent(in unsigned long aJunkPercent);
|
|
/*
|
|
* Test search term match for junkscoreorigin
|
|
* @param aJunkScoreOrigin Who set junk score? Possible values:
|
|
* plugin filter imapflag user whitelist
|
|
* @return true if matches
|
|
*/
|
|
boolean matchJunkScoreOrigin(in string aJunkScoreOrigin);
|
|
|
|
/**
|
|
* Test if the body of the passed in message matches "this" search term.
|
|
* @param aScopeTerm scope of search
|
|
* @param aOffset offset of message in message store.
|
|
* @param aLength length of message.
|
|
* @param aCharset folder charset.
|
|
* @param aMsg db msg hdr of message to match.
|
|
* @param aDB db containing msg header.
|
|
*/
|
|
boolean matchBody(in nsIMsgSearchScopeTerm aScopeTerm,
|
|
in unsigned long long aOffset,
|
|
in unsigned long aLength,
|
|
in string aCharset,
|
|
in nsIMsgDBHdr aMsg,
|
|
in nsIMsgDatabase aDb);
|
|
|
|
/**
|
|
* Test if the arbitrary header specified by this search term
|
|
* matches the corresponding header in the passed in message.
|
|
*
|
|
* @param aScopeTerm scope of search
|
|
* @param aLength length of message
|
|
* @param aCharset The charset to apply to un-labeled non-UTF-8 data.
|
|
* @param aCharsetOverride If true, aCharset is used instead of any
|
|
* charset labeling other than UTF-8.
|
|
*
|
|
* N.B. This is noscript because headers is a null-separated list of
|
|
* strings, which is not scriptable.
|
|
*/
|
|
[noscript]
|
|
boolean matchArbitraryHeader(in nsIMsgSearchScopeTerm aScopeTerm,
|
|
in unsigned long aLength,
|
|
in string aCharset,
|
|
in boolean aCharsetOverride,
|
|
in nsIMsgDBHdr aMsg,
|
|
in nsIMsgDatabase aDb,
|
|
//[array, size_is(headerLength)] in string headers,
|
|
in string aHeaders,
|
|
in unsigned long aHeaderLength,
|
|
in boolean aForFilters);
|
|
|
|
/**
|
|
* Compares value.str with nsIMsgHdr::GetProperty(hdrProperty).
|
|
* @param msg msg to match db hdr property of.
|
|
*
|
|
* @returns true if msg matches property, false otherwise.
|
|
*/
|
|
boolean matchHdrProperty(in nsIMsgDBHdr msg);
|
|
|
|
/**
|
|
* Compares value.status with nsIMsgHdr::GetUint32Property(hdrProperty).
|
|
* @param msg msg to match db hdr property of.
|
|
*
|
|
* @returns true if msg matches property, false otherwise.
|
|
*/
|
|
boolean matchUint32HdrProperty(in nsIMsgDBHdr msg);
|
|
|
|
/**
|
|
* Compares value.status with the folder flags of the msg's folder.
|
|
* @param msg msgHdr whose folder's flag we want to compare.
|
|
*
|
|
* @returns true if folder's flags match value.status, false otherwise.
|
|
*/
|
|
boolean matchFolderFlag(in nsIMsgDBHdr msg);
|
|
|
|
readonly attribute boolean matchAllBeforeDeciding;
|
|
|
|
readonly attribute ACString termAsString;
|
|
boolean matchKeyword(in ACString keyword); // used for tag searches
|
|
attribute boolean matchAll;
|
|
/**
|
|
* Does the message match the custom search term?
|
|
*
|
|
* @param msg message database object representing the message
|
|
*
|
|
* @return true if message matches
|
|
*/
|
|
boolean matchCustom(in nsIMsgDBHdr msg);
|
|
|
|
/**
|
|
* Returns a nsMsgSearchAttribValue value corresponding to a field string from
|
|
* the nsMsgSearchTerm.cpp::SearchAttribEntryTable table.
|
|
* Does not handle custom attributes yet.
|
|
*/
|
|
nsMsgSearchAttribValue getAttributeFromString(in string aAttribName);
|
|
};
|