⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 domain.java

📁 用java做的网页即时聊天系统。可以用于学习网页即时聊天功能的开发
💻 JAVA
字号:
// Decompiled by Jad v1.5.8f. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kpdus.com/jad.html
// Decompiler options: packimports(3) 
// Source File Name:   OpenCHAT.java

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.*;

class Domain
{

    static Properties loadDefaultDomainProps()
    {
        Properties defaultProps = new Properties();
        defaultProps.put("preOpened/Index", "<HTML>\n<!-- OpenCHAT (www.Sistemica.info) -->\n<HEAD><TITLE>OpenCHAT</TITLE></HEAD>\n<BODY>\n<center><br><br>\n<form method=get action=/Login>\n<table border=0 cellpadding=5 cellspacing=2 width=300>\n<tr bgcolor=5B7DA7><td align=center><font color=ffffff size=2 face=arial><b>Welcome to OpenCHAT</b></font></td></tr>\n<tr><td bgcolor=cccccc>\n<font face=arial size=2>\n<OpenCHAT:lang:Nick_name>:<br><input name=u size=12><br><br>\n<OpenCHAT:lang:Room>:<br><select name=room><OpenCHAT:selectRoomOptions></select><br><br>\n<input type=submit value=Login>\n<input type=hidden name=type value=\"preOpened\">\n</td></tr>\n<tr><td align=center><a href=\"http://sistemica.info\"><img src=\"http://sistemica.info/img/logo_sis_cool.png\" border=0></a></td></tr>\n</table>\n</form>\n</BODY>\n</HTML>\n");
        defaultProps.put("preOpened/Login", "<HTML>\n<!-- OpenCHAT (www.Sistemica.info) -->\n<HEAD>\n<TITLE>OpenCHAT</TITLE>\n<FRAMESET rows=\"27,*,70\">\n<FRAME name=TOP    src=\"<OpenCHAT:topFrameURL>\">\n<FRAME name=READER src=\"<OpenCHAT:readerFrameURL>\">\n<FRAME name=WRITER src=\"<OpenCHAT:writerFrameURL>\">\n</FRAMESET>\n<NOFRAMES><h2>Your browser does not support frames!</h2></NOFRAMES>\n</HEAD>\n</HTML>\n");
        defaultProps.put("preOpened/Top", "<HEAD><TILE>OpenCHAT</TITLE></HEAD><BODY leftmargin=0 topmargin=0 margineidth=0 marginheight=0 bgcolor=000000><FONT FACE=Arial SIZE=4 color=ffffff><b><i>OpenCHAT</b> <font color=777777>Sistemica.info</font></BODY>\n");
        defaultProps.put("preOpened/Reader", "<HTML>\n<!-- OpenCHAT (www.sistemica.info) -->\n<HEAD><TITLE>OpenCHAT</TITLE></HEAD>\n<BODY bgcolor=FFFFFF>\n");
        defaultProps.put("preOpened/Writer", "<HTML>\n<!-- OpenCHAT (www.Sistemica.info) -->\n<HEAD><TITLE>OpenCHAT</TITLE></HEAD>\n<BODY BGCOLOR=#F7DBC6><font face=arial><b>\n<form method=get name=writer>\n<OpenCHAT:hiddenFormInputs><select name=action><option value=\"<OpenCHAT:lang:talks_to>\"><OpenCHAT:lang:Talk></option></select> \n<input name=msg size=35> \n <OpenCHAT:lang:to> <select name=to><OpenCHAT:selectUserOptions></select> \n<input type=checkbox name=privado value=true <OpenCHAT:checkboxPrivateChecked>> <font size=2><OpenCHAT:lang:private></font> \n<input type=submit value=send>\n</form></BODY></HTML>\n<SCRIPT NAME=\"JavaScript\">document.writer.msg.focus();</SCRIPT>\n");
        return defaultProps;
    }

    Domain(String DomainString, String confString)
    {
        Root = new Hashtable();
        defaultRoom = new Hashtable();
        props = loadDefaultDomainProps();
        lang = OpenCHAT.lang;
        defaultLang = OpenCHAT.getProperty("CHAT_DEFAULT_LANGUAGE");
        OpenCHAT.p(" -> Loading Domain " + DomainString + ".");
        DomainString = DomainString.toUpperCase();
        OpenCHAT.p("    Loading preOpened CHAT rooms for this Domain.");
        Root.put("preOpened", new Hashtable());
        String dirs[] = {
            OpenCHAT.getProperty("CHAT_ROOT_DIR"), "."
        };
        Properties RoomsProps = new Properties();
        boolean confRead = false;
        confRead = OpenCHAT.readConfFile(RoomsProps, dirs, "OpenCHAT.rooms");
        confRead = OpenCHAT.readConfFile(RoomsProps, dirs, DomainString + ".rooms");
        for(Enumeration e = RoomsProps.keys(); e.hasMoreElements();)
        {
            String name;
            try
            {
                name = URLDecoder.decode((String)e.nextElement(), OpenCHAT.getProperty("CHAT_DEFAULT_CHARSET"));
            }
            catch(UnsupportedEncodingException ee)
            {
                name = URLDecoder.decode((String)e.nextElement());
            }
            if(name.equals("_DEFAULT_"))
            {
                try
                {
                    defaultRoom.put("preOpened", URLDecoder.decode((String)RoomsProps.get(name), OpenCHAT.getProperty("CHAT_DEFAULT_CHARSET")));
                }
                catch(UnsupportedEncodingException ee)
                {
                    defaultRoom.put("preOpened", URLDecoder.decode((String)RoomsProps.get(name)));
                }
            } else
            {
                if(!getType("preOpened").containsKey(name))
                    OpenCHAT.p("     -> Loading room: " + name + ".");
                getType("preOpened").put(name, new Room(name, "preOpened"));
            }
        }

        if(!confRead)
            OpenCHAT.p("    No domain config file could be read at " + OpenCHAT.getProperty("CHAT_ROOT_DIR") + File.separator + DomainString + ".rooms or in the working directory!");
        if(getType("preOpened").isEmpty())
        {
            OpenCHAT.p("     -> Loading _DEFAULT_ room.");
            getType("preOpened").put("_DEFAULT_", new Room("_DEFAULT_", "preOpened"));
        }
        if(!defaultRoom.containsKey("preOpened") || !getType("preOpened").containsKey((String)defaultRoom.get("preOpened")))
        {
            OpenCHAT.p("     -> No _DEFAULT_ room explicitly set or defaultRoom not found.");
            defaultRoom.put("preOpened", (String)getType("preOpened").keys().nextElement());
        }
        OpenCHAT.p("     -> Default Room set to " + (String)defaultRoom.get("preOpened") + ".");
        OpenCHAT.readMLConfFile(props, dirs, "OpenCHAT.tpls");
        OpenCHAT.readMLConfFile(props, dirs, "OpenCHAT.tpls", DomainString);
        OpenCHAT.readMLConfFile(props, dirs, DomainString + ".tpls");
        OpenCHAT.readLangConf(lang, dirs, DomainString + ".lang");
        OpenCHAT.readConfString(props, confString);
        if(props.containsKey("defaultLang"))
            defaultLang = (String)props.get("defaultLang");
        Domain = Name = DomainString;
    }

    String getTemplate(String roomType, String room, String type)
    {
        String Template;
        if(props.containsKey(roomType + "/" + room + "/" + type))
            Template = (String)props.get(roomType + "/" + room + "/" + type);
        else
        if(props.containsKey(roomType + "/" + type))
            Template = (String)props.get(roomType + "/" + type);
        else
            Template = (String)loadDefaultDomainProps().get(roomType + "/" + type);
        return Template;
    }

    Hashtable get()
    {
        return Root;
    }

    Hashtable getType(String type)
    {
        Hashtable retHash;
        try
        {
            retHash = (Hashtable)Root.get(type);
        }
        catch(NullPointerException e)
        {
            retHash = null;
        }
        return retHash;
    }

    Room getRoom(String type, String Room)
    {
        Room retRoom;
        try
        {
            if(getType(type).containsKey(Room))
            {
                retRoom = (Room)getType(type).get(Room);
            } else
            {
                OpenCHAT.p("User requested Room \"" + Room + "\" of type " + type + " doesn't exist.");
                retRoom = (Room)getType(type).get(defaultRoom.get(type));
            }
        }
        catch(NullPointerException e)
        {
            retRoom = null;
        }
        return retRoom;
    }

    User getUser(String type, String Room, String User)
    {
        User retUser;
        try
        {
            retUser = getRoom(type, Room).getUser(User);
        }
        catch(NullPointerException e)
        {
            retUser = null;
        }
        return retUser;
    }

    String apllyLang(String text)
    {
        return apllyLang(defaultLang, text);
    }

    String apllyLang(String lang, String text)
    {
        if(lang == null || !this.lang.containsKey(lang))
            lang = OpenCHAT.getProperty("CHAT_DEFAULT_LANGUAGE");
        for(Enumeration e = ((Properties)this.lang.get(lang)).keys(); e.hasMoreElements();)
        {
            String key = (String)e.nextElement();
            text = text.replaceAll("<OpenCHAT:lang:" + key + ">", (String)((Properties)this.lang.get(lang)).get(key));
        }

        return text;
    }

    public Hashtable Root;
    public Hashtable defaultRoom;
    public Properties props;
    public Properties lang;
    public String Domain;
    public String Name;
    public String defaultLang;
}

⌨️ 快捷键说明

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