msgutil.java

来自「cwbbs 云网论坛源码」· Java 代码 · 共 164 行

JAVA
164
字号
package com.redmoon.forum;import cn.js.fan.util.StrUtil;import java.util.Vector;import org.htmlparser.Node;import org.htmlparser.util.ParserException;import org.htmlparser.nodes.TextNode;import org.htmlparser.filters.OrFilter;import org.htmlparser.NodeFilter;import org.htmlparser.tags.ImageTag;import org.htmlparser.Parser;import org.htmlparser.util.NodeList;import org.htmlparser.filters.NodeClassFilter;import org.htmlparser.tags.LinkTag;import javax.servlet.http.HttpServletRequest;import cn.js.fan.web.SkinUtil;import com.cloudwebsoft.framework.util.LogUtil;public class MsgUtil {    public static final int MAX_LEN2 = 3000;    public MsgUtil() {    }        public static boolean isTrimEmpty(String astr) {        if ((null == astr) || (astr.length() == 0)) {            return true;        }        if (isBlank(astr.trim())) {            return true;        }        return false;    }        public static boolean isBlank(String astr) {        if ((null == astr) || (astr.length() == 0)) {            return true;        } else {            return false;        }    }    public static String getAbstract(HttpServletRequest request, MsgDb md, int len) {        String content = md.getContent();                        content = StrUtil.getLeft(content, len);                int idx1 = content.lastIndexOf('<');        int idx2 = content.lastIndexOf('>');                        if ((idx2 == -1 && idx1 >= 0) || (idx1 > idx2)) {            String ct3 = md.getContent();            int idx3 = ct3.indexOf('>', idx1);            if (idx3!=-1) {                if (idx3 < MAX_LEN2) {                    content = ct3.substring(0, idx3 + 1);                }            }        }                idx2 = content.toLowerCase().lastIndexOf("</object>");        idx1 = content.toLowerCase().lastIndexOf("<object");        if ((idx2 == -1 && idx1 >= 0) || idx1 > idx2) {            String ct2 = md.getContent().toLowerCase();            int idx3 = ct2.indexOf("</object>");            if (idx3 != -1)                content += md.getContent().substring(content.length(), content.length() + idx3 + 9);            else                content = md.getContent().substring(0, idx1);        }        String str = "";        try {            Parser myParser;            NodeList nodeList = null;            myParser = Parser.createParser(content, "utf-8");            NodeFilter textFilter = new NodeClassFilter(TextNode.class);            NodeFilter linkFilter = new NodeClassFilter(LinkTag.class);            NodeFilter imgFilter = new NodeClassFilter(ImageTag.class);                                    OrFilter lastFilter = new OrFilter();            lastFilter.setPredicates(new NodeFilter[] {textFilter, linkFilter,                                     imgFilter});            nodeList = myParser.parse(lastFilter);            Node[] nodes = nodeList.toNodeArray();            for (int i = 0; i < nodes.length; i++) {                Node anode = (Node) nodes[i];                String line = "";                if (anode instanceof TextNode) {                    TextNode textnode = (TextNode) anode;                                        line = textnode.getText();                } else if (anode instanceof ImageTag) {                    ImageTag imagenode = (ImageTag) anode;                    String url = imagenode.getImageURL();                    String ext = StrUtil.getFileExt(url).toLowerCase();                                        if (ext.equals("gif") || ext.equals("png") || ext.equals("jpg") || ext.equals("jpeg") || ext.equals("bmp")) {                                                if (imagenode.getImageURL().startsWith("http"))                            ;                         else if (imagenode.getImageURL().startsWith("/")) {                            ;                         }                        else {                                                         url = request.getContextPath() + "/forum/" + imagenode.getImageURL();                        }                        line = "<div align=center><a onfocus=this.blur() href=\"" + url + "\" target=_blank><IMG SRC=\"" + url + "\" border=0 alt=" +                                SkinUtil.LoadString(request,                                 "res.cn.js.fan.util.StrUtil",                                    "click_open_win") + " onload=\"javascript:if(this.width>screen.width-333) this.width=screen.width-333\"></a></div><BR>";                                            }                }                if (isTrimEmpty(line))                    continue;                str += "<p>" + line + "</p>";            }        }        catch (ParserException e) {            LogUtil.getLog(MsgUtil.class.getName()).error("getAbstract:" + e.getMessage());        }        return str;    }    public static String getIcon(String fileName) {        String ext = StrUtil.getFileExt(fileName).toLowerCase();                if (ext.equals("jpeg"))            ext = "jpg";        else if (ext.equals("ini"))            ext = "txt";        String[] icons = {"gif", "rar", "zip", "txt", "png", "bmp", "jpg", "doc", "xls", "mp3", "swf", "wma"};        int len = icons.length;        for (int i=0; i<len; i++) {            if (ext.equals(icons[i])) {                return ext + ".gif";            }        }        return "";    }    public static String getIconImg(MsgDb md) {        Vector v = md.getAttachments();                if (v.size()>0) {            Attachment att = (Attachment)v.get(0);            String imgicon = getIcon(att.getDiskName());            return imgicon;        }        return "";    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?