entered some unwanted posting protection for indymedia.nl. Extended the localization... prexmlproducerconfig
authorzapata <zapata>
Thu, 8 Aug 2002 05:40:34 +0000 (05:40 +0000)
committerzapata <zapata>
Thu, 8 Aug 2002 05:40:34 +0000 (05:40 +0000)
in order to do that.

source/mir/util/ParameterExpander.java
source/mircoders/localizer/MirOpenPostingLocalizer.java
source/mircoders/localizer/basic/MirBasicOpenPostingLocalizer.java
source/mircoders/servlet/ServletModuleOpenIndy.java
source/mirlocal/indymedia.nl/IndyNLOpenPostingLocalizer.java

index 0a5876b..c377fc3 100755 (executable)
@@ -10,7 +10,7 @@ public class ParameterExpander {
   final static String DEFAULT_KEY = "(default)";
   final static String NODE_SEPARATOR = ".";
 
-  private static List splitString(String aString, String aSeparator) {
+  public static List splitString(String aString, String aSeparator) {
     List result= new Vector();
     int previousPosition = 0;
     int position;
index 0f818c9..d9add8c 100755 (executable)
@@ -3,9 +3,11 @@ package mircoders.localizer;
 import java.util.*;
 import javax.servlet.http.*;
 
+import mircoders.entity.*;
+
 public interface MirOpenPostingLocalizer {
-  public void afterContentPosting();
-  public void afterCommentPosting();
+  public void afterContentPosting(EntityContent aContent);
+  public void afterCommentPosting(EntityComment aComment);
 
   public String chooseOpenPostingLanguage(HttpServletRequest req);
 }
index 955c393..5e19a34 100755 (executable)
@@ -6,6 +6,7 @@ import javax.servlet.http.*;
 import mir.misc.*;
 import mircoders.global.*;
 import mircoders.localizer.*;
+import mircoders.entity.*;
 
 public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer {
   protected static Logfile logger = Logfile.getInstance( MirGlobal.getConfigProperty("Home") + "/" + MirGlobal.getConfigProperty("Mir.Localizer.Logfile"));
@@ -21,11 +22,19 @@ public class MirBasicOpenPostingLocalizer implements MirOpenPostingLocalizer {
     MirGlobal.producerEngine().addJob("synchronization", "run");
   }
 
+  public void afterContentPosting(EntityContent aContent) {
+    afterContentPosting();
+  }
+  
   public void afterCommentPosting() {
     MirGlobal.producerEngine().addJob("content", "new");
     MirGlobal.producerEngine().addJob("synchronization", "run");
   }
 
+  public void afterCommentPosting(EntityComment aComment) {
+    afterCommentPosting();
+  }
+
   public String chooseOpenPostingLanguage(HttpServletRequest req) {
     Locale locale = req.getLocale();
 
index 32ad063..4d275ce 100755 (executable)
@@ -44,6 +44,7 @@ public class ServletModuleOpenIndy extends ServletModule
   private String        postingFormTemplate, postingFormDoneTemplate,
                         postingFormDupeTemplate;
   private ModuleContent contentModule;
+  private ModuleComment commentModule;
   private ModuleImages  imageModule;
   private ModuleTopics  themenModule;
   private String        directOp ="yes";
@@ -157,8 +158,11 @@ public class ServletModuleOpenIndy extends ServletModule
         }
         else {
           DatabaseContent.getInstance().setUnproduced("id="+aid);
-          MirGlobal.localizer().openPostings().afterCommentPosting();
-
+          
+          EntityComment comment = (EntityComment) DatabaseComment.getInstance().selectById(id);
+          
+          MirGlobal.localizer().openPostings().afterCommentPosting(comment);
+          
         }
 
         // redirecting to url
@@ -499,12 +503,13 @@ public class ServletModuleOpenIndy extends ServletModule
       contentEnt.setValueForProperty("is_published","1");
       contentEnt.update();
 
+      MirGlobal.localizer().openPostings().afterContentPosting(contentEnt);
+
 
       //dereference mp. -mh
       mp=null;
 
 
-      MirGlobal.localizer().openPostings().afterContentPosting();
     }
     catch (IOException e) { throw new ServletModuleException("IOException: "+ e.toString());}
     catch (StorageObjectException e) { throw new ServletModuleException("StorageObjectException" + e.toString());}
index 537d7b1..c386084 100755 (executable)
@@ -1,19 +1,82 @@
 package mirlocal.indymedia.nl;
 
+import java.util.*;
+import mir.util.*;
+import mir.entity.*;
+import mir.storage.*;
 import mircoders.localizer.*;
 import mircoders.global.*;
 import mircoders.localizer.basic.*;
+import mircoders.entity.*;
+import mircoders.storage.*;
 
 public class IndyNLOpenPostingLocalizer extends MirBasicOpenPostingLocalizer {
+  
+//  private static String[] CONTENT_FIELDS_TO_CHECK = { "content_data", "description", "title", "creator" };
 
-  public void afterContentPosting() {
+
+  public void afterContentPosting(EntityContent aContent) {
+    if (checkEntity(aContent)) {
+      try {
+        aContent.setValueForProperty("to_article_type", "8");
+        aContent.update();
+      }
+      catch (Throwable t) {
+      }
+    }
+    
     MirGlobal.producerEngine().addJob("media", "new");
     MirGlobal.producerEngine().addJob("content", "new");
     MirGlobal.producerEngine().addJob("startpage", "(default)");
     MirGlobal.producerEngine().addJob("synchronization", "run");
   }
 
-  public void afterCommentPosting() {
-    super.afterCommentPosting();
+  public void afterCommentPosting(EntityComment aComment) {
+    if (checkEntity(aComment)) {
+      try {
+        aComment.setValueForProperty("is_published", "0");
+        aComment.update();
+      }
+      catch (Throwable t) {
+      }
+    }
+    super.afterCommentPosting(aComment);
+  }
+  
+  private boolean checkEntity(Entity anEntity) {
+    String forbiddenWordsSpecification = MirGlobal.getConfigPropertyWithDefault("IndymediaNL.forbiddenExpressions", "");
+    List forbiddenWords = ParameterExpander.splitString(forbiddenWordsSpecification, ":");
+    Iterator i, j;
+    boolean found = false;
+    String field;
+    
+
+    try {    
+      j = anEntity.getFields().iterator();
+      while (!found && j.hasNext()) {
+        field = anEntity.getValue((String) j.next());
+        
+        if (field!=null) {
+          field=field.toLowerCase();
+          i = forbiddenWords.iterator();
+          while (!found && i.hasNext()) {
+            String forbiddenWord = (String) i.next();
+          
+            try {
+              if (field.indexOf(forbiddenWord.toLowerCase())>=0) {
+                found = true;
+              }
+            }
+            catch (Throwable t) {
+              logger.printError("Error while matching " + field + " to " + forbiddenWord + ": " + t.toString());
+            }
+          }
+        }
+      }
+    }
+    catch (Throwable t) {
+    }
+    
+    return found;
   }
 }