aboutsummaryrefslogblamecommitdiffstats
path: root/filter/filtertypes.xml
blob: 9e4de55977b234edf67f809cca331eaa905d33a2 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                     

                     
                        

                                               



                                                      

                                 




                                                            











                                                           























                                                               











                                                           


                                       
 

















                                                            














                                                           





























                                                               














                                                           


                                           
 














                                                                











                                                              























                                                                  











                                                               


                                        

                     
                                 




                                               
                                                             




                                    
                                                                   

             











                                                                 



































                                                                     











                                                                  
           
                                     

        











                                             


                                     


                                     
 


                                   
        

                        
                          
                                                 

                      
          
                                                

            

                          
          
                                                      

            

                             
          
                                                   

            

                            
          
                                                   


              
                                        


                        
                              
                                                 

                      
          
                                                    

            

                          
          
                                                          

            

                             
          
                                                       

            

                            
          
                                                       


              
                                        

        
                    
                      

                                             
                     
          
                                            

            

                          
          
                                                  


                                
                                  



                                               

                               
          
                                               

            
          


                                     








                                             
                          





                                            
















                                       

        

















                                                  

                             
                                              

                               
                                                                           


                                       
                                                                                 


                         
                                                                          


                             
                                                                                



                                
                                                                 




                                       
                                                                       




                              
                                                               




                                     
                                                                     


             
                                      

        














                                                    
          
                                         

        



                                                
                     




                                         
                         







                                               
          

 





                                      




                                      
                         
                                   







                                        
                                






                                      




                                    

                           



















                                       
        
            
                    
<?xml version="1.0"?>
<filterdescription>
<partset>
 <part name="sender">
   <title>Sender</title>
   <input type="optionlist" name="sender-type">
    <option value="contains">
     <title>contains</title>
     <code>
        (match-all (header-contains "From" ${sender}))
     </code>
    </option>
    <option value="not contains">
     <title>does not contain</title>
     <code>
        (match-all (not (header-contains "From" ${sender})))
     </code>
    </option>
    <option value="is">
     <title>is</title>
     <code>
        (match-all (header-matches "From" ${sender}))
     </code>
    </option>
    <option value="is not">
     <title>is not</title>
     <code>
        (match-all (not (header-matches "From" ${sender})))
     </code>
    </option>
    <option value="starts with">
     <title>starts with</title>
     <code>
        (match-all (header-starts-with "From" ${sender}))
     </code>
    </option>
    <option value="not starts with">
     <title>does not start with</title>
     <code>
        (match-all (not (header-starts-with "From" ${sender})))
     </code>
    </option>
    <option value="ends with">
     <title>ends with</title>
     <code>
        (match-all (header-ends-with "From" ${sender}))
     </code>
    </option>
    <option value="not ends with">
     <title>does not end with</title>
     <code>
        (match-all (not (header-ends-with "From" ${sender})))
     </code>
    </option>
    <option value="matches soundex">
     <title>sounds like</title>
     <code>
        (match-all (header-soundex "From" ${sender}))
     </code>
    </option>
    <option value="not match soundex">
     <title>does not sound like</title>
     <code>
        (match-all (not (header-soundex "From" ${sender})))
     </code>
    </option>
   </input>
   <input type="string" name="sender"/>
 </part>

 <part name="to">
   <title>Recipients</title>
   <input type="optionlist" name="recipient-type">
    <option value="contains">
     <title>contains</title>
     <code>
    (match-all (or (header-contains "To" ${recipient})
                   (header-contains "Cc" ${recipient})))
     </code>
    </option>
    <option value="not contains">
     <title>does not contain</title>
     <code>
    (match-all (not (or
               (header-contains "To" ${recipient})
           (header-contains "Cc" ${recipient}))))
     </code>
    </option>
    <option value="is">
     <title>is</title>
     <code>
    (match-all (or (header-matches "To" ${recipient})
                   (header-matches "Cc" ${recipient})))
     </code>
    </option>
    <option value="is not">
     <title>is not</title>
     <code>
    (match-all (not (or
               (header-matches "To" ${recipient})
           (header-matches "Cc" ${recipient}))))
     </code>
    </option>
    <option value="starts with">
     <title>starts with</title>
     <code>
        (match-all (or (header-starts-with "To" ${recipient})
                   (header-starts-with "Cc" ${recipient})))
     </code>
    </option>
    <option value="not starts with">
     <title>does not start with</title>
     <code>
        (match-all (not (or
               (header-starts-with "To" ${recipient})
           (header-starts-with "Cc" ${recipient}))))
     </code>
    </option>
    <option value="ends with">
     <title>ends with</title>
     <code>
        (match-all (or (header-ends-with "To" ${recipient})
                   (header-ends-with "Cc" ${recipient})))
     </code>
    </option>
    <option value="not ends with">
     <title>does not end with</title>
     <code>
        (match-all (not (or
               (header-ends-with "To" ${recipient})
           (header-ends-with "Cc" ${recipient}))))
     </code>
    </option>
    <option value="matches soundex">
     <title>sounds like</title>
     <code>
    (match-all (or (header-soundex "To" ${recipient})
                   (header-soundex "Cc" ${recipient})))
     </code>
    </option>
    <option value="not match soundex">
     <title>does not sound like</title>
     <code>
    (match-all (not (or
               (header-soundex "To" ${recipient})
           (header-soundex "Cc" ${recipient}))))
     </code>
    </option>
   </input>
   <input type="address" name="recipient"/>
 </part>

 <part name="subject">
   <title>Subject</title>
   <input type="optionlist" name="subject-type">
    <option value="contains">
     <title>contains</title>
     <code>
    (match-all (header-contains "Subject" ${subject}))
     </code>
    </option>
    <option value="not contains">
     <title>does not contain</title>
     <code>
    (match-all (not (header-contains "Subject" ${subject})))
     </code>
    </option>
    <option value="is">
     <title>is</title>
     <code>
    (match-all (header-matches "Subject" ${subject}))
     </code>
    </option>
    <option value="is not">
     <title>is not</title>
     <code>
    (match-all (not (header-matches "Subject" ${subject}))
     </code>
    </option>
    <option value="starts with">
     <title>starts with</title>
     <code>
    (match-all (header-starts-with "Subject" ${subject}))
     </code>
    </option>
    <option value="not starts with">
     <title>does not start with</title>
     <code>
    (match-all (not (header-starts-with "Subject" ${subject}))
     </code>
    </option>
    <option value="ends with">
     <title>ends with</title>
     <code>
    (match-all (header-ends-with "Subject" ${subject}))
     </code>
    </option>
    <option value="not ends with">
     <title>does not end with</title>
     <code>
    (match-all (not (header-ends-with "Subject" ${subject}))
     </code>
    </option>
    <option value="matches soundex">
     <title>sounds like</title>
     <code>
        (match-all (header-soundex "Subject" ${subject}))
     </code>
    </option>
    <option value="not match soundex">
     <title>does not sound like</title>
     <code>
        (match-all (not (header-soundex "Subject" ${subject})))
     </code>
    </option>
   </input>
   <input type="string" name="subject"/>
 </part>

 <part name="header">
   <title>Specific header</title>
   <input type="string" name="header-field"/>
   <input type="optionlist" name="header-type">
    <option value="contains">
     <title>contains</title>
     <code>
    (match-all (header-contains ${header-field} ${word}))
     </code>
    </option>
    <option value="not contains">
     <title>does not contain</title>
     <code>
    (match-all (not (header-contains ${header-field} ${word})))
     </code>
    </option>
    <option value="is">
     <title>is</title>
     <code>
    (match-all (header-matches ${header-field} ${word}))
     </code>
    </option>
    <option value="is not">
     <title>is not</title>
     <code>
    (match-all (not (header-matches ${header-field} ${word}))
     </code>
    </option>
    <option value="starts with">
     <title>starts with</title>
     <code>
    (match-all (header-starts-with ${header-field} ${word}))
     </code>
    </option>
    <option value="not starts with">
     <title>does not start with</title>
     <code>
    (match-all (not (header-starts-with ${header-field} ${word}))
     </code>
    </option>
    <option value="ends with">
     <title>ends with</title>
     <code>
    (match-all (header-ends-with ${header-field} ${word}))
     </code>
    </option>
    <option value="not ends with">
     <title>does not end with</title>
     <code>
    (match-all (not (header-ends-with ${header-field} ${word}))
     </code>
    </option>
    <option value="exists">
     <title>exists</title>
     <code>
    (match-all (header-exists ${header-field}))
     </code>
    </option>
    <option value="not exists">
     <title>does not exist</title>
     <code>
    (match-all (not (header-exists ${header-field}))
     </code>
    </option>
    <option value="matches soundex">
     <title>sounds like</title>
     <code>
        (match-all (header-soundex ${header-field} ${word}))
     </code>
    </option>
    <option value="not match soundex">
     <title>does not sound like</title>
     <code>
        (match-all (not (header-soundex ${header-field} ${word})))
     </code>
    </option>
   </input>
   <input type="string" name="word"/>
 </part>

 <part name="body">
   <title>Message Body</title>
   <input type="optionlist" name="body-type">
    <option value="contains">
     <title>contains</title>
     <code>
    (body-contains ${word})
     </code>
    </option>
    <option value="not contains">
     <title>does not contain</title>
     <code>
    (not (body-contains ${word}))
     </code>
    </option>
   </input>
   <input type="string" name="word"/>
 </part>

 <part name="sexp">
   <title>Expression</title>
   <input type="code" name="code"/>
 </part>

 <part name="sent-date">
  <title>Date sent</title>
  <input type="optionlist" name="date-spec-type">
   <option value="is">
    <title>is</title>
    <code>
       (match-all (= (get-sent-date) ${versus}))
    </code>
   </option>
   <option value="is-not">
    <title>is not</title>
    <code>
       (match-all (not (= (get-sent-date) ${versus})))
    </code>
   </option>
   <option value="before">
    <title>was before</title>
    <code>
       (match-all (&lt; (get-sent-date) ${versus}))
    </code>
   </option>
   <option value="after">
    <title>was after</title>
    <code>
       (match-all (&gt; (get-sent-date) ${versus}))
    </code>
   </option>
  </input>    
  <input type="datespec" name="versus"/>
 </part>

 <part name="recv-date">
  <title>Date received</title>
  <input type="optionlist" name="date-spec-type">
   <option value="is">
    <title>is</title>
    <code>
       (match-all (= (get-received-date) ${versus}))
    </code>
   </option>
   <option value="is-not">
    <title>is not</title>
    <code>
       (match-all (not (= (get-received-date) ${versus})))
    </code>
   </option>
   <option value="before">
    <title>was before</title>
    <code>
       (match-all (&lt; (get-received-date) ${versus}))
    </code>
   </option>
   <option value="after">
    <title>was after</title>
    <code>
       (match-all (&gt; (get-received-date) ${versus}))
    </code>
   </option>
  </input>    
  <input type="datespec" name="versus"/>
 </part>

 <part name="score">
  <title>Score</title>
  <input type="optionlist" name="score-type">
   <option value="less-than">
    <title>is</title>
    <code>
       (match-all (= (get-score) ${versus}))
    </code>
   </option>
   <option value="is-not">
    <title>is not</title>
    <code>
       (match-all (not (= (get-score) ${versus})))
    </code>
   </option>
   <option value="greater-than">
    <title>is greater than</title>
    <code>
       (match-all (&gt; (get-score) ${versus}))
    </code>
   </option>
   <option value="less-than">
    <title>is less than</title>
    <code>
       (match-all (&lt; (get-score) ${versus}))
    </code>
   </option>
  </input>
  <input type="score" name="versus"/>
 </part>

 <part name="status">
  <title>Status</title>
  <input type="optionlist" name="match-type">
   <option value="is">
    <title>is</title>
    <code>
     (match-all (system-flag ${flag}))
    </code>
   </option>
   <option value="is not">
    <title>is not</title>
    <code>
     (match-all (not (system-flag ${flag})))
    </code>
   </option>
  </input>
  <input type="optionlist" name="flag">
   <option value="Answered">
    <title>Replied to</title>
   </option>
   <option value="Deleted">
    <title>Deleted</title>
   </option>
   <option value="Draft">
    <title>Draft</title>
   </option>
   <option value="Flagged">
    <title>Important</title>
   </option>
   <option value="Seen">
    <title>Read</title>
   </option>
  </input>
 </part>

 <part name="attachments">
  <title>Attachments</title>
  <input type="optionlist" name="match-type">
   <option value="exist">
    <title>Exist</title>
    <code>
     (match-all (system-flag "Attachments"))
    </code>
   </option>
   <option value="not exist">
    <title>Do Not Exist</title>
    <code>
     (match-all (not (system-flag "Attachments")))
    </code>
   </option>
  </input>
 </part>

 <part name="mlist">
  <title>Mailing list</title>
   <input type="optionlist" name="mlist-type">
    <option value="contains">
        <title>contains</title>
    <code>(match-all (header-contains "x-camel-mlist" ${mlist}))</code>
    </option>
    <option value="not contains">
        <title>does not contain</title>
        <code>(match-all (not (header-contains "x-camel-mlist" ${mlist})))</code>
    </option>
    <option value="is">
        <title>is</title>
    <code>(match-all (header-matches "x-camel-mlist" ${mlist}))</code>
    </option>
    <option value="is not">
        <title>is not</title>
        <code>(match-all (not (header-matches "x-camel-mlist" ${mlist})))</code>
    </option>
    <option value="starts with">
     <title>starts with</title>
     <code>
        (match-all (header-starts-with "x-camel-mlist" ${mlist}))
     </code>
    </option>
    <option value="not starts with">
     <title>does not start with</title>
     <code>
        (match-all (not (header-starts-with "x-camel-mlist" ${mlist})))
     </code>
    </option>
    <option value="ends with">
     <title>ends with</title>
     <code>
        (match-all (header-ends-with "x-camel-mlist" ${mlist}))
     </code>
    </option>
    <option value="not ends with">
     <title>does not end with</title>
     <code>
        (match-all (not (header-ends-with "x-camel-mlist" ${mlist})))
     </code>
    </option>
   </input>
   <input type="string" name="mlist"/>
 </part>

 <part name="regex">
  <title>Regex Match</title>
  <input type="optionlist" name="match-type">
   <option value="header">
    <title>Message Header</title>
    <code>
       (match-all (header-full-regex ${expression}))
    </code>
   </option>
   <option value="body">
    <title>Message Body</title>
    <code>
       (match-all (body-regex ${expression}))
    </code>
   </option>
  </input>
  <input type="regex" name="expression"/>
 </part>

 <part name="source">
  <title>Source Account</title>
  <input type="optionlist" name="srcmatch-type">
   <option value="is">
    <title>is</title>
    <code>
      (match-all (= (get-source) ${uri}))
    </code>
   </option>
   <option value="is-not">
    <title>is not</title>
    <code>
      (match-all (not (= (get-source) ${uri})))
    </code>
   </option>
  </input>
  <input type="source" name="uri"/>
 </part>
  
</partset>


<actionset>
 <part name="copy-to-folder">
  <title>Copy to Folder</title>
  <code>(copy-to ${folder})</code>
  <input type="folder" name="folder"/>
 </part>
 <part name="move-to-folder">
  <title>Move to Folder</title>
  <code>(move-to ${folder})</code>
  <input type="folder" name="folder"/>
 </part>
 <part name="forward-to">
  <title>Forward to Address</title>
  <code>(forward-to ${address})</code>
  <input type="address" name="address"/>
 </part>
 <part name="delete">
  <title>Delete</title>
  <code>(delete)</code>
 </part>
 <part name="stop">
  <title>Stop Processing</title>
  <code>(stop)</code>
 </part>
 <part name="colour">
  <title>Assign Colour</title>
  <code>(set-colour ${colour})</code>
  <input type="colour" name="colour"/>
 </part>
 <part name="score">
  <title>Assign Score</title>
  <code>(set-score ${score})</code>
  <input type="score" name="score"/>
 </part>
 <part name="set-status">
  <title>Set Status</title>
  <code>
   (set-system-flag ${flag})
  </code>
  <input type="optionlist" name="flag">
   <option value="Answered">
    <title>Replied to</title>
   </option>
   <option value="Deleted">
    <title>Deleted</title>
   </option>
   <option value="Draft">
    <title>Draft</title>
   </option>
   <option value="Flagged">
    <title>Important</title>
   </option>
   <option value="Seen">
    <title>Read</title>
   </option>
  </input>
 </part>
</actionset>
</filterdescription>