OSDN Git Service

ZeroでWatchページからタイトルを取得する
[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 slurper = new XmlSlurper(new SAXParser())
12     def headerTitlePattern = /^(.+) ‐ ニコニコ動画\(.+\)$/
13
14     String getTitle(InputStream is){
15         def html = slurper.parse(is)
16         def res = html.HEAD.TITLE
17         def headerTitle = res.text()
18         def matcher = (headerTitle =~ headerTitlePattern)
19         if(matcher){
20             return matcher[0][1]
21         }
22
23         // ニコニコ動画(Zero)用
24         def innerTitle = html.'**'.find {
25             it.@id == 'videoHeaderDetail'
26         }
27         return innerTitle.DIV.H2.text()
28     }
29 }