entered some unwanted posting protection for indymedia.nl. Extended the localization...
[mir.git] / source / mirlocal / indymedia.nl / IndyNLOpenPostingLocalizer.java
1 package mirlocal.indymedia.nl;
2
3 import java.util.*;
4 import mir.util.*;
5 import mir.entity.*;
6 import mir.storage.*;
7 import mircoders.localizer.*;
8 import mircoders.global.*;
9 import mircoders.localizer.basic.*;
10 import mircoders.entity.*;
11 import mircoders.storage.*;
12
13 public class IndyNLOpenPostingLocalizer extends MirBasicOpenPostingLocalizer {
14   
15 //  private static String[] CONTENT_FIELDS_TO_CHECK = { "content_data", "description", "title", "creator" };
16
17
18   public void afterContentPosting(EntityContent aContent) {
19     if (checkEntity(aContent)) {
20       try {
21         aContent.setValueForProperty("to_article_type", "8");
22         aContent.update();
23       }
24       catch (Throwable t) {
25       }
26     }
27     
28     MirGlobal.producerEngine().addJob("media", "new");
29     MirGlobal.producerEngine().addJob("content", "new");
30     MirGlobal.producerEngine().addJob("startpage", "(default)");
31     MirGlobal.producerEngine().addJob("synchronization", "run");
32   }
33
34   public void afterCommentPosting(EntityComment aComment) {
35     if (checkEntity(aComment)) {
36       try {
37         aComment.setValueForProperty("is_published", "0");
38         aComment.update();
39       }
40       catch (Throwable t) {
41       }
42     }
43     super.afterCommentPosting(aComment);
44   }
45   
46   private boolean checkEntity(Entity anEntity) {
47     String forbiddenWordsSpecification = MirGlobal.getConfigPropertyWithDefault("IndymediaNL.forbiddenExpressions", "");
48     List forbiddenWords = ParameterExpander.splitString(forbiddenWordsSpecification, ":");
49     Iterator i, j;
50     boolean found = false;
51     String field;
52     
53
54     try {    
55       j = anEntity.getFields().iterator();
56       while (!found && j.hasNext()) {
57         field = anEntity.getValue((String) j.next());
58         
59         if (field!=null) {
60           field=field.toLowerCase();
61           i = forbiddenWords.iterator();
62           while (!found && i.hasNext()) {
63             String forbiddenWord = (String) i.next();
64           
65             try {
66               if (field.indexOf(forbiddenWord.toLowerCase())>=0) {
67                 found = true;
68               }
69             }
70             catch (Throwable t) {
71               logger.printError("Error while matching " + field + " to " + forbiddenWord + ": " + t.toString());
72             }
73           }
74         }
75       }
76     }
77     catch (Throwable t) {
78     }
79     
80     return found;
81   }
82 }