OSDN Git Service

非同期実行を考慮してメソッド呼び出しの都度インスタンスを生成する
[coroid/NicoBrowser.git] / src / nicobrowser / util / WatchParse.groovy
1 package nicobrowser.util
2
3 import org.cyberneko.html.parsers.SAXParser
4
5 /**
6  * watchページのパースを実行するクラス.
7  * ニコニコ動画(原宿)より前のバージョンでは動作未検証.
8  * @author yuki
9  */
10 class WatchParse {
11     def headerTitlePattern = /^(.+) ‐ ニコニコ動画\(.+\)$/
12
13     String getTitle(InputStream is){
14         def html = new XmlSlurper(new SAXParser()).parse(is)
15         def res = html.HEAD.TITLE
16         def headerTitle = res.text()
17         def matcher = (headerTitle =~ headerTitlePattern)
18         if(matcher){
19             return matcher[0][1]
20         }
21
22         // ニコニコ動画(Zero)用
23         def innerTitle = html.'**'.find {
24             it.@id == 'videoHeaderDetail'
25         }
26         return innerTitle.DIV.H2.text()
27     }
28 }