• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

レコメンドIndexをScalaで


Commit MetaInfo

Revisiona04dc4d87185ba8294596d53814aa6574fa50508 (tree)
Time2011-02-24 16:16:01
Authortachiki <tachiki@p-wi...>
Commitertachiki

Log Message

URLから本文を切り出す部分の仮コードを追加

Change Summary

Incremental Difference

--- /dev/null
+++ b/src/com/parrotstudio/recommend/ro/RecommendIndexer.scala
@@ -0,0 +1,14 @@
1+package com.parrotstudio.recommend.ro
2+
3+import com.parrotstudio.recommend.ro.model._
4+
5+object RecommendIndexer {
6+ def main(args: Array[String]): Unit = {
7+ val worker = new RecommendWorker(0)
8+ worker.start
9+ val page = worker !! URL("http://parrot.blog21.fc2.com/blog-entry-2141.html", "EUC-JP")
10+ //println(page())
11+ val art = worker !! page()
12+ println(art())
13+ }
14+}
--- a/src/com/parrotstudio/recommend/ro/RecommendWorker.scala
+++ b/src/com/parrotstudio/recommend/ro/RecommendWorker.scala
@@ -1,9 +1,11 @@
11 package com.parrotstudio.recommend.ro
22
3+import scala.io.Source
34 import scala.actors.Actor
45 import com.parrotstudio.recommend.ro.model._
56
67 class RecommendWorker(val index: Int) extends Actor with RecommendMessage {
8+ val parser = """.*<div id="more">(.*?)</div>.*""".r
79
810 def act {
911 loop {
@@ -19,13 +21,16 @@ class RecommendWorker(val index: Int) extends Actor with RecommendMessage {
1921 }
2022
2123 def download(u: URL): Page = {
22-
23- Page("hoge")
24+ val html = Source.fromURL(u.url, u.encoding).getLines
25+ // TODO ファイルに保存してページ名称を返す
26+ Page(html.mkString)
2427 }
2528
2629 def parse(p: Page): Article = {
27-
28- Article("hoge")
30+ p.page match {
31+ case parser(art) => Article("本文", art)
32+ case _ => Article("", "")
33+ }
2934 }
3035
3136 def analysis(a: Article): Terms = {
--- a/src/com/parrotstudio/recommend/ro/model/Article.scala
+++ b/src/com/parrotstudio/recommend/ro/model/Article.scala
@@ -1,5 +1,5 @@
11 package com.parrotstudio.recommend.ro.model
22
3-case class Article(val body: String) {
3+case class Article(val body: String, val extend: String) {
44
55 }
--- a/src/com/parrotstudio/recommend/ro/model/Page.scala
+++ b/src/com/parrotstudio/recommend/ro/model/Page.scala
@@ -1,5 +1,5 @@
11 package com.parrotstudio.recommend.ro.model
22
3-case class Page(val pageName: String) {
3+case class Page(val page: String) {
44
55 }
--- a/src/com/parrotstudio/recommend/ro/model/URL.scala
+++ b/src/com/parrotstudio/recommend/ro/model/URL.scala
@@ -1,5 +1,5 @@
11 package com.parrotstudio.recommend.ro.model
22
3-case class URL(val url:String) {
3+case class URL(val url:String, val encoding:String) {
44
55 }
\ No newline at end of file