Changeset 59


Ignore:
Timestamp:
06/09/09 23:46:47 (3 years ago)
Author:
AllenJB
Message:

ppf-mediawikirc: Rewrite formats configuration to require less code modification when adding new formats. Should also be easier to extend if we want to add more functionality (eg. specific formats for specific namespaces, for example)

Location:
ppf-mediawikirc/trunk
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • ppf-mediawikirc/trunk/MediawikiRCConfig.xml

    r58 r59  
    66 
    77        <formats> 
    8                 <format type="normal" value="$shortcut: $CYAN[[$OLIVE$title$CYAN]] $DARK_GREEN* $user * $GREEN$new$BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
    9                 <format type="log" value="$shortcut: $CYAN[[$OLIVE$title$CYAN]] $DARK_GREEN* $user * $RED($logType $action) $GREEN$new$BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
    10                 <format type="move" value="$shortcut: $REDmove: $CYAN[[$OLIVE$title$CYAN]]$NORMAL -> $CYAN[[$OLIVE$newTitle$CYAN]] $DARK_GREEN* $user * $BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
    11                 <format type="delete" value="$shortcut: $REDDeleted: $CYAN[[$OLIVE$title$CYAN]] $DARK_GREEN* $user * $TEAL($diff) $NORMAL$comment"  /> 
     8<!-- 
     9                <format type="normal" value="$shortcut: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN* $user * $GREEN$new$BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
     10                <format type="log" value="$shortcut: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN* $user * $RED($logType $action) $GREEN$new$BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
     11                <format type="move" value="$shortcut: $REDmove: $NORMAL[[$OLIVE$title$NORMAL]]$NORMAL -> $NORMAL[[$OLIVE$newTitle$NORMAL]] $DARK_GREEN* $user * $BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
     12                <format type="delete" value="$shortcut: $REDDeleted: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN* $user * $TEAL($diff) $NORMAL$comment"  /> 
    1213                <format type="newuser" value="$shortcut: $PURPLENew user: $DARK_GREEN$user $NORMAL$comment" /> 
     14                <format type="fileupload" value="$shortcut: $PURPLEFile upload: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN$user $NORMAL$comment" /> 
     15                <format type="avatarchange" value="$shortcut: $PURPLEAvatar change: $DARK_GREEN$user $NORMAL$comment" /> 
     16--> 
     17                <format type="normal" 
     18                        value="$shortcut: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN* $user * $GREEN$new$BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
     19                <format type="log" 
     20                        value="$shortcut: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN* $user * $RED($logType $action) $GREEN$new$BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
     21                <format type="log" logType="block"      logAction="block" 
     22                        value="$shortcut: $PURPLEBlock: $OLIVE$title $NORMALby $DARK_GREEN* $user * $NORMAL$comment" /> 
     23                <format type="log" logType="move"       logAction="move"  
     24                        value="$shortcut: $REDmove: $NORMAL[[$OLIVE$title$NORMAL]]$NORMAL -> $NORMAL[[$OLIVE$newTitle$NORMAL]] $DARK_GREEN* $user * $BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
     25                <format type="log" logType="move"       logAction="move_redir"  
     26                        value="$shortcut: $REDmove over redirect: $NORMAL[[$OLIVE$title$NORMAL]]$NORMAL -> $NORMAL[[$OLIVE$newTitle$NORMAL]] $DARK_GREEN* $user * $BLUE$minor $TEAL($diff) $NORMAL$comment" /> 
     27                <format type="log" logType="delete"     logAction="delete"  
     28                        value="$shortcut: $REDdelete: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN* $user * $TEAL($diff) $NORMAL$comment"  /> 
     29                <format type="log" logType="delete"     logAction="restore"  
     30                        value="$shortcut: $REDrestore: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN* $user * $TEAL($diff) $NORMAL$comment"  /> 
     31                <format type="log" logType="newusers"   logAction="create"  
     32                        value="$shortcut: $PURPLENew user: $DARK_GREEN$user $NORMAL$comment" /> 
     33                <format type="log" logType="upload"     logAction="upload"  
     34                        value="$shortcut: $PURPLEFile upload: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN$user $NORMAL$comment" /> 
     35                <format type="log" logType="upload"     logAction="overwrite"  
     36                        value="$shortcut: $PURPLEFile upload: $NORMAL[[$OLIVE$title$NORMAL]] $DARK_GREEN$user $NORMAL$comment" /> 
     37                <format type="log" logType="useravatar" logAction="useravatar"  
     38                        value="$shortcut: $PURPLEAvatar change: $DARK_GREEN$user $NORMAL$comment" /> 
     39                <format type="log" logType="useravatar" logAction="avatar_chn"  
     40                        value="$shortcut: $PURPLEAvatar change: $DARK_GREEN$user $NORMAL$comment" /> 
     41                <format type="log" logType="useravatar" logAction="avatarchange"  
     42                        value="$shortcut: $PURPLEAvatar change: $DARK_GREEN$user $NORMAL$comment" /> 
    1343        </formats> 
    1444 
  • ppf-mediawikirc/trunk/src/uk/me/allenjb/ppfpplugin/mediawikirc/Common.java

    r58 r59  
    66import java.net.URL; 
    77 
     8import java.util.ArrayList; 
    89import java.util.Collection; 
    910import java.util.HashMap; 
     
    4849         * Output string formats. 
    4950         */ 
    50         private HashMap<String, String> formats = new HashMap<String,String>(); 
     51        // private HashMap<String, String> formats = new HashMap<String,String>(); 
     52        private ArrayList<RCFormat> formats = new ArrayList<RCFormat>(); 
    5153 
    5254        /** 
     
    9698 
    9799 
    98         private void setDefaultFormats() { 
    99                 logger.debug("Setting default format strings"); 
    100                 this.formats.clear(); 
    101                 this.formats.put("normal", "$shortcut: [[$title]] * $user * ($diff) $comment"); 
    102                 this.formats.put("log", "$shortcut: [[$title]] * $user * ($logType $action) ($diff) $comment"); 
    103                 this.formats.put("move", "$shortcut: $REDmove: $CYAN[[$OLIVE$title$CYAN]]$NORMAL -> $CYAN[[$OLIVE$newTitle$CYAN]] $DARK_GREEN* $user * $TEAL($diff) $NORMAL$comment"); 
    104                 this.formats.put("deleted", "$shortcut: $REDDeleted: $CYAN[[$OLIVE$title$CYAN]] $DARK_GREEN* $user * $TEAL($diff) $NORMAL$comment"); 
    105                 this.formats.put("newuser", "$shortcut: $PURPLENew user: $DARK_GREEN$user $NORMAL$comment"); 
    106         } 
    107  
    108100        public void configure() { 
    109                 setDefaultFormats(); 
    110  
    111101                String configFile = PLUGIN_ID +"Config.xml"; 
    112102                if (loadDoc(configFile) == null) { 
     
    159149                        } 
    160150 
    161                         this.formats.put(type, value); 
    162                         logger.debug("Set format: "+ type +" :: "+ value); 
     151                        String logType = element.getAttributeValue("logType"); 
     152                        String logAction = element.getAttributeValue("logAction"); 
     153 
     154                        // this.formats.put(type, value); 
     155                        this.formats.add(new RCFormat(type, logType, logAction, value)); 
     156                        logger.debug("Set format: "+ type +" :: "+ logType +" :: "+ logAction +" :: "+ value); 
    163157                } 
    164158        } 
     
    257251                for (RecentChange rc : rcList) { 
    258252                        String output = ""; 
     253 
     254                        RCFormat selFormat = null; 
     255                        RCFormat defFormat = null; 
     256                        for (RCFormat curFormat : this.formats) { 
     257                                // Set the default default format 
     258                                if (defFormat == null) { 
     259                                        if (curFormat.getType().equals("normal")) { 
     260                                                defFormat = curFormat; 
     261                                        } 
     262                                } 
     263 
     264                                // Select the default format based on type (may not exist) 
     265                                if (selFormat == null) { 
     266                                        if (rc.getType().equals("log")) { 
     267                                                if (curFormat.getType().equals("log") && (curFormat.getLogType() == null)) { 
     268                                                        selFormat = curFormat; 
     269                                                } 
     270                                        } else if (curFormat.getType().equals(rc.getType())) { 
     271                                                selFormat = curFormat; 
     272                                        } 
     273                                } 
     274 
     275                                // Select the format specific to this item (may not exist) 
     276                                if (curFormat.isFor(rc)) { 
     277                                        selFormat = curFormat; 
     278                                        break; 
     279                                } 
     280                        } 
     281 
     282                        if (selFormat == null) { 
     283                                selFormat = defFormat; 
     284                        } 
     285 
     286                        output = selFormat.getValue(); 
     287 
    259288                        if (rc.getType().equals("log")) { 
    260                                 output = this.formats.get("log"); 
    261  
    262289                                if (rc.getLogType().equals("move")) { 
    263                                         output = this.formats.get("move"); 
    264290                                        output = output.replaceAll("\\$newNS", ""+ rc.getNewNS()); 
    265291                                        output = output.replaceAll("\\$newTitle", rc.getNewTitle()); 
    266                                 } else if (rc.getLogType().equals("delete")) { 
    267                                         output = this.formats.get("delete"); 
    268                                 } else if (rc.getLogType().equals("newusers") && rc.getLogAction().equals("create")) { 
    269                                         output = this.formats.get("newuser"); 
    270292                                } 
    271293 
     
    273295                                output = output.replaceAll("\\$logType", rc.getLogType()); 
    274296                                output = output.replaceAll("\\$action", rc.getLogAction()); 
    275                         } else { 
    276                                 output = this.formats.get("normal"); 
    277                         } 
    278  
    279                         System.out.println("Processing rc: "+ wiki.getShortcut() +" :: "+ 
    280                                 rc.getTitle() +" :: "+ rc.getUser()); 
     297                        } 
     298 
     299//                      logger.debug("Processing rc: "+ wiki.getShortcut() +" :: "+ rc.getTitle() +" :: "+ rc.getUser()); 
    281300                        output = output.replaceAll("\\$shortcut", wiki.getShortcut()); 
    282301                        output = output.replaceAll("\\$title", rc.getTitle()); 
  • ppf-mediawikirc/trunk/src/uk/me/allenjb/ppfpplugin/mediawikirc/RecentChange.java

    r53 r59  
    5252        private long logid = -1; 
    5353 
    54         private String logtype = ""; 
     54        private String logtype = null; 
    5555 
    56         private String logaction = ""; 
     56        private String logaction = null; 
    5757 
    5858//      private boolean isNew; 
  • ppf-mediawikirc/trunk/src/uk/me/allenjb/ppfpplugin/mediawikirc/Wiki.java

    r53 r59  
    172172                        } 
    173173 
    174                         List childs = rcitem.getChildren(); 
    175                         if ((childs == null) == (childs.size() < 1)) { 
    176                                 logger.debug("rcitem has "+ childs.size() +" children"); 
    177                         } 
     174//                      List childs = rcitem.getChildren(); 
     175//                      if ((childs == null) == (childs.size() < 1)) { 
     176//                              logger.debug("rcitem has "+ childs.size() +" children"); 
     177//                      } 
    178178 
    179179                        // (String type, String title, long rcid, String user, String timestamp, String comment, long oldlen, long newlen) { 
Note: See TracChangeset for help on using the changeset viewer.