1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | package com.tedneward.scitter { class Scitter { def friendsTimeline : List[Status] = { val (statusCode, statusBody) = Scitter.execute("http://twitter.com/statuses/friends_timeline.xml", username, password) if (statusCode == 200) { val responseXML = XML.loadString(statusBody) val statusListBuffer = new ListBuffer[Status] for (n <- (responseXML \\ "status").elements) statusListBuffer += (Status.fromXml(n)) statusListBuffer.toList } else { Nil } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package com.tedneward.scitter.test { class ScitterTests { // ... @Test def scitterFriendsTimeline = { val scitter = new Scitter(testUser, testPassword) val result = scitter.friendsTimeline assertTrue(result.length > 0) } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | package com.tedneward.scitter { // ... abstract class OptionalParam case class Id(id : String) extends OptionalParam case class UserId(id : Long) extends OptionalParam case class Since(since_id : Long) extends OptionalParam case class Max(max_id : Long) extends OptionalParam case class Count(count : Int) extends OptionalParam case class Page(page : Int) extends OptionalParam class Scitter(username : String, password : String) { // ... def friendsTimeline(options : OptionalParam*) : List[Status] = { val optionsStr = new StringBuffer("http://twitter.com/statuses/friends_timeline.xml?") for (option <- options) { option match { case Since(since_id) => optionsStr.append("since_id=" + since_id.toString() + "&") case Max(max_id) => optionsStr.append("max_id=" + max_id.toString() + "&") case Count(count) => optionsStr.append("count=" + count.toString() + "&") case Page(page) => optionsStr.append("page=" + page.toString() + "&") } } val (statusCode, statusBody) = Scitter.execute(optionsStr.toString(), username, password) if (statusCode == 200) { val responseXML = XML.loadString(statusBody) val statusListBuffer = new ListBuffer[Status] for (n <- (responseXML \\ "status").elements) statusListBuffer += (Status.fromXml(n)) statusListBuffer.toList } else { Nil } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | package com.tedneward.scitter.test { class ScitterTests { // ... @Test def scitterFriendsTimelineWithCount = { val scitter = new Scitter(testUser, testPassword) val result = scitter.friendsTimeline(Count(5)) assertTrue(result.length == 5) } } } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |