Skip to content

Instantly share code, notes, and snippets.

@seratch
Forked from ngsw-taro/Main.scala
Created August 28, 2013 09:34
Show Gist options
  • Save seratch/6364134 to your computer and use it in GitHub Desktop.
Save seratch/6364134 to your computer and use it in GitHub Desktop.
import java.security.MessageDigest
import scala.xml.{Elem, XML}
case class Slideshow(id: Long, title: String, username: String)
object Main {
def main(args: Array[String]) {
val apiKey = System.getenv("SLIDESHARE_API_KEY")
val sharedSecret = System.getenv("SLIDESHARE_SHARED_SECRET")
val xml = search(apiKey, sharedSecret, "kotlin")
val slideshows = (xml \ "Slideshow") map { e =>
Slideshow(
id = (e \ "ID").text.toLong,
title = (e \ "Title").text,
username = (e \ "Username").text
)
}
slideshows.foreach(println)
}
private def search(apiKey: String, sharedSecret: String, query: String): Elem = {
val ts = System.currentTimeMillis / 1000
val hash = {
val md = MessageDigest.getInstance("SHA-1")
md.update((sharedSecret + ts).getBytes)
md.digest.map(b => "%02x".format(b)).mkString
}
XML.load(s"https://www.slideshare.net/api/2/search_slideshows?api_key=${apiKey}&ts=${ts}&hash=${hash}&q=${query}")
}
}
Main.main(Array())
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment