• R/O
  • SSH

JinParser: Commit

JinParserライブラリは、CGIゲーム「人狼BBS」のクライアント制作者向けに作られたJavaライブラリです。


Commit MetaInfo

Revisão64ab4cc24516e9e0cef156c9d6bf2817f51552ab (tree)
Hora2010-12-02 23:06:05
Autor <olyutorskii@user...>

Mensagem de Log

1.407.2版リリース準備

Mudança Sumário

Diff

diff -r 65c77b06d948 -r 64ab4cc24516 CHANGELOG.txt
--- a/CHANGELOG.txt Thu Dec 02 22:31:11 2010 +0900
+++ b/CHANGELOG.txt Thu Dec 02 23:06:05 2010 +0900
@@ -4,6 +4,9 @@
44 JinParser 変更履歴
55
66
7+1.407.2 (2010-12-02)
8+ ・G国メッセージ追加に伴い JinCore 1.206.2 版に対応。
9+
710 1.406.2 (2010-11-29)
811 ・G国メッセージ追加に伴い JinCore 1.205.2 版に対応。
912
diff -r 65c77b06d948 -r 64ab4cc24516 pom.xml
--- a/pom.xml Thu Dec 02 22:31:11 2010 +0900
+++ b/pom.xml Thu Dec 02 23:06:05 2010 +0900
@@ -16,7 +16,7 @@
1616 <groupId>jp.sourceforge.jindolf</groupId>
1717 <artifactId>jinparser</artifactId>
1818
19- <version>1.406.3-SNAPSHOT</version>
19+ <version>1.407.2</version>
2020
2121 <packaging>jar</packaging>
2222 <name>JinParser</name>
@@ -107,7 +107,7 @@
107107 <dependency>
108108 <groupId>jp.sourceforge.jindolf</groupId>
109109 <artifactId>jincore</artifactId>
110- <version>1.205.3-SNAPSHOT</version>
110+ <version>1.206.2</version>
111111 <scope>compile</scope>
112112 </dependency>
113113
diff -r 65c77b06d948 -r 64ab4cc24516 src/main/java/jp/sourceforge/jindolf/parser/HtmlAdapter.java
--- a/src/main/java/jp/sourceforge/jindolf/parser/HtmlAdapter.java Thu Dec 02 22:31:11 2010 +0900
+++ b/src/main/java/jp/sourceforge/jindolf/parser/HtmlAdapter.java Thu Dec 02 23:06:05 2010 +0900
@@ -390,6 +390,18 @@
390390 /**
391391 * {@inheritDoc}
392392 * @param content {@inheritDoc}
393+ * @param avatarRange {@inheritDoc}
394+ * @throws HtmlParseException {@inheritDoc}
395+ */
396+ public void sysEventCheckout(DecodedContent content,
397+ SeqRange avatarRange )
398+ throws HtmlParseException{
399+ return;
400+ }
401+
402+ /**
403+ * {@inheritDoc}
404+ * @param content {@inheritDoc}
393405 * @param judgeByRange {@inheritDoc}
394406 * @param judgeToRange {@inheritDoc}
395407 * @throws HtmlParseException {@inheritDoc}
diff -r 65c77b06d948 -r 64ab4cc24516 src/main/java/jp/sourceforge/jindolf/parser/SysEventHandler.java
--- a/src/main/java/jp/sourceforge/jindolf/parser/SysEventHandler.java Thu Dec 02 22:31:11 2010 +0900
+++ b/src/main/java/jp/sourceforge/jindolf/parser/SysEventHandler.java Thu Dec 02 23:06:05 2010 +0900
@@ -196,6 +196,17 @@
196196 throws HtmlParseException;
197197
198198 /**
199+ * CHECKOUTイベントの詳細の通知を受け取る。
200+ * @param content パース対象の文字列
201+ * @param avatarRange 失踪したAvatar名の範囲
202+ * @throws HtmlParseException パースエラー
203+ * @see jp.sourceforge.jindolf.corelib.SysEventType#CHECKOUT
204+ */
205+ void sysEventCheckout(DecodedContent content,
206+ SeqRange avatarRange )
207+ throws HtmlParseException;
208+
209+ /**
199210 * JUDGEイベントの詳細の通知を受け取る。
200211 * @param content パース対象の文字列。
201212 * @param judgeByRange 占師Avatar名の範囲
diff -r 65c77b06d948 -r 64ab4cc24516 src/main/java/jp/sourceforge/jindolf/parser/SysEventParser.java
--- a/src/main/java/jp/sourceforge/jindolf/parser/SysEventParser.java Thu Dec 02 22:31:11 2010 +0900
+++ b/src/main/java/jp/sourceforge/jindolf/parser/SysEventParser.java Thu Dec 02 23:06:05 2010 +0900
@@ -78,6 +78,7 @@
7878 || probePlayerList()
7979 || probeExecution()
8080 || probeVanish()
81+ || probeCheckout()
8182 ;
8283 if( ! result ){
8384 throw buildParseException();
@@ -794,6 +795,55 @@
794795 return true;
795796 }
796797
798+ private static final Pattern CHECKOUT_PATTERN =
799+ compile(
800+ "(?:<br />)*"
801+ +"(" + AVATAR_REGEX + ")"
802+ +"\u0020は、宿を去った。"
803+ +"(?:<br />)*"
804+ );
805+
806+ /**
807+ * CHECKOUTメッセージのパースを試みる。
808+ * @return マッチしたらtrue
809+ * @throws HtmlParseException パースエラー
810+ */
811+ private boolean probeCheckout() throws HtmlParseException{
812+ SeqRange avatarRange = this.rangepool_1;
813+
814+ pushRegion();
815+
816+ sweepSpace();
817+
818+ boolean hasCheckout = false;
819+
820+ for(;;){
821+ if( ! lookingAtProbe(CHECKOUT_PATTERN)){
822+ break;
823+ }
824+
825+ if( ! hasCheckout ){
826+ hasCheckout = true;
827+ this.sysEventHandler.sysEventType(SysEventType.CHECKOUT);
828+ }
829+ avatarRange.setLastMatchedGroupRange(getMatcher(), 1);
830+
831+ shrinkRegion();
832+
833+ this.sysEventHandler
834+ .sysEventCheckout(getContent(), avatarRange);
835+ }
836+
837+ if( ! hasCheckout ){
838+ popRegion();
839+ return false;
840+ }
841+
842+ sweepSpace();
843+
844+ return true;
845+ }
846+
797847 /**
798848 * Orderメッセージをパースする。
799849 * @throws HtmlParseException パースエラー
Show on old repository browser