You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2017/01/16 11:38:12 UTC

svn commit: r1779015 - in /manifoldcf/trunk: ./ connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/

Author: kwright
Date: Mon Jan 16 11:38:12 2017
New Revision: 1779015

URL: http://svn.apache.org/viewvc?rev=1779015&view=rev
Log:
Fix for CONNECTORS-1368. Committed on behalf on Cihad Guzel.

Modified:
    manifoldcf/trunk/CHANGES.txt
    manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConfig.java
    manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java

Modified: manifoldcf/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1779015&r1=1779014&r2=1779015&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Mon Jan 16 11:38:12 2017
@@ -3,6 +3,9 @@ $Id$
 
 ======================= 2.7-dev =====================
 
+CONNECTORS-1368: Add date range support to email connector.
+(Cihad Guzel)
+
 CONNECTORS-1366: Wrong report code in email connector when mime
 type is rejected.
 (Furkan KAMACI)

Modified: manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConfig.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConfig.java?rev=1779015&r1=1779014&r2=1779015&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConfig.java (original)
+++ manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConfig.java Mon Jan 16 11:38:12 2017
@@ -72,7 +72,7 @@ public class EmailConfig {
   public static final String PROTOCOL_DEFAULT_VALUE = "IMAP";
   public static final String PORT_DEFAULT_VALUE = "";
   public static final String[] BASIC_METADATA = {"To","From","Subject","Body","Date","Encoding of Attachment","MIME type of attachment"};
-  public static final String[] BASIC_SEARCHABLE_ATTRIBUTES = {"To","From","Subject","Body","Date"};
+  public static final String[] BASIC_SEARCHABLE_ATTRIBUTES = {"To","From","Subject","Body","Start Date", "End Date"};
 
   // Specification nodes
   
@@ -94,7 +94,12 @@ public class EmailConfig {
   public static final String EMAIL_ATTACHMENT_ENCODING = "encoding of attachment";
   public static final String EMAIL_ATTACHMENT_MIMETYPE = "mime type of attachment";
   public static final String EMAIL_VERSION = "1.0";
-  
+
+  // Date field names for filtering
+  public static final String EMAIL_FILTERING_DATE_FORMAT = "dd/MM/yy";
+  public static final String EMAIL_START_DATE = "start date";
+  public static final String EMAIL_END_DATE = "end date";
+
   // Mime types
   
   public static final String MIMETYPE_TEXT_PLAIN = "text/plain";

Modified: manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java?rev=1779015&r1=1779014&r2=1779015&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java (original)
+++ manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/email/EmailConnector.java Mon Jan 16 11:38:12 2017
@@ -28,6 +28,8 @@ import org.apache.manifoldcf.crawler.int
 import org.apache.manifoldcf.crawler.system.Logging;
 
 import java.io.*;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import javax.mail.*;
 import javax.mail.internet.MimeBodyPart;
@@ -345,6 +347,7 @@ public class EmailConnector extends org.
         Logging.connectors.debug("Email: Finding emails where '" + findParameterName +
             "' = '" + findParameterValue + "'");
       SearchTerm searchClause = null;
+      Integer comparisonTerm = null;
       if (findParameterName.equals(EmailConfig.EMAIL_SUBJECT)) {
         searchClause = new SubjectTerm(findParameterValue);
       } else if (findParameterName.equals(EmailConfig.EMAIL_FROM)) {
@@ -353,8 +356,22 @@ public class EmailConnector extends org.
         searchClause = new RecipientStringTerm(Message.RecipientType.TO, findParameterValue);
       } else if (findParameterName.equals(EmailConfig.EMAIL_BODY)) {
         searchClause = new BodyTerm(findParameterValue);
+      } else if (findParameterName.equals(EmailConfig.EMAIL_START_DATE)) {
+        comparisonTerm = ComparisonTerm.LT;
+      } else if (findParameterName.equals(EmailConfig.EMAIL_END_DATE)) {
+        comparisonTerm = ComparisonTerm.GT;
       }
-      
+
+      if (comparisonTerm != null) {
+        SimpleDateFormat date = new SimpleDateFormat(EmailConfig.EMAIL_FILTERING_DATE_FORMAT);
+        try {
+          searchClause = new ReceivedDateTerm(comparisonTerm, date.parse(findParameterValue));
+        } catch (ParseException e) {
+          Logging.connectors.warn("Email: Unknown date format: '" + findParameterValue + "'for filter parameter name: '" + findParameterName + "'");
+        }
+      }
+
+
       if (searchClause != null)
       {
         if (searchTerm == null)