Changeset 25703

Show
Ignore:
Timestamp:
12/02/08 20:43:03 (5 weeks ago)
Author:
tarchan
Message:

lang/java/IRCKit: テスト機能をIRCConsoleに移動

Location:
lang/java/IRCKit/trunk/src/com/mac/tarchan/irc/client
Files:
1 added
2 modified

Legend:

Unmodified
Added
Removed
  • lang/java/IRCKit/trunk/src/com/mac/tarchan/irc/client/IRCClient.java

    r25169 r25703  
    1010import java.net.MalformedURLException; 
    1111import java.util.ArrayList; 
     12import java.util.Properties; 
    1213 
    1314/** 
     
    1718public class IRCClient 
    1819{ 
    19         /** 
    20          * @param args 
    21          */ 
    22         public static void main(String[] args) 
    23         { 
    24                 System.out.println("Welcome to IRCKit!"); 
    25                 try 
    26                 { 
    27                         IRCClient irc = new IRCClient(); 
    28                         irc.setUseSystemProxies(true); 
    29                         irc.registerHandler(new IRCMessageHandler() 
    30                         { 
    31                                 /** 
    32                                  * 受信したメッセージを表示します。 
    33                                  *  
    34                                  * @param msg メッセージ 
    35                                  */ 
    36                                 public void privmsg(IRCMessage msg) 
    37                                 { 
    38                                         // TODO 受信したメッセージを表示 
    39                                 } 
    40                         }); 
    41                         irc.registerNetwork("tokyo", "http://irc.tokyo.wide.ad.jp:6667", "tarchan", ""); 
    42 //                      irc.registerNetwork("tokyo", "http://irc.mozilla.org:6667", "tarchan", ""); 
    43                         irc.join("tokyo", "#dameTunes", ""); 
    44                         irc.privmsg("tokyo", "#dameTunes", "テスト"); 
    45                         irc.quit(); 
    46                 } 
    47                 catch (MalformedURLException e) 
    48                 { 
    49                         e.printStackTrace(); 
    50                 } 
    51  
    52  
    53  
    54 //              try 
    55 //              { 
    56 //                      BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 
    57 //                      while (true) 
    58 //                      { 
    59 //                              String input = in.readLine(); 
    60 //                              System.out.println("echo: " + input); 
    61 //                      } 
    62 //              } 
    63 //              catch (IOException e) 
    64 //              { 
    65 //                      e.printStackTrace(); 
    66 //              } 
    67         } 
    68  
    6920        /** メッセージハンドラ */ 
    7021        protected ArrayList<IRCMessageHandler> handlers = new ArrayList<IRCMessageHandler>(); 
     
    8031                System.out.println("java.version=" + ver); 
    8132                System.setProperty("java.net.useSystemProxies", Boolean.valueOf(useSystemProxies).toString()); 
     33        } 
     34 
     35        /** 
     36         * デフォルトのプロパティーを返します。 
     37         *  
     38         * @return デフォルトのプロパティー 
     39         */ 
     40        public Properties createDefaultProperties() 
     41        { 
     42                return IRCNetwork.createDefaultProperties(); 
    8243        } 
    8344 
  • lang/java/IRCKit/trunk/src/com/mac/tarchan/irc/client/IRCNetwork.java

    r25169 r25703  
    306306        protected URL url; 
    307307 
     308        /** ユーザプロパティー */ 
     309        protected Properties prof; 
     310 
    308311        /** ユーザ名 */ 
    309312        protected String username; 
    310313 
    311314        /** パスワード */ 
    312         protected String pasword; 
     315        protected String password; 
    313316 
    314317        /** 
     
    316319         *  
    317320         * @param address サーバアドレス 
    318          * @param username ユーザ名 
    319          * @param password パスワード 
     321         * @param prof ユーザプロパティー 
    320322         * @throws IllegalArgumentException 指定された文字列が RFC 2396 に違反する場合 
    321323         * @throws MalformedURLException URL のプロトコルハンドラが見つからなかった場合、または URL の構築中にその他の何らかのエラーが発生した場合 
    322324         */ 
    323         public IRCNetwork(String address, String username, String password) throws MalformedURLException 
     325        public IRCNetwork(String address, Properties prof) throws MalformedURLException 
    324326        { 
    325327                URI uri = URI.create(address); 
    326328                url = uri.toURL(); 
    327                 this.username = username; 
    328                 this.pasword = password; 
     329                this.prof = prof; 
    329330                System.out.println("host=" + url.getHost() + ", port=" + url.getPort()); 
     331        } 
     332 
     333        /** 
     334         * デフォルトのプロパティーを返します。 
     335         *  
     336         * @return デフォルトのプロパティー 
     337         */ 
     338        public static Properties createDefaultProperties() 
     339        { 
     340                Properties def = new Properties(); 
     341                String username = System.getProperty("user.name"); 
     342                def.setProperty("irc.user.name", username); 
     343                def.setProperty("irc.user.password", ""); 
     344                def.setProperty("irc.user.mode", "0"); 
     345                def.setProperty("irc.nick.name", username); 
     346                def.setProperty("irc.real.name", username); 
     347 
     348                return new Properties(def); 
    330349        } 
    331350 
     
    342361        public static void register(String groupName, String address, String username, String password) throws MalformedURLException 
    343362        { 
    344                 IRCNetwork network = new IRCNetwork(address, username, password); 
     363                Properties prof = createDefaultProperties(); 
     364                prof.setProperty("irc.user.name", username); 
     365                prof.setProperty("irc.real.name", username); 
     366                prof.setProperty("irc.nick.name", username); 
     367                prof.setProperty("irc.user.password", password); 
     368                IRCNetwork network = new IRCNetwork(address, prof); 
    345369                groups.put(groupName, network); 
    346370        } 
     
    378402         */ 
    379403        public void login() throws IOException 
     404        { 
     405                String username = prof.getProperty("irc.user.name"); 
     406                String password = prof.getProperty("irc.user.password"); 
     407                int mode = Integer.parseInt(prof.getProperty("irc.user.mode")); 
     408                String realname = prof.getProperty("irc.real.name"); 
     409                String nickname = prof.getProperty("irc.nick.name"); 
     410                login(username, password, mode, realname, nickname); 
     411        } 
     412 
     413        /** 
     414         * IRC ネットワークを接続します。 
     415         *  
     416         * @param username ユーザ名 
     417         * @param password パスワード 
     418         * @param mode 接続モード 
     419         * @param realname 本名 
     420         * @param nickname ニックネーム 
     421         * @throws IOException 接続エラーが発生した場合 
     422         */ 
     423        public void login(String username, String password, int mode, String realname, String nickname) throws IOException 
    380424        { 
    381425                // TODO IRCサーバに接続 
    382426                System.out.println("connect to " + url); 
    383427                URLConnection conn = url.openConnection(); 
     428                System.out.println("conn=" + conn); 
    384429                conn.setDoInput(true); 
    385430                conn.setDoOutput(true); 
     431                conn.connect(); 
    386432                // TODO IRCサーバにログイン 
    387                 PrintWriter out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream()), true); 
    388                 if (pasword != null && pasword.trim().length() > 0) out.printf(PASS + CRLF, pasword); 
     433                PrintWriter out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "ISO-2022-JP"), true); 
     434                if (password.trim().length() > 0) out.printf(PASS + CRLF, password); 
     435                out.flush(); 
    389436                out.printf(NICK + CRLF, username); 
     437                out.flush(); 
    390438                out.printf(USER + CRLF, username, 0, username); 
    391 //              out.flush(); 
     439                out.flush(); 
    392440                BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
    393441                while (true)